ngx-tethys 18.0.0-next.0 → 18.0.0-next.2

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 (404) hide show
  1. package/CHANGELOG.md +161 -1
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/breadcrumb/breadcrumb.component.d.ts +30 -2
  10. package/breadcrumb/module.d.ts +3 -1
  11. package/breadcrumb/styles/breadcrumb.scss +8 -0
  12. package/button/button-icon.component.d.ts +2 -2
  13. package/button/button.component.d.ts +2 -2
  14. package/button/styles/button.scss +5 -5
  15. package/card/card.component.d.ts +3 -3
  16. package/card/content.component.d.ts +1 -1
  17. package/carousel/carousel.component.d.ts +4 -4
  18. package/cascader/cascader-li.component.d.ts +5 -5
  19. package/cascader/cascader-search-option.component.d.ts +3 -3
  20. package/cascader/cascader.component.d.ts +8 -8
  21. package/checkbox/checkbox.component.d.ts +1 -1
  22. package/collapse/collapse-item.component.d.ts +2 -2
  23. package/collapse/collapse.component.d.ts +1 -1
  24. package/color-picker/color-picker-panel.component.d.ts +1 -1
  25. package/color-picker/color-picker.component.d.ts +3 -3
  26. package/copy/copy.directive.d.ts +1 -1
  27. package/core/behaviors/decorators.d.ts +1 -1
  28. package/core/overlay/abstract-overlay.config.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +15 -8
  30. package/date-picker/abstract-picker.directive.d.ts +3 -3
  31. package/date-picker/base-picker.component.d.ts +2 -2
  32. package/date-picker/date-picker.config.d.ts +1 -0
  33. package/date-picker/date-picker.service.d.ts +1 -0
  34. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  35. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  36. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  37. package/date-picker/picker.component.d.ts +1 -1
  38. package/date-picker/picker.util.d.ts +2 -0
  39. package/date-range/date-range.component.d.ts +8 -2
  40. package/dialog/body/dialog-body.component.d.ts +1 -1
  41. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  42. package/dialog/header/dialog-header.component.d.ts +1 -1
  43. package/divider/divider.component.d.ts +2 -2
  44. package/drag-drop/drag-handle.directive.d.ts +1 -1
  45. package/drag-drop/drag.directive.d.ts +1 -1
  46. package/drag-drop/drop-container.directive.d.ts +1 -1
  47. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  48. package/dropdown/dropdown-menu.component.d.ts +1 -1
  49. package/dropdown/dropdown.directive.d.ts +1 -1
  50. package/empty/empty.component.d.ts +1 -1
  51. package/esm2022/action/action.component.mjs +7 -6
  52. package/esm2022/alert/alert.component.mjs +5 -5
  53. package/esm2022/anchor/anchor.component.mjs +5 -5
  54. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  55. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  56. package/esm2022/avatar/avatar.component.mjs +8 -8
  57. package/esm2022/badge/badge.component.mjs +7 -6
  58. package/esm2022/breadcrumb/breadcrumb.component.mjs +73 -32
  59. package/esm2022/breadcrumb/module.mjs +6 -4
  60. package/esm2022/button/button-icon.component.mjs +6 -5
  61. package/esm2022/button/button.component.mjs +6 -6
  62. package/esm2022/card/card.component.mjs +7 -6
  63. package/esm2022/card/content.component.mjs +5 -4
  64. package/esm2022/carousel/carousel.component.mjs +8 -7
  65. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  66. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  67. package/esm2022/cascader/cascader.component.mjs +19 -12
  68. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  69. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  70. package/esm2022/collapse/collapse.component.mjs +5 -4
  71. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  72. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  73. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +1 -1
  74. package/esm2022/copy/copy.directive.mjs +5 -4
  75. package/esm2022/core/behaviors/decorators.mjs +2 -2
  76. package/esm2022/core/overlay/abstract-overlay.config.mjs +7 -1
  77. package/esm2022/date-picker/abstract-picker.component.mjs +28 -17
  78. package/esm2022/date-picker/abstract-picker.directive.mjs +8 -7
  79. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  80. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  81. package/esm2022/date-picker/date-picker.config.mjs +2 -1
  82. package/esm2022/date-picker/date-picker.service.mjs +4 -1
  83. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  84. package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
  85. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
  86. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  87. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +7 -4
  88. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  89. package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
  90. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  91. package/esm2022/date-picker/picker.component.mjs +5 -5
  92. package/esm2022/date-picker/picker.util.mjs +14 -2
  93. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  94. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  95. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  96. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  97. package/esm2022/date-range/date-range.component.mjs +6 -5
  98. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  99. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  100. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  101. package/esm2022/divider/divider.component.mjs +6 -5
  102. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  103. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  104. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  105. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  106. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  107. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  108. package/esm2022/empty/empty.component.mjs +5 -4
  109. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  110. package/esm2022/form/form-group-label.directive.mjs +5 -4
  111. package/esm2022/form/form-group.component.mjs +7 -6
  112. package/esm2022/icon/icon.component.mjs +6 -5
  113. package/esm2022/image/image.class.mjs +1 -1
  114. package/esm2022/image/image.directive.mjs +6 -5
  115. package/esm2022/image/index.mjs +6 -5
  116. package/esm2022/image/preview/image-preview.component.mjs +21 -13
  117. package/esm2022/input/input-search.component.mjs +5 -4
  118. package/esm2022/input/input.component.mjs +6 -5
  119. package/esm2022/input-number/input-number.component.mjs +14 -7
  120. package/esm2022/layout/header.component.mjs +7 -6
  121. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  122. package/esm2022/layout/sidebar.component.mjs +12 -11
  123. package/esm2022/list/list.component.mjs +5 -4
  124. package/esm2022/list/selection/selection-list.mjs +7 -7
  125. package/esm2022/loading/loading.component.mjs +6 -5
  126. package/esm2022/mention/mention.directive.mjs +3 -3
  127. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  128. package/esm2022/menu/item/action/menu-item-action.component.mjs +17 -7
  129. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  130. package/esm2022/menu/menu.component.mjs +5 -4
  131. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  132. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  133. package/esm2022/nav/nav-item.directive.mjs +7 -6
  134. package/esm2022/nav/nav.component.mjs +18 -7
  135. package/esm2022/pagination/pagination.class.mjs +1 -1
  136. package/esm2022/pagination/pagination.component.mjs +22 -10
  137. package/esm2022/pagination/pagination.config.mjs +3 -2
  138. package/esm2022/popover/popover.directive.mjs +6 -5
  139. package/esm2022/popover/popover.service.mjs +2 -1
  140. package/esm2022/property/property-item.component.mjs +6 -5
  141. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  142. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  143. package/esm2022/rate/rate-item.component.mjs +5 -4
  144. package/esm2022/rate/rate.component.mjs +7 -7
  145. package/esm2022/resizable/resizable.directive.mjs +7 -6
  146. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  147. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  148. package/esm2022/segment/segment-item.component.mjs +5 -5
  149. package/esm2022/segment/segment.component.mjs +5 -4
  150. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  151. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  152. package/esm2022/shared/base-form-check.component.mjs +6 -5
  153. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  154. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  155. package/esm2022/shared/directives/thy-show.mjs +5 -4
  156. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  157. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  158. package/esm2022/shared/option/option.component.mjs +5 -5
  159. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  160. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  161. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  162. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  163. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  164. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  165. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  166. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  167. package/esm2022/slider/slider.component.mjs +6 -6
  168. package/esm2022/space/space.component.mjs +5 -4
  169. package/esm2022/stepper/step-header.component.mjs +6 -5
  170. package/esm2022/stepper/stepper.component.mjs +5 -4
  171. package/esm2022/switch/switch.component.mjs +6 -5
  172. package/esm2022/table/table-column.component.mjs +9 -9
  173. package/esm2022/table/table-skeleton.component.mjs +8 -7
  174. package/esm2022/table/table.component.mjs +19 -17
  175. package/esm2022/tabs/tab.component.mjs +5 -4
  176. package/esm2022/tabs/tabs.component.mjs +6 -6
  177. package/esm2022/tag/tag.component.mjs +5 -5
  178. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  179. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  180. package/esm2022/timeline/timeline.component.mjs +5 -4
  181. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  182. package/esm2022/tree/tree-node.component.mjs +9 -8
  183. package/esm2022/tree/tree.component.mjs +32 -11
  184. package/esm2022/tree/tree.service.mjs +3 -3
  185. package/esm2022/tree-select/tree-select.component.mjs +20 -18
  186. package/esm2022/upload/file-select.component.mjs +24 -27
  187. package/esm2022/version.mjs +2 -2
  188. package/esm2022/vote/vote.component.mjs +7 -6
  189. package/esm2022/watermark/watermark.directive.mjs +5 -4
  190. package/fesm2022/ngx-tethys-action.mjs +6 -5
  191. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  193. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  195. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  197. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  199. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  201. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-breadcrumb.mjs +117 -77
  203. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-button.mjs +8 -8
  205. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-card.mjs +8 -7
  207. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  209. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-cascader.mjs +28 -21
  211. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  213. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  215. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-color-picker.mjs +9 -8
  217. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  219. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-core.mjs +7 -1
  221. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-date-picker.mjs +86 -57
  223. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  225. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  227. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  229. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  231. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  233. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  235. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-form.mjs +10 -10
  237. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  239. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-image.mjs +24 -16
  241. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-input-number.mjs +13 -6
  243. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-input.mjs +7 -6
  245. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  247. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-list.mjs +8 -8
  249. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  251. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  253. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-menu.mjs +26 -16
  255. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-nav.mjs +26 -16
  257. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-pagination.mjs +23 -10
  259. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-popover.mjs +6 -5
  261. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  263. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-property.mjs +5 -4
  265. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  267. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  269. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  271. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  273. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-select.mjs +15 -15
  275. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  277. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  279. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  281. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  283. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-space.mjs +4 -3
  285. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  287. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  289. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-table.mjs +29 -27
  291. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  293. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  295. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  297. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  299. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  300. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  301. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  302. package/fesm2022/ngx-tethys-tree-select.mjs +14 -11
  303. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  304. package/fesm2022/ngx-tethys-tree.mjs +39 -18
  305. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  306. package/fesm2022/ngx-tethys-upload.mjs +23 -27
  307. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  308. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  309. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  310. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  311. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  312. package/fesm2022/ngx-tethys.mjs +1 -1
  313. package/fesm2022/ngx-tethys.mjs.map +1 -1
  314. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  315. package/form/form-group-label.directive.d.ts +1 -1
  316. package/form/form-group.component.d.ts +3 -3
  317. package/icon/icon.component.d.ts +2 -2
  318. package/image/image.class.d.ts +1 -1
  319. package/image/image.directive.d.ts +2 -2
  320. package/image/index.d.ts +5 -4
  321. package/image/preview/image-preview.component.d.ts +5 -5
  322. package/input/input-search.component.d.ts +1 -1
  323. package/input/input.component.d.ts +2 -2
  324. package/input/styles/input-group.scss +3 -0
  325. package/input-number/input-number.component.d.ts +10 -3
  326. package/layout/header.component.d.ts +3 -3
  327. package/layout/sidebar-header.component.d.ts +1 -1
  328. package/layout/sidebar.component.d.ts +7 -7
  329. package/list/list.component.d.ts +1 -1
  330. package/list/selection/selection-list.d.ts +3 -3
  331. package/loading/loading.component.d.ts +2 -2
  332. package/menu/group/menu-group.component.d.ts +6 -6
  333. package/menu/item/action/menu-item-action.component.d.ts +8 -3
  334. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  335. package/menu/menu.component.d.ts +1 -1
  336. package/menu/styles/menu.scss +8 -0
  337. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  338. package/nav/nav-ink-bar.directive.d.ts +2 -2
  339. package/nav/nav-item.directive.d.ts +3 -3
  340. package/nav/nav.component.d.ts +7 -5
  341. package/package.json +2 -2
  342. package/pagination/pagination.class.d.ts +4 -0
  343. package/pagination/pagination.component.d.ts +11 -6
  344. package/popover/popover.directive.d.ts +2 -2
  345. package/property/property-item.component.d.ts +4 -1
  346. package/property/styles/properties.scss +2 -0
  347. package/property-operation/property-operation.component.d.ts +5 -5
  348. package/radio/group/radio-group.component.d.ts +1 -1
  349. package/rate/rate-item.component.d.ts +1 -1
  350. package/rate/rate.component.d.ts +3 -3
  351. package/resizable/resizable.directive.d.ts +3 -3
  352. package/resizable/resize-handle.component.d.ts +1 -1
  353. package/resizable/resize-handles.component.d.ts +1 -1
  354. package/schematics/ng-update/update-18/complete.js +0 -10
  355. package/schematics/ng-update/update-18/index.spec.js +0 -73
  356. package/schematics/ng-update/update-18/update-data.js +4 -860
  357. package/schematics/version.d.ts +1 -1
  358. package/schematics/version.js +1 -1
  359. package/segment/segment-item.component.d.ts +1 -1
  360. package/segment/segment.component.d.ts +5 -1
  361. package/select/custom-select/custom-select.component.d.ts +10 -10
  362. package/select/native-select/native-select.component.d.ts +1 -1
  363. package/shared/base-form-check.component.d.ts +2 -2
  364. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  365. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  366. package/shared/directives/thy-show.d.ts +1 -1
  367. package/shared/option/group/option-group.component.d.ts +1 -1
  368. package/shared/option/list-option/list-option.component.d.ts +1 -1
  369. package/shared/option/option.component.d.ts +1 -1
  370. package/shared/option/styles/select-dropdown.scss +1 -0
  371. package/shared/select/select-control/select-control.component.d.ts +6 -6
  372. package/skeleton/skeleton-circle.component.d.ts +1 -1
  373. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  374. package/skeleton/skeleton.component.d.ts +1 -1
  375. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  376. package/skeleton/stylized/list.component.d.ts +1 -1
  377. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  378. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  379. package/slider/slider.component.d.ts +2 -2
  380. package/slider/slider.scss +12 -20
  381. package/space/space.component.d.ts +1 -1
  382. package/stepper/step-header.component.d.ts +2 -2
  383. package/stepper/stepper.component.d.ts +1 -1
  384. package/styles/modules/tables.scss +20 -0
  385. package/styles/variables.scss +2 -2
  386. package/switch/switch.component.d.ts +2 -2
  387. package/table/styles/skeleton.scss +5 -0
  388. package/table/table-column.component.d.ts +5 -5
  389. package/table/table-skeleton.component.d.ts +2 -2
  390. package/table/table.component.d.ts +13 -11
  391. package/tabs/tab.component.d.ts +1 -1
  392. package/tabs/tabs.component.d.ts +2 -2
  393. package/tag/tag.component.d.ts +1 -1
  394. package/time-picker/time-picker-panel.component.d.ts +2 -2
  395. package/time-picker/time-picker.component.d.ts +5 -5
  396. package/timeline/timeline.component.d.ts +1 -1
  397. package/tooltip/tooltip.directive.d.ts +10 -2
  398. package/tree/tree-node.component.d.ts +20 -5
  399. package/tree/tree.component.d.ts +17 -7
  400. package/tree/tree.service.d.ts +1 -1
  401. package/tree-select/tree-select.component.d.ts +7 -7
  402. package/upload/file-select.component.d.ts +7 -8
  403. package/vote/vote.component.d.ts +3 -3
  404. package/watermark/watermark.directive.d.ts +1 -1
