@koobiq/components 18.28.0 → 18.29.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 (391) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-container.scss +4 -1
  3. package/actions-panel/actions-panel-tokens.scss +2 -1
  4. package/breadcrumbs/breadcrumbs.d.ts +1 -1
  5. package/checkbox/checkbox.scss +2 -0
  6. package/core/common-behaviors/clipboard.d.ts +12 -0
  7. package/core/common-behaviors/index.d.ts +1 -0
  8. package/core/formatters/filesize/config.d.ts +66 -0
  9. package/core/formatters/filesize/formatter.d.ts +17 -0
  10. package/core/{utils/data-size → formatters/filesize}/index.d.ts +1 -1
  11. package/core/formatters/filesize/size.d.ts +36 -0
  12. package/core/formatters/index.d.ts +3 -1
  13. package/core/formatters/number/formatter.d.ts +13 -4
  14. package/core/locales/formatters.d.ts +9 -1
  15. package/core/locales/locale-service.d.ts +9 -1
  16. package/core/locales/types.d.ts +14 -0
  17. package/core/utils/public-api.d.ts +0 -1
  18. package/datepicker/calendar.scss +2 -0
  19. package/datepicker/datepicker-tokens.scss +1 -1
  20. package/dropdown/dropdown-item.component.d.ts +3 -1
  21. package/esm2022/accordion/accordion-content.mjs +4 -4
  22. package/esm2022/accordion/accordion-header.mjs +4 -4
  23. package/esm2022/accordion/accordion-item.mjs +4 -4
  24. package/esm2022/accordion/accordion-trigger.component.mjs +6 -6
  25. package/esm2022/accordion/accordion.component.mjs +4 -4
  26. package/esm2022/accordion/accordion.module.mjs +5 -5
  27. package/esm2022/actions-panel/actions-panel-container.mjs +6 -6
  28. package/esm2022/actions-panel/actions-panel.mjs +13 -13
  29. package/esm2022/actions-panel/module.mjs +5 -5
  30. package/esm2022/alert/alert.component.mjs +13 -13
  31. package/esm2022/alert/alert.module.mjs +5 -5
  32. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +4 -4
  33. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  34. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  35. package/esm2022/autocomplete/autocomplete.module.mjs +5 -5
  36. package/esm2022/badge/badge.component.mjs +10 -10
  37. package/esm2022/badge/badge.module.mjs +5 -5
  38. package/esm2022/breadcrumbs/breadcrumbs.mjs +17 -17
  39. package/esm2022/breadcrumbs/breadcrumbs.module.mjs +5 -5
  40. package/esm2022/button/button.component.mjs +7 -7
  41. package/esm2022/button/button.dropdown-trigger.directive.mjs +4 -4
  42. package/esm2022/button/button.module.mjs +5 -5
  43. package/esm2022/button-toggle/button-toggle.component.mjs +7 -7
  44. package/esm2022/button-toggle/button-toggle.module.mjs +5 -5
  45. package/esm2022/checkbox/checkbox-module.mjs +5 -5
  46. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  47. package/esm2022/checkbox/checkbox.mjs +5 -5
  48. package/esm2022/code-block/code-block-highlight.mjs +4 -4
  49. package/esm2022/code-block/code-block.mjs +4 -4
  50. package/esm2022/code-block/code-block.module.mjs +5 -5
  51. package/esm2022/core/common-behaviors/clipboard.mjs +31 -0
  52. package/esm2022/core/common-behaviors/color.mjs +4 -4
  53. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  54. package/esm2022/core/common-behaviors/index.mjs +2 -1
  55. package/esm2022/core/error/error-state-matcher.mjs +10 -10
  56. package/esm2022/core/formatters/date/formatter.mjs +4 -4
  57. package/esm2022/core/formatters/date/formatter.pipe.mjs +79 -79
  58. package/esm2022/core/formatters/filesize/config.mjs +32 -0
  59. package/esm2022/core/formatters/filesize/formatter.mjs +46 -0
  60. package/esm2022/core/formatters/filesize/index.mjs +4 -0
  61. package/esm2022/core/formatters/filesize/size.mjs +67 -0
  62. package/esm2022/core/formatters/index.mjs +15 -9
  63. package/esm2022/core/formatters/number/formatter.mjs +38 -36
  64. package/esm2022/core/forms/forms-module.mjs +5 -5
  65. package/esm2022/core/forms/forms.directive.mjs +7 -7
  66. package/esm2022/core/highlight/highlight.pipe.mjs +4 -4
  67. package/esm2022/core/highlight/index.mjs +5 -5
  68. package/esm2022/core/line/line.mjs +8 -8
  69. package/esm2022/core/locales/formatters.mjs +21 -13
  70. package/esm2022/core/locales/locale-service.mjs +4 -4
  71. package/esm2022/core/locales/locale-service.module.mjs +5 -5
  72. package/esm2022/core/locales/types.mjs +1 -1
  73. package/esm2022/core/option/action.mjs +4 -4
  74. package/esm2022/core/option/optgroup.mjs +4 -4
  75. package/esm2022/core/option/option-module.mjs +5 -5
  76. package/esm2022/core/option/option.mjs +4 -4
  77. package/esm2022/core/pop-up/pop-up-trigger.mjs +4 -4
  78. package/esm2022/core/pop-up/pop-up.mjs +4 -4
  79. package/esm2022/core/select/common.mjs +16 -16
  80. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  81. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  82. package/esm2022/core/services/measure-scrollbar.service.mjs +4 -4
  83. package/esm2022/core/services/theme.service.mjs +4 -4
  84. package/esm2022/core/utils/public-api.mjs +1 -2
  85. package/esm2022/core/version.mjs +2 -2
  86. package/esm2022/datepicker/calendar-body.component.mjs +4 -4
  87. package/esm2022/datepicker/calendar-header.component.mjs +4 -4
  88. package/esm2022/datepicker/calendar.component.mjs +5 -5
  89. package/esm2022/datepicker/datepicker-input.directive.mjs +4 -4
  90. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  91. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  92. package/esm2022/datepicker/datepicker-toggle.component.mjs +7 -7
  93. package/esm2022/datepicker/datepicker.component.mjs +8 -8
  94. package/esm2022/datepicker/month-view.component.mjs +4 -4
  95. package/esm2022/divider/divider.component.mjs +4 -4
  96. package/esm2022/divider/divider.module.mjs +5 -5
  97. package/esm2022/dl/dl.component.mjs +10 -10
  98. package/esm2022/dl/dl.module.mjs +5 -5
  99. package/esm2022/dropdown/dropdown-content.directive.mjs +4 -4
  100. package/esm2022/dropdown/dropdown-item.component.mjs +9 -7
  101. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -4
  102. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  103. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  104. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -8
  105. package/esm2022/empty-state/empty-state.component.mjs +16 -16
  106. package/esm2022/empty-state/empty-state.module.mjs +5 -5
  107. package/esm2022/file-upload/file-drop.mjs +4 -4
  108. package/esm2022/file-upload/file-upload.module.mjs +5 -5
  109. package/esm2022/file-upload/multiple-file-upload.component.mjs +5 -5
  110. package/esm2022/file-upload/single-file-upload.component.mjs +5 -5
  111. package/esm2022/filter-bar/filter-bar-button.mjs +4 -4
  112. package/esm2022/filter-bar/filter-bar.mjs +4 -4
  113. package/esm2022/filter-bar/filter-bar.module.mjs +5 -5
  114. package/esm2022/filter-bar/filter-bar.types.mjs +32 -1
  115. package/esm2022/filter-bar/filter-refresher.mjs +4 -4
  116. package/esm2022/filter-bar/filter-reset.mjs +4 -4
  117. package/esm2022/filter-bar/filter-search.mjs +4 -4
  118. package/esm2022/filter-bar/filters.mjs +27 -20
  119. package/esm2022/filter-bar/pipe-add.mjs +4 -4
  120. package/esm2022/filter-bar/pipe.directive.mjs +4 -4
  121. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -7
  122. package/esm2022/filter-bar/pipes/pipe-button.mjs +4 -4
  123. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -6
  124. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -6
  125. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +29 -11
  126. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +234 -0
  127. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +6 -6
  128. package/esm2022/filter-bar/pipes/pipe-select.mjs +6 -6
  129. package/esm2022/filter-bar/pipes/pipe-state.mjs +4 -4
  130. package/esm2022/filter-bar/pipes/pipe-text.mjs +6 -6
  131. package/esm2022/filter-bar/pipes/pipe-title.mjs +4 -4
  132. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +136 -0
  133. package/esm2022/filter-bar/public-api.mjs +2 -1
  134. package/esm2022/form-field/cleaner.mjs +4 -4
  135. package/esm2022/form-field/form-field.mjs +12 -12
  136. package/esm2022/form-field/form-field.module.mjs +5 -5
  137. package/esm2022/form-field/hint.mjs +4 -4
  138. package/esm2022/form-field/password-hint.mjs +9 -7
  139. package/esm2022/form-field/password-toggle.mjs +4 -4
  140. package/esm2022/form-field/prefix.mjs +4 -4
  141. package/esm2022/form-field/stepper.mjs +4 -4
  142. package/esm2022/form-field/suffix.mjs +4 -4
  143. package/esm2022/form-field/validate.directive.mjs +4 -4
  144. package/esm2022/icon/icon-button.component.mjs +4 -4
  145. package/esm2022/icon/icon-item.component.mjs +4 -4
  146. package/esm2022/icon/icon.component.mjs +4 -4
  147. package/esm2022/icon/icon.module.mjs +5 -5
  148. package/esm2022/input/input-number-validators.mjs +7 -7
  149. package/esm2022/input/input-number.mjs +13 -12
  150. package/esm2022/input/input-password.mjs +4 -4
  151. package/esm2022/input/input.mjs +7 -7
  152. package/esm2022/input/input.module.mjs +5 -5
  153. package/esm2022/link/link.component.mjs +4 -4
  154. package/esm2022/link/link.module.mjs +5 -5
  155. package/esm2022/list/list-selection.component.mjs +10 -10
  156. package/esm2022/list/list.component.mjs +7 -7
  157. package/esm2022/list/list.module.mjs +5 -5
  158. package/esm2022/loader-overlay/loader-overlay.component.mjs +13 -13
  159. package/esm2022/loader-overlay/loader-overlay.module.mjs +5 -5
  160. package/esm2022/markdown/markdown.component.mjs +4 -4
  161. package/esm2022/markdown/markdown.module.mjs +5 -5
  162. package/esm2022/markdown/markdown.service.mjs +4 -4
  163. package/esm2022/modal/css-unit.pipe.mjs +4 -4
  164. package/esm2022/modal/modal-control.service.mjs +4 -4
  165. package/esm2022/modal/modal.component.mjs +4 -4
  166. package/esm2022/modal/modal.directive.mjs +13 -13
  167. package/esm2022/modal/modal.module.mjs +5 -5
  168. package/esm2022/modal/modal.service.mjs +4 -4
  169. package/esm2022/modal/modal.type.mjs +1 -1
  170. package/esm2022/navbar/navbar-item.component.mjs +28 -28
  171. package/esm2022/navbar/navbar.component.mjs +10 -10
  172. package/esm2022/navbar/navbar.module.mjs +5 -5
  173. package/esm2022/navbar/vertical-navbar.component.mjs +4 -4
  174. package/esm2022/overflow-items/module.mjs +5 -5
  175. package/esm2022/overflow-items/overflow-items.mjs +15 -15
  176. package/esm2022/popover/popover-confirm.component.mjs +7 -7
  177. package/esm2022/popover/popover.component.mjs +7 -7
  178. package/esm2022/popover/popover.module.mjs +5 -5
  179. package/esm2022/progress-bar/progress-bar.component.mjs +10 -10
  180. package/esm2022/progress-bar/progress-bar.module.mjs +5 -5
  181. package/esm2022/progress-spinner/progress-spinner.component.mjs +10 -10
  182. package/esm2022/progress-spinner/progress-spinner.module.mjs +5 -5
  183. package/esm2022/radio/radio.component.mjs +7 -7
  184. package/esm2022/radio/radio.module.mjs +5 -5
  185. package/esm2022/risk-level/risk-level.component.mjs +4 -4
  186. package/esm2022/risk-level/risk-level.module.mjs +5 -5
  187. package/esm2022/scrollbar/scrollbar.component.mjs +4 -4
  188. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -4
  189. package/esm2022/scrollbar/scrollbar.module.mjs +5 -5
  190. package/esm2022/select/select-option.directive.mjs +4 -4
  191. package/esm2022/select/select.component.mjs +6 -6
  192. package/esm2022/select/select.module.mjs +5 -5
  193. package/esm2022/sidebar/sidebar.component.mjs +18 -12
  194. package/esm2022/sidebar/sidebar.module.mjs +5 -5
  195. package/esm2022/sidepanel/sidepanel-container.component.mjs +4 -4
  196. package/esm2022/sidepanel/sidepanel-directives.mjs +16 -16
  197. package/esm2022/sidepanel/sidepanel.module.mjs +5 -5
  198. package/esm2022/sidepanel/sidepanel.service.mjs +4 -4
  199. package/esm2022/splitter/splitter.component.mjs +13 -13
  200. package/esm2022/splitter/splitter.module.mjs +5 -5
  201. package/esm2022/table/table.component.mjs +7 -7
  202. package/esm2022/table/table.module.mjs +5 -5
  203. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  204. package/esm2022/tabs/tab-body.component.mjs +7 -7
  205. package/esm2022/tabs/tab-content.directive.mjs +4 -4
  206. package/esm2022/tabs/tab-group.component.mjs +16 -16
  207. package/esm2022/tabs/tab-header.component.mjs +4 -4
  208. package/esm2022/tabs/tab-label-wrapper.directive.mjs +4 -4
  209. package/esm2022/tabs/tab-label.directive.mjs +4 -4
  210. package/esm2022/tabs/tab-nav-bar.mjs +10 -10
  211. package/esm2022/tabs/tab.component.mjs +4 -4
  212. package/esm2022/tabs/tabs.module.mjs +5 -5
  213. package/esm2022/tags/tag-input.mjs +4 -4
  214. package/esm2022/tags/tag-list.component.mjs +5 -5
  215. package/esm2022/tags/tag.component.mjs +13 -13
  216. package/esm2022/tags/tag.module.mjs +5 -5
  217. package/esm2022/textarea/textarea.component.mjs +4 -4
  218. package/esm2022/textarea/textarea.module.mjs +5 -5
  219. package/esm2022/timepicker/timepicker.directive.mjs +4 -4
  220. package/esm2022/timepicker/timepicker.module.mjs +5 -5
  221. package/esm2022/timezone/cities-by-filter.pipe.mjs +4 -4
  222. package/esm2022/timezone/timezone-option.component.mjs +4 -4
  223. package/esm2022/timezone/timezone-option.directive.mjs +4 -4
  224. package/esm2022/timezone/timezone-select.component.mjs +9 -9
  225. package/esm2022/timezone/timezone.module.mjs +5 -5
  226. package/esm2022/timezone/utc-offset.pipe.mjs +4 -4
  227. package/esm2022/title/title.directive.mjs +4 -4
  228. package/esm2022/title/title.module.mjs +5 -5
  229. package/esm2022/toast/toast-container.component.mjs +4 -4
  230. package/esm2022/toast/toast.component.mjs +7 -7
  231. package/esm2022/toast/toast.module.mjs +5 -5
  232. package/esm2022/toast/toast.service.mjs +4 -4
  233. package/esm2022/toggle/toggle.component.mjs +4 -4
  234. package/esm2022/toggle/toggle.module.mjs +5 -5
  235. package/esm2022/tooltip/tooltip.component.mjs +13 -13
  236. package/esm2022/tooltip/tooltip.module.mjs +5 -5
  237. package/esm2022/top-bar/module.mjs +5 -5
  238. package/esm2022/top-bar/top-bar.mjs +10 -10
  239. package/esm2022/tree/control/flat-tree-control.filters.mjs +10 -2
  240. package/esm2022/tree/node.mjs +4 -4
  241. package/esm2022/tree/outlet.mjs +4 -4
  242. package/esm2022/tree/padding.directive.mjs +4 -4
  243. package/esm2022/tree/toggle.mjs +10 -10
  244. package/esm2022/tree/tree-base.mjs +7 -7
  245. package/esm2022/tree/tree-option.component.mjs +11 -7
  246. package/esm2022/tree/tree-selection.component.mjs +6 -4
  247. package/esm2022/tree/tree.mjs +4 -4
  248. package/esm2022/tree/tree.module.mjs +5 -5
  249. package/esm2022/tree-select/tree-select.component.mjs +5 -5
  250. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  251. package/fesm2022/koobiq-components-accordion.mjs +21 -21
  252. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  253. package/fesm2022/koobiq-components-actions-panel.mjs +21 -21
  254. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  255. package/fesm2022/koobiq-components-alert.mjs +16 -16
  256. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  257. package/fesm2022/koobiq-components-autocomplete.mjs +13 -13
  258. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  259. package/fesm2022/koobiq-components-badge.mjs +13 -13
  260. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  261. package/fesm2022/koobiq-components-breadcrumbs.mjs +20 -20
  262. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  263. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  264. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  265. package/fesm2022/koobiq-components-button.mjs +13 -13
  266. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  267. package/fesm2022/koobiq-components-checkbox.mjs +11 -11
  268. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  269. package/fesm2022/koobiq-components-code-block.mjs +10 -10
  270. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  271. package/fesm2022/koobiq-components-core.mjs +410 -322
  272. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  273. package/fesm2022/koobiq-components-datepicker.mjs +36 -36
  274. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  275. package/fesm2022/koobiq-components-divider.mjs +7 -7
  276. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  277. package/fesm2022/koobiq-components-dl.mjs +13 -13
  278. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  279. package/fesm2022/koobiq-components-dropdown.mjs +21 -19
  280. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  281. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  282. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  283. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  284. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  285. package/fesm2022/koobiq-components-file-upload.mjs +15 -15
  286. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  287. package/fesm2022/koobiq-components-filter-bar.mjs +480 -107
  288. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  289. package/fesm2022/koobiq-components-form-field.mjs +44 -42
  290. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  291. package/fesm2022/koobiq-components-icon.mjs +13 -13
  292. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  293. package/fesm2022/koobiq-components-input.mjs +32 -31
  294. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  295. package/fesm2022/koobiq-components-link.mjs +7 -7
  296. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  297. package/fesm2022/koobiq-components-list.mjs +19 -19
  298. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  299. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  300. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  301. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  302. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  303. package/fesm2022/koobiq-components-modal.mjs +28 -28
  304. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  305. package/fesm2022/koobiq-components-navbar.mjs +43 -43
  306. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  307. package/fesm2022/koobiq-components-overflow-items.mjs +18 -18
  308. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  309. package/fesm2022/koobiq-components-popover.mjs +16 -16
  310. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  311. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  312. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  313. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  314. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  315. package/fesm2022/koobiq-components-radio.mjs +10 -10
  316. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  317. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  318. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  319. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  320. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  321. package/fesm2022/koobiq-components-select.mjs +12 -12
  322. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  323. package/fesm2022/koobiq-components-sidebar.mjs +21 -15
  324. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  325. package/fesm2022/koobiq-components-sidepanel.mjs +25 -25
  326. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  327. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  328. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  329. package/fesm2022/koobiq-components-table.mjs +10 -10
  330. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  331. package/fesm2022/koobiq-components-tabs.mjs +52 -52
  332. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  333. package/fesm2022/koobiq-components-tags.mjs +23 -23
  334. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  335. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  336. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  337. package/fesm2022/koobiq-components-timepicker.mjs +7 -7
  338. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  339. package/fesm2022/koobiq-components-timezone.mjs +24 -24
  340. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  341. package/fesm2022/koobiq-components-title.mjs +7 -7
  342. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  343. package/fesm2022/koobiq-components-toast.mjs +16 -16
  344. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  345. package/fesm2022/koobiq-components-toggle.mjs +7 -7
  346. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  347. package/fesm2022/koobiq-components-tooltip.mjs +16 -16
  348. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  349. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  350. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  351. package/fesm2022/koobiq-components-tree-select.mjs +8 -8
  352. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  353. package/fesm2022/koobiq-components-tree.mjs +54 -40
  354. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  355. package/file-upload/_file-upload-theme.scss +94 -17
  356. package/file-upload/file-upload-tokens.scss +5 -0
  357. package/file-upload/single-file-upload.component.scss +1 -0
  358. package/filter-bar/filter-bar.types.d.ts +28 -1
  359. package/filter-bar/filters.d.ts +3 -2
  360. package/filter-bar/filters.scss +4 -0
  361. package/filter-bar/pipes/base-pipe.scss +1 -0
  362. package/filter-bar/pipes/pipe-multi-select.d.ts +6 -1
  363. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +57 -0
  364. package/filter-bar/pipes/pipe-multi-tree-select.scss +19 -0
  365. package/filter-bar/pipes/pipe-tree-select.d.ts +41 -0
  366. package/filter-bar/pipes/pipe-tree-select.scss +9 -0
  367. package/filter-bar/public-api.d.ts +1 -0
  368. package/form-field/_form-field-theme.scss +12 -12
  369. package/form-field/form-field.scss +58 -61
  370. package/input/_input-theme.scss +6 -0
  371. package/input/input-number.d.ts +1 -0
  372. package/modal/modal.type.d.ts +1 -1
  373. package/overflow-items/overflow-items.d.ts +1 -1
  374. package/package.json +5 -5
  375. package/prebuilt-themes/dark-theme.css +1 -1
  376. package/prebuilt-themes/light-theme.css +1 -1
  377. package/prebuilt-themes/theme.css +1 -1
  378. package/schematics/ng-add/index.js +5 -5
  379. package/select/_select-theme.scss +1 -1
  380. package/select/select.scss +2 -0
  381. package/tags/_tag-theme.scss +5 -0
  382. package/tags/tag-tokens.scss +17 -0
  383. package/tree/control/flat-tree-control.filters.d.ts +1 -0
  384. package/tree/tree-option.component.d.ts +3 -1
  385. package/core/utils/data-size/config.d.ts +0 -38
  386. package/core/utils/data-size/data-size.pipe.d.ts +0 -14
  387. package/core/utils/data-size/size.d.ts +0 -15
  388. package/esm2022/core/utils/data-size/config.mjs +0 -10
  389. package/esm2022/core/utils/data-size/data-size.pipe.mjs +0 -45
  390. package/esm2022/core/utils/data-size/index.mjs +0 -4
  391. package/esm2022/core/utils/data-size/size.mjs +0 -43
