ngx-tethys 18.0.8 → 18.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/alert/alert.component.d.ts +11 -19
  3. package/anchor/anchor.component.d.ts +1 -3
  4. package/badge/badge.component.d.ts +12 -3
  5. package/date-picker/index.d.ts +26 -27
  6. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  7. package/date-picker/lib/popups/date-popup.component.d.ts +0 -1
  8. package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
  9. package/date-range/date-range.component.d.ts +2 -8
  10. package/divider/divider.component.d.ts +8 -2
  11. package/esm2022/action/action.component.mjs +3 -4
  12. package/esm2022/alert/alert.component.mjs +55 -81
  13. package/esm2022/anchor/anchor-link.component.mjs +15 -7
  14. package/esm2022/anchor/anchor.component.mjs +17 -9
  15. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -5
  16. package/esm2022/autocomplete/autocomplete.component.mjs +5 -5
  17. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  18. package/esm2022/avatar/avatar.component.mjs +4 -4
  19. package/esm2022/back-top/back-top.component.mjs +4 -4
  20. package/esm2022/badge/badge.component.mjs +3 -4
  21. package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -6
  22. package/esm2022/button/button-icon.component.mjs +4 -4
  23. package/esm2022/button/button.component.mjs +4 -4
  24. package/esm2022/calendar/calendar-header.component.mjs +4 -4
  25. package/esm2022/calendar/calendar.component.mjs +3 -4
  26. package/esm2022/card/header.component.mjs +4 -4
  27. package/esm2022/carousel/carousel.component.mjs +4 -4
  28. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  29. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  30. package/esm2022/cascader/cascader.component.mjs +5 -7
  31. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  32. package/esm2022/collapse/collapse-item.component.mjs +4 -4
  33. package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
  34. package/esm2022/comment/comment.component.mjs +4 -4
  35. package/esm2022/date-picker/date-picker.component.mjs +5 -6
  36. package/esm2022/date-picker/index.mjs +27 -28
  37. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -4
  38. package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
  39. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  40. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  41. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +5 -5
  42. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
  43. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  44. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  45. package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
  46. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -18
  47. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -8
  48. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
  49. package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
  50. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  51. package/esm2022/date-picker/month-picker.component.mjs +4 -5
  52. package/esm2022/date-picker/picker.component.mjs +4 -14
  53. package/esm2022/date-picker/quarter-picker.component.mjs +4 -5
  54. package/esm2022/date-picker/range-picker.component.mjs +4 -5
  55. package/esm2022/date-picker/week-picker.component.mjs +4 -5
  56. package/esm2022/date-picker/year-picker.component.mjs +4 -5
  57. package/esm2022/date-range/date-range.component.mjs +4 -4
  58. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -6
  59. package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
  60. package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
  61. package/esm2022/divider/divider.component.mjs +21 -13
  62. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  63. package/esm2022/empty/empty.component.mjs +4 -4
  64. package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
  65. package/esm2022/form/form-group.component.mjs +4 -4
  66. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
  67. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  68. package/esm2022/image/preview/image-preview.component.mjs +3 -4
  69. package/esm2022/input/input-group.component.mjs +4 -4
  70. package/esm2022/input/input-search.component.mjs +3 -4
  71. package/esm2022/input/input.component.mjs +4 -4
  72. package/esm2022/layout/header.component.mjs +4 -4
  73. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  74. package/esm2022/layout/sidebar.component.mjs +81 -71
  75. package/esm2022/list/list-item-meta.component.mjs +4 -4
  76. package/esm2022/loading/loading.component.mjs +3 -4
  77. package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
  78. package/esm2022/menu/group/menu-group.component.mjs +4 -4
  79. package/esm2022/menu/item/menu-item.component.mjs +3 -4
  80. package/esm2022/message/message-container.component.mjs +13 -5
  81. package/esm2022/message/message.component.mjs +3 -4
  82. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  83. package/esm2022/nav/nav.component.mjs +4 -6
  84. package/esm2022/notify/notify-container.component.mjs +4 -4
  85. package/esm2022/notify/notify.component.mjs +4 -4
  86. package/esm2022/pagination/pagination.component.mjs +4 -4
  87. package/esm2022/popover/header/popover-header.component.mjs +4 -4
  88. package/esm2022/progress/progress-circle.component.mjs +4 -7
  89. package/esm2022/progress/progress.component.mjs +5 -8
  90. package/esm2022/property/property-item.component.mjs +4 -4
  91. package/esm2022/property-operation/property-operation.component.mjs +4 -4
  92. package/esm2022/radio/radio.component.mjs +5 -5
  93. package/esm2022/rate/rate.component.mjs +5 -5
  94. package/esm2022/resizable/resize-handle.component.mjs +10 -7
  95. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  96. package/esm2022/result/result.component.mjs +4 -4
  97. package/esm2022/segment/segment-item.component.mjs +4 -4
  98. package/esm2022/segment/segment.component.mjs +4 -5
  99. package/esm2022/select/custom-select/custom-select.component.mjs +6 -8
  100. package/esm2022/select/native-select/native-select.component.mjs +5 -6
  101. package/esm2022/shared/option/list-option/list-option.component.mjs +3 -4
  102. package/esm2022/shared/option/option.component.mjs +3 -4
  103. package/esm2022/shared/select/select-control/select-control.component.mjs +5 -5
  104. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  105. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  106. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  107. package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
  108. package/esm2022/space/space.component.mjs +4 -4
  109. package/esm2022/statistic/statistic.component.mjs +4 -4
  110. package/esm2022/stepper/stepper.component.mjs +5 -5
  111. package/esm2022/switch/switch.component.mjs +6 -6
  112. package/esm2022/table/table-skeleton.component.mjs +4 -7
  113. package/esm2022/table/table.component.mjs +5 -7
  114. package/esm2022/tabs/tab-content.component.mjs +9 -9
  115. package/esm2022/tabs/tabs.component.mjs +4 -7
  116. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +3 -4
  117. package/esm2022/time-picker/time-picker-panel.component.mjs +5 -8
  118. package/esm2022/time-picker/time-picker.component.mjs +5 -15
  119. package/esm2022/timeline/timeline-item.component.mjs +4 -4
  120. package/esm2022/timeline/timeline.component.mjs +9 -9
  121. package/esm2022/tooltip/tooltip.component.mjs +4 -4
  122. package/esm2022/transfer/transfer-list.component.mjs +4 -4
  123. package/esm2022/transfer/transfer.component.mjs +4 -4
  124. package/esm2022/tree/tree-node.component.mjs +4 -4
  125. package/esm2022/tree/tree.component.mjs +5 -7
  126. package/esm2022/tree-select/tree-select.component.mjs +7 -10
  127. package/esm2022/typography/text/text.component.mjs +3 -4
  128. package/esm2022/version.mjs +2 -2
  129. package/esm2022/vote/vote.component.mjs +4 -4
  130. package/fesm2022/ngx-tethys-action.mjs +3 -3
  131. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  133. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-anchor.mjs +29 -13
  135. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -4
  137. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
  139. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-avatar.mjs +5 -5
  141. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-back-top.mjs +3 -3
  143. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-badge.mjs +3 -3
  145. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-breadcrumb.mjs +3 -5
  147. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-button.mjs +5 -5
  149. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  150. package/fesm2022/ngx-tethys-calendar.mjs +5 -5
  151. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  152. package/fesm2022/ngx-tethys-card.mjs +3 -3
  153. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-carousel.mjs +3 -3
  155. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  156. package/fesm2022/ngx-tethys-cascader.mjs +8 -10
  157. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-checkbox.mjs +4 -4
  159. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-collapse.mjs +3 -3
  161. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-color-picker.mjs +3 -3
  163. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  165. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-date-picker.mjs +2428 -2456
  167. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-date-range.mjs +5 -7
  169. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-dialog.mjs +5 -5
  171. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  173. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-dropdown.mjs +10 -6
  175. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-empty.mjs +3 -3
  177. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-form.mjs +7 -7
  179. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-guider.mjs +3 -3
  181. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-image.mjs +3 -3
  183. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-input.mjs +7 -7
  185. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-layout.mjs +84 -74
  187. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-list.mjs +3 -3
  189. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-loading.mjs +3 -3
  191. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-mention.mjs +3 -3
  193. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-menu.mjs +5 -5
  195. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-message.mjs +14 -6
  197. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-nav.mjs +6 -8
  199. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-notify.mjs +5 -5
  201. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-pagination.mjs +3 -3
  203. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-popover.mjs +3 -3
  205. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-progress.mjs +6 -12
  207. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-property-operation.mjs +3 -3
  209. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-property.mjs +3 -3
  211. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-radio.mjs +4 -4
  213. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-rate.mjs +4 -4
  215. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-resizable.mjs +21 -9
  217. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-result.mjs +3 -3
  219. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  221. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-select.mjs +9 -11
  223. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-shared.mjs +8 -8
  225. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
  227. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-slide.mjs +3 -3
  229. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-space.mjs +3 -3
  231. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-statistic.mjs +3 -3
  233. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-stepper.mjs +4 -4
  235. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-switch.mjs +5 -5
  237. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-table.mjs +6 -11
  239. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-tabs.mjs +10 -13
  241. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-time-picker.mjs +9 -22
  243. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-timeline.mjs +10 -10
  245. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-tooltip.mjs +3 -3
  247. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-transfer.mjs +5 -5
  249. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-tree-select.mjs +6 -9
  251. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-tree.mjs +6 -8
  253. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-typography.mjs +3 -3
  255. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  257. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys.mjs +1 -1
  259. package/fesm2022/ngx-tethys.mjs.map +1 -1
  260. package/menu/group/menu-group.component.d.ts +42 -6
  261. package/package.json +1 -1
  262. package/pagination/pagination.component.d.ts +15 -5
  263. package/progress/progress-circle.component.d.ts +0 -1
  264. package/progress/progress.component.d.ts +0 -1
  265. package/property/property-item.component.d.ts +1 -4
  266. package/resizable/resize-handle.component.d.ts +1 -4
  267. package/schematics/version.d.ts +1 -1
  268. package/schematics/version.js +1 -1
  269. package/segment/segment.component.d.ts +1 -5
  270. package/shared/option/list-option/list-option.component.d.ts +5 -1
  271. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  272. package/table/table-skeleton.component.d.ts +10 -3
  273. package/tabs/tabs.component.d.ts +0 -1
  274. package/time-picker/time-picker-panel.component.d.ts +0 -1
  275. package/tree/tree-node.component.d.ts +10 -10
@@ -3,7 +3,7 @@ import { takeUntil } from 'rxjs/operators';
3
3
  import { ThyTimelineItem } from './timeline-item.component';
4
4
  import { ThyTimelineService } from './timeline.service';
5
5
  import { Subject } from 'rxjs';
6
- import { NgFor, NgTemplateOutlet } from '@angular/common';
6
+ import { NgTemplateOutlet } from '@angular/common';
7
7
  import { coerceBooleanProperty } from 'ngx-tethys/util';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./timeline.service";
@@ -91,16 +91,16 @@ export class ThyTimeline {
91
91
  this.cdr.markForCheck();
92
92
  }
93
93
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimeline, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ThyTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyTimeline, isStandalone: true, selector: "thy-timeline", inputs: { thyReverse: ["thyReverse", "thyReverse", coerceBooleanProperty], thyMode: "thyMode", thyDirection: "thyDirection" }, host: { properties: { "class.thy-timeline": "this.isTimeline", "class.thy-timeline-right": "this.rightTimeline", "class.thy-timeline-center": "this.centerTimeline", "class.thy-timeline-template": "this.templateTimeline", "class.thy-timeline-horizontal": "this.horizontal" } }, providers: [ThyTimelineService], queries: [{ propertyName: "listOfItems", predicate: ThyTimelineItem }], usesOnChanges: true, ngImport: i0, template: `
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTimeline, isStandalone: true, selector: "thy-timeline", inputs: { thyReverse: ["thyReverse", "thyReverse", coerceBooleanProperty], thyMode: "thyMode", thyDirection: "thyDirection" }, host: { properties: { "class.thy-timeline": "this.isTimeline", "class.thy-timeline-right": "this.rightTimeline", "class.thy-timeline-center": "this.centerTimeline", "class.thy-timeline-template": "this.templateTimeline", "class.thy-timeline-horizontal": "this.horizontal" } }, providers: [ThyTimelineService], queries: [{ propertyName: "listOfItems", predicate: ThyTimelineItem }], usesOnChanges: true, ngImport: i0, template: `
95
95
  <ng-container>
96
- <ng-container *ngFor="let item of timelineItems">
96
+ @for (item of timelineItems; track $index) {
97
97
  <ng-template [ngTemplateOutlet]="item.template"></ng-template>
98
- </ng-container>
98
+ }
99
99
  <ng-template>
100
100
  <ng-content></ng-content>
101
101
  </ng-template>
102
102
  </ng-container>