@@ -3,8 +3,8 @@ import { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';
3
3
  import { ThyIcon } from 'ngx-tethys/icon';
4
4
  import { ThyInputDirective } from 'ngx-tethys/input';
5
5
  import { ThyAutofocusDirective } from 'ngx-tethys/shared';
6
- import { DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
7
- import { booleanAttribute, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, numberAttribute, Output, ViewChild } from '@angular/core';
6
+ import { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
7
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, numberAttribute, Output, ViewChild } from '@angular/core';
8
8
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/forms";
@@ -75,6 +75,10 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
75
75
  * 焦点激活事件
76
76
  */
77
77
  this.thyFocus = new EventEmitter();
78
+ /**
79
+ * 上下箭头点击事件
80
+ */
81
+ this.thyStepChange = new EventEmitter();
78
82
  this.innerMax = Infinity;
79
83
  this.innerMin = -Infinity;
80
84
  }
@@ -191,6 +195,7 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
191
195
  val = this.getCurrentValidValue(val);
192
196
  this.updateValidValue(val);
193
197
  this.onChangeFn(this.validValue);
198
+ this.thyStepChange.emit({ value: this.validValue, type });
194
199
  this.displayValue = this.formatterValue(val);
195
200
  if (outOfRange) {
196
201
  return;
@@ -265,7 +270,7 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
265
270
  }
266
271
  getCurrentValidValue(value) {
267
272
  let val = value;
268
- if (value === '' || value === undefined) {
273
+ if (value === '' || isUndefinedOrNull(value)) {
269
274
  return '';
270
275
  }
271
276
  val = parseFloat(value);
@@ -300,7 +305,7 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
300
305
  this.hostFocusControl.destroy();
301
306
  }
302
307
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyInputNumber, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: ["thyAutoFocus", "thyAutoFocus", booleanAttribute], thyPlaceholder: "thyPlaceholder", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyMax: "thyMax", thyMin: "thyMin", thyStep: ["thyStep", "thyStep", numberAttribute], thyStepDelay: ["thyStepDelay", "thyStepDelay", numberAttribute], thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
308
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: ["thyAutoFocus", "thyAutoFocus", coerceBooleanProperty], thyPlaceholder: "thyPlaceholder", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyMax: "thyMax", thyMin: "thyMin", thyStep: ["thyStep", "thyStep", numberAttribute], thyStepDelay: ["thyStepDelay", "thyStepDelay", numberAttribute], thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
304
309
  {
305
310
  provide: NG_VALUE_ACCESSOR,
306
311
  useExisting: forwardRef(() => ThyInputNumber),
@@ -325,12 +330,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
325
330
  args: ['input', { static: true }]
326
331
  }], thyAutoFocus: [{
327
332
  type: Input,
328
- args: [{ transform: booleanAttribute }]
333
+ args: [{ transform: coerceBooleanProperty }]
329
334
  }], thyPlaceholder: [{
330
335
  type: Input
331
336
  }], thyDisabled: [{
332
337
  type: Input,
333
- args: [{ transform: booleanAttribute }]
338
+ args: [{ transform: coerceBooleanProperty }]
334
339
  }], thyMax: [{
335
340
  type: Input
336
341
  }], thyMin: [{
@@ -351,5 +356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
351
356
  type: Output
352
357
  }], thyFocus: [{
353
358
  type: Output
359
+ }], thyStepChange: [{
360
+ type: Output
354
361
  }] } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEcsT0FBTyxFQUNILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdEYsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ0wsMkJBQUUsQ0FBQTtJQUNGLCtCQUFJLENBQUE7QUFDUixDQUFDLEVBSEksSUFBSSxLQUFKLElBQUksUUFHUjtBQUVEOzs7O0dBSUc7QUFrQkgsTUFBTSxPQUFPLGNBQ1QsU0FBUSx5Q0FBeUM7SUFvQ2pEOzs7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LEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJJbmRleERpc2FibGVkQ29udHJvbFZhbHVlQWNjZXNzb3JNaXhpbiwgdXNlSG9zdEZvY3VzQ29udHJvbCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlNYXhEaXJlY3RpdmUsIFRoeU1pbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvZm9ybSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTlRFUiwgaXNGbG9hdCwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkT3JOdWxsLCBVUF9BUlJPVyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG50eXBlIElucHV0U2l6ZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAnJztcblxuZW51bSBUeXBlIHtcbiAgICB1cCxcbiAgICBkb3duXG59XG5cbi8qKlxuICog5pWw5a2X6L6T5YWl5qGGXG4gKiBAbmFtZSB0aHktaW5wdXQtbnVtYmVyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaHlJbnB1dE51bWJlciksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uLCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgVGh5TWluRGlyZWN0aXZlLCBUaHlNYXhEaXJlY3RpdmVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktaW5wdXQtbnVtYmVyJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRoeUlucHV0TnVtYmVyXG4gICAgZXh0ZW5kcyBUYWJJbmRleERpc2FibGVkQ29udHJvbFZhbHVlQWNjZXNzb3JNaXhpblxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxhbnk+O1xuXG4gICAgcHJpdmF0ZSBhdXRvU3RlcFRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIGhvc3RGb2N1c0NvbnRyb2wgPSB1c2VIb3N0Rm9jdXNDb250cm9sKCk7XG5cbiAgICB2YWxpZFZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBkaXNwbGF5VmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc2FibGVkVXAgPSBmYWxzZTtcblxuICAgIGRpc2FibGVkRG93biA9IGZhbHNlO1xuXG4gICAgYWN0aXZlVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo6IGa54SmXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5QXV0b0ZvY3VzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG55qEcGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WAvFxuICAgICAqIEBkZWZhdWx0IEluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1heCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNYXggPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHZhbCA+PSB0aGlzLmlubmVyTWF4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeU1heCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJNYXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pyA5bCP5YC8XG4gICAgICogQGRlZmF1bHQgLUluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNaW4gPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWREb3duID0gdmFsIDw9IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1pbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmr4/mrKHmlLnlj5jmraXmlbDvvIzlj6/ku6XkuLrlsI/mlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlTdGVwID0gMTtcblxuICAgIC8qKlxuICAgICAqIOaUueWPmOatpeaVsOaXtueahOW7tui/n+avq+enkuaVsO+8jOWAvOi2iuWwj+WPmOWMlueahOmAn+W6pui2iuW/q1xuICAgICAqIEBkZWZhdWx0IDMwMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXBEZWxheSA9IDMwMDtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogSW5wdXRTaXplO1xuXG4gICAgLyoqXG4gICAgICog5pWw5YC857K+5bqmXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UHJlY2lzaW9uOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLzlkI7nvIBcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTdWZmaXg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOeEpueCueWkseWOu+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOeEpueCuea/gOa0u+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGlubmVyTWF4OiBudW1iZXIgPSBJbmZpbml0eTtcblxuICAgIHByaXZhdGUgaW5uZXJNaW46IG51bWJlciA9IC1JbmZpbml0eTtcblxuICAgIHByaXZhdGUgaXNGb2N1c2VkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeURpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmZvY3VzQ2hhbmdlZCA9IChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5Qmx1ci5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGh5U3VmZml4ICYmICFjaGFuZ2VzLnRoeVN1ZmZpeC5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsaWRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0aGlzLmRpc2FibGVkRG93biA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsID49IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWwgPD0gdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkRG93biA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gcGFyc2VWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBwYXJzZVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHBhcnNlVmFsdWUpO1xuICAgICAgICBpZiAoYCR7dGhpcy52YWxpZFZhbHVlfWAgIT09IGAke3ZhbGlkVmFsdWV9YCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMucGFyc2VyKHRoaXMuZGlzcGxheVZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRoeUZvY3VzLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMudXAoZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMuZG93bihlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1N0ZXBUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1N0ZXBUaW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnRvTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICB9XG5cbiAgICBzdGVwKHR5cGU6IFR5cGUsIGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBpZiAodHlwZSA9PT0gVHlwZS51cCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy51cFN0ZXAodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFR5cGUuZG93bikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy5kb3duU3RlcCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHZhbCA+IHRoaXMudGh5TWF4IHx8IHZhbCA8IHRoaXMudGh5TWluO1xuICAgICAgICB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWwpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChvdXRPZlJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU3RlcFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAodGhpc1tUeXBlW3R5cGVdXSBhcyAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpKGUpO1xuICAgICAgICB9LCB0aGlzLnRoeVN0ZXBEZWxheSk7XG4gICAgfVxuXG4gICAgdXBTdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSArIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBkb3duU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLmFicyh0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlIC0gcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGdldE1heFByZWNpc2lvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGVwUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odGhpcy50aHlTdGVwKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRWYWx1ZVByZWNpc2lvbiwgc3RlcFByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uRmFjdG9yKGFjdGl2ZVZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbihhY3RpdmVWYWx1ZSk7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb24odmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gMC4wMDAwMDAwMDA0LnRvU3RyaW5nKCkgPSA0ZTEwICA9PiAxMFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWVTdHJpbmcuc2xpY2UodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSArIDIpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWNpc2lvbiA9IDA7XG4gICAgICAgIC8vIDEuMjIyMiA9PiAgNFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignLicpID49IDApIHtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHZhbHVlU3RyaW5nLmxlbmd0aCAtIHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICB1cChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLnVwLCBlKTtcbiAgICB9XG5cbiAgICBkb3duKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUuZG93biwgZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIoYCR7dmFsdWV9YCk7XG4gICAgICAgIGlmIChwYXJzZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlTdWZmaXggPyBgJHtwYXJzZVZhbHVlfSAke3RoaXMudGh5U3VmZml4fWAgOiBwYXJzZVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgv44CCL2csICcuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLi1dKy9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMudGh5U3VmZml4LCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFsID0gcGFyc2VGbG9hdCh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKHZhbCkpIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudmFsaWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHZhbCBhcyBudW1iZXIpIDwgdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudGh5TWluO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodmFsIGFzIG51bWJlcikgPiB0aGlzLnRoeU1heCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNYXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcih2YWwpO1xuICAgIH1cblxuICAgIGlzTm90VmFsaWQobnVtOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKG51bSBhcyBudW1iZXIpIHx8IG51bSA9PT0gJycgfHwgbnVtID09PSBudWxsIHx8ICEhKG51bSAmJiBudW0udG9TdHJpbmcoKS5pbmRleE9mKCcuJykgPT09IG51bS50b1N0cmluZygpLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIHRvTnVtYmVyKG51bTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZChudW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtIGFzIG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1TdHIgPSBTdHJpbmcobnVtKTtcbiAgICAgICAgaWYgKG51bVN0ci5pbmRleE9mKCcuJykgPj0gMCAmJiAhaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKE51bWJlcihudW0pLnRvRml4ZWQodGhpcy50aHlQcmVjaXNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyKG51bSk7XG4gICAgfVxuXG4gICAgaXNJbnB1dE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpc0Zsb2F0KHZhbHVlKSB8fCAvXlstK0VlXSR8XihbLSsuXT9bMC05XSkqKChbLl18Wy5lRV0pP1tlRV0/WystXT8pPyR8XiQvLnRlc3QodmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlci13cmFwXCIgW2NsYXNzLmlucHV0LW51bWJlci1kaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiPlxuICA8c3BhblxuICAgIHVuc2VsZWN0YWJsZT1cInVuc2VsZWN0YWJsZVwiXG4gICAgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlciBpbnB1dC1udW1iZXItaGFuZGxlci11cFwiXG4gICAgKG1vdXNlZG93bik9XCJ1cCgkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkVXBcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS11cFwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICB1bnNlbGVjdGFibGU9XCJ1bnNlbGVjdGFibGVcIlxuICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXIgaW5wdXQtbnVtYmVyLWhhbmRsZXItZG93blwiXG4gICAgKG1vdXNlZG93bik9XCJkb3duKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cInN0b3AoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcCgpXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWREb3duXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtZG93blwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuPGlucHV0XG4gIHRoeUlucHV0XG4gICNpbnB1dFxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICBjbGFzcz1cImlucHV0LW51bWJlci1pbnB1dCBmb3JtLWNvbnRyb2xcIlxuICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgW3RoeUF1dG9mb2N1c109XCJ0aHlBdXRvRm9jdXNcIlxuICBbZGlzYWJsZWRdPVwidGh5RGlzYWJsZWRcIlxuICBbYXR0ci5taW5dPVwidGh5TWluXCJcbiAgW2F0dHIubWF4XT1cInRoeU1heFwiXG4gIFtwbGFjZWhvbGRlcl09XCJ0aHlQbGFjZWhvbGRlclwiXG4gIFthdHRyLnN0ZXBdPVwidGh5U3RlcFwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKGtleXVwKT1cInN0b3AoKVwiXG4gIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgdGFiaW5kZXg9XCItMVwiIC8+XG4iXX0=
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0gsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUl0RixJQUFLLElBR0o7QUFIRCxXQUFLLElBQUk7SUFDTCwyQkFBRSxDQUFBO0lBQ0YsK0JBQUksQ0FBQTtBQUNSLENBQUMsRUFISSxJQUFJLEtBQUosSUFBSSxRQUdSO0FBRUQ7Ozs7R0FJRztBQWtCSCxNQUFNLE9BQU8sY0FDVCxTQUFRLHlDQUF5QztJQW9DakQ7OztP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QWVpQyxPQUFPO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNRSxZQUFZO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNNUIsT0FBTztzQkFBZixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluLCB1c2VIb3N0Rm9jdXNDb250cm9sIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeU1heERpcmVjdGl2ZSwgVGh5TWluRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgRE9XTl9BUlJPVywgRU5URVIsIGlzRmxvYXQsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZE9yTnVsbCwgVVBfQVJST1cgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbnR5cGUgSW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG5lbnVtIFR5cGUge1xuICAgIHVwLFxuICAgIGRvd25cbn1cblxuLyoqXG4gKiDmlbDlrZfovpPlhaXmoYZcbiAqIEBuYW1lIHRoeS1pbnB1dC1udW1iZXJcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeUlucHV0TnVtYmVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb24sIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBUaHlNaW5EaXJlY3RpdmUsIFRoeU1heERpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXROdW1iZXJcbiAgICBleHRlbmRzIFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBwcml2YXRlIGF1dG9TdGVwVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgaG9zdEZvY3VzQ29udHJvbCA9IHVzZUhvc3RGb2N1c0NvbnRyb2woKTtcblxuICAgIHZhbGlkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzYWJsZWRVcCA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWREb3duID0gZmFsc2U7XG5cbiAgICBhY3RpdmVWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKboh6rliqjogZrnhKZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUF1dG9Gb2N1czogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhueahHBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WAvFxuICAgICAqIEBkZWZhdWx0IEluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1heCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNYXggPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHZhbCA+PSB0aGlzLmlubmVyTWF4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeU1heCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJNYXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pyA5bCP5YC8XG4gICAgICogQGRlZmF1bHQgLUluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNaW4gPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWREb3duID0gdmFsIDw9IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1pbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmr4/mrKHmlLnlj5jmraXmlbDvvIzlj6/ku6XkuLrlsI/mlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlTdGVwID0gMTtcblxuICAgIC8qKlxuICAgICAqIOaUueWPmOatpeaVsOaXtueahOW7tui/n+avq+enkuaVsO+8jOWAvOi2iuWwj+WPmOWMlueahOmAn+W6pui2iuW/q1xuICAgICAqIEBkZWZhdWx0IDMwMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXBEZWxheSA9IDMwMDtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogSW5wdXRTaXplO1xuXG4gICAgLyoqXG4gICAgICog5pWw5YC857K+5bqmXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UHJlY2lzaW9uOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLzlkI7nvIBcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTdWZmaXg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOeEpueCueWkseWOu+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOeEpueCuea/gOa0u+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDkuIrkuIvnrq3lpLTngrnlh7vkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5U3RlcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyOyB0eXBlOiBUeXBlIH0+KCk7XG5cbiAgICBwcml2YXRlIGlubmVyTWF4OiBudW1iZXIgPSBJbmZpbml0eTtcblxuICAgIHByaXZhdGUgaW5uZXJNaW46IG51bWJlciA9IC1JbmZpbml0eTtcblxuICAgIHByaXZhdGUgaXNGb2N1c2VkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeURpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmZvY3VzQ2hhbmdlZCA9IChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5Qmx1ci5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGh5U3VmZml4ICYmICFjaGFuZ2VzLnRoeVN1ZmZpeC5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsaWRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0aGlzLmRpc2FibGVkRG93biA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsID49IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWwgPD0gdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkRG93biA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gcGFyc2VWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBwYXJzZVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHBhcnNlVmFsdWUpO1xuICAgICAgICBpZiAoYCR7dGhpcy52YWxpZFZhbHVlfWAgIT09IGAke3ZhbGlkVmFsdWV9YCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMucGFyc2VyKHRoaXMuZGlzcGxheVZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRoeUZvY3VzLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMudXAoZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMuZG93bihlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1N0ZXBUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1N0ZXBUaW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnRvTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICB9XG5cbiAgICBzdGVwKHR5cGU6IFR5cGUsIGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBpZiAodHlwZSA9PT0gVHlwZS51cCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy51cFN0ZXAodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFR5cGUuZG93bikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy5kb3duU3RlcCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHZhbCA+IHRoaXMudGh5TWF4IHx8IHZhbCA8IHRoaXMudGh5TWluO1xuICAgICAgICB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWwpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgdGhpcy50aHlTdGVwQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWxpZFZhbHVlIGFzIG51bWJlciwgdHlwZSB9KTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChvdXRPZlJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU3RlcFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAodGhpc1tUeXBlW3R5cGVdXSBhcyAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpKGUpO1xuICAgICAgICB9LCB0aGlzLnRoeVN0ZXBEZWxheSk7XG4gICAgfVxuXG4gICAgdXBTdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSArIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBkb3duU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLmFicyh0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlIC0gcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGdldE1heFByZWNpc2lvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGVwUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odGhpcy50aHlTdGVwKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRWYWx1ZVByZWNpc2lvbiwgc3RlcFByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uRmFjdG9yKGFjdGl2ZVZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbihhY3RpdmVWYWx1ZSk7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb24odmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gMC4wMDAwMDAwMDA0LnRvU3RyaW5nKCkgPSA0ZTEwICA9PiAxMFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWVTdHJpbmcuc2xpY2UodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSArIDIpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWNpc2lvbiA9IDA7XG4gICAgICAgIC8vIDEuMjIyMiA9PiAgNFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignLicpID49IDApIHtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHZhbHVlU3RyaW5nLmxlbmd0aCAtIHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICB1cChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLnVwLCBlKTtcbiAgICB9XG5cbiAgICBkb3duKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUuZG93biwgZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIoYCR7dmFsdWV9YCk7XG4gICAgICAgIGlmIChwYXJzZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlTdWZmaXggPyBgJHtwYXJzZVZhbHVlfSAke3RoaXMudGh5U3VmZml4fWAgOiBwYXJzZVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgv44CCL2csICcuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLi1dKy9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMudGh5U3VmZml4LCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCBpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICB2YWwgPSBwYXJzZUZsb2F0KHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsKSkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy52YWxpZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodmFsIGFzIG51bWJlcikgPCB0aGlzLnRoeU1pbikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh2YWwgYXMgbnVtYmVyKSA+IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnRoeU1heDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHZhbCk7XG4gICAgfVxuXG4gICAgaXNOb3RWYWxpZChudW06IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYU4obnVtIGFzIG51bWJlcikgfHwgbnVtID09PSAnJyB8fCBudW0gPT09IG51bGwgfHwgISEobnVtICYmIG51bS50b1N0cmluZygpLmluZGV4T2YoJy4nKSA9PT0gbnVtLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgdG9OdW1iZXIobnVtOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKG51bSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudW0gYXMgbnVtYmVyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG51bVN0ciA9IFN0cmluZyhudW0pO1xuICAgICAgICBpZiAobnVtU3RyLmluZGV4T2YoJy4nKSA+PSAwICYmICFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoTnVtYmVyKG51bSkudG9GaXhlZCh0aGlzLnRoeVByZWNpc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOdW1iZXIobnVtKTtcbiAgICB9XG5cbiAgICBpc0lucHV0TnVtYmVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGlzRmxvYXQodmFsdWUpIHx8IC9eWy0rRWVdJHxeKFstKy5dP1swLTldKSooKFsuXXxbLmVFXSk/W2VFXT9bKy1dPyk/JHxeJC8udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuaG9zdEZvY3VzQ29udHJvbC5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyLXdyYXBcIiBbY2xhc3MuaW5wdXQtbnVtYmVyLWRpc2FibGVkXT1cInRoeURpc2FibGVkXCI+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLXVwXCJcbiAgICAobW91c2Vkb3duKT1cInVwKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cInN0b3AoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcCgpXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRVcFwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLXVwXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgIHVuc2VsZWN0YWJsZT1cInVuc2VsZWN0YWJsZVwiXG4gICAgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlciBpbnB1dC1udW1iZXItaGFuZGxlci1kb3duXCJcbiAgICAobW91c2Vkb3duKT1cImRvd24oJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwic3RvcCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wKClcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZERvd25cIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3duXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48aW5wdXRcbiAgdGh5SW5wdXRcbiAgI2lucHV0XG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWlucHV0IGZvcm0tY29udHJvbFwiXG4gIFt0aHlTaXplXT1cInRoeVNpemVcIlxuICBbdGh5QXV0b2ZvY3VzXT1cInRoeUF1dG9Gb2N1c1wiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFthdHRyLm1pbl09XCJ0aHlNaW5cIlxuICBbYXR0ci5tYXhdPVwidGh5TWF4XCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgW2F0dHIuc3RlcF09XCJ0aHlTdGVwXCJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAoa2V5dXApPVwic3RvcCgpXCJcbiAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICB0YWJpbmRleD1cIi0xXCIgLz5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef, booleanAttribute } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef } from '@angular/core';
3
3
  import { ThyIcon } from 'ngx-tethys/icon';