@@ -156,8 +156,8 @@ export class KbqPipeDateComponent extends KbqBasePipe {
156
156
  end: new FormControl(this.end || this.defaultEnd)
157
157
  });
158
158
  }
159
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
160
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqPipeDateComponent, isStandalone: true, selector: "kbq-pipe-date", providers: [
159
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
160
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqPipeDateComponent, isStandalone: true, selector: "kbq-pipe-date", providers: [
161
161
  {
162
162
  provide: KBQ_VALIDATION,
163
163
  useValue: { useValidation: false }
@@ -166,9 +166,9 @@ export class KbqPipeDateComponent extends KbqBasePipe {
166
166
  provide: KbqBasePipe,
167
167
  useExisting: this
168
168
  }
169
- ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-white);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
169
+ ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
170
  }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
172
172
  type: Component,
173
173
  args: [{ standalone: true, selector: 'kbq-pipe-date', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
174
174
  {
@@ -196,9 +196,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
196
196
  KbqTitleModule,
197
197
  KbqPipeTitleDirective,
198
198
  FormsModule
199
- ], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-white);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"] }]
199
+ ], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"] }]
200
200
  }], propDecorators: { popover: [{
201
201
  type: ViewChild,
202
202
  args: ['popover']
203
203
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQ0gsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFF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ZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHZpZXdDaGlsZCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLQlFfVkFMSURBVElPTixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAgS2JxRm9ybWF0dGVyc01vZHVsZSxcbiAgICBQb3BVcFBsYWNlbWVudHNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kYXRlcGlja2VyJztcbmltcG9ydCB7IEticURpdmlkZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGl2aWRlcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxSW5wdXRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgS2JxTGlzdE1vZHVsZSwgS2JxTGlzdFNlbGVjdGlvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEticVBvcG92ZXJNb2R1bGUsIEticVBvcG92ZXJUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgS2JxVGltZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aW1lcGlja2VyJztcbmltcG9ydCB7IEticVRpdGxlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpdGxlJztcbmltcG9ydCB7IEticURhdGVUaW1lVmFsdWUgfSBmcm9tICcuLi9maWx0ZXItYmFyLnR5cGVzJztcbmltcG9ydCB7IEticUJhc2VQaXBlIH0gZnJvbSAnLi9iYXNlLXBpcGUnO1xuaW1wb3J0IHsgS2JxUGlwZUJ1dHRvbiB9IGZyb20gJy4vcGlwZS1idXR0b24nO1xuaW1wb3J0IHsgS2JxUGlwZVN0YXRlIH0gZnJvbSAnLi9waXBlLXN0YXRlJztcbmltcG9ydCB7IEticVBpcGVUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcGlwZS10aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtcGlwZS1kYXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BpcGUtZGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYmFzZS1waXBlLnNjc3MnLCAncGlwZS1kYXRlLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLQlFfVkFMSURBVElPTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7IHVzZVZhbGlkYXRpb246IGZhbHNlIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxTGlzdE1vZHVsZSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZURhdGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGFwdGVyID0gaW5qZWN0KERhdGVBZGFwdGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdHRlciA9IGluamVjdChEYXRlRm9ybWF0dGVyKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlbWVudHMgPSBQb3BVcFBsYWNlbWVudHM7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbG9ycyA9IEticUNvbXBvbmVudENvbG9ycztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHN0YXRlIGlzIGxpc3Qgb2YgcGVyaW9kcy4gV2hlbiBmYWxzZSB3aWxsIGRpc3BsYXllZCBjb250cm9sIGZvciBzZXQgY3VzdG9tIHBlcmlvZCAqL1xuICAgIHByb3RlY3RlZCBpc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd1N0YXJ0Q2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBzaG93RW5kQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBmb3JtYXR0ZWQgdmFsdWUgZm9yIHBlcmlvZCAqL1xuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zdGFydCAmJiB0aGlzLmVuZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlU2hvcnREYXRlKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU/Lm5hbWUgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGlwZSBpcyBkaXNhYmxlZC4gKi9cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnZhbHVlKSB8fFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUpIHx8XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBzdGFydCAqL1xuICAgIGdldCBzdGFydCgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wYXJzZSh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0LCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBzdGFydCAqL1xuICAgIGdldCBkZWZhdWx0U3RhcnQoKTogRCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCkucGx1cyh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICB9XG5cbiAgICAvKiogcGFyc2VkIGVuZCAqL1xuICAgIGdldCBlbmQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5lbmQsICcnKTtcbiAgICB9XG5cbiAgICAvKiogZGVmYXVsdCBvYmplY3QgZm9yIGVuZCAqL1xuICAgIGdldCBkZWZhdWx0RW5kKCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXMoeyBkYXlzOiAxIH0pO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZW1wdHkuICovXG4gICAgb3ZlcnJpZGUgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/Lm5hbWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLnN0YXJ0KSB8fCAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGxpc3RTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2xpc3RTZWxlY3Rpb24nLCB7IHJlYWQ6IEticUxpc3RTZWxlY3Rpb24gfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZXR1cm5CdXR0b24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ3JldHVybkJ1dHRvbicsIHsgcmVhZDogS2JxQnV0dG9uIH0pO1xuXG4gICAgLyoqIGtleWRvd24gaGFuZGxlclxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFwcGx5UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB7XG4gICAgICAgICAgICBzdGFydDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUudG9JU08oKSxcbiAgICAgICAgICAgIGVuZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlLnRvSVNPKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoaXRlbTogS2JxRGF0ZVRpbWVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBzaG93UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Hcm91cCgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5CdXR0b24oKS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TGlzdCgpIHtcbiAgICAgICAgdGhpcy5pc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubGlzdFNlbGVjdGlvbigpLmZvY3VzKCkpO1xuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIG9wZW5zIHBvcG92ZXIgKi9cbiAgICBvdmVycmlkZSBvcGVuKCkge1xuICAgICAgICB0aGlzLnBvcG92ZXIuc2hvdygpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0U3RhcnREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdEVuZERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzU3RhcnRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNFbmRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUNhbGVuZGFycygpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGFydCB8fCB0aGlzLmRlZmF1bHRTdGFydCksXG4gICAgICAgICAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVuZCB8fCB0aGlzLmRlZmF1bHRFbmQpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAjcG9wb3Zlcj1cImticVBvcG92ZXJcIlxuICAgIGticS1idXR0b25cbiAgICBrYnFQb3BvdmVyXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgW2ticVBpcGVUaXRsZV09XCJwaXBlVG9vbHRpcFwiXG4gICAgW2ticVBvcG92ZXJBcnJvd109XCJmYWxzZVwiXG4gICAgW2ticVBvcG92ZXJDbGFzc109XCIna2JxLXBpcGUtZGF0ZV9fcG9wb3ZlcidcIlxuICAgIFtrYnFQb3BvdmVyQ29udGVudF09XCJjb250ZW50XCJcbiAgICBba2JxUG9wb3Zlck9mZnNldF09XCI0XCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudF09XCJwbGFjZW1lbnRzLkJvdHRvbUxlZnRcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50UHJpb3JpdHldPVwiW3BsYWNlbWVudHMuQm90dG9tTGVmdCwgcGxhY2VtZW50cy5Ub3BMZWZ0XVwiXG4gICAgKGticVBvcG92ZXJWaXNpYmxlQ2hhbmdlKT1cImlzTGlzdE1vZGUgPSB0cnVlXCJcbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX25hbWVcIj57eyBkYXRhLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX192YWx1ZVwiIFtjbGFzcy5rYnEtcGlwZV9fdmFsdWVfZW1wdHldPVwiIWZvcm1hdHRlZFZhbHVlXCI+XG4gICAgICAgIHt7IGZvcm1hdHRlZFZhbHVlIH19XG4gICAgPC9zcGFuPlxuPC9idXR0b24+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIEBpZiAoaXNMaXN0TW9kZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtbGlzdFwiPlxuICAgICAgICAgICAgPGticS1saXN0LXNlbGVjdGlvbiAjbGlzdFNlbGVjdGlvbiBbYXV0b1NlbGVjdF09XCJmYWxzZVwiIFtuZ01vZGVsXT1cImRhdGEudmFsdWU/Lm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIChjbGljayk9XCJzaG93UGVyaW9kKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGVyaW9kKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZT8uY3VzdG9tUGVyaW9kIH19XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2JxIGticS1pY29uIGticS1jaGV2cm9uLXJpZ2h0XzE2IGticS1jb250cmFzdC1mYWRlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB2YWx1ZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1saXN0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCIgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCIgKGtleWRvd24uZW50ZXIpPVwib25TZWxlY3QoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ticS1saXN0LXNlbGVjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2Qga2JxLWRhdGVwaWNrZXJfX2NvbnRlbnRcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAjcmV0dXJuQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9ycy5UaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCJzdHlsZXMuVHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0xpc3QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGV2cm9uLWxlZnRfMTZcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuYmFja1RvUGVyaW9kU2VsZWN0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGticS1kaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19jb250ZW50IGticS1mb3JtLWhvcml6b250YWxcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQtaGVhZGVyXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2QgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEZyb20gfX08L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlIGticS1mb3JtX19jb250cm9sXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93RW5kQ2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cImVuZERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzRW5kSW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIEBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1oaW50IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oaW50XCIgW2NvbG9yXT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRXJyb3JIaW50IH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWhpbnQ+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjZW5kRGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93RW5kQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RFbmREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlQZXJpb2QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsb2NhbGVEYXRhLnBpcGUuYXBwbHlCdXR0b24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1idXR0b25faG90LWtleVwiPnt7IGlzTWFjID8gJ+KMmCcgOiAnQ3RybCsnIH19RW50ZXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQ0gsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFF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ZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHZpZXdDaGlsZCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLQlFfVkFMSURBVElPTixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAgS2JxRm9ybWF0dGVyc01vZHVsZSxcbiAgICBQb3BVcFBsYWNlbWVudHNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kYXRlcGlja2VyJztcbmltcG9ydCB7IEticURpdmlkZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGl2aWRlcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxSW5wdXRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgS2JxTGlzdE1vZHVsZSwgS2JxTGlzdFNlbGVjdGlvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEticVBvcG92ZXJNb2R1bGUsIEticVBvcG92ZXJUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgS2JxVGltZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aW1lcGlja2VyJztcbmltcG9ydCB7IEticVRpdGxlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpdGxlJztcbmltcG9ydCB7IEticURhdGVUaW1lVmFsdWUgfSBmcm9tICcuLi9maWx0ZXItYmFyLnR5cGVzJztcbmltcG9ydCB7IEticUJhc2VQaXBlIH0gZnJvbSAnLi9iYXNlLXBpcGUnO1xuaW1wb3J0IHsgS2JxUGlwZUJ1dHRvbiB9IGZyb20gJy4vcGlwZS1idXR0b24nO1xuaW1wb3J0IHsgS2JxUGlwZVN0YXRlIH0gZnJvbSAnLi9waXBlLXN0YXRlJztcbmltcG9ydCB7IEticVBpcGVUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcGlwZS10aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtcGlwZS1kYXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BpcGUtZGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYmFzZS1waXBlLnNjc3MnLCAncGlwZS1kYXRlLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLQlFfVkFMSURBVElPTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7IHVzZVZhbGlkYXRpb246IGZhbHNlIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxTGlzdE1vZHVsZSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZURhdGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGFwdGVyID0gaW5qZWN0KERhdGVBZGFwdGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdHRlciA9IGluamVjdChEYXRlRm9ybWF0dGVyKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlbWVudHMgPSBQb3BVcFBsYWNlbWVudHM7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbG9ycyA9IEticUNvbXBvbmVudENvbG9ycztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHN0YXRlIGlzIGxpc3Qgb2YgcGVyaW9kcy4gV2hlbiBmYWxzZSB3aWxsIGRpc3BsYXllZCBjb250cm9sIGZvciBzZXQgY3VzdG9tIHBlcmlvZCAqL1xuICAgIHByb3RlY3RlZCBpc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd1N0YXJ0Q2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBzaG93RW5kQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBmb3JtYXR0ZWQgdmFsdWUgZm9yIHBlcmlvZCAqL1xuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zdGFydCAmJiB0aGlzLmVuZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlU2hvcnREYXRlKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU/Lm5hbWUgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGlwZSBpcyBkaXNhYmxlZC4gKi9cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnZhbHVlKSB8fFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUpIHx8XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBzdGFydCAqL1xuICAgIGdldCBzdGFydCgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wYXJzZSh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0LCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBzdGFydCAqL1xuICAgIGdldCBkZWZhdWx0U3RhcnQoKTogRCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCkucGx1cyh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICB9XG5cbiAgICAvKiogcGFyc2VkIGVuZCAqL1xuICAgIGdldCBlbmQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5lbmQsICcnKTtcbiAgICB9XG5cbiAgICAvKiogZGVmYXVsdCBvYmplY3QgZm9yIGVuZCAqL1xuICAgIGdldCBkZWZhdWx0RW5kKCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXMoeyBkYXlzOiAxIH0pO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZW1wdHkuICovXG4gICAgb3ZlcnJpZGUgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/Lm5hbWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLnN0YXJ0KSB8fCAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGxpc3RTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2xpc3RTZWxlY3Rpb24nLCB7IHJlYWQ6IEticUxpc3RTZWxlY3Rpb24gfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZXR1cm5CdXR0b24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ3JldHVybkJ1dHRvbicsIHsgcmVhZDogS2JxQnV0dG9uIH0pO1xuXG4gICAgLyoqIGtleWRvd24gaGFuZGxlclxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFwcGx5UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB7XG4gICAgICAgICAgICBzdGFydDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUudG9JU08oKSxcbiAgICAgICAgICAgIGVuZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlLnRvSVNPKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoaXRlbTogS2JxRGF0ZVRpbWVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBzaG93UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Hcm91cCgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5CdXR0b24oKS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TGlzdCgpIHtcbiAgICAgICAgdGhpcy5pc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubGlzdFNlbGVjdGlvbigpLmZvY3VzKCkpO1xuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIG9wZW5zIHBvcG92ZXIgKi9cbiAgICBvdmVycmlkZSBvcGVuKCkge1xuICAgICAgICB0aGlzLnBvcG92ZXIuc2hvdygpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0U3RhcnREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdEVuZERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzU3RhcnRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNFbmRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUNhbGVuZGFycygpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGFydCB8fCB0aGlzLmRlZmF1bHRTdGFydCksXG4gICAgICAgICAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVuZCB8fCB0aGlzLmRlZmF1bHRFbmQpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAjcG9wb3Zlcj1cImticVBvcG92ZXJcIlxuICAgIGticS1idXR0b25cbiAgICBrYnFQb3BvdmVyXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgW2ticVBpcGVUaXRsZV09XCJwaXBlVG9vbHRpcFwiXG4gICAgW2ticVBvcG92ZXJBcnJvd109XCJmYWxzZVwiXG4gICAgW2ticVBvcG92ZXJDbGFzc109XCIna2JxLXBpcGUtZGF0ZV9fcG9wb3ZlcidcIlxuICAgIFtrYnFQb3BvdmVyQ29udGVudF09XCJjb250ZW50XCJcbiAgICBba2JxUG9wb3Zlck9mZnNldF09XCI0XCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudF09XCJwbGFjZW1lbnRzLkJvdHRvbUxlZnRcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50UHJpb3JpdHldPVwiW3BsYWNlbWVudHMuQm90dG9tTGVmdCwgcGxhY2VtZW50cy5Ub3BMZWZ0XVwiXG4gICAgKGticVBvcG92ZXJWaXNpYmxlQ2hhbmdlKT1cImlzTGlzdE1vZGUgPSB0cnVlXCJcbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX25hbWVcIj57eyBkYXRhLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX192YWx1ZVwiIFtjbGFzcy5rYnEtcGlwZV9fdmFsdWVfZW1wdHldPVwiIWZvcm1hdHRlZFZhbHVlXCI+XG4gICAgICAgIHt7IGZvcm1hdHRlZFZhbHVlIH19XG4gICAgPC9zcGFuPlxuPC9idXR0b24+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIEBpZiAoaXNMaXN0TW9kZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtbGlzdFwiPlxuICAgICAgICAgICAgPGticS1saXN0LXNlbGVjdGlvbiAjbGlzdFNlbGVjdGlvbiBbYXV0b1NlbGVjdF09XCJmYWxzZVwiIFtuZ01vZGVsXT1cImRhdGEudmFsdWU/Lm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIChjbGljayk9XCJzaG93UGVyaW9kKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGVyaW9kKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZT8uY3VzdG9tUGVyaW9kIH19XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2JxIGticS1pY29uIGticS1jaGV2cm9uLXJpZ2h0XzE2IGticS1jb250cmFzdC1mYWRlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB2YWx1ZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1saXN0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCIgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCIgKGtleWRvd24uZW50ZXIpPVwib25TZWxlY3QoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ticS1saXN0LXNlbGVjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2Qga2JxLWRhdGVwaWNrZXJfX2NvbnRlbnRcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAjcmV0dXJuQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9ycy5UaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCJzdHlsZXMuVHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0xpc3QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGV2cm9uLWxlZnRfMTZcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuYmFja1RvUGVyaW9kU2VsZWN0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGticS1kaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19jb250ZW50IGticS1mb3JtLWhvcml6b250YWxcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQtaGVhZGVyXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2QgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEZyb20gfX08L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlIGticS1mb3JtX19jb250cm9sXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93RW5kQ2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cImVuZERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzRW5kSW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIEBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1oaW50IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oaW50XCIgW2NvbG9yXT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRXJyb3JIaW50IH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWhpbnQ+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjZW5kRGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93RW5kQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RFbmREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlQZXJpb2QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsb2NhbGVEYXRhLnBpcGUuYXBwbHlCdXR0b24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1idXR0b25faG90LWtleVwiPnt7IGlzTWFjID8gJ+KMmCcgOiAnQ3RybCsnIH19RW50ZXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==