103
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
103
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimeline, decorators: [{
106
106
  type: Component,
@@ -111,16 +111,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
111
111
  providers: [ThyTimelineService],
112
112
  template: `
113
113
  <ng-container>
114
- <ng-container *ngFor="let item of timelineItems">
114
+ @for (item of timelineItems; track $index) {
115
115
  <ng-template [ngTemplateOutlet]="item.template"></ng-template>
116
- </ng-container>
116
+ }
117
117
  <ng-template>
118
118
  <ng-content></ng-content>
119
119
  </ng-template>
120
120
  </ng-container>
121
121
  `,
122
122
  standalone: true,
123
- imports: [NgFor, NgTemplateOutlet]
123
+ imports: [NgTemplateOutlet]
124
124
  }]
125
125
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ThyTimelineService }], propDecorators: { thyReverse: [{
126
126
  type: Input,
@@ -154,4 +154,4 @@ function simpleChangeActivated(simpleChange) {
154
154
  function getTimelineItemPosition(index, mode) {
155
155
  return mode === 'left' ? 'left' : mode === 'right' ? 'right' : mode === 'center' && index % 2 === 0 ? 'left' : 'right';
156
156
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFPVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFJeEQsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUNwQiw2QkFBYSxDQUFBO0lBQ2IsK0JBQWUsQ0FBQTtJQUNmLGlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxZQUFZLEtBQVosWUFBWSxRQUl2QjtBQUlEOzs7O0dBSUc7QUFtQkgsTUFBTSxPQUFPLFdBQVc7SUFpQ3BCLFlBQ1ksR0FBc0IsRUFDdEIsZUFBbUM7UUFEbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBckIvQzs7O1dBR0c7UUFDTSxpQkFBWSxHQUFxQixVQUFVLENBQUM7UUFFOUMsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBRXJDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRUosZUFBVSxH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QUFLLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3JDO3VIQU1nRCxVQUFVO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU9sQyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFNNkIsVUFBVTtzQkFBNUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ1EsYUFBYTtzQkFBckQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBQ0csY0FBYztzQkFBdkQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBQ0ksZ0JBQWdCO3NCQUEzRCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFDSSxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLCtCQUErQjtnQkFHNUMsV0FBVztzQkFEVixlQUFlO3VCQUFDLGVBQWU7O0FBa0VwQyxTQUFTLHFCQUFxQixDQUFDLFlBQTJCO0lBQ3RELE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsS0FBSyxZQUFZLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUgsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsS0FBYSxFQUFFLElBQWlCO0lBQzdELE9BQU8sSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQzNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlUaW1lbGluZUl0ZW0gfSBmcm9tICcuL3RpbWVsaW5lLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoeVRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4vdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBUaHlUaW1lTW9kZSA9ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcblxuZXhwb3J0IGVudW0gVGh5VGltZU1vZGVzIHtcbiAgICBsZWZ0ID0gJ2xlZnQnLFxuICAgIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgICBjZW50ZXIgPSAnY2VudGVyJ1xufVxuXG5leHBvcnQgdHlwZSBUaHlUaW1lRGlyZWN0aW9uID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcblxuLyoqXG4gKiDml7bpl7TovbTnu4Tku7ZcbiAqIEBuYW1lIHRoeS10aW1lbGluZVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc2VsZWN0b3I6ICd0aHktdGltZWxpbmUnLFxuICAgIHByb3ZpZGVyczogW1RoeVRpbWVsaW5lU2VydmljZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGltZWxpbmVJdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVsaW5lIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog6IqC54K55o6S5bqP5piv5ZCm5YCS5bqPXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlSZXZlcnNlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pS55Y+Y5pe26Ze06L205ZKM5YaF5a6555qE55u45a+55L2N572uXG4gICAgICogQHR5cGUgbGVmdCB8IHJpZ2h0IHwgY2VudGVyXG4gICAgICogQGRlZmF1bHQgbGVmdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1vZGU6IFRoeVRpbWVNb2RlO1xuXG4gICAgLyoqXG4gICAgICog5pe26Ze06L2055qE5pa55ZCRXG4gICAgICogQHR5cGUgaG9yaXpvbnRhbCB8IHZlcnRpY2FsXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiBUaHlUaW1lRGlyZWN0aW9uID0gJ3ZlcnRpY2FsJztcblxuICAgIHB1YmxpYyB0aW1lbGluZUl0ZW1zOiBUaHlUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS10aW1lbGluZWApIGlzVGltZWxpbmUgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXRpbWVsaW5lLXJpZ2h0YCkgcmlnaHRUaW1lbGluZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXRpbWVsaW5lLWNlbnRlcmApIGNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktdGltZWxpbmUtdGVtcGxhdGVgKSB0ZW1wbGF0ZVRpbWVsaW5lID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktdGltZWxpbmUtaG9yaXpvbnRhbGApIGhvcml6b250YWwgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGh5VGltZWxpbmVJdGVtKVxuICAgIGxpc3RPZkl0ZW1zOiBRdWVyeUxpc3Q8VGh5VGltZWxpbmVJdGVtPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBUaHlUaW1lbGluZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5TW9kZSwgdGh5UmV2ZXJzZSB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeU1vZGUgJiYgIXRoaXMuaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgaWYgKHRoeU1vZGUuY3VycmVudFZhbHVlID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodFRpbWVsaW5lID0gIXRoaXMudGVtcGxhdGVUaW1lbGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoeU1vZGUuY3VycmVudFZhbHVlID09PSAnY2VudGVyJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyVGltZWxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRUaW1lbGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0VGltZWxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChzaW1wbGVDaGFuZ2VBY3RpdmF0ZWQodGh5TW9kZSkgJiYgIXRoaXMuaG9yaXpvbnRhbCkgfHwgc2ltcGxlQ2hhbmdlQWN0aXZhdGVkKHRoeVJldmVyc2UpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsID0gdGhpcy50aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2UuY2hlY2skLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICB0aGlzLmxpc3RPZkl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGlzdE9mSXRlbXMgJiYgdGhpcy5saXN0T2ZJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMubGlzdE9mSXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5saXN0T2ZJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNMYXN0ID0gIXRoaXMudGh5UmV2ZXJzZSA/IGluZGV4ID09PSBsZW5ndGggLSAxIDogaW5kZXggPT09IDA7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0ZpcnN0ID0gdGhpcy50aHlSZXZlcnNlID8gaW5kZXggPT09IGxlbmd0aCAtIDEgOiBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgICAgICBpdGVtLnJldmVyc2UgPSB0aGlzLnRoeVJldmVyc2U7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wb3NpdGlvbiA9IGdldFRpbWVsaW5lSXRlbVBvc2l0aW9uKGluZGV4LCB0aGlzLnRoeU1vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5kZXNjcmlwdGlvbiB8fCAoaXRlbS50aHlQb3NpdGlvbiAmJiAhdGhpcy5ob3Jpem9udGFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlVGltZWxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50aW1lbGluZUl0ZW1zID0gdGhpcy50aHlSZXZlcnNlID8gdGhpcy5saXN0T2ZJdGVtcy50b0FycmF5KCkucmV2ZXJzZSgpIDogdGhpcy5saXN0T2ZJdGVtcy50b0FycmF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc2ltcGxlQ2hhbmdlQWN0aXZhdGVkKHNpbXBsZUNoYW5nZT86IFNpbXBsZUNoYW5nZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShzaW1wbGVDaGFuZ2UgJiYgKHNpbXBsZUNoYW5nZS5wcmV2aW91c1ZhbHVlICE9PSBzaW1wbGVDaGFuZ2UuY3VycmVudFZhbHVlIHx8IHNpbXBsZUNoYW5nZS5pc0ZpcnN0Q2hhbmdlKCkpKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGltZWxpbmVJdGVtUG9zaXRpb24oaW5kZXg6IG51bWJlciwgbW9kZTogVGh5VGltZU1vZGUpOiBUaHlUaW1lTW9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIG1vZGUgPT09ICdsZWZ0JyA/ICdsZWZ0JyA6IG1vZGUgPT09ICdyaWdodCcgPyAncmlnaHQnIDogbW9kZSA9PT0gJ2NlbnRlcicgJiYgaW5kZXggJSAyID09PSAwID8gJ2xlZnQnIDogJ3JpZ2h0Jztcbn1cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFPVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUl4RCxNQUFNLENBQU4sSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYiwrQkFBZSxDQUFBO0lBQ2YsaUNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBSUQ7Ozs7R0FJRztBQW1CSCxNQUFNLE9BQU8sV0FBVztJQWlDcEIsWUFDWSxHQUFzQixFQUN0QixlQUFtQztRQURuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFyQi9DOzs7V0FHRztRQUNNLGlCQUFZLEdBQXFCLFVBQVUsQ0FBQztRQUU5QyxrQkFBYSxHQUFzQixFQUFFLENBQUM7UUFFckMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFSixlQUFVLEdBQUcsSUFBSSxD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TWdELFVBQVU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBT2xDLE9BQU87c0JBQWYsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQU02QixVQUFVO3NCQUE1QyxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUSxhQUFhO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFDRyxjQUFjO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDSSxnQkFBZ0I7c0JBQTNELFdBQVc7dUJBQUMsNkJBQTZCO2dCQUNJLFVBQVU7c0JBQXZELFdBQVc7dUJBQUMsK0JBQStCO2dCQUc1QyxXQUFXO3NCQURWLGVBQWU7dUJBQUMsZUFBZTs7QUFrRXBDLFNBQVMscUJBQXFCLENBQUMsWUFBMkI7SUFDdEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxLQUFLLFlBQVksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxSCxDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxLQUFhLEVBQUUsSUFBaUI7SUFDN0QsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDM0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRoeVRpbWVsaW5lSXRlbSB9IGZyb20gJy4vdGltZWxpbmUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5VGltZWxpbmVTZXJ2aWNlIH0gZnJvbSAnLi90aW1lbGluZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IHR5cGUgVGh5VGltZU1vZGUgPSAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG5cbmV4cG9ydCBlbnVtIFRoeVRpbWVNb2RlcyB7XG4gICAgbGVmdCA9ICdsZWZ0JyxcbiAgICByaWdodCA9ICdyaWdodCcsXG4gICAgY2VudGVyID0gJ2NlbnRlcidcbn1cblxuZXhwb3J0IHR5cGUgVGh5VGltZURpcmVjdGlvbiA9ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG5cbi8qKlxuICog5pe26Ze06L2057uE5Lu2XG4gKiBAbmFtZSB0aHktdGltZWxpbmVcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHNlbGVjdG9yOiAndGh5LXRpbWVsaW5lJyxcbiAgICBwcm92aWRlcnM6IFtUaHlUaW1lbGluZVNlcnZpY2VdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHRpbWVsaW5lSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVsaW5lIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog6IqC54K55o6S5bqP5piv5ZCm5YCS5bqPXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlSZXZlcnNlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pS55Y+Y5pe26Ze06L205ZKM5YaF5a6555qE55u45a+55L2N572uXG4gICAgICogQHR5cGUgbGVmdCB8IHJpZ2h0IHwgY2VudGVyXG4gICAgICogQGRlZmF1bHQgbGVmdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1vZGU6IFRoeVRpbWVNb2RlO1xuXG4gICAgLyoqXG4gICAgICog5pe26Ze06L2055qE5pa55ZCRXG4gICAgICogQHR5cGUgaG9yaXpvbnRhbCB8IHZlcnRpY2FsXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiBUaHlUaW1lRGlyZWN0aW9uID0gJ3ZlcnRpY2FsJztcblxuICAgIHB1YmxpYyB0aW1lbGluZUl0ZW1zOiBUaHlUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS10aW1lbGluZWApIGlzVGltZWxpbmUgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXRpbWVsaW5lLXJpZ2h0YCkgcmlnaHRUaW1lbGluZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXRpbWVsaW5lLWNlbnRlcmApIGNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktdGltZWxpbmUtdGVtcGxhdGVgKSB0ZW1wbGF0ZVRpbWVsaW5lID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktdGltZWxpbmUtaG9yaXpvbnRhbGApIGhvcml6b250YWwgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGh5VGltZWxpbmVJdGVtKVxuICAgIGxpc3RPZkl0ZW1zOiBRdWVyeUxpc3Q8VGh5VGltZWxpbmVJdGVtPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBUaHlUaW1lbGluZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5TW9kZSwgdGh5UmV2ZXJzZSB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeU1vZGUgJiYgIXRoaXMuaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgaWYgKHRoeU1vZGUuY3VycmVudFZhbHVlID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodFRpbWVsaW5lID0gIXRoaXMudGVtcGxhdGVUaW1lbGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoeU1vZGUuY3VycmVudFZhbHVlID09PSAnY2VudGVyJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyVGltZWxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRUaW1lbGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0VGltZWxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbnRlclRpbWVsaW5lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChzaW1wbGVDaGFuZ2VBY3RpdmF0ZWQodGh5TW9kZSkgJiYgIXRoaXMuaG9yaXpvbnRhbCkgfHwgc2ltcGxlQ2hhbmdlQWN0aXZhdGVkKHRoeVJldmVyc2UpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsID0gdGhpcy50aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2UuY2hlY2skLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICB0aGlzLmxpc3RPZkl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGlzdE9mSXRlbXMgJiYgdGhpcy5saXN0T2ZJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMubGlzdE9mSXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5saXN0T2ZJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNMYXN0ID0gIXRoaXMudGh5UmV2ZXJzZSA/IGluZGV4ID09PSBsZW5ndGggLSAxIDogaW5kZXggPT09IDA7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0ZpcnN0ID0gdGhpcy50aHlSZXZlcnNlID8gaW5kZXggPT09IGxlbmd0aCAtIDEgOiBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgICAgICBpdGVtLnJldmVyc2UgPSB0aGlzLnRoeVJldmVyc2U7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wb3NpdGlvbiA9IGdldFRpbWVsaW5lSXRlbVBvc2l0aW9uKGluZGV4LCB0aGlzLnRoeU1vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5kZXNjcmlwdGlvbiB8fCAoaXRlbS50aHlQb3NpdGlvbiAmJiAhdGhpcy5ob3Jpem9udGFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlVGltZWxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50aW1lbGluZUl0ZW1zID0gdGhpcy50aHlSZXZlcnNlID8gdGhpcy5saXN0T2ZJdGVtcy50b0FycmF5KCkucmV2ZXJzZSgpIDogdGhpcy5saXN0T2ZJdGVtcy50b0FycmF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc2ltcGxlQ2hhbmdlQWN0aXZhdGVkKHNpbXBsZUNoYW5nZT86IFNpbXBsZUNoYW5nZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShzaW1wbGVDaGFuZ2UgJiYgKHNpbXBsZUNoYW5nZS5wcmV2aW91c1ZhbHVlICE9PSBzaW1wbGVDaGFuZ2UuY3VycmVudFZhbHVlIHx8IHNpbXBsZUNoYW5nZS5pc0ZpcnN0Q2hhbmdlKCkpKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGltZWxpbmVJdGVtUG9zaXRpb24oaW5kZXg6IG51bWJlciwgbW9kZTogVGh5VGltZU1vZGUpOiBUaHlUaW1lTW9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIG1vZGUgPT09ICdsZWZ0JyA/ICdsZWZ0JyA6IG1vZGUgPT09ICdyaWdodCcgPyAncmlnaHQnIDogbW9kZSA9PT0gJ2NlbnRlcicgJiYgaW5kZXggJSAyID09PSAwID8gJ2xlZnQnIDogJ3JpZ2h0Jztcbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import { Subject } from 'rxjs';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { thyTooltipAnimations } from './tooltip-animations';
5
5
  import { coerceArray } from 'ngx-tethys/util';
6
- import { NgIf, NgTemplateOutlet } from '@angular/common';
6
+ import { NgTemplateOutlet } from '@angular/common';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
9
9
  * @internal
@@ -87,7 +87,7 @@ export class ThyTooltip {
87
87
  // this.markForCheck();
88
88
  }
89
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTooltip, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTooltip, isStandalone: true, selector: "thy-tooltip", host: { listeners: { "@state.start": "animationStart()", "@state.done": "animationDone($event)" }, properties: { "@state": "visibility", "class.thy-tooltip": "this.addTooltipContainerClass" } }, ngImport: i0, template: "<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n <ng-container *ngIf=\"isTemplateRef; else text\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n </ng-container>\n <ng-template #text>\n {{ content }}\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [thyTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTooltip, isStandalone: true, selector: "thy-tooltip", host: { listeners: { "@state.start": "animationStart()", "@state.done": "animationDone($event)" }, properties: { "@state": "visibility", "class.thy-tooltip": "this.addTooltipContainerClass" } }, ngImport: i0, template: "<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [thyTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
91
91
  }
92
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTooltip, decorators: [{
93
93
  type: Component,
@@ -95,9 +95,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
95
95
  '[@state]': 'visibility',
96
96
  '(@state.start)': 'animationStart()',
97
97
  '(@state.done)': 'animationDone($event)'
98
- }, standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n <ng-container *ngIf=\"isTemplateRef; else text\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n </ng-container>\n <ng-template #text>\n {{ content }}\n </ng-template>\n</div>\n" }]
98
+ }, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n" }]
99
99
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { addTooltipContainerClass: [{
100
100
  type: HostBinding,
101
101
  args: [`class.thy-tooltip`]
102
102
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXpEOztHQUVHO0FBZUgsTUFBTSxPQUFPLFVBQVU7SUF1Qm5CLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBd0M7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3RELENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXpDdEIsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBTWpELFdBQU0sR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0IsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXlCLFNBQVMsQ0FBQztRQU03QyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUU5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztJQXFCcUMsQ0FBQztJQUU1RCxRQUFRLEtBQUksQ0FBQztJQUViLFlBQVk7UUFDUixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYTtRQUNkLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFFRCw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYTtRQUNkLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXFCO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUErQixDQUFDO1FBQ3RELElBQUksT0FBTyxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUEwQjtRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsdUJBQXVCO0lBQzNCLENBQUM7OEdBMUdRLFVBQVU7a0dBQVYsVUFBVSwwUUMxQnZCLDJUQVNBLDRDRGVjLElBQUksNkZBQUUsZ0JBQWdCLHNJQVBwQixDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQzs7MkZBU3RDLFVBQVU7a0JBZHRCLFNBQVM7K0JBQ0ksYUFBYSxpQkFFUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFFBQ3pDO3dCQUNGLFVBQVUsRUFBRSxZQUFZO3dCQUN4QixnQkFBZ0IsRUFBRSxrQkFBa0I7d0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUI7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDO3NGQUdDLHdCQUF3QjtzQkFBekQsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RCaW5kaW5nLCBUZW1wbGF0ZVJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeVRvb2x0aXBWaXNpYmlsaXR5IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdGh5VG9vbHRpcEFuaW1hdGlvbnMgfSBmcm9tICcuL3Rvb2x0aXAtYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdG9vbHRpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW3RoeVRvb2x0aXBBbmltYXRpb25zLnRvb2x0aXBTdGF0ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW0BzdGF0ZV0nOiAndmlzaWJpbGl0eScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdhbmltYXRpb25TdGFydCgpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnYW5pbWF0aW9uRG9uZSgkZXZlbnQpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VG9vbHRpcCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktdG9vbHRpcGApIGFkZFRvb2x0aXBDb250YWluZXJDbGFzcyA9IHRydWU7XG5cbiAgICBfY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgZGF0YTogYW55O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkhpZGU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBjbG9zZU9uSW50ZXJhY3Rpb24gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICB2aXNpYmlsaXR5OiBUaHlUb29sdGlwVmlzaWJpbGl0eSA9ICdpbml0aWFsJztcblxuICAgIHNob3dUaW1lb3V0SWQ6IG51bWJlciB8IG51bGwgfCBhbnk7XG5cbiAgICBoaWRlVGltZW91dElkOiBudW1iZXIgfCBudWxsIHwgYW55O1xuXG4gICAgdG9vbHRpcENsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpc1RlbXBsYXRlUmVmID0gZmFsc2U7XG5cbiAgICBnZXQgY29udGVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7XG4gICAgfVxuXG4gICAgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaXNUZW1wbGF0ZVJlZiA9IHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCkge1xuICAgICAgICBsZXQgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwQ2xhc3Nlcykge1xuICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuY29uY2F0KHRoaXMudG9vbHRpcENsYXNzZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoY2xhc3Nlcyk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBtYXJrRm9yQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgaXNWaXNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gICAgfVxuXG4gICAgc2hvdyhkZWxheTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8vIENhbmNlbCB0aGUgZGVsYXllZCBoaWRlIGlmIGl0IGlzIHNjaGVkdWxlZFxuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb2R5IGludGVyYWN0aW9ucyBzaG91bGQgY2FuY2VsIHRoZSB0b29sdGlwIGlmIHRoZXJlIGlzIGEgZGVsYXkgaW4gc2hvd2luZy5cbiAgICAgICAgdGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgaGlkZShkZWxheTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8vIENhbmNlbCB0aGUgZGVsYXllZCBzaG93IGlmIGl0IGlzIHNjaGVkdWxlZFxuICAgICAgICBpZiAodGhpcy5zaG93VGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGVUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICBhbmltYXRpb25TdGFydCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b1N0YXRlID0gZXZlbnQudG9TdGF0ZSBhcyBUaHlUb29sdGlwVmlzaWJpbGl0eTtcbiAgICAgICAgaWYgKHRvU3RhdGUgPT09ICdoaWRkZW4nICYmICF0aGlzLmlzVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLm9uSGlkZS5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvU3RhdGUgPT09ICd2aXNpYmxlJyB8fCB0b1N0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU9uSW50ZXJhY3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWZ0ZXJIaWRkZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9uSGlkZS5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXRUb29sdGlwQ2xhc3MoY2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy50b29sdGlwQ2xhc3NlcyA9IGNvZXJjZUFycmF5KGNsYXNzZXMpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICAgICAgLy8gdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LXRvb2x0aXAtYXJyb3dcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0aHktdG9vbHRpcC1jb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmOyBlbHNlIHRleHRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgIHt7IGNvbnRlbnQgfX1cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFlSCxNQUFNLE9BQU8sVUFBVTtJQXVCbkIsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUF3QztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssWUFBWSxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FB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QVksQ0FBQzs7MkZBU3RDLFVBQVU7a0JBZHRCLFNBQVM7K0JBQ0ksYUFBYSxpQkFFUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFFBQ3pDO3dCQUNGLFVBQVUsRUFBRSxZQUFZO3dCQUN4QixnQkFBZ0IsRUFBRSxrQkFBa0I7d0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUI7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUM7c0ZBR08sd0JBQXdCO3NCQUF6RCxXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgSG9zdEJpbmRpbmcsIFRlbXBsYXRlUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5VG9vbHRpcFZpc2liaWxpdHkgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyB0aHlUb29sdGlwQW5pbWF0aW9ucyB9IGZyb20gJy4vdG9vbHRpcC1hbmltYXRpb25zJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10b29sdGlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbdGh5VG9vbHRpcEFuaW1hdGlvbnMudG9vbHRpcFN0YXRlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbQHN0YXRlXSc6ICd2aXNpYmlsaXR5JyxcbiAgICAgICAgJyhAc3RhdGUuc3RhcnQpJzogJ2FuaW1hdGlvblN0YXJ0KCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdhbmltYXRpb25Eb25lKCRldmVudCknXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUb29sdGlwIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS10b29sdGlwYCkgYWRkVG9vbHRpcENvbnRhaW5lckNsYXNzID0gdHJ1ZTtcblxuICAgIF9jb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBkYXRhOiBhbnk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uSGlkZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGNsb3NlT25JbnRlcmFjdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHZpc2liaWxpdHk6IFRoeVRvb2x0aXBWaXNpYmlsaXR5ID0gJ2luaXRpYWwnO1xuXG4gICAgc2hvd1RpbWVvdXRJZDogbnVtYmVyIHwgbnVsbCB8IGFueTtcblxuICAgIGhpZGVUaW1lb3V0SWQ6IG51bWJlciB8IG51bGwgfCBhbnk7XG5cbiAgICB0b29sdGlwQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlzVGVtcGxhdGVSZWYgPSBmYWxzZTtcblxuICAgIGdldCBjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pc1RlbXBsYXRlUmVmID0gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBDbGFzc2VzKSB7XG4gICAgICAgICAgICBjbGFzc2VzID0gY2xhc3Nlcy5jb25jYXQodGhpcy50b29sdGlwQ2xhc3Nlcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc2VzKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBpc1Zpc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2liaWxpdHkgPT09ICd2aXNpYmxlJztcbiAgICB9XG5cbiAgICBzaG93KGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2FuY2VsIHRoZSBkZWxheWVkIGhpZGUgaWYgaXQgaXMgc2NoZWR1bGVkXG4gICAgICAgIGlmICh0aGlzLmhpZGVUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUaW1lb3V0SWQpO1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJvZHkgaW50ZXJhY3Rpb25zIHNob3VsZCBjYW5jZWwgdGhlIHRvb2x0aXAgaWYgdGhlcmUgaXMgYSBkZWxheSBpbiBzaG93aW5nLlxuICAgICAgICB0aGlzLmNsb3NlT25JbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgdGhpcy5zaG93VGltZW91dElkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICBoaWRlKGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2FuY2VsIHRoZSBkZWxheWVkIHNob3cgaWYgaXQgaXMgc2NoZWR1bGVkXG4gICAgICAgIGlmICh0aGlzLnNob3dUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0SWQpO1xuICAgICAgICAgICAgdGhpcy5zaG93VGltZW91dElkID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB0aGlzLmhpZGVUaW1lb3V0SWQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuICAgIH1cblxuICAgIGFuaW1hdGlvblN0YXJ0KCkge1xuICAgICAgICB0aGlzLmNsb3NlT25JbnRlcmFjdGlvbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIGFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvU3RhdGUgPSBldmVudC50b1N0YXRlIGFzIFRoeVRvb2x0aXBWaXNpYmlsaXR5O1xuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gJ2hpZGRlbicgJiYgIXRoaXMuaXNWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMub25IaWRlLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gJ3Zpc2libGUnIHx8IHRvU3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlT25JbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZnRlckhpZGRlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25IaWRlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldFRvb2x0aXBDbGFzcyhjbGFzc2VzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLnRvb2x0aXBDbGFzc2VzID0gY29lcmNlQXJyYXkoY2xhc3Nlcyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICAvLyB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktdG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxuPGRpdiBjbGFzcz1cInRoeS10b29sdGlwLWNvbnRlbnRcIj5cbiAgQGlmIChpc1RlbXBsYXRlUmVmKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgfSBAZWxzZSB7XG4gICAge3sgY29udGVudCB9fVxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { CdkDrag, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
2
2
  import { Component, EventEmitter, HostBinding, Input, IterableDiffers, Output, TemplateRef, ViewEncapsulation } from '@angular/core';
3
- import { NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
4
4
  import { ThyList, ThyListItem } from 'ngx-tethys/list';
5
5
  import { ThyDragDropDirective } from 'ngx-tethys/shared';
6
6
  import * as i0 from "@angular/core";
@@ -115,11 +115,11 @@ export class ThyTransferList {
115
115
  });
116
116
  }
117
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransferList, deps: [{ token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTransferList, isStandalone: true, selector: "thy-transfer-list", inputs: { title: "title", items: "items", draggable: "draggable", canLock: "canLock", maxLock: "maxLock", max: "max", disabled: "disabled", template: "template", contentRef: ["renderContentRef", "contentRef"] }, outputs: { draggableUpdate: "draggableUpdate", selectItem: "selectItem", unselectItem: "unselectItem" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}<span *ngIf=\"max\"> (\u4E0A\u9650{{ max }}\u4E2A)</span></span\n >\n</div>\n<ng-container *ngIf=\"!contentRef; else renderContent\">\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n <ng-container *ngIf=\"canLock\">\n <div class=\"thy-transfer-list-group-name\">\u9501\u5B9A (\u4E0A\u9650{{ maxLock }}\u4E2A)</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\"\n >\n <div class=\"cdk-drop-list-empty\" *ngIf=\"lockItems.length === 0\"></div>\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n *ngFor=\"let item of lockItems\"\n [ngClass]=\"{ active: item.checked }\"\n >\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n </thy-list>\n\n <div class=\"thy-transfer-list-group-name\">\u672A\u9501\u5B9A</div>\n </ng-container>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\"\n >\n <div class=\"cdk-drop-list-empty\" *ngIf=\"unlockItems.length === 0\"></div>\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n *ngFor=\"let item of unlockItems\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\"\n >\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n </thy-list>\n </div>\n</ng-container>\n\n<ng-template #renderContent>\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: ThyList, selector: "thy-list", inputs: ["thyDivided"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: ThyDragDropDirective, selector: "[thyDragDrop]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTransferList, isStandalone: true, selector: "thy-transfer-list", inputs: { title: "title", items: "items", draggable: "draggable", canLock: "canLock", maxLock: "maxLock", max: "max", disabled: "disabled", template: "template", contentRef: ["renderContentRef", "contentRef"] }, outputs: { draggableUpdate: "draggableUpdate", selectItem: "selectItem", unselectItem: "unselectItem" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}\n @if (max) {\n <span> (\u4E0A\u9650{{ max }}\u4E2A)</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">\u9501\u5B9A (\u4E0A\u9650{{ maxLock }}\u4E2A)</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">\u672A\u9501\u5B9A</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: ThyList, selector: "thy-list", inputs: ["thyDivided"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: ThyDragDropDirective, selector: "[thyDragDrop]" }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
119
119
  }
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransferList, decorators: [{
121
121
  type: Component,
122
- args: [{ selector: 'thy-transfer-list', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf, CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, NgFor, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet], template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}<span *ngIf=\"max\"> (\u4E0A\u9650{{ max }}\u4E2A)</span></span\n >\n</div>\n<ng-container *ngIf=\"!contentRef; else renderContent\">\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n <ng-container *ngIf=\"canLock\">\n <div class=\"thy-transfer-list-group-name\">\u9501\u5B9A (\u4E0A\u9650{{ maxLock }}\u4E2A)</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\"\n >\n <div class=\"cdk-drop-list-empty\" *ngIf=\"lockItems.length === 0\"></div>\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n *ngFor=\"let item of lockItems\"\n [ngClass]=\"{ active: item.checked }\"\n >\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n </thy-list>\n\n <div class=\"thy-transfer-list-group-name\">\u672A\u9501\u5B9A</div>\n </ng-container>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\"\n >\n <div class=\"cdk-drop-list-empty\" *ngIf=\"unlockItems.length === 0\"></div>\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n *ngFor=\"let item of unlockItems\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\"\n >\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n </thy-list>\n </div>\n</ng-container>\n\n<ng-template #renderContent>\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"\n ></ng-container>\n </div>\n</ng-template>\n" }]
122
+ args: [{ selector: 'thy-transfer-list', encapsulation: ViewEncapsulation.None, standalone: true, imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet], template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} \u00B7 {{ items?.length }}\n @if (max) {\n <span> (\u4E0A\u9650{{ max }}\u4E2A)</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">\u9501\u5B9A (\u4E0A\u9650{{ maxLock }}\u4E2A)</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">\u672A\u9501\u5B9A</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n" }]
123
123
  }], ctorParameters: () => [{ type: i0.IterableDiffers }], propDecorators: { title: [{
124
124
  type: Input
125
125
  }], items: [{
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
149
149
  type: HostBinding,
150
150
  args: ['class']
151
151
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNmZXIvdHJhbnNmZXItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdHJhbnNmZXIvdHJhbnNmZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqSSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLGVBQWUsRUFFZixNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUd6RDs7R0FFRztBQVFILE1BQU0sT0FBTyxlQUFlO0lBcUN4QixZQUFvQixPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQXBDckMsY0FBUyxHQUFzQixFQUFFLENBQUM7UUFFbEMsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBMEJqQyxvQkFBZSxHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVuRyxlQUFVLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRTlGLGlCQUFZLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO1FBRXBGLGNBQVMsR0FBRyxtQkFBbUIsQ0FBQztRQWtFdEQsMkJBQXNCLEdBQUcsR0FBRyxFQUFFO1lBQzFCLE9B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T0FBTyw2RUFBRSxXQUFXLDhmQUFFLG9CQUFvQiwwREFBRSxLQUFLLG1IQUFFLFdBQVcsMEVBQUUsT0FBTyx3Y0FBRSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRTNILGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0ksbUJBQW1CLGlCQUVkLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDO29GQWE1SCxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVxQixVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFFZixlQUFlO3NCQUF4QixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTTtnQkFFZSxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIENka0Ryb3BMaXN0R3JvdXAsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5TGlzdCwgVGh5TGlzdEl0ZW0gfSBmcm9tICduZ3gtdGV0aHlzL2xpc3QnO1xuaW1wb3J0IHsgVGh5RHJhZ0Ryb3BEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBJbm5lclRyYW5zZmVyRHJhZ0V2ZW50LCBUaHlUcmFuc2ZlckRyYWdFdmVudCwgVGh5VHJhbnNmZXJJdGVtLCBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50IH0gZnJvbSAnLi90cmFuc2Zlci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRyYW5zZmVyLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIENka0Ryb3BMaXN0R3JvdXAsIFRoeUxpc3QsIENka0Ryb3BMaXN0LCBUaHlEcmFnRHJvcERpcmVjdGl2ZSwgTmdGb3IsIFRoeUxpc3RJdGVtLCBDZGtEcmFnLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUcmFuc2Zlckxpc3QgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2sge1xuICAgIHB1YmxpYyBsb2NrSXRlbXM6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgdW5sb2NrSXRlbXM6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwcml2YXRlIF9kaWZmOiBJdGVyYWJsZURpZmZlcjxUaHlUcmFuc2Zlckl0ZW0+O1xuXG4gICAgcHJpdmF0ZSBfbG9ja0RpZmY6IEl0ZXJhYmxlRGlmZmVyPFRoeVRyYW5zZmVySXRlbT47XG5cbiAgICBwcml2YXRlIF91bmxvY2tEaWZmOiBJdGVyYWJsZURpZmZlcjxUaHlUcmFuc2Zlckl0ZW0+O1xuXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBUaHlUcmFuc2Zlckl0ZW1bXTtcblxuICAgIEBJbnB1dCgpIGRyYWdnYWJsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGNhbkxvY2s6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBtYXhMb2NrOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBtYXg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoJ3JlbmRlckNvbnRlbnRSZWYnKSBjb250ZW50UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQE91dHB1dCgpIGRyYWdnYWJsZVVwZGF0ZTogRXZlbnRFbWl0dGVyPElubmVyVHJhbnNmZXJEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbm5lclRyYW5zZmVyRHJhZ0V2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpIHNlbGVjdEl0ZW06IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlclNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJTZWxlY3RFdmVudD4oKTtcblxuICAgIEBPdXRwdXQoKSB1bnNlbGVjdEl0ZW06IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlclNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJTZWxlY3RFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAndGh5LXRyYW5zZmVyLWxpc3QnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fY29tYmluZVRyYW5zZmVyRGF0YSgpO1xuICAgICAgICBpZiAodGhpcy5jYW5Mb2NrKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NrRGlmZiA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMubG9ja0l0ZW1zKS5jcmVhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VubG9ja0RpZmYgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLnVubG9ja0l0ZW1zKS5jcmVhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3VubG9ja0RpZmYgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLnVubG9ja0l0ZW1zKS5jcmVhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaWZmID0gdGhpcy5kaWZmZXJzLmZpbmQodGhpcy5pdGVtcykuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tYmluZVRyYW5zZmVyRGF0YSgpIHtcbiAgICAgICAgdGhpcy5sb2NrSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy51bmxvY2tJdGVtcyA9IFtdO1xuICAgICAgICBpZiAodGhpcy5jYW5Mb2NrKSB7XG4gICAgICAgICAgICAodGhpcy5pdGVtcyB8fCBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pc0xvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NrSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVubG9ja0l0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVubG9ja0l0ZW1zID0gdGhpcy5pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2FmdGVyQ2hhbmdlSXRlbXMoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPFRoeVRyYW5zZmVySXRlbT4sIGl0ZW1zOiBUaHlUcmFuc2Zlckl0ZW1bXSkge1xuICAgICAgICAvLyDmlbDmja7lj5HnlJ/lj5jljJbml7bvvIzmm7TmlLlvcmRlcuWAvFxuICAgICAgICBjaGFuZ2VzLmZvckVhY2hBZGRlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgICAgICAgIHJlY29yZC5pdGVtLm9yZGVyID0gcmVjb3JkLmN1cnJlbnRJbmRleDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNoYW5nZXMuZm9yRWFjaFJlbW92ZWRJdGVtKCgpID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5vcmRlciA9IGluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjaGFuZ2VzLmZvckVhY2hNb3ZlZEl0ZW0oKCkgPT4ge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLm9yZGVyID0gaW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fZGlmZi5kaWZmKHRoaXMuaXRlbXMpO1xuICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fYWZ0ZXJDaGFuZ2VJdGVtcyhjaGFuZ2VzLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbWJpbmVUcmFuc2ZlckRhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbG9ja0RpZmYpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tDaGFuZ2VzID0gdGhpcy5fbG9ja0RpZmYuZGlmZih0aGlzLmxvY2tJdGVtcyk7XG4gICAgICAgICAgICBpZiAobG9ja0NoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlckNoYW5nZUl0ZW1zKGxvY2tDaGFuZ2VzLCB0aGlzLmxvY2tJdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdW5sb2NrQ2hhbmdlcyA9IHRoaXMuX3VubG9ja0RpZmYuZGlmZih0aGlzLnVubG9ja0l0ZW1zKTtcbiAgICAgICAgaWYgKHVubG9ja0NoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2FmdGVyQ2hhbmdlSXRlbXModW5sb2NrQ2hhbmdlcywgdGhpcy51bmxvY2tJdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2NrTGlzdEVudGVyUHJlZGljYXRlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NrSXRlbXMubGVuZ3RoIDwgdGhpcy5tYXhMb2NrO1xuICAgIH07XG5cbiAgICB1bmxvY2tMaXN0RW50ZXJQcmVkaWNhdGUgPSAoZXZlbnQ6IENka0RyYWc8VGh5VHJhbnNmZXJJdGVtPikgPT4ge1xuICAgICAgICByZXR1cm4gIWV2ZW50LmRhdGEuaXNGaXhlZDtcbiAgICB9O1xuXG4gICAgb25TZWxlY3RJdGVtID0gKGl0ZW06IFRoeVRyYW5zZmVySXRlbSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdCh7IGl0ZW0gfSk7XG4gICAgfTtcblxuICAgIG9uVW5zZWxlY3RJdGVtID0gKGl0ZW06IFRoeVRyYW5zZmVySXRlbSkgPT4ge1xuICAgICAgICB0aGlzLnVuc2VsZWN0SXRlbS5lbWl0KHsgaXRlbSB9KTtcbiAgICB9O1xuXG4gICAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8VGh5VHJhbnNmZXJJdGVtW10+KSB7XG4gICAgICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cmFuc2ZlckFycmF5SXRlbShldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLCBldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIChldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhIHx8IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNMb2NrID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQgPT09ICdsb2NrJztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAoZXZlbnQuY29udGFpbmVyLmRhdGEgfHwgW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0xvY2sgPSBldmVudC5jb250YWluZXIuaWQgPT09ICdsb2NrJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRyYWdFdmVudDogVGh5VHJhbnNmZXJEcmFnRXZlbnQgPSB7XG4gICAgICAgICAgICBtb2RlbDogZXZlbnQuaXRlbS5kYXRhLFxuICAgICAgICAgICAgbW9kZWxzOiBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgICAgIG9sZEluZGV4OiBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgbmV3SW5kZXg6IGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRyYWdnYWJsZVVwZGF0ZS5lbWl0KHtcbiAgICAgICAgICAgIGRyYWdFdmVudDogZHJhZ0V2ZW50LFxuICAgICAgICAgICAgbGlzdERhdGE6IHsgbG9jazogdGhpcy5sb2NrSXRlbXMsIHVubG9jazogdGhpcy51bmxvY2tJdGVtcyB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1oZWFkZXJcIj5cbiAgPHNwYW4gY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1oZWFkZXItdGl0bGVcIlxuICAgID57eyB0aXRsZSB9fSDCtyB7eyBpdGVtcz8ubGVuZ3RoIH19PHNwYW4gKm5nSWY9XCJtYXhcIj4gKOS4iumZkHt7IG1heCB9feS4qik8L3NwYW4+PC9zcGFuXG4gID5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZW50UmVmOyBlbHNlIHJlbmRlckNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWJvZHlcIiBjZGtEcm9wTGlzdEdyb3VwIFtjZGtEcm9wTGlzdEdyb3VwRGlzYWJsZWRdPVwiIWRyYWdnYWJsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5Mb2NrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXRyYW5zZmVyLWxpc3QtZ3JvdXAtbmFtZVwiPumUgeWumiAo5LiK6ZmQe3sgbWF4TG9jayB9feS4qik8L2Rpdj5cbiAgICAgIDx0aHktbGlzdFxuICAgICAgICBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWNvbnRlbnRcIlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICB0aHlEcmFnRHJvcFxuICAgICAgICBpZD1cImxvY2tcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImxvY2tJdGVtc1wiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwibG9ja0xpc3RFbnRlclByZWRpY2F0ZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZGstZHJvcC1saXN0LWVtcHR5XCIgKm5nSWY9XCJsb2NrSXRlbXMubGVuZ3RoID09PSAwXCI+PC9kaXY+XG4gICAgICAgIDx0aHktbGlzdC1pdGVtXG4gICAgICAgICAgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1jb250ZW50LWl0ZW0gdGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2NrSXRlbXNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLmNoZWNrZWQgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGh5LWxpc3QtaXRlbT5cbiAgICAgIDwvdGh5LWxpc3Q+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ncm91cC1uYW1lXCI+5pyq6ZSB5a6aPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHRoeS1saXN0XG4gICAgICBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWNvbnRlbnRcIlxuICAgICAgY2RrRHJvcExpc3RcbiAgICAgIHRoeURyYWdEcm9wXG4gICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ2dhYmxlXCJcbiAgICAgIGlkPVwidW5sb2NrXCJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwidW5sb2NrSXRlbXNcIlxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwidW5sb2NrTGlzdEVudGVyUHJlZGljYXRlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2RrLWRyb3AtbGlzdC1lbXB0eVwiICpuZ0lmPVwidW5sb2NrSXRlbXMubGVuZ3RoID09PSAwXCI+PC9kaXY+XG4gICAgICA8dGh5LWxpc3QtaXRlbVxuICAgICAgICBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWNvbnRlbnQtaXRlbSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVubG9ja0l0ZW1zXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0uY2hlY2tlZCwgZGlzYWJsZWQ6IGRpc2FibGVkICYmIGl0ZW0uZGlyZWN0aW9uID09PSAnbGVmdCcgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvdGh5LWxpc3QtaXRlbT5cbiAgICA8L3RoeS1saXN0PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3JlbmRlckNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgY29udGVudFJlZjtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICRpbXBsaWNpdDogaXRlbXMsXG4gICAgICAgICAgb25TZWxlY3RJdGVtOiBvblNlbGVjdEl0ZW0sXG4gICAgICAgICAgb25VbnNlbGVjdEl0ZW06IG9uVW5zZWxlY3RJdGVtXG4gICAgICAgIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNmZXIvdHJhbnNmZXItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdHJhbnNmZXIvdHJhbnNmZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqSSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLGVBQWUsRUFFZixNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHekQ7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZUFBZTtJQXFDeEIsWUFBb0IsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFwQ3JDLGNBQVMsR0FBc0IsRUFBRSxDQUFDO1FBRWxDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQTBCakMsb0JBQWUsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFbkcsZUFBVSxHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUU5RixpQkFBWSxHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUVwRixjQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFrRXRELDJCQUFzQixHQUFHLEdBQUcsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENB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QUFFLFdBQVcsMEVBQUUsT0FBTyx3Y0FBRSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRTlHLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0ksbUJBQW1CLGlCQUVkLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQztvRkFhL0csS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFcUIsVUFBVTtzQkFBcEMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBRWYsZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRWUsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0LCBDZGtEcm9wTGlzdEdyb3VwLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZUNoYW5nZXMsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5TGlzdCwgVGh5TGlzdEl0ZW0gfSBmcm9tICduZ3gtdGV0aHlzL2xpc3QnO1xuaW1wb3J0IHsgVGh5RHJhZ0Ryb3BEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBJbm5lclRyYW5zZmVyRHJhZ0V2ZW50LCBUaHlUcmFuc2ZlckRyYWdFdmVudCwgVGh5VHJhbnNmZXJJdGVtLCBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50IH0gZnJvbSAnLi90cmFuc2Zlci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRyYW5zZmVyLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Nka0Ryb3BMaXN0R3JvdXAsIFRoeUxpc3QsIENka0Ryb3BMaXN0LCBUaHlEcmFnRHJvcERpcmVjdGl2ZSwgVGh5TGlzdEl0ZW0sIENka0RyYWcsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRyYW5zZmVyTGlzdCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gICAgcHVibGljIGxvY2tJdGVtczogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHB1YmxpYyB1bmxvY2tJdGVtczogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHByaXZhdGUgX2RpZmY6IEl0ZXJhYmxlRGlmZmVyPFRoeVRyYW5zZmVySXRlbT47XG5cbiAgICBwcml2YXRlIF9sb2NrRGlmZjogSXRlcmFibGVEaWZmZXI8VGh5VHJhbnNmZXJJdGVtPjtcblxuICAgIHByaXZhdGUgX3VubG9ja0RpZmY6IEl0ZXJhYmxlRGlmZmVyPFRoeVRyYW5zZmVySXRlbT47XG5cbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaXRlbXM6IFRoeVRyYW5zZmVySXRlbVtdO1xuXG4gICAgQElucHV0KCkgZHJhZ2dhYmxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgY2FuTG9jazogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIG1heExvY2s6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIG1heDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgncmVuZGVyQ29udGVudFJlZicpIGNvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAT3V0cHV0KCkgZHJhZ2dhYmxlVXBkYXRlOiBFdmVudEVtaXR0ZXI8SW5uZXJUcmFuc2ZlckRyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElubmVyVHJhbnNmZXJEcmFnRXZlbnQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0SXRlbTogRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlclNlbGVjdEV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpIHVuc2VsZWN0SXRlbTogRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlclNlbGVjdEV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RDbGFzcyA9ICd0aHktdHJhbnNmZXItbGlzdCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLl9jb21iaW5lVHJhbnNmZXJEYXRhKCk7XG4gICAgICAgIGlmICh0aGlzLmNhbkxvY2spIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2tEaWZmID0gdGhpcy5kaWZmZXJzLmZpbmQodGhpcy5sb2NrSXRlbXMpLmNyZWF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5fdW5sb2NrRGlmZiA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMudW5sb2NrSXRlbXMpLmNyZWF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdW5sb2NrRGlmZiA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMudW5sb2NrSXRlbXMpLmNyZWF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpZmYgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLml0ZW1zKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21iaW5lVHJhbnNmZXJEYXRhKCkge1xuICAgICAgICB0aGlzLmxvY2tJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnVubG9ja0l0ZW1zID0gW107XG4gICAgICAgIGlmICh0aGlzLmNhbkxvY2spIHtcbiAgICAgICAgICAgICh0aGlzLml0ZW1zIHx8IFtdKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmlzTG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2tJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5sb2NrSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudW5sb2NrSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWZ0ZXJDaGFuZ2VJdGVtcyhjaGFuZ2VzOiBJdGVyYWJsZUNoYW5nZXM8VGh5VHJhbnNmZXJJdGVtPiwgaXRlbXM6IFRoeVRyYW5zZmVySXRlbVtdKSB7XG4gICAgICAgIC8vIOaVsOaNruWPkeeUn+WPmOWMluaXtu+8jOabtOaUuW9yZGVy5YC8XG4gICAgICAgIGNoYW5nZXMuZm9yRWFjaEFkZGVkSXRlbShyZWNvcmQgPT4ge1xuICAgICAgICAgICAgcmVjb3JkLml0ZW0ub3JkZXIgPSByZWNvcmQuY3VycmVudEluZGV4O1xuICAgICAgICB9KTtcbiAgICAgICAgY2hhbmdlcy5mb3JFYWNoUmVtb3ZlZEl0ZW0oKCkgPT4ge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLm9yZGVyID0gaW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNoYW5nZXMuZm9yRWFjaE1vdmVkSXRlbSgoKSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0ub3JkZXIgPSBpbmRleDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLl9kaWZmLmRpZmYodGhpcy5pdGVtcyk7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9hZnRlckNoYW5nZUl0ZW1zKGNoYW5nZXMsIHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fY29tYmluZVRyYW5zZmVyRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9sb2NrRGlmZikge1xuICAgICAgICAgICAgY29uc3QgbG9ja0NoYW5nZXMgPSB0aGlzLl9sb2NrRGlmZi5kaWZmKHRoaXMubG9ja0l0ZW1zKTtcbiAgICAgICAgICAgIGlmIChsb2NrQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FmdGVyQ2hhbmdlSXRlbXMobG9ja0NoYW5nZXMsIHRoaXMubG9ja0l0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1bmxvY2tDaGFuZ2VzID0gdGhpcy5fdW5sb2NrRGlmZi5kaWZmKHRoaXMudW5sb2NrSXRlbXMpO1xuICAgICAgICBpZiAodW5sb2NrQ2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fYWZ0ZXJDaGFuZ2VJdGVtcyh1bmxvY2tDaGFuZ2VzLCB0aGlzLnVubG9ja0l0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvY2tMaXN0RW50ZXJQcmVkaWNhdGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2tJdGVtcy5sZW5ndGggPCB0aGlzLm1heExvY2s7XG4gICAgfTtcblxuICAgIHVubG9ja0xpc3RFbnRlclByZWRpY2F0ZSA9IChldmVudDogQ2RrRHJhZzxUaHlUcmFuc2Zlckl0ZW0+KSA9PiB7XG4gICAgICAgIHJldHVybiAhZXZlbnQuZGF0YS5pc0ZpeGVkO1xuICAgIH07XG5cbiAgICBvblNlbGVjdEl0ZW0gPSAoaXRlbTogVGh5VHJhbnNmZXJJdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbS5lbWl0KHsgaXRlbSB9KTtcbiAgICB9O1xuXG4gICAgb25VbnNlbGVjdEl0ZW0gPSAoaXRlbTogVGh5VHJhbnNmZXJJdGVtKSA9PiB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RJdGVtLmVtaXQoeyBpdGVtIH0pO1xuICAgIH07XG5cbiAgICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxUaHlUcmFuc2Zlckl0ZW1bXT4pIHtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEgfHwgW10pLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0xvY2sgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCA9PT0gJ2xvY2snO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIChldmVudC5jb250YWluZXIuZGF0YSB8fCBbXSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzTG9jayA9IGV2ZW50LmNvbnRhaW5lci5pZCA9PT0gJ2xvY2snO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZHJhZ0V2ZW50OiBUaHlUcmFuc2ZlckRyYWdFdmVudCA9IHtcbiAgICAgICAgICAgIG1vZGVsOiBldmVudC5pdGVtLmRhdGEsXG4gICAgICAgICAgICBtb2RlbHM6IGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICAgICAgb2xkSW5kZXg6IGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICBuZXdJbmRleDogZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZHJhZ2dhYmxlVXBkYXRlLmVtaXQoe1xuICAgICAgICAgICAgZHJhZ0V2ZW50OiBkcmFnRXZlbnQsXG4gICAgICAgICAgICBsaXN0RGF0YTogeyBsb2NrOiB0aGlzLmxvY2tJdGVtcywgdW5sb2NrOiB0aGlzLnVubG9ja0l0ZW1zIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWhlYWRlclwiPlxuICA8c3BhbiBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWhlYWRlci10aXRsZVwiXG4gICAgPnt7IHRpdGxlIH19IMK3IHt7IGl0ZW1zPy5sZW5ndGggfX1cbiAgICBAaWYgKG1heCkge1xuICAgICAgPHNwYW4+ICjkuIrpmZB7eyBtYXggfX3kuKopPC9zcGFuPlxuICAgIH1cbiAgPC9zcGFuPlxuPC9kaXY+XG5AaWYgKCFjb250ZW50UmVmKSB7XG4gIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ib2R5XCIgY2RrRHJvcExpc3RHcm91cCBbY2RrRHJvcExpc3RHcm91cERpc2FibGVkXT1cIiFkcmFnZ2FibGVcIj5cbiAgICBAaWYgKGNhbkxvY2spIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ncm91cC1uYW1lXCI+6ZSB5a6aICjkuIrpmZB7eyBtYXhMb2NrIH195LiqKTwvZGl2PlxuICAgICAgPHRoeS1saXN0XG4gICAgICAgIGNsYXNzPVwidGh5LXRyYW5zZmVyLWxpc3QtY29udGVudFwiXG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgIHRoeURyYWdEcm9wXG4gICAgICAgIGlkPVwibG9ja1wiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibG9ja0l0ZW1zXCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJsb2NrTGlzdEVudGVyUHJlZGljYXRlXCI+XG4gICAgICAgIEBpZiAobG9ja0l0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZGstZHJvcC1saXN0LWVtcHR5XCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsb2NrSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDx0aHktbGlzdC1pdGVtXG4gICAgICAgICAgICBjbGFzcz1cInRoeS10cmFuc2Zlci1saXN0LWNvbnRlbnQtaXRlbSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLmNoZWNrZWQgfVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGh5LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC90aHktbGlzdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ncm91cC1uYW1lXCI+5pyq6ZSB5a6aPC9kaXY+XG4gICAgfVxuICAgIDx0aHktbGlzdFxuICAgICAgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1jb250ZW50XCJcbiAgICAgIGNka0Ryb3BMaXN0XG4gICAgICB0aHlEcmFnRHJvcFxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdnYWJsZVwiXG4gICAgICBpZD1cInVubG9ja1wiXG4gICAgICBbY2RrRHJvcExpc3REYXRhXT1cInVubG9ja0l0ZW1zXCJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInVubG9ja0xpc3RFbnRlclByZWRpY2F0ZVwiPlxuICAgICAgQGlmICh1bmxvY2tJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNkay1kcm9wLWxpc3QtZW1wdHlcIj48L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKGl0ZW0gb2YgdW5sb2NrSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8dGh5LWxpc3QtaXRlbVxuICAgICAgICAgIGNsYXNzPVwidGh5LXRyYW5zZmVyLWxpc3QtY29udGVudC1pdGVtIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0uY2hlY2tlZCwgZGlzYWJsZWQ6IGRpc2FibGVkICYmIGl0ZW0uZGlyZWN0aW9uID09PSAnbGVmdCcgfVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90aHktbGlzdC1pdGVtPlxuICAgICAgfVxuICAgIDwvdGh5LWxpc3Q+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItbGlzdC1ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgY29udGVudFJlZjtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICRpbXBsaWNpdDogaXRlbXMsXG4gICAgICAgICAgb25TZWxlY3RJdGVtOiBvblNlbGVjdEl0ZW0sXG4gICAgICAgICAgb25VbnNlbGVjdEl0ZW06IG9uVW5zZWxlY3RJdGVtXG4gICAgICAgIH1cbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { Component, ContentChild, EventEmitter, HostBinding, Input, Output, Temp
2
2
  import { TransferDirection } from './transfer.interface';
3
3
  import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
4
4
  import { ThyIcon } from 'ngx-tethys/icon';
5
- import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
5
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
6
6
  import { ThyTransferList } from './transfer-list.component';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
@@ -135,11 +135,11 @@ export class ThyTransfer {
135
135
  : [...otherListData.lock, ...otherListData.unlock];
136
136
  }
137
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransfer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: "thyData", thyrenderLeftTemplateRef: "thyrenderLeftTemplateRef", thyrenderRightTemplateRef: "thyrenderRightTemplateRef", thyTitles: "thyTitles", thyRightCanLock: "thyRightCanLock", thyRightLockMax: "thyRightLockMax", thyRightMax: "thyRightMax", thyAutoMove: "thyAutoMove", thyLeftDraggable: "thyLeftDraggable", thyRightDraggable: "thyRightDraggable" }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n <ng-container *ngIf=\"thyLeftDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <thy-icon *ngIf=\"item.direction === 'right'\" class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #rightTemplateRef let-item>\n <ng-container *ngIf=\"thyRightDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <a class=\"link-secondary\" *ngIf=\"item.direction === 'right' && !item.isFixed\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n <ng-template *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <ng-container *ngIf=\"!templateRef\">\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: "thyData", thyrenderLeftTemplateRef: "thyrenderLeftTemplateRef", thyrenderRightTemplateRef: "thyrenderRightTemplateRef", thyTitles: "thyTitles", thyRightCanLock: "thyRightCanLock", thyRightLockMax: "thyRightLockMax", thyRightMax: "thyRightMax", thyAutoMove: "thyAutoMove", thyLeftDraggable: "thyLeftDraggable", thyRightDraggable: "thyRightDraggable" }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
139
139
  }
140
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTransfer, decorators: [{
141
141
  type: Component,
142
- args: [{ selector: 'thy-transfer', encapsulation: ViewEncapsulation.None, standalone: true, imports: [ThyTransferList, NgIf, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n <ng-container *ngIf=\"thyLeftDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <thy-icon *ngIf=\"item.direction === 'right'\" class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n>\n <ng-template #rightTemplateRef let-item>\n <ng-container *ngIf=\"thyRightDraggable\">\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n </ng-container>\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n <a class=\"link-secondary\" *ngIf=\"item.direction === 'right' && !item.isFixed\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n <ng-template *ngIf=\"templateRef\" [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <ng-container *ngIf=\"!templateRef\">\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n </ng-container>\n</ng-template>\n" }]
142
+ args: [{ selector: 'thy-transfer', encapsulation: ViewEncapsulation.None, standalone: true, imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n" }]
143
143
  }], propDecorators: { hostClass: [{
144
144
  type: HostBinding,
145
145
  args: ['class']
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
177
177
  type: ContentChild,
178
178
  args: ['renderRightTemplate']
179
179
  }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zlci90cmFuc2Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFPSCxpQkFBaUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUU1RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFRMEIsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUUxQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFFdkMsb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBRXhDLGtCQUFhLEdBQXNCLEVBQUUsQ0FBQztRQU10QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV0QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBaUV6Qjs7V0FFRztRQUNPLHVCQUFrQixHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUU1Rzs7O1dBR0c7UUFDTyxjQUFTLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO0tBNkcxRztJQXJMRzs7O09BR0c7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUF3QjtR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LENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBck1RLFdBQVc7a0dBQVgsV0FBVywyM0JDNUJ4QiwwdUZBa0VBLDRDRHhDYyxlQUFlLDRPQUFFLElBQUksNkZBQUUsT0FBTyxzTUFBRSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxlQUFlOzsyRkFFM0UsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs4QkFHL0QsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQXFCaEIsT0FBTztzQkFEVixLQUFLO2dCQU9HLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBT0YsU0FBUztzQkFEWixLQUFLO2dCQVVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBTUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFNRyxTQUFTO3NCQUFsQixNQUFNO2dCQU15QixXQUFXO3NCQUExQyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFNTSxjQUFjO3NCQUFqRCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFNRyxlQUFlO3NCQUFuRCxZQUFZO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIERpcmVjdGlvbixcbiAgICBJbm5lclRyYW5zZmVyRHJhZ0V2ZW50LFxuICAgIFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJEcmFnRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJJdGVtLFxuICAgIFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQsXG4gICAgVHJhbnNmZXJEaXJlY3Rpb25cbn0gZnJvbSAnLi90cmFuc2Zlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlUcmFuc2Zlckxpc3QgfSBmcm9tICcuL3RyYW5zZmVyLWxpc3QuY29tcG9uZW50JztcblxuLyoqXG4gKiDnqb/moq3moYbnu4Tku7ZcbiAqIEBuYW1lIHRoeS10cmFuc2ZlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRyYW5zZmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5VHJhbnNmZXJMaXN0LCBOZ0lmLCBUaHlJY29uLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBUaHlGbGV4aWJsZVRleHRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRyYW5zZmVyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdENsYXNzID0gJ3RoeS10cmFuc2Zlcic7XG5cbiAgICBwdWJsaWMgbGVmdERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgcmlnaHREYXRhU291cmNlOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdO1xuXG4gICAgcHVibGljIGFsbERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgbGVmdFRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmlnaHRUaXRsZTogc3RyaW5nO1xuXG4gICAgcHVibGljIHJpZ2h0RHJhZ2dhYmxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9hdXRvTW92ZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDmja7mupBcbiAgICAgKiBAdHlwZSBUaHlUcmFuc2Zlckl0ZW1bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeURhdGEodmFsdWU6IFRoeVRyYW5zZmVySXRlbVtdKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVHJhbnNmZXJEYXRhKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHRoeXJlbmRlckxlZnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIHRoeXJlbmRlclJpZ2h0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiB0aXRsZembhuWQiO+8jHRpdGxlWzBd5Li65bem5qCH6aKY77yMdGl0bGVbMV3kuLrlj7PmoIfpophcbiAgICAgKiBAdHlwZSBzdHJpbmdbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRpdGxlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5sZWZ0VGl0bGUgPSB2YWx1ZVswXSB8fCAnJztcbiAgICAgICAgdGhpcy5yaWdodFRpdGxlID0gdmFsdWVbMV0gfHwgJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5YiX6KGo5piv5ZCm5Y+v5Lul6ZSB5a6aXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodENhbkxvY2s6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfplIHlrprmnIDlpKfmlbDph49cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodExvY2tNYXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+mAieaLqeacgOWkp+aVsOmHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0TWF4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mmK/lkKboh6rliqjnp7vliqhcbiAgICAgKiBAZGVzY3JpcHRpb24uZW4tdXMgQ3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCwgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgc2VsZWN0aW9ucyBtb3ZlXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUF1dG9Nb3ZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2F1dG9Nb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bem5L6n5YiX6KGo5piv5ZCm5ouW5YqoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlMZWZ0RHJhZ2dhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5YiX6KGo5piv5ZCm5ouW5YqoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlSaWdodERyYWdnYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5RHJhZ2dhYmxlVXBkYXRlOiBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIFRyYW5zZmVy5Y+Y5YyW55qE5Zue6LCD5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNoYW5nZTogRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckNoYW5nZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Ieq5a6a5LmJSXRlbea4suafk+aVsOaNruaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyVGVtcGxhdGUnKSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruiHquWumuS5ieW3puS+p+WGheWuueaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyTGVmdFRlbXBsYXRlJykgbGVmdENvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oh6rlrprkuYnlj7PkvqflhoXlrrnmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3JlbmRlclJpZ2h0VGVtcGxhdGUnKSByaWdodENvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBpbml0aWFsaXplVHJhbnNmZXJEYXRhKGRhdGE6IFRoeVRyYW5zZmVySXRlbVtdID0gW10pIHtcbiAgICAgICAgdGhpcy5hbGxEYXRhU291cmNlID0gW107XG4gICAgICAgIHRoaXMubGVmdERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5hbGxEYXRhU291cmNlLnB1c2goaXRlbSk7XG4gICAgICAgICAgICBpZiAoaXRlbS5kaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnREYXRhU291cmNlLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5kaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoZnJvbTogRGlyZWN0aW9uLCBldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuaXRlbS5pc0ZpeGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5UmlnaHRNYXggPD0gdGhpcy5yaWdodERhdGFTb3VyY2UubGVuZ3RoICYmIGZyb20gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0byA9IGZyb20gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgPyBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA6IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQ7XG4gICAgICAgIGV2ZW50Lml0ZW0uY2hlY2tlZCA9ICFldmVudC5pdGVtLmNoZWNrZWQ7XG4gICAgICAgIGlmICh0aGlzLl9hdXRvTW92ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk1vdmUodG8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0SXRlbShldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0KFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICB1bnNlbGVjdEl0ZW0oZXZlbnQ6IFRoeVRyYW5zZmVyU2VsZWN0RXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdChUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCwgZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ3JvdXBMaXN0QnlJc0xvY2sobGlzdDogVGh5VHJhbnNmZXJJdGVtW10gPSBbXSkge1xuICAgICAgICBjb25zdCBsb2NrOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdLFxuICAgICAgICAgICAgdW5sb2NrOiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdO1xuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pc0xvY2spIHtcbiAgICAgICAgICAgICAgICBsb2NrLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVubG9jay5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgbG9jazogbG9jaywgdW5sb2NrOiB1bmxvY2sgfTtcbiAgICB9XG5cbiAgICBvbk1vdmUodG86IERpcmVjdGlvbikge1xuICAgICAgICBjb25zdCBmcm9tRGF0YVNvdXJjZSA9IHRvID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA/IHRoaXMubGVmdERhdGFTb3VyY2UgOiB0aGlzLnJpZ2h0RGF0YVNvdXJjZTtcbiAgICAgICAgY29uc3QgdG9EYXRhU291cmNlID0gdG8gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gdGhpcy5yaWdodERhdGFTb3VyY2UgOiB0aGlzLmxlZnREYXRhU291cmNlO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gZnJvbURhdGFTb3VyY2UuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jaGVja2VkKTtcbiAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICBmcm9tOiB0byA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0IDogVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQsXG4gICAgICAgICAgICB0bzogdG8sXG4gICAgICAgICAgICBpdGVtczogWy4uLnNlbGVjdGlvbnNdXG4gICAgICAgIH07XG4gICAgICAgIHNlbGVjdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZnJvbURhdGFTb3VyY2UuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBmcm9tRGF0YVNvdXJjZS5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgcmVtb3ZlZC5jaGVja2VkID0gIXJlbW92ZWQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJlbW92ZWQuZGlyZWN0aW9uID0gdG87XG4gICAgICAgICAgICB0b0RhdGFTb3VyY2UucHVzaChyZW1vdmVkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGh5Q2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgLi4uY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICBsZWZ0OiB0aGlzLmdyb3VwTGlzdEJ5SXNMb2NrKHRoaXMubGVmdERhdGFTb3VyY2UpLFxuICAgICAgICAgICAgcmlnaHQ6IHRoaXMuZ3JvdXBMaXN0QnlJc0xvY2sodGhpcy5yaWdodERhdGFTb3VyY2UpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRHJhZ1VwZGF0ZShkaXJlY3Rpb246IERpcmVjdGlvbiwgZXZlbnQ6IElubmVyVHJhbnNmZXJEcmFnRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgb3RoZXJEaXJlY3Rpb25EYXRhID0gZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0ID8gdGhpcy5yaWdodERhdGFTb3VyY2UgOiB0aGlzLmxlZnREYXRhU291cmNlO1xuICAgICAgICBjb25zdCBvdGhlckxpc3REYXRhID0gdGhpcy5ncm91cExpc3RCeUlzTG9jayhvdGhlckRpcmVjdGlvbkRhdGEpO1xuICAgICAgICB0aGlzLnRoeURyYWdnYWJsZVVwZGF0ZS5lbWl0KHtcbiAgICAgICAgICAgIC4uLmV2ZW50LmRyYWdFdmVudCxcbiAgICAgICAgICAgIGxlZnQ6IGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCA/IGV2ZW50Lmxpc3REYXRhIDogb3RoZXJMaXN0RGF0YSxcbiAgICAgICAgICAgIHJpZ2h0OiBkaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gZXZlbnQubGlzdERhdGEgOiBvdGhlckxpc3REYXRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmlnaHREYXRhU291cmNlID1cbiAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHRcbiAgICAgICAgICAgICAgICA/IFsuLi5ldmVudC5saXN0RGF0YS5sb2NrLCAuLi5ldmVudC5saXN0RGF0YS51bmxvY2tdXG4gICAgICAgICAgICAgICAgOiBbLi4ub3RoZXJMaXN0RGF0YS5sb2NrLCAuLi5vdGhlckxpc3REYXRhLnVubG9ja107XG4gICAgfVxufVxuIiwiPHRoeS10cmFuc2Zlci1saXN0XG4gIFtpdGVtc109XCJhbGxEYXRhU291cmNlXCJcbiAgW3RpdGxlXT1cImxlZnRUaXRsZVwiXG4gIFtkcmFnZ2FibGVdPVwidGh5TGVmdERyYWdnYWJsZVwiXG4gIFtkaXNhYmxlZF09XCJ0aHlSaWdodE1heCA8PSByaWdodERhdGFTb3VyY2UubGVuZ3RoXCJcbiAgW3JlbmRlckNvbnRlbnRSZWZdPVwibGVmdENvbnRlbnRSZWZcIlxuICAoZHJhZ2dhYmxlVXBkYXRlKT1cIm9uRHJhZ1VwZGF0ZSgnbGVmdCcsICRldmVudClcIlxuICBbdGVtcGxhdGVdPVwibGVmdFRlbXBsYXRlUmVmXCJcbiAgKHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgKHVuc2VsZWN0SXRlbSk9XCJ1bnNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjbGVmdFRlbXBsYXRlUmVmIGxldC1pdGVtPlxuICAgIDxkaXYgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0uZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnbGVmdCcgOiAncmlnaHQnLCB7IGl0ZW06IGl0ZW0gfSlcIiBjbGFzcz1cImxpc3QtaXRlbS1jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5TGVmdERyYWdnYWJsZVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJkcmFnXCIgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPjwvdGh5LWljb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIiBbbmdDbGFzc109XCJ7ICd1bi1zZWxlY3QtaXRlbSc6IGl0ZW0uZGlyZWN0aW9uICE9PSAncmlnaHQnIH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRyYW5zZmVyTGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0aHktaWNvbiAqbmdJZj1cIml0ZW0uZGlyZWN0aW9uID09PSAncmlnaHQnXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNoZWNrXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvdGh5LXRyYW5zZmVyLWxpc3Q+XG5cbjxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItb3BlcmF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHktdHJhbnNmZXItb3BlcmF0aW9uLWJvZHlcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiIGNsYXNzPVwib3BlcmF0aW9uLWxpbmtcIj48L3RoeS1pY29uPlxuICAgIDxiciAvPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIiBjbGFzcz1cIm9wZXJhdGlvbi1saW5rXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPHRoeS10cmFuc2Zlci1saXN0XG4gIFtpdGVtc109XCJyaWdodERhdGFTb3VyY2VcIlxuICBbdGl0bGVdPVwicmlnaHRUaXRsZVwiXG4gIFtkcmFnZ2FibGVdPVwidGh5UmlnaHREcmFnZ2FibGVcIlxuICAoZHJhZ2dhYmxlVXBkYXRlKT1cIm9uRHJhZ1VwZGF0ZSgncmlnaHQnLCAkZXZlbnQpXCJcbiAgW2NhbkxvY2tdPVwidGh5UmlnaHRDYW5Mb2NrXCJcbiAgW21heExvY2tdPVwidGh5UmlnaHRMb2NrTWF4XCJcbiAgW21heF09XCJ0aHlSaWdodE1heFwiXG4gIFt0ZW1wbGF0ZV09XCJyaWdodFRlbXBsYXRlUmVmXCJcbiAgW3JlbmRlckNvbnRlbnRSZWZdPVwicmlnaHRDb250ZW50UmVmXCJcbiAgKHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgKHVuc2VsZWN0SXRlbSk9XCJ1bnNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjcmlnaHRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5UmlnaHREcmFnZ2FibGVcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIiBjbGFzcz1cImRyYWctaGFuZGxlXCI+PC90aHktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGh5VHJhbnNmZXJMaXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8YSBjbGFzcz1cImxpbmstc2Vjb25kYXJ5XCIgKm5nSWY9XCJpdGVtLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyAmJiAhaXRlbS5pc0ZpeGVkXCIgKGNsaWNrKT1cIm9uU2VsZWN0KCdyaWdodCcsIHsgaXRlbTogaXRlbSB9KVwiPlxuICAgICAgPHRoeS1pY29uIGNsYXNzPVwiaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48bmctdGVtcGxhdGUgI3RoeVRyYW5zZmVyTGlzdEl0ZW0gbGV0LWl0ZW0+XG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGVtcGxhdGVSZWZcIj5cbiAgICA8dGh5LWZsZXhpYmxlLXRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cIml0ZW0udGl0bGVcIj5cbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICA8L3RoeS1mbGV4aWJsZS10ZXh0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zlci90cmFuc2Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFPSCxpQkFBaUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRTVEOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sV0FBVztJQVB4QjtRQVEwQixjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTFDLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUV2QyxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFFeEMsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBTXRDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFpRXpCOztXQUVHO1FBQ08sdUJBQWtCLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTVHOzs7V0FHRztRQUNPLGNBQVMsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7S0E2RzFHO0lBckxHOzs7T0FHRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQXdCO1FBQ2hDLElBQUks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LGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs4R0FyTVEsV0FBVztrR0FBWCxXQUFXLDIzQkM1QnhCLHlyRkF3RUEsNENEOUNjLGVBQWUsNE9BQUUsT0FBTyxzTUFBRSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxlQUFlOzsyRkFFckUsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDOzhCQUd6RCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBcUJoQixPQUFPO3NCQURWLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFPRixTQUFTO3NCQURaLEtBQUs7Z0JBVUcsZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQU1HLFNBQVM7c0JBQWxCLE1BQU07Z0JBTXlCLFdBQVc7c0JBQTFDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQU1NLGNBQWM7c0JBQWpELFlBQVk7dUJBQUMsb0JBQW9CO2dCQU1HLGVBQWU7c0JBQW5ELFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRGlyZWN0aW9uLFxuICAgIElubmVyVHJhbnNmZXJEcmFnRXZlbnQsXG4gICAgVGh5VHJhbnNmZXJDaGFuZ2VFdmVudCxcbiAgICBUaHlUcmFuc2ZlckRyYWdFdmVudCxcbiAgICBUaHlUcmFuc2Zlckl0ZW0sXG4gICAgVGh5VHJhbnNmZXJTZWxlY3RFdmVudCxcbiAgICBUcmFuc2ZlckRpcmVjdGlvblxufSBmcm9tICcuL3RyYW5zZmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeVRyYW5zZmVyTGlzdCB9IGZyb20gJy4vdHJhbnNmZXItbGlzdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIOepv+aireahhue7hOS7tlxuICogQG5hbWUgdGh5LXRyYW5zZmVyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdHJhbnNmZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlUcmFuc2Zlckxpc3QsIFRoeUljb24sIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUZsZXhpYmxlVGV4dF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VHJhbnNmZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSAndGh5LXRyYW5zZmVyJztcblxuICAgIHB1YmxpYyBsZWZ0RGF0YVNvdXJjZTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHB1YmxpYyByaWdodERhdGFTb3VyY2U6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgYWxsRGF0YVNvdXJjZTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXTtcblxuICAgIHB1YmxpYyBsZWZ0VGl0bGU6IHN0cmluZztcblxuICAgIHB1YmxpYyByaWdodFRpdGxlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmlnaHREcmFnZ2FibGUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2F1dG9Nb3ZlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaVsOaNrua6kFxuICAgICAqIEB0eXBlIFRoeVRyYW5zZmVySXRlbVtdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5RGF0YSh2YWx1ZTogVGh5VHJhbnNmZXJJdGVtW10pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUcmFuc2ZlckRhdGEodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgdGh5cmVuZGVyTGVmdFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgdGh5cmVuZGVyUmlnaHRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIHRpdGxl6ZuG5ZCI77yMdGl0bGVbMF3kuLrlt6bmoIfpopjvvIx0aXRsZVsxXeS4uuWPs+agh+mimFxuICAgICAqIEB0eXBlIHN0cmluZ1tdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGl0bGVzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmxlZnRUaXRsZSA9IHZhbHVlWzBdIHx8ICcnO1xuICAgICAgICB0aGlzLnJpZ2h0VGl0bGUgPSB2YWx1ZVsxXSB8fCAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfliJfooajmmK/lkKblj6/ku6XplIHlrppcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0Q2FuTG9jazogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+mUgeWumuacgOWkp+aVsOmHj1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0TG9ja01heDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n6YCJ5oup5pyA5aSn5pWw6YePXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UmlnaHRNYXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruaYr+WQpuiHquWKqOenu+WKqFxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBDdXJyZW50bHkgbm90IGltcGxlbWVudGVkLCBpbiBvcmRlciB0byBzdXBwb3J0IHRoZSBzZWxlY3Rpb25zIG1vdmVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QXV0b01vdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYXV0b01vdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt6bkvqfliJfooajmmK/lkKbmi5bliqhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxlZnREcmFnZ2FibGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlj7PkvqfliJfooajmmK/lkKbmi5bliqhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVJpZ2h0RHJhZ2dhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyRHJhZ0V2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlEcmFnZ2FibGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxUaHlUcmFuc2ZlckRyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyRHJhZ0V2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogVHJhbnNmZXLlj5jljJbnmoTlm57osIPkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJDaGFuZ2VFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8VGh5VHJhbnNmZXJDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRyYW5zZmVyQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7oh6rlrprkuYlJdGVt5riy5p+T5pWw5o2u5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdyZW5kZXJUZW1wbGF0ZScpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Ieq5a6a5LmJ5bem5L6n5YaF5a655qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdyZW5kZXJMZWZ0VGVtcGxhdGUnKSBsZWZ0Q29udGVudFJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruiHquWumuS5ieWPs+S+p+WGheWuueaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncmVuZGVyUmlnaHRUZW1wbGF0ZScpIHJpZ2h0Q29udGVudFJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIGluaXRpYWxpemVUcmFuc2ZlckRhdGEoZGF0YTogVGh5VHJhbnNmZXJJdGVtW10gPSBbXSkge1xuICAgICAgICB0aGlzLmFsbERhdGFTb3VyY2UgPSBbXTtcbiAgICAgICAgdGhpcy5sZWZ0RGF0YVNvdXJjZSA9IFtdO1xuICAgICAgICB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA9IFtdO1xuICAgICAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGlmIChpdGVtLmRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdERhdGFTb3VyY2UucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RGF0YVNvdXJjZS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChmcm9tOiBEaXJlY3Rpb24sIGV2ZW50OiBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5pdGVtLmlzRml4ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlSaWdodE1heCA8PSB0aGlzLnJpZ2h0RGF0YVNvdXJjZS5sZW5ndGggJiYgZnJvbSA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRvID0gZnJvbSA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCA/IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0IDogVHJhbnNmZXJEaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgZXZlbnQuaXRlbS5jaGVja2VkID0gIWV2ZW50Lml0ZW0uY2hlY2tlZDtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9Nb3ZlKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW92ZSh0byk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RJdGVtKGV2ZW50OiBUaHlUcmFuc2ZlclNlbGVjdEV2ZW50KSB7XG4gICAgICAgIHRoaXMub25TZWxlY3QoVHJhbnNmZXJEaXJlY3Rpb24ubGVmdCwgZXZlbnQpO1xuICAgIH1cblxuICAgIHVuc2VsZWN0SXRlbShldmVudDogVGh5VHJhbnNmZXJTZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0KFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0LCBldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cExpc3RCeUlzTG9jayhsaXN0OiBUaHlUcmFuc2Zlckl0ZW1bXSA9IFtdKSB7XG4gICAgICAgIGNvbnN0IGxvY2s6IFRoeVRyYW5zZmVySXRlbVtdID0gW10sXG4gICAgICAgICAgICB1bmxvY2s6IFRoeVRyYW5zZmVySXRlbVtdID0gW107XG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlzTG9jaykge1xuICAgICAgICAgICAgICAgIGxvY2sucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdW5sb2NrLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBsb2NrOiBsb2NrLCB1bmxvY2s6IHVubG9jayB9O1xuICAgIH1cblxuICAgIG9uTW92ZSh0bzogRGlyZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGZyb21EYXRhU291cmNlID0gdG8gPT09IFRyYW5zZmVyRGlyZWN0aW9uLnJpZ2h0ID8gdGhpcy5sZWZ0RGF0YVNvdXJjZSA6IHRoaXMucmlnaHREYXRhU291cmNlO1xuICAgICAgICBjb25zdCB0b0RhdGFTb3VyY2UgPSB0byA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA6IHRoaXMubGVmdERhdGFTb3VyY2U7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBmcm9tRGF0YVNvdXJjZS5maWx0ZXIoaXRlbSA9PiBpdGVtLmNoZWNrZWQpO1xuICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogVGh5VHJhbnNmZXJDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgIGZyb206IHRvID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCA/IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgOiBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodCxcbiAgICAgICAgICAgIHRvOiB0byxcbiAgICAgICAgICAgIGl0ZW1zOiBbLi4uc2VsZWN0aW9uc11cbiAgICAgICAgfTtcbiAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBmcm9tRGF0YVNvdXJjZS5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlZCA9IGZyb21EYXRhU291cmNlLnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgICAgICAgICByZW1vdmVkLmNoZWNrZWQgPSAhcmVtb3ZlZC5jaGVja2VkO1xuICAgICAgICAgICAgcmVtb3ZlZC5kaXJlY3Rpb24gPSB0bztcbiAgICAgICAgICAgIHRvRGF0YVNvdXJjZS5wdXNoKHJlbW92ZWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aHlDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAuLi5jaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMuZ3JvdXBMaXN0QnlJc0xvY2sodGhpcy5sZWZ0RGF0YVNvdXJjZSksXG4gICAgICAgICAgICByaWdodDogdGhpcy5ncm91cExpc3RCeUlzTG9jayh0aGlzLnJpZ2h0RGF0YVNvdXJjZSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EcmFnVXBkYXRlKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBldmVudDogSW5uZXJUcmFuc2ZlckRyYWdFdmVudCkge1xuICAgICAgICBjb25zdCBvdGhlckRpcmVjdGlvbkRhdGEgPSBkaXJlY3Rpb24gPT09IFRyYW5zZmVyRGlyZWN0aW9uLmxlZnQgPyB0aGlzLnJpZ2h0RGF0YVNvdXJjZSA6IHRoaXMubGVmdERhdGFTb3VyY2U7XG4gICAgICAgIGNvbnN0IG90aGVyTGlzdERhdGEgPSB0aGlzLmdyb3VwTGlzdEJ5SXNMb2NrKG90aGVyRGlyZWN0aW9uRGF0YSk7XG4gICAgICAgIHRoaXMudGh5RHJhZ2dhYmxlVXBkYXRlLmVtaXQoe1xuICAgICAgICAgICAgLi4uZXZlbnQuZHJhZ0V2ZW50LFxuICAgICAgICAgICAgbGVmdDogZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5sZWZ0ID8gZXZlbnQubGlzdERhdGEgOiBvdGhlckxpc3REYXRhLFxuICAgICAgICAgICAgcmlnaHQ6IGRpcmVjdGlvbiA9PT0gVHJhbnNmZXJEaXJlY3Rpb24ucmlnaHQgPyBldmVudC5saXN0RGF0YSA6IG90aGVyTGlzdERhdGFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yaWdodERhdGFTb3VyY2UgPVxuICAgICAgICAgICAgZGlyZWN0aW9uID09PSBUcmFuc2ZlckRpcmVjdGlvbi5yaWdodFxuICAgICAgICAgICAgICAgID8gWy4uLmV2ZW50Lmxpc3REYXRhLmxvY2ssIC4uLmV2ZW50Lmxpc3REYXRhLnVubG9ja11cbiAgICAgICAgICAgICAgICA6IFsuLi5vdGhlckxpc3REYXRhLmxvY2ssIC4uLm90aGVyTGlzdERhdGEudW5sb2NrXTtcbiAgICB9XG59XG4iLCI8dGh5LXRyYW5zZmVyLWxpc3RcbiAgW2l0ZW1zXT1cImFsbERhdGFTb3VyY2VcIlxuICBbdGl0bGVdPVwibGVmdFRpdGxlXCJcbiAgW2RyYWdnYWJsZV09XCJ0aHlMZWZ0RHJhZ2dhYmxlXCJcbiAgW2Rpc2FibGVkXT1cInRoeVJpZ2h0TWF4IDw9IHJpZ2h0RGF0YVNvdXJjZS5sZW5ndGhcIlxuICBbcmVuZGVyQ29udGVudFJlZl09XCJsZWZ0Q29udGVudFJlZlwiXG4gIChkcmFnZ2FibGVVcGRhdGUpPVwib25EcmFnVXBkYXRlKCdsZWZ0JywgJGV2ZW50KVwiXG4gIFt0ZW1wbGF0ZV09XCJsZWZ0VGVtcGxhdGVSZWZcIlxuICAoc2VsZWN0SXRlbSk9XCJzZWxlY3RJdGVtKCRldmVudClcIlxuICAodW5zZWxlY3RJdGVtKT1cInVuc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgPlxuICA8bmctdGVtcGxhdGUgI2xlZnRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICA8ZGl2IChjbGljayk9XCJvblNlbGVjdChpdGVtLmRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gJ2xlZnQnIDogJ3JpZ2h0JywgeyBpdGVtOiBpdGVtIH0pXCIgY2xhc3M9XCJsaXN0LWl0ZW0tY29udGVudFwiPlxuICAgICAgQGlmICh0aHlMZWZ0RHJhZ2dhYmxlKSB7XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIiBjbGFzcz1cImRyYWctaGFuZGxlXCI+PC90aHktaWNvbj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIiBbbmdDbGFzc109XCJ7ICd1bi1zZWxlY3QtaXRlbSc6IGl0ZW0uZGlyZWN0aW9uICE9PSAncmlnaHQnIH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeVRyYW5zZmVyTGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoaXRlbS5kaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwidGV4dC1wcmltYXJ5IGl0ZW0tc3RhdHVzXCIgdGh5SWNvbk5hbWU9XCJjaGVja1wiPjwvdGh5LWljb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48ZGl2IGNsYXNzPVwidGh5LXRyYW5zZmVyLW9wZXJhdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwidGh5LXRyYW5zZmVyLW9wZXJhdGlvbi1ib2R5XCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIiBjbGFzcz1cIm9wZXJhdGlvbi1saW5rXCI+PC90aHktaWNvbj5cbiAgICA8YnIgLz5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1sZWZ0XCIgY2xhc3M9XCJvcGVyYXRpb24tbGlua1wiPjwvdGh5LWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjx0aHktdHJhbnNmZXItbGlzdFxuICBbaXRlbXNdPVwicmlnaHREYXRhU291cmNlXCJcbiAgW3RpdGxlXT1cInJpZ2h0VGl0bGVcIlxuICBbZHJhZ2dhYmxlXT1cInRoeVJpZ2h0RHJhZ2dhYmxlXCJcbiAgKGRyYWdnYWJsZVVwZGF0ZSk9XCJvbkRyYWdVcGRhdGUoJ3JpZ2h0JywgJGV2ZW50KVwiXG4gIFtjYW5Mb2NrXT1cInRoeVJpZ2h0Q2FuTG9ja1wiXG4gIFttYXhMb2NrXT1cInRoeVJpZ2h0TG9ja01heFwiXG4gIFttYXhdPVwidGh5UmlnaHRNYXhcIlxuICBbdGVtcGxhdGVdPVwicmlnaHRUZW1wbGF0ZVJlZlwiXG4gIFtyZW5kZXJDb250ZW50UmVmXT1cInJpZ2h0Q29udGVudFJlZlwiXG4gIChzZWxlY3RJdGVtKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICh1bnNlbGVjdEl0ZW0pPVwidW5zZWxlY3RJdGVtKCRldmVudClcIlxuICA+XG4gIDxuZy10ZW1wbGF0ZSAjcmlnaHRUZW1wbGF0ZVJlZiBsZXQtaXRlbT5cbiAgICBAaWYgKHRoeVJpZ2h0RHJhZ2dhYmxlKSB7XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJkcmFnXCIgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPjwvdGh5LWljb24+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmFuc2Zlckxpc3RJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoaXRlbS5kaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgIWl0ZW0uaXNGaXhlZCkge1xuICAgICAgPGEgY2xhc3M9XCJsaW5rLXNlY29uZGFyeVwiIChjbGljayk9XCJvblNlbGVjdCgncmlnaHQnLCB7IGl0ZW06IGl0ZW0gfSlcIj5cbiAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwiaXRlbS1zdGF0dXNcIiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgICAgIDwvYT5cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L3RoeS10cmFuc2Zlci1saXN0PlxuXG48bmctdGVtcGxhdGUgI3RoeVRyYW5zZmVyTGlzdEl0ZW0gbGV0LWl0ZW0+XG4gIEBpZiAodGVtcGxhdGVSZWYpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gIH1cbiAgQGlmICghdGVtcGxhdGVSZWYpIHtcbiAgICA8dGh5LWZsZXhpYmxlLXRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cIml0ZW0udGl0bGVcIj5cbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICA8L3RoeS1mbGV4aWJsZS10ZXh0PlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19