4
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * 头部布局指令
@@ -35,7 +36,7 @@ export class ThyHeaderDirective {
35
36
  this.divided = value;
36
37
  }
37
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyHeaderDirective, isStandalone: true, selector: "[thyHeader]", inputs: { thySize: "thySize", thyShadow: ["thyShadow", "thyShadow", booleanAttribute], thyDivided: ["thyDivided", "thyDivided", booleanAttribute], thyHasBorder: ["thyHasBorder", "thyHasBorder", booleanAttribute] }, host: { properties: { "class.thy-layout-header-sm": "thySize === 'sm'", "class.thy-layout-header-lg": "thySize === 'lg'", "class.thy-layout-header-xlg": "thySize === 'xlg'", "class.thy-layout-header-shadow": "thyShadow", "class.thy-layout-header-divided": "divided" }, classAttribute: "thy-layout-header" }, ngImport: i0 }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyHeaderDirective, isStandalone: true, selector: "[thyHeader]", inputs: { thySize: "thySize", thyShadow: ["thyShadow", "thyShadow", coerceBooleanProperty], thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty], thyHasBorder: ["thyHasBorder", "thyHasBorder", coerceBooleanProperty] }, host: { properties: { "class.thy-layout-header-sm": "thySize === 'sm'", "class.thy-layout-header-lg": "thySize === 'lg'", "class.thy-layout-header-xlg": "thySize === 'xlg'", "class.thy-layout-header-shadow": "thyShadow", "class.thy-layout-header-divided": "divided" }, classAttribute: "thy-layout-header" }, ngImport: i0 }); }
39
40
  }
40
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyHeaderDirective, decorators: [{
41
42
  type: Directive,
@@ -56,13 +57,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
56
57
  args: ['thySize']
57
58
  }], thyShadow: [{
58
59
  type: Input,
59
- args: [{ transform: booleanAttribute }]
60
+ args: [{ transform: coerceBooleanProperty }]
60
61
  }], thyDivided: [{
61
62
  type: Input,
62
- args: [{ transform: booleanAttribute }]
63
+ args: [{ transform: coerceBooleanProperty }]
63
64
  }], thyHasBorder: [{
64
65
  type: Input,
65
- args: [{ transform: booleanAttribute }]
66
+ args: [{ transform: coerceBooleanProperty }]
66
67
  }] } });
67
68
  /**
68
69
  * 头部布局组件
@@ -121,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
121
122
  type: ContentChild,
122
123
  args: ['headerOperation']
123
124
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXlvdXQvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9sYXlvdXQvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7OztHQUlHO0FBYUgsTUFBTSxPQUFPLGtCQUFrQjtJQVovQjtRQWFJOzs7V0FHRztRQUNlLFlBQU8sR0FBK0IsSUFBSSxDQUFDO1FBRTdEOzs7V0FHRztRQUNxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTFELFlBQU8sR0FBRyxLQUFLLENBQUM7S0FrQm5CO0lBaEJHOztPQUVHO0lBQ0gsSUFDSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDOzhHQTlCUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtSEFXUCxnQkFBZ0IsNENBT2hCLGdCQUFnQixrREFTaEIsZ0JBQWdCOzsyRkEzQjNCLGtCQUFrQjtrQkFaOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxtQkFBbUI7d0JBQzFCLDhCQUE4QixFQUFFLGtCQUFrQjt3QkFDbEQsOEJBQThCLEVBQUUsa0JBQWtCO3dCQUNsRCwrQkFBK0IsRUFBRSxtQkFBbUI7d0JBQ3BELGtDQUFrQyxFQUFFLFdBQVc7d0JBQy9DLG1DQUFtQyxFQUFFLFNBQVM7cUJBQ2pEO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFNcUIsT0FBTztzQkFBeEIsS0FBSzt1QkFBQyxTQUFTO2dCQU13QixTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVFsQyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVWxDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7QUFNMUM7Ozs7R0FJRztBQWVILE1BQU0sT0FBTyxTQUFTO0lBZHRCO1FBd0JJOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7S0F1Q2xDO0lBckNHOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RELENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzs4R0E5QlEsU0FBUztrR0FBVCxTQUFTLCtkQXBEVCxrQkFBa0IsbUpDckIvQix1dEJBZ0JBLDRDRHVEYyxnQkFBZ0Isb0pBQUUsSUFBSSw2RkFBRSxPQUFPLHNNQUFFLE9BQU87OzJGQUV6QyxTQUFTO2tCQWRyQixTQUFTOytCQUNJLFlBQVksdUJBQ0QsS0FBSyxtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQjt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsa0JBQWtCOzRCQUM3QixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7eUJBQ2pFO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUM7OEJBVTlELFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFNRixPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUztnQkFtQlQsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLGFBQWE7Z0JBUXBCLGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyxlQUFlO2dCQVF0QixvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcblxuLyoqXG4gKiDlpLTpg6jluIPlsYDmjIfku6RcbiAqIEBuYW1lIHRoeUhlYWRlclxuICogQG9yZGVyIDEwXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeUhlYWRlcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6IGB0aHktbGF5b3V0LWhlYWRlcmAsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1oZWFkZXItc21dJzogYHRoeVNpemUgPT09ICdzbSdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtaGVhZGVyLWxnXSc6IGB0aHlTaXplID09PSAnbGcnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LWhlYWRlci14bGddJzogYHRoeVNpemUgPT09ICd4bGcnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LWhlYWRlci1zaGFkb3ddJzogYHRoeVNoYWRvd2AsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1oZWFkZXItZGl2aWRlZF0nOiBgZGl2aWRlZGBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5SGVhZGVyRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiDlpLTpg6jlpKflsI9cbiAgICAgKiBAdHlwZSBzbSB8IG1kICB8IGxnIHwgeGxnXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTaXplJykgdGh5U2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsZycgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog5bqV6YOo5piv5ZCm5pyJ6Zi05b2xXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5U2hhZG93ID0gZmFsc2U7XG5cbiAgICBkaXZpZGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDlupXpg6jmmK/lkKbmnInliIblibLnur9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5RGl2aWRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlupXpg6jmmK/lkKbmnInliIblibLnur/vvIzlt7Llup/lvIPvvIzor7fkvb/nlKggdGh5RGl2aWRlZFxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgdGh5RGl2aWRlZFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlIYXNCb3JkZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXZpZGVkID0gdmFsdWU7XG4gICAgfVxufVxuXG4vKipcbiAqIOWktOmDqOW4g+WxgOe7hOS7tlxuICogQG5hbWUgdGh5LWhlYWRlclxuICogQG9yZGVyIDExXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWhlYWRlcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBUaHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5U2l6ZScsICd0aHlTaGFkb3cnLCAndGh5SGFzQm9yZGVyJywgJ3RoeURpdmlkZWQnXVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBUaHlJY29uLCBOZ0NsYXNzLCBUaHlIZWFkZXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUhlYWRlciB7XG4gICAgcHVibGljIGljb25DbGFzczogc3RyaW5nO1xuXG4gICAgcHVibGljIHN2Z0ljb25OYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlpLTpg6jmoIfpophcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+5qCH5YmN57yA77yM6KKr5byD55So77yM5Zu+5qCH5L2/55SoIFNWRyDlm77moIdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlJY29uUHJlZml4ID0gJ3d0Zic7XG5cbiAgICAvKipcbiAgICAgKiDlm77moIfvvIxTVkcg5Zu+5qCH5ZCN56ewXG4gICAgICovXG4gICAgQElucHV0KCd0aHlJY29uJylcbiAgICBzZXQgdGh5SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKCd3dGYnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaWNvbkNsYXNzID0gYCR7dGhpcy50aHlJY29uUHJlZml4fSAke3ZhbHVlfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNsYXNzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5aS06YOo6Ieq5a6a5LmJ5qCH6aKY5qih5p2/77yMYDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGl0bGU+PC9uZy10ZW1wbGF0ZT5gXG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXJUaXRsZScpXG4gICAgcHVibGljIHRpdGxlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDlpLTpg6joh6rlrprkuYnlhoXlrrnmqKHmnb/vvIxgPG5nLXRlbXBsYXRlICNoZWFkZXJDb250ZW50PjwvbmctdGVtcGxhdGU+YFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyQ29udGVudCcpXG4gICAgcHVibGljIGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieaTjeS9nOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlck9wZXJhdGlvbj48L25nLXRlbXBsYXRlPmBcbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlck9wZXJhdGlvbicpXG4gICAgcHVibGljIG9wZXJhdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1oZWFkZXItdGl0bGVcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRpdGxlVGVtcGxhdGVSZWZcIj5cbiAgICA8dGh5LWljb24gKm5nSWY9XCJzdmdJY29uTmFtZTsgZWxzZSBpY29uRm9udFwiIGNsYXNzPVwicHJlZml4LWljb25cIiBbdGh5SWNvbk5hbWVdPVwic3ZnSWNvbk5hbWVcIj48L3RoeS1pY29uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkZvbnQ+XG4gICAgICA8aSAqbmdJZj1cImljb25DbGFzc1wiIGNsYXNzPVwicHJlZml4LWljb25cIiBbbmdDbGFzc109XCJpY29uQ2xhc3NcIj48L2k+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cInRpdGxlLW5hbWVcIj57eyB0aHlUaXRsZSB9fTwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJsYXlvdXQtaGVhZGVyLWNvbnRlbnRcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJsYXlvdXQtaGVhZGVyLW9wZXJhdGlvblwiPlxuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3BlcmF0aW9uVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sYXlvdXQvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9sYXlvdXQvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RDs7OztHQUlHO0FBYUgsTUFBTSxPQUFPLGtCQUFrQjtJQVovQjtRQWFJOzs7V0FHRztRQUNlLFlBQU8sR0FBK0IsSUFBSSxDQUFDO1FBRTdEOzs7V0FHRztRQUMwQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRS9ELFlBQU8sR0FBRyxLQUFLLENBQUM7S0FrQm5CO0lBaEJHOztPQUVHO0lBQ0gsSUFDSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDOzhHQTlCUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtSEFXUCxxQkFBcUIsNENBT3JCLHFCQUFxQixrREFTckIscUJBQXFCOzsyRkEzQmhDLGtCQUFrQjtrQkFaOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxtQkFBbUI7d0JBQzFCLDhCQUE4QixFQUFFLGtCQUFrQjt3QkFDbEQsOEJBQThCLEVBQUUsa0JBQWtCO3dCQUNsRCwrQkFBK0IsRUFBRSxtQkFBbUI7d0JBQ3BELGtDQUFrQyxFQUFFLFdBQVc7d0JBQy9DLG1DQUFtQyxFQUFFLFNBQVM7cUJBQ2pEO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFNcUIsT0FBTztzQkFBeEIsS0FBSzt1QkFBQyxTQUFTO2dCQU02QixTQUFTO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVF2QyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBVXZDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTs7QUFNL0M7Ozs7R0FJRztBQWVILE1BQU0sT0FBTyxTQUFTO0lBZHRCO1FBd0JJOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7S0F1Q2xDO0lBckNHOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RELENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzs4R0E5QlEsU0FBUztrR0FBVCxTQUFTLCtkQXBEVCxrQkFBa0IsbUpDdEIvQix1dEJBZ0JBLDRDRHdEYyxnQkFBZ0Isb0pBQUUsSUFBSSw2RkFBRSxPQUFPLHNNQUFFLE9BQU87OzJGQUV6QyxTQUFTO2tCQWRyQixTQUFTOytCQUNJLFlBQVksdUJBQ0QsS0FBSyxtQkFFVCx1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQjt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsa0JBQWtCOzRCQUM3QixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7eUJBQ2pFO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUM7OEJBVTlELFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFNRixPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUztnQkFtQlQsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLGFBQWE7Z0JBUXBCLGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyxlQUFlO2dCQVF0QixvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog5aS06YOo5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlIZWFkZXJcbiAqIEBvcmRlciAxMFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlIZWFkZXJdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiBgdGh5LWxheW91dC1oZWFkZXJgLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtaGVhZGVyLXNtXSc6IGB0aHlTaXplID09PSAnc20nYCxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LWhlYWRlci1sZ10nOiBgdGh5U2l6ZSA9PT0gJ2xnJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1oZWFkZXIteGxnXSc6IGB0aHlTaXplID09PSAneGxnJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1oZWFkZXItc2hhZG93XSc6IGB0aHlTaGFkb3dgLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtaGVhZGVyLWRpdmlkZWRdJzogYGRpdmlkZWRgXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUhlYWRlckRpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICog5aS06YOo5aSn5bCPXG4gICAgICogQHR5cGUgc20gfCBtZCAgfCBsZyB8IHhsZ1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5U2l6ZScpIHRoeVNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bGcnID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIOW6lemDqOaYr+WQpuaciemYtOW9sVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5U2hhZG93ID0gZmFsc2U7XG5cbiAgICBkaXZpZGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDlupXpg6jmmK/lkKbmnInliIblibLnur9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlEaXZpZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW6lemDqOaYr+WQpuacieWIhuWJsue6v++8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiDlpLTpg6jluIPlsYDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1oZWFkZXJcbiAqIEBvcmRlciAxMVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1oZWFkZXInLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVGh5SGVhZGVyRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ3RoeVNpemUnLCAndGh5U2hhZG93JywgJ3RoeUhhc0JvcmRlcicsICd0aHlEaXZpZGVkJ11cbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgVGh5SWNvbiwgTmdDbGFzcywgVGh5SGVhZGVyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlIZWFkZXIge1xuICAgIHB1YmxpYyBpY29uQ2xhc3M6IHN0cmluZztcblxuICAgIHB1YmxpYyBzdmdJY29uTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5aS06YOo5qCH6aKYXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWbvuagh+WJjee8gO+8jOiiq+W8g+eUqO+8jOWbvuagh+S9v+eUqCBTVkcg5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SWNvblByZWZpeCA9ICd3dGYnO1xuXG4gICAgLyoqXG4gICAgICog5Zu+5qCH77yMU1ZHIOWbvuagh+WQjeensFxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5SWNvbicpXG4gICAgc2V0IHRoeUljb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25DbGFzcyA9IGAke3RoaXMudGh5SWNvblByZWZpeH0gJHt2YWx1ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmljb25DbGFzcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieagh+mimOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlclRpdGxlPjwvbmctdGVtcGxhdGU+YFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGl0bGUnKVxuICAgIHB1YmxpYyB0aXRsZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog5aS06YOo6Ieq5a6a5LmJ5YaF5a655qih5p2/77yMYDxuZy10ZW1wbGF0ZSAjaGVhZGVyQ29udGVudD48L25nLXRlbXBsYXRlPmBcbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlckNvbnRlbnQnKVxuICAgIHB1YmxpYyBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDlpLTpg6joh6rlrprkuYnmk43kvZzmqKHmnb/vvIxgPG5nLXRlbXBsYXRlICNoZWFkZXJPcGVyYXRpb24+PC9uZy10ZW1wbGF0ZT5gXG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXJPcGVyYXRpb24nKVxuICAgIHB1YmxpYyBvcGVyYXRpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtaGVhZGVyLXRpdGxlXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aXRsZVRlbXBsYXRlUmVmXCI+XG4gICAgPHRoeS1pY29uICpuZ0lmPVwic3ZnSWNvbk5hbWU7IGVsc2UgaWNvbkZvbnRcIiBjbGFzcz1cInByZWZpeC1pY29uXCIgW3RoeUljb25OYW1lXT1cInN2Z0ljb25OYW1lXCI+PC90aHktaWNvbj5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25Gb250PlxuICAgICAgPGkgKm5nSWY9XCJpY29uQ2xhc3NcIiBjbGFzcz1cInByZWZpeC1pY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCI+PC9pPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1uYW1lXCI+e3sgdGh5VGl0bGUgfX08L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibGF5b3V0LWhlYWRlci1jb250ZW50XCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibGF5b3V0LWhlYWRlci1vcGVyYXRpb25cIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wZXJhdGlvblRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,5 +1,6 @@
1
1
  import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef, booleanAttribute } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef } from '@angular/core';
3
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
5
6
  * 侧边栏头部布局指令
@@ -8,7 +9,7 @@ import * as i0 from "@angular/core";
8
9
  */
9
10
  export class ThySidebarHeaderDirective {
10
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThySidebarHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebarHeaderDirective, isStandalone: true, selector: "[thySidebarHeader]", inputs: { thyDivided: ["thyDivided", "thyDivided", booleanAttribute] }, host: { properties: { "class.sidebar-header-divided": "thyDivided" }, classAttribute: "sidebar-header" }, ngImport: i0 }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebarHeaderDirective, isStandalone: true, selector: "[thySidebarHeader]", inputs: { thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty] }, host: { properties: { "class.sidebar-header-divided": "thyDivided" }, classAttribute: "sidebar-header" }, ngImport: i0 }); }
12
13
  }
13
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThySidebarHeaderDirective, decorators: [{
14
15
  type: Directive,
@@ -22,7 +23,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
22
23
  }]
23
24
  }], propDecorators: { thyDivided: [{
24
25
  type: Input,
25
- args: [{ transform: booleanAttribute }]
26
+ args: [{ transform: coerceBooleanProperty }]
26
27
  }] } });
27
28
  /**
28
29
  * 侧边栏头部布局组件
@@ -50,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
50
51
  type: ContentChild,
51
52
  args: ['headerTitle']
52
53
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xheW91dC9zaWRlYmFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFbEk7Ozs7R0FJRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCLHlHQUtkLGdCQUFnQjs7MkZBTDNCLHlCQUF5QjtrQkFSckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsZ0NBQWdDLEVBQUUsWUFBWTtxQkFDakQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQU0yQyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztBQUcxQzs7OztHQUlHO0FBY0gsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNlVBMUJoQix5QkFBeUIsbUVDaEJ0Qyw2WUFVQSw0Q0Q4QmMsZ0JBQWdCLG9KQUFFLElBQUk7OzJGQUV2QixnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSx5QkFBeUI7NEJBQ3BDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQzt5QkFDekI7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7OEJBT2pDLFFBQVE7c0JBRFAsS0FBSztnQkFRQyxvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMsaUJBQWlCO2dCQVF4QixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIOS+p+i+ueagj+WktOmDqOW4g+WxgOaMh+S7pFxuICogQG5hbWUgdGh5U2lkZWJhckhlYWRlclxuICogQG9yZGVyIDI1XG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeVNpZGViYXJIZWFkZXJdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnc2lkZWJhci1oZWFkZXInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItaGVhZGVyLWRpdmlkZWRdJzogJ3RoeURpdmlkZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNpZGViYXJIZWFkZXJEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIOaYr+WQpuacieWIhuWJsue6v1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpdmlkZWQ6IGJvb2xlYW4gfCBzdHJpbmc7XG59XG5cbi8qKlxuICog5L6n6L655qCP5aS06YOo5biD5bGA57uE5Lu2XG4gKiBAbmFtZSB0aHktc2lkZWJhci1oZWFkZXJcbiAqIEBvcmRlciAyNlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zaWRlYmFyLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3NpZGViYXItaGVhZGVyLmNvbXBvbmVudC5odG1sYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5RGl2aWRlZCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWZdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNpZGViYXJIZWFkZXIge1xuICAgIC8qKlxuICAgICAqIOWktOmDqOagh+mimFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieaTjeS9nOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlck9wZXJhdGlvbj48L25nLXRlbXBsYXRlPmBcbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlck9wZXJhdGlvbicpXG4gICAgcHVibGljIG9wZXJhdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieagh+mimOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlclRpdGxlPjwvbmctdGVtcGxhdGU+YFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGl0bGUnKVxuICAgIHB1YmxpYyB0aXRsZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuIiwiPHNwYW4gY2xhc3M9XCJ0aXRsZVwiICpuZ0lmPVwidGh5VGl0bGUgfHwgdGl0bGVUZW1wbGF0ZVJlZlwiPlxuICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0aXRsZVRlbXBsYXRlUmVmOyBlbHNlIGRlZmF1bHRUaXRsZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUaXRsZT5cbiAgICB7eyB0aHlUaXRsZSB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9zcGFuPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cIm9wZXJhdGlvblwiPlxuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3BlcmF0aW9uVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xheW91dC9zaWRlYmFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQ7Ozs7R0FJRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCLHlHQUtkLHFCQUFxQjs7MkZBTGhDLHlCQUF5QjtrQkFSckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsZ0NBQWdDLEVBQUUsWUFBWTtxQkFDakQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQU1nRCxVQUFVO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFOztBQUcvQzs7OztHQUlHO0FBY0gsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNlVBMUJoQix5QkFBeUIsbUVDakJ0Qyw2WUFVQSw0Q0QrQmMsZ0JBQWdCLG9KQUFFLElBQUk7OzJGQUV2QixnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSx5QkFBeUI7NEJBQ3BDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQzt5QkFDekI7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7OEJBT2pDLFFBQVE7c0JBRFAsS0FBSztnQkFRQyxvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMsaUJBQWlCO2dCQVF4QixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDkvqfovrnmoI/lpLTpg6jluIPlsYDmjIfku6RcbiAqIEBuYW1lIHRoeVNpZGViYXJIZWFkZXJcbiAqIEBvcmRlciAyNVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlTaWRlYmFySGVhZGVyXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NpZGViYXItaGVhZGVyJyxcbiAgICAgICAgJ1tjbGFzcy5zaWRlYmFyLWhlYWRlci1kaXZpZGVkXSc6ICd0aHlEaXZpZGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFySGVhZGVyRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiDmmK/lkKbmnInliIblibLnur9cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpdmlkZWQ6IGJvb2xlYW4gfCBzdHJpbmc7XG59XG5cbi8qKlxuICog5L6n6L655qCP5aS06YOo5biD5bGA57uE5Lu2XG4gKiBAbmFtZSB0aHktc2lkZWJhci1oZWFkZXJcbiAqIEBvcmRlciAyNlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zaWRlYmFyLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6IGAuL3NpZGViYXItaGVhZGVyLmNvbXBvbmVudC5odG1sYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5RGl2aWRlZCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWZdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNpZGViYXJIZWFkZXIge1xuICAgIC8qKlxuICAgICAqIOWktOmDqOagh+mimFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieaTjeS9nOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlck9wZXJhdGlvbj48L25nLXRlbXBsYXRlPmBcbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlck9wZXJhdGlvbicpXG4gICAgcHVibGljIG9wZXJhdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIOWktOmDqOiHquWumuS5ieagh+mimOaooeadv++8jGA8bmctdGVtcGxhdGUgI2hlYWRlclRpdGxlPjwvbmctdGVtcGxhdGU+YFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGl0bGUnKVxuICAgIHB1YmxpYyB0aXRsZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuIiwiPHNwYW4gY2xhc3M9XCJ0aXRsZVwiICpuZ0lmPVwidGh5VGl0bGUgfHwgdGl0bGVUZW1wbGF0ZVJlZlwiPlxuICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0aXRsZVRlbXBsYXRlUmVmOyBlbHNlIGRlZmF1bHRUaXRsZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUaXRsZT5cbiAgICB7eyB0aHlUaXRsZSB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9zcGFuPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cIm9wZXJhdGlvblwiPlxuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3BlcmF0aW9uVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -1,11 +1,12 @@
1
1
  import { NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
2
- import { Component, Directive, ElementRef, EventEmitter, Host, HostBinding, HostListener, Input, Optional, Output, TemplateRef, booleanAttribute, inject, numberAttribute } from '@angular/core';
2
+ import { Component, Directive, ElementRef, EventEmitter, Host, HostBinding, HostListener, Input, Optional, Output, TemplateRef, inject, numberAttribute } from '@angular/core';
3
3
  import { ThyHotkeyDispatcher } from '@tethys/cdk/hotkey';
4
4
  import { isMacPlatform } from '@tethys/cdk/is';
5
5
  import { ThyIcon } from 'ngx-tethys/icon';
6
6
  import { ThyResizableDirective, ThyResizeHandle } from 'ngx-tethys/resizable';
7
7
  import { ThyTooltipDirective } from 'ngx-tethys/tooltip';
8
8
  import { ThyLayoutDirective } from './layout.component';
9
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "./layout.component";
11
12
  import * as i2 from "@tethys/cdk/hotkey";
@@ -76,7 +77,7 @@ export class ThySidebarDirective {
76
77
  }
77
78
  }
78
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThySidebarDirective, deps: [{ token: i1.ThyLayoutDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
79
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebarDirective, isStandalone: true, selector: "[thySidebar]", inputs: { thyDirection: "thyDirection", thyTheme: "thyTheme", thyWidth: "thyWidth", thyIsolated: ["thyIsolated", "thyIsolated", booleanAttribute], thyDivided: ["thyDivided", "thyDivided", booleanAttribute], thyHasBorderRight: ["thyHasBorderRight", "thyHasBorderRight", booleanAttribute], thyHasBorderLeft: ["thyHasBorderLeft", "thyHasBorderLeft", booleanAttribute] }, host: { properties: { "class.thy-layout-sidebar-right": "thyDirection === \"right\"", "class.thy-layout-sidebar--clear-border-right": "thyDirection === \"left\" && !isDivided", "class.thy-layout-sidebar--clear-border-left": "thyDirection === \"right\" && !isDivided", "class.sidebar-theme-light": "thyTheme === \"light\"", "class.sidebar-theme-dark": "thyTheme === \"dark\"", "class.thy-layout-sidebar-isolated": "sidebarIsolated", "style.width.px": "this.thyLayoutSidebarWidth" }, classAttribute: "thy-layout-sidebar" }, ngImport: i0 }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebarDirective, isStandalone: true, selector: "[thySidebar]", inputs: { thyDirection: "thyDirection", thyTheme: "thyTheme", thyWidth: "thyWidth", thyIsolated: ["thyIsolated", "thyIsolated", coerceBooleanProperty], thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty], thyHasBorderRight: ["thyHasBorderRight", "thyHasBorderRight", coerceBooleanProperty], thyHasBorderLeft: ["thyHasBorderLeft", "thyHasBorderLeft", coerceBooleanProperty] }, host: { properties: { "class.thy-layout-sidebar-right": "thyDirection === \"right\"", "class.thy-layout-sidebar--clear-border-right": "thyDirection === \"left\" && !isDivided", "class.thy-layout-sidebar--clear-border-left": "thyDirection === \"right\" && !isDivided", "class.sidebar-theme-light": "thyTheme === \"light\"", "class.sidebar-theme-dark": "thyTheme === \"dark\"", "class.thy-layout-sidebar-isolated": "sidebarIsolated", "style.width.px": "this.thyLayoutSidebarWidth" }, classAttribute: "thy-layout-sidebar" }, ngImport: i0 }); }
80
81
  }
81
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThySidebarDirective, decorators: [{
82
83
  type: Directive,
@@ -109,16 +110,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
109
110
  args: ['thyWidth']
110
111
  }], thyIsolated: [{
111
112
  type: Input,
112
- args: [{ transform: booleanAttribute }]
113
+ args: [{ transform: coerceBooleanProperty }]
113
114
  }], thyDivided: [{
114
115
  type: Input,
115
- args: [{ transform: booleanAttribute }]
116
+ args: [{ transform: coerceBooleanProperty }]
116
117
  }], thyHasBorderRight: [{
117
118
  type: Input,
118
- args: [{ transform: booleanAttribute }]
119
+ args: [{ transform: coerceBooleanProperty }]
119
120
  }], thyHasBorderLeft: [{
120
121
  type: Input,
121
- args: [{ transform: booleanAttribute }]
122
+ args: [{ transform: coerceBooleanProperty }]
122
123
  }] } });
123
124
  /**
124
125
  * 侧边栏布局组件
@@ -266,7 +267,7 @@ export class ThySidebar {
266
267
  this.hotkeySubscription?.unsubscribe();
267
268
  }
268
269
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThySidebar, deps: [{ token: i0.ElementRef }, { token: i2.ThyHotkeyDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
269
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebar, isStandalone: true, selector: "thy-sidebar", inputs: { thyDraggable: ["thyDraggable", "thyDraggable", booleanAttribute], thyDragMaxWidth: ["thyDragMaxWidth", "thyDragMaxWidth", numberAttribute], thyDragMinWidth: ["thyDragMinWidth", "thyDragMinWidth", numberAttribute], thyTrigger: "thyTrigger", thyCollapsible: ["thyCollapsible", "thyCollapsible", booleanAttribute], thyCollapsed: ["thyCollapsed", "thyCollapsed", booleanAttribute], thyCollapsedWidth: ["thyCollapsedWidth", "thyCollapsedWidth", numberAttribute], thyDefaultWidth: "thyDefaultWidth" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.width.px": "this.sidebarWidth", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, hostDirectives: [{ directive: ThySidebarDirective, inputs: ["thyTheme", "thyTheme", "thyDirection", "thyDirection", "thyWidth", "thyWidth", "thyIsolated", "thyIsolated", "thyDivided", "thyDivided", "thyHasBorderLeft", "thyHasBorderLeft", "thyHasBorderRight", "thyHasBorderRight"] }], ngImport: i0, template: `
270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThySidebar, isStandalone: true, selector: "thy-sidebar", inputs: { thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyDragMaxWidth: ["thyDragMaxWidth", "thyDragMaxWidth", numberAttribute], thyDragMinWidth: ["thyDragMinWidth", "thyDragMinWidth", numberAttribute], thyTrigger: "thyTrigger", thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsedWidth: ["thyCollapsedWidth", "thyCollapsedWidth", numberAttribute], thyDefaultWidth: "thyDefaultWidth" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.width.px": "this.sidebarWidth", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, hostDirectives: [{ directive: ThySidebarDirective, inputs: ["thyTheme", "thyTheme", "thyDirection", "thyDirection", "thyWidth", "thyWidth", "thyIsolated", "thyIsolated", "thyDivided", "thyDivided", "thyHasBorderLeft", "thyHasBorderLeft", "thyHasBorderRight", "thyHasBorderRight"] }], ngImport: i0, template: `
270
271
  <ng-content></ng-content>
271
272
  <div
272
273
  thyResizable
@@ -364,7 +365,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
364
365
  args: ['mouseleave', ['$event']]
365
366
  }], thyDraggable: [{
366
367
  type: Input,
367
- args: [{ transform: booleanAttribute }]
368
+ args: [{ transform: coerceBooleanProperty }]
368
369
  }], thyDragMaxWidth: [{
369
370
  type: Input,
370
371
  args: [{ transform: numberAttribute }]
@@ -379,10 +380,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
379
380
  type: Output
380
381
  }], thyCollapsible: [{
381
382
  type: Input,
382
- args: [{ transform: booleanAttribute }]
383
+ args: [{ transform: coerceBooleanProperty }]
383
384
  }], thyCollapsed: [{
384
385
  type: Input,
385
- args: [{ transform: booleanAttribute }]
386
+ args: [{ transform: coerceBooleanProperty }]
386
387
  }], thyCollapsedWidth: [{
387
388
  type: Input,
388
389
  args: [{ transform: numberAttribute }]
@@ -395,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
395
396
  type: HostBinding,
396
397
  args: ['class.remove-transition']
397
398
  }] } });
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFFeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBTW5DOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sbUJBQW1CO0lBbUI1Qjs7O09BR0c7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsUUFBUSxD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Z0IsRUFBRTtnQkFpQk0sWUFBWTtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFXQyxpQkFBaUI7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUs1QixlQUFlO3NCQUF2QixLQUFLO2dCQUdGLGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBTXRDLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuXG5jb25zdCBMR19XSURUSCA9IDMwMDtcbmNvbnN0IFNJREVCQVJfREVGQVVMVF9XSURUSCA9IDI0MDtcbmNvbnN0IFNJREVCQVJfQ09MTEFQU0VEX1dJRFRIID0gMjA7XG5cbmV4cG9ydCB0eXBlIFRoeVNpZGViYXJUaGVtZSA9ICd3aGl0ZScgfCAnbGlnaHQnIHwgJ2RhcmsnO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyRGlyZWN0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuLyoqXG4gKiDkvqfovrnmoI/luIPlsYDmjIfku6RcbiAqIEBuYW1lIHRoeVNpZGViYXJcbiAqIEBvcmRlciAyMFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlTaWRlYmFyXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1sYXlvdXQtc2lkZWJhcicsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1zaWRlYmFyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwicmlnaHRcIicsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1zaWRlYmFyLS1jbGVhci1ib3JkZXItcmlnaHRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJsZWZ0XCIgJiYgIWlzRGl2aWRlZCcsXG4gICAgICAgICdbY2xhc3MudGh5LWxheW91dC1zaWRlYmFyLS1jbGVhci1ib3JkZXItbGVmdF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCIgJiYgIWlzRGl2aWRlZCcsXG4gICAgICAgICdbY2xhc3Muc2lkZWJhci10aGVtZS1saWdodF0nOiAndGh5VGhlbWUgPT09IFwibGlnaHRcIicsXG4gICAgICAgICdbY2xhc3Muc2lkZWJhci10aGVtZS1kYXJrXSc6ICd0aHlUaGVtZSA9PT0gXCJkYXJrXCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1pc29sYXRlZF0nOiAnc2lkZWJhcklzb2xhdGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzaWRlYmFySXNvbGF0ZWQgPSBmYWxzZTtcblxuICAgIGlzRGl2aWRlZCA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgdGh5TGF5b3V0U2lkZWJhcldpZHRoOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBzaWRlYmFyIOS9jee9ru+8jOm7mOiupOWcqOW3puS+p1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURpcmVjdGlvbjogVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JztcblxuICAgIC8qKlxuICAgICAqIOS4u+mimFxuICAgICAqIEB0eXBlIHdoaXRlIHwgbGlnaHQgfCBkYXJrXG4gICAgICogQGRlZmF1bHQgd2hpdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogVGh5U2lkZWJhclRoZW1lO1xuXG4gICAgLyoqXG4gICAgICog5a695bqm77yM6buY6K6k5pivIDI0MHB477yM5Lyg5YWlIGBsZ2Ag5aSn5bCP5pe25a695bqm5pivMzAwcHhcbiAgICAgKiBAZGVmYXVsdCAyNDBweFxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5V2lkdGgnKVxuICAgIHNldCB0aHlXaWR0aCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdmFsdWUgPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoeUxheW91dFNpZGViYXJXaWR0aCA9ICh2YWx1ZSBhcyBudW1iZXIpIHx8IFNJREVCQVJfREVGQVVMVF9XSURUSDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblkozlj7PkvqcgL+W3puS+p+malOemu++8jOW9k+S4uiB0cnVlIOaXtui3neWPs+S+pyAv5bem5L6n5Lya5pyJIG1hcmdpbu+8jOWQjOaXtui+ueahhuS8muWOu+aOiVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUlzb2xhdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhcklzb2xhdGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDmmK/lkKbmnInliIblibLnur/jgILlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umBsZWZ0YOaXtu+8jOaOp+WItuWPs+S+p+aYr+WQpuacieWIhuWJsue6v++8m+W9k2B0aHlEaXJlY3Rpb25g5YC85Li6YHJpZ2h0YOaXtu+8jOaOp+WItuW3puS+p+aYr+WQpuacieWIhuWJsue6v+OAglxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5RGl2aWRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzRGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+aYr+WQpuaciei+ueahhu+8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlIYXNCb3JkZXJSaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeURpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt6bkvqfmmK/lkKbmnInovrnmoYbvvIzlt7Llup/lvIPvvIzor7fkvb/nlKggdGh5RGl2aWRlZFxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgdGh5RGl2aWRlZFxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyTGVmdCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeURpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgdGh5TGF5b3V0RGlyZWN0aXZlOiBUaHlMYXlvdXREaXJlY3RpdmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5oYXNTaWRlYmFyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlEaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlLmlzU2lkZWJhclJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiDkvqfovrnmoI/luIPlsYDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1zaWRlYmFyXG4gKiBAb3JkZXIgMjFcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2lkZWJhcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1kcmFnXCJcbiAgICAgICAgICAgICpuZ0lmPVwidGh5RHJhZ2dhYmxlXCJcbiAgICAgICAgICAgIHRoeUJvdW5kcz1cIndpbmRvd1wiXG4gICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlNaW5XaWR0aF09XCJkcmFnTWluV2lkdGhcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZSk9XCJyZXNpemVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCIhaXNSZXNpemFibGUgPyAnY29udGVudHMnIDogbnVsbFwiPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICBbdGh5RGlyZWN0aW9uXT1cInNpZGViYXJEaXJlY3RpdmUudGh5RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ2xlZnQnIDogJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b2dnbGVSZXNpemFibGUoJGV2ZW50LCAnZW50ZXInKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJyZXN0b3JlVG9EZWZhdWx0V2lkdGgoKVwiPlxuICAgICAgICAgICAgPC90aHktcmVzaXplLWhhbmRsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aHlDb2xsYXBzaWJsZVwiIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1saW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpZGViYXItY29sbGFwc2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwiIXRoeVRyaWdnZXIgJiYgY29sbGFwc2VUaXBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1pY29uXCIgW3RoeUljb25OYW1lXT1cInRoaXMudGh5Q29sbGFwc2VkID8gJ2luZGVudCcgOiAnb3V0ZGVudCdcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHNpZGViYXJEaXJlY3RpdmUgPSBpbmplY3QoVGh5U2lkZWJhckRpcmVjdGl2ZSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHNpZGViYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgdGhpcy50aHlDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWVudGVyKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2VudGVyJyk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgbW91c2VsZWF2ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWuveW6puaYr+WQpuWPr+S7peaLluaLvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURyYWdnYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5ouW5ou955qE5pyA5aSn5a695bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5RHJhZ01heFdpZHRoOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmi5bmi73nmoTmnIDlsI/lrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlEcmFnTWluV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuuaUtui1t+eahOinpuWPkeWZqOiHquWumuS5ieaooeadv++8jOm7mOiupOaYvuekuuWxleW8gOaUtui1t+eahOWchuW9ouWbvuagh++8jOiuvue9ruS4uiBudWxsIOihqOekuuS4jeWxleekuuinpuWPkeWFg+e0oO+8jOaJi+WKqOaOp+WItuWxleW8gOaUtui1t+eKtuaAgVxuICAgICAqIEB0eXBlIG51bGwgfCB1bmRlZmluZWQgfCBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VHJpZ2dlcjogbnVsbCB8IHVuZGVmaW5lZCB8IFRlbXBsYXRlUmVmPGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiDmlLbotbfnirbmgIHmlLnlj5jlkI7nmoTkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB0aHlDb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmi5bmi73lrr3luqbnmoTkv67mlLnkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB0aHlEcmFnV2lkdGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIOW8gOWQr+aUtui1ty/lsZXlvIDlip/og71cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgdGh5Q29sbGFwc2libGUoY29sbGFwc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzaWJsZSA9IGNvbGxhcHNpYmxlO1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVIb3RrZXlFdmVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3RrZXlTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5Q29sbGFwc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYr+aUtui1t1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNldCB0aHlDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aHlDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaUtui1t+WQjueahOWuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUNvbGxhcHNlZFdpZHRoID0gU0lERUJBUl9DT0xMQVBTRURfV0lEVEg7XG5cbiAgICAvKipcbiAgICAgKiDpu5jorqTlrr3luqbvvIzlj4zlh7vlkI7lj6/mgaLlpI3liLDmraTlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgbGcg5aSn5bCP5pe25a695bqm5pivMzAwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZWZhdWx0V2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2lkZWJhci1jb2xsYXBzZS1zaG93JylcbiAgICBnZXQgY29sbGFwc2VWaXNpYmlsaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZW1vdmUtdHJhbnNpdGlvbicpXG4gICAgZ2V0IHJlbW92ZVRyYW5zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBjb2xsYXBzZVRpcDogc3RyaW5nO1xuXG4gICAgY29sbGFwc2libGU6IGJvb2xlYW47XG5cbiAgICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgb3JpZ2luV2lkdGg6IG51bWJlciA9IFNJREVCQVJfREVGQVVMVF9XSURUSDtcblxuICAgIGNvbGxhcHNlVmlzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbGxhcHNlSGlkZGVuOiBib29sZWFuO1xuXG4gICAgaXNSZW1vdmVUcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgaXNSZXNpemFibGU6IGJvb2xlYW47XG5cbiAgICBnZXQgZHJhZ01pbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlEcmFnTWluV2lkdGggfHwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvdGtleVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgaG90a2V5RGlzcGF0Y2hlcjogVGh5SG90a2V5RGlzcGF0Y2hlcikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbGxhcHNlVGlwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVIb3RrZXlFdmVudCgpIHtcbiAgICAgICAgdGhpcy5ob3RrZXlTdWJzY3JpcHRpb24gPSB0aGlzLmhvdGtleURpc3BhdGNoZXIua2V5ZG93bihbJ0NvbnRyb2wrLycsICdNZXRhKy8nXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZVRpcCgpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVRpcCA9IHRoaXMudGh5Q29sbGFwc2VkID8gJ+WxleW8gCcgOiAn5pS26LW3JztcbiAgICAgICAgdGhpcy5jb2xsYXBzZVRpcCA9IHRoaXMuY29sbGFwc2VUaXAgKyAoaXNNYWNQbGF0Zm9ybSgpID8gYO+8iOKMmCArIC8pYCA6IGDvvIhDdHJsICsgLylgKTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVyKHsgd2lkdGggfTogVGh5UmVzaXplRXZlbnQpIHtcbiAgICAgICAgaWYgKHdpZHRoID09PSB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPCB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPT09IHRoaXMudGh5Q29sbGFwc2VkV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSB0aGlzLm9yaWdpbldpZHRoO1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZVZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gd2lkdGg7XG4gICAgICAgIHRoaXMudGh5RHJhZ1dpZHRoQ2hhbmdlLmVtaXQod2lkdGgpO1xuICAgIH1cblxuICAgIHJlc2l6ZVN0YXJ0KCkge1xuICAgICAgICB0aGlzLm9yaWdpbldpZHRoID0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXNpemVFbmQoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JlbW92ZVRyYW5zaXRpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVIb3ZlcihldmVudDogTW91c2VFdmVudCwgdHlwZTogJ2VudGVyJyB8ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVZpc2libGUgPSB0eXBlID09PSAnZW50ZXInICYmICF0aGlzLnRoeUNvbGxhcHNlZCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICB0b2dnbGVDb2xsYXBzZShldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWQgPSAhdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVSZXNpemFibGUoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuaXNSZXNpemFibGUgPSB0eXBlID09PSAnZW50ZXInID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHJlc3RvcmVUb0RlZmF1bHRXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGVmYXVsdFdpZHRoID09PSAnbGcnKSB7XG4gICAgICAgICAgICB0aGlzLnRoeURlZmF1bHRXaWR0aCA9IExHX1dJRFRIO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSAodGhpcy50aHlEZWZhdWx0V2lkdGggYXMgbnVtYmVyKSB8fCBTSURFQkFSX0RFRkFVTFRfV0lEVEg7XG4gICAgICAgIHRoaXMudGh5RHJhZ1dpZHRoQ2hhbmdlLmVtaXQodGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
399
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUV4RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFNbkM7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyxtQkFBbUI7SUFtQjVCOzs7T0FHRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXNCO1FBQy9CLElBQUksS0FBSyxLQUFLLElBQUks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RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWlCTSxZQUFZO3NCQUE1RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVdKLGlCQUFpQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSzVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0Ysa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNdEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgTEdfV0lEVEggPSAzMDA7XG5jb25zdCBTSURFQkFSX0RFRkFVTFRfV0lEVEggPSAyNDA7XG5jb25zdCBTSURFQkFSX0NPTExBUFNFRF9XSURUSCA9IDIwO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyVGhlbWUgPSAnd2hpdGUnIHwgJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlTaWRlYmFyXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U2lkZWJhcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktbGF5b3V0LXNpZGViYXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1yaWdodF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwibGVmdFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLWxlZnRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHRdJzogJ3RoeVRoZW1lID09PSBcImxpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtZGFya10nOiAndGh5VGhlbWUgPT09IFwiZGFya1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWRdJzogJ3NpZGViYXJJc29sYXRlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U2lkZWJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2lkZWJhcklzb2xhdGVkID0gZmFsc2U7XG5cbiAgICBpc0RpdmlkZWQgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpIHRoeUxheW91dFNpZGViYXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDkvY3nva7vvIzpu5jorqTlnKjlt6bkvqdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246IFRoeVNpZGViYXJEaXJlY3Rpb24gPSAnbGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDkuLvpophcbiAgICAgKiBAdHlwZSB3aGl0ZSB8IGxpZ2h0IHwgZGFya1xuICAgICAqIEBkZWZhdWx0IHdoaXRlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6IFRoeVNpZGViYXJUaGVtZTtcblxuICAgIC8qKlxuICAgICAqIOWuveW6pu+8jOm7mOiupOaYryAyNDBweO+8jOS8oOWFpSBgbGdgIOWkp+Wwj+aXtuWuveW6puaYrzMwMHB4XG4gICAgICogQGRlZmF1bHQgMjQwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVdpZHRoJylcbiAgICBzZXQgdGh5V2lkdGgodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgPT09ICdsZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gTEdfV0lEVEg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSAodmFsdWUgYXMgbnVtYmVyKSB8fCBTSURFQkFSX0RFRkFVTFRfV0lEVEg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5ZKM5Y+z5L6nIC/lt6bkvqfpmpTnprvvvIzlvZPkuLogdHJ1ZSDml7bot53lj7PkvqcgL+W3puS+p+S8muaciSBtYXJnaW7vvIzlkIzml7bovrnmoYbkvJrljrvmjolcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUlzb2xhdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhcklzb2xhdGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDmmK/lkKbmnInliIblibLnur/jgILlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umBsZWZ0YOaXtu+8jOaOp+WItuWPs+S+p+aYr+WQpuacieWIhuWJsue6v++8m+W9k2B0aHlEaXJlY3Rpb25g5YC85Li6YHJpZ2h0YOaXtu+8jOaOp+WItuW3puS+p+aYr+WQpuacieWIhuWJsue6v+OAglxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlEaXZpZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyUmlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy50aHlEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bem5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyTGVmdCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeURpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgdGh5TGF5b3V0RGlyZWN0aXZlOiBUaHlMYXlvdXREaXJlY3RpdmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5oYXNTaWRlYmFyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlEaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlLmlzU2lkZWJhclJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiDkvqfovrnmoI/luIPlsYDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1zaWRlYmFyXG4gKiBAb3JkZXIgMjFcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2lkZWJhcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1kcmFnXCJcbiAgICAgICAgICAgICpuZ0lmPVwidGh5RHJhZ2dhYmxlXCJcbiAgICAgICAgICAgIHRoeUJvdW5kcz1cIndpbmRvd1wiXG4gICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlNaW5XaWR0aF09XCJkcmFnTWluV2lkdGhcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZSk9XCJyZXNpemVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCIhaXNSZXNpemFibGUgPyAnY29udGVudHMnIDogbnVsbFwiPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICBbdGh5RGlyZWN0aW9uXT1cInNpZGViYXJEaXJlY3RpdmUudGh5RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ2xlZnQnIDogJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b2dnbGVSZXNpemFibGUoJGV2ZW50LCAnZW50ZXInKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJyZXN0b3JlVG9EZWZhdWx0V2lkdGgoKVwiPlxuICAgICAgICAgICAgPC90aHktcmVzaXplLWhhbmRsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aHlDb2xsYXBzaWJsZVwiIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1saW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpZGViYXItY29sbGFwc2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwiIXRoeVRyaWdnZXIgJiYgY29sbGFwc2VUaXBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1pY29uXCIgW3RoeUljb25OYW1lXT1cInRoaXMudGh5Q29sbGFwc2VkID8gJ2luZGVudCcgOiAnb3V0ZGVudCdcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHNpZGViYXJEaXJlY3RpdmUgPSBpbmplY3QoVGh5U2lkZWJhckRpcmVjdGl2ZSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHNpZGViYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgdGhpcy50aHlDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWVudGVyKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2VudGVyJyk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgbW91c2VsZWF2ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWuveW6puaYr+WQpuWPr+S7peaLluaLvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5RHJhZ2dhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmi5bmi73nmoTmnIDlpKflrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlEcmFnTWF4V2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveeahOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeURyYWdNaW5XaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S65pS26LW355qE6Kem5Y+R5Zmo6Ieq5a6a5LmJ5qih5p2/77yM6buY6K6k5pi+56S65bGV5byA5pS26LW355qE5ZyG5b2i5Zu+5qCH77yM6K6+572u5Li6IG51bGwg6KGo56S65LiN5bGV56S66Kem5Y+R5YWD57Sg77yM5omL5Yqo5o6n5Yi25bGV5byA5pS26LW354q25oCBXG4gICAgICogQHR5cGUgbnVsbCB8IHVuZGVmaW5lZCB8IFRlbXBsYXRlUmVmPGFueT5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUcmlnZ2VyOiBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PiA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIOaUtui1t+eKtuaAgeaUueWPmOWQjueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeUNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveWuveW6pueahOS/ruaUueS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeURyYWdXaWR0aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5byA5ZCv5pS26LW3L+WxleW8gOWKn+iDvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeUNvbGxhcHNpYmxlKGNvbGxhcHNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2libGUgPSBjb2xsYXBzaWJsZTtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlSG90a2V5RXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmK/mlLbotbdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHNldCB0aHlDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aHlDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaUtui1t+WQjueahOWuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUNvbGxhcHNlZFdpZHRoID0gU0lERUJBUl9DT0xMQVBTRURfV0lEVEg7XG5cbiAgICAvKipcbiAgICAgKiDpu5jorqTlrr3luqbvvIzlj4zlh7vlkI7lj6/mgaLlpI3liLDmraTlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgbGcg5aSn5bCP5pe25a695bqm5pivMzAwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZWZhdWx0V2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2lkZWJhci1jb2xsYXBzZS1zaG93JylcbiAgICBnZXQgY29sbGFwc2VWaXNpYmlsaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZW1vdmUtdHJhbnNpdGlvbicpXG4gICAgZ2V0IHJlbW92ZVRyYW5zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBjb2xsYXBzZVRpcDogc3RyaW5nO1xuXG4gICAgY29sbGFwc2libGU6IGJvb2xlYW47XG5cbiAgICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgb3JpZ2luV2lkdGg6IG51bWJlciA9IFNJREVCQVJfREVGQVVMVF9XSURUSDtcblxuICAgIGNvbGxhcHNlVmlzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbGxhcHNlSGlkZGVuOiBib29sZWFuO1xuXG4gICAgaXNSZW1vdmVUcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgaXNSZXNpemFibGU6IGJvb2xlYW47XG5cbiAgICBnZXQgZHJhZ01pbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlEcmFnTWluV2lkdGggfHwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvdGtleVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgaG90a2V5RGlzcGF0Y2hlcjogVGh5SG90a2V5RGlzcGF0Y2hlcikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbGxhcHNlVGlwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVIb3RrZXlFdmVudCgpIHtcbiAgICAgICAgdGhpcy5ob3RrZXlTdWJzY3JpcHRpb24gPSB0aGlzLmhvdGtleURpc3BhdGNoZXIua2V5ZG93bihbJ0NvbnRyb2wrLycsICdNZXRhKy8nXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZVRpcCgpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVRpcCA9IHRoaXMudGh5Q29sbGFwc2VkID8gJ+WxleW8gCcgOiAn5pS26LW3JztcbiAgICAgICAgdGhpcy5jb2xsYXBzZVRpcCA9IHRoaXMuY29sbGFwc2VUaXAgKyAoaXNNYWNQbGF0Zm9ybSgpID8gYO+8iOKMmCArIC8pYCA6IGDvvIhDdHJsICsgLylgKTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVyKHsgd2lkdGggfTogVGh5UmVzaXplRXZlbnQpIHtcbiAgICAgICAgaWYgKHdpZHRoID09PSB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPCB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgd2lkdGggPT09IHRoaXMudGh5Q29sbGFwc2VkV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICAgICAgICAgIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSB0aGlzLm9yaWdpbldpZHRoO1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZVZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gd2lkdGg7XG4gICAgICAgIHRoaXMudGh5RHJhZ1dpZHRoQ2hhbmdlLmVtaXQod2lkdGgpO1xuICAgIH1cblxuICAgIHJlc2l6ZVN0YXJ0KCkge1xuICAgICAgICB0aGlzLm9yaWdpbldpZHRoID0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aDtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXNpemVFbmQoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JlbW92ZVRyYW5zaXRpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXNpemVIYW5kbGVIb3ZlcihldmVudDogTW91c2VFdmVudCwgdHlwZTogJ2VudGVyJyB8ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVZpc2libGUgPSB0eXBlID09PSAnZW50ZXInICYmICF0aGlzLnRoeUNvbGxhcHNlZCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICB0b2dnbGVDb2xsYXBzZShldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWQgPSAhdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpLCAyMDApO1xuICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVSZXNpemFibGUoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuaXNSZXNpemFibGUgPSB0eXBlID09PSAnZW50ZXInID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHJlc3RvcmVUb0RlZmF1bHRXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGVmYXVsdFdpZHRoID09PSAnbGcnKSB7XG4gICAgICAgICAgICB0aGlzLnRoeURlZmF1bHRXaWR0aCA9IExHX1dJRFRIO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSAodGhpcy50aHlEZWZhdWx0V2lkdGggYXMgbnVtYmVyKSB8fCBTSURFQkFSX0RFRkFVTFRfV0lEVEg7XG4gICAgICAgIHRoaXMudGh5RHJhZ1dpZHRoQ2hhbmdlLmVtaXQodGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
- import { Component, Input, HostBinding, booleanAttribute } from '@angular/core';
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
2
3
  import * as i0 from "@angular/core";
3
4
  /**
4
5
  * 列表组件
@@ -18,7 +19,7 @@ export class ThyList {
18
19
  this._isList = true;
19
20
  }
20
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyList, isStandalone: true, selector: "thy-list", inputs: { thyDivided: ["thyDivided", "thyDivided", booleanAttribute] }, host: { properties: { "class.thy-list-divided": "this._isDivided", "class.thy-list": "this._isList" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyList, isStandalone: true, selector: "thy-list", inputs: { thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty] }, host: { properties: { "class.thy-list-divided": "this._isDivided", "class.thy-list": "this._isList" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
22
23
  }
23
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyList, decorators: [{
24
25
  type: Component,
@@ -29,7 +30,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
29
30
  }]
30
31
  }], ctorParameters: () => [], propDecorators: { thyDivided: [{
31
32
  type: Input,
32
- args: [{ transform: booleanAttribute }]
33
+ args: [{ transform: coerceBooleanProperty }]
33
34
  }], _isDivided: [{
34
35
  type: HostBinding,
35
36
  args: [`class.thy-list-divided`]
@@ -37,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
37
38
  type: HostBinding,
38
39
  args: [`class.thy-list`]
39
40
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlzdC9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWhGOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sT0FBTztJQUNoQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFNRDtRQUp1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFL0IsQ0FBQzs4R0FkUCxPQUFPO2tHQUFQLE9BQU8sK0ZBS0ksZ0JBQWdCLHNJQVIxQiwyQkFBMkI7OzJGQUc1QixPQUFPO2tCQUxuQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBT08sVUFBVTtzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUtDLFVBQVU7c0JBQWhELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUVOLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDliJfooajnu4Tku7ZcbiAqIEBuYW1lIHRoeS1saXN0XG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktbGlzdCcsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUxpc3Qge1xuICAgIC8qKlxuICAgICAqIOaOp+WItuWIhuWJsue6v+eahOaYvuekuuS4jumakOiXj1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeURpdmlkZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktbGlzdC1kaXZpZGVkYCkgX2lzRGl2aWRlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktbGlzdGApIF9pc0xpc3QgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlzdC9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXhEOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sT0FBTztJQUNoQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFNRDtRQUp1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFL0IsQ0FBQzs4R0FkUCxPQUFPO2tHQUFQLE9BQU8sK0ZBS0kscUJBQXFCLHNJQVIvQiwyQkFBMkI7OzJGQUc1QixPQUFPO2tCQUxuQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBT08sVUFBVTtzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtKLFVBQVU7c0JBQWhELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUVOLE9BQU87c0JBQXJDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog5YiX6KGo57uE5Lu2XG4gKiBAbmFtZSB0aHktbGlzdFxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWxpc3QnLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlMaXN0IHtcbiAgICAvKipcbiAgICAgKiDmjqfliLbliIblibLnur/nmoTmmL7npLrkuI7pmpDol49cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeURpdmlkZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktbGlzdC1kaXZpZGVkYCkgX2lzRGl2aWRlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktbGlzdGApIF9pc0xpc3QgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19