ngx-tethys 17.0.0 → 17.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/CHANGELOG.md +26 -7
  2. package/action/action.component.d.ts +3 -0
  3. package/affix/affix.component.d.ts +2 -0
  4. package/alert/alert.component.d.ts +1 -0
  5. package/anchor/anchor.component.d.ts +3 -0
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -0
  7. package/autocomplete/autocomplete.component.d.ts +2 -3
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -0
  9. package/avatar/avatar.component.d.ts +4 -0
  10. package/back-top/back-top.component.d.ts +1 -0
  11. package/badge/badge.component.d.ts +5 -0
  12. package/button/button-icon.component.d.ts +2 -0
  13. package/button/button.component.d.ts +2 -0
  14. package/card/card.component.d.ts +3 -0
  15. package/card/content.component.d.ts +2 -1
  16. package/carousel/carousel.component.d.ts +5 -0
  17. package/cascader/cascader-li.component.d.ts +9 -2
  18. package/cascader/cascader-search-option.component.d.ts +7 -2
  19. package/cascader/cascader.component.d.ts +23 -2
  20. package/cascader/styles/cascader.scss +1 -0
  21. package/cascader/types.d.ts +1 -0
  22. package/checkbox/checkbox.component.d.ts +1 -0
  23. package/collapse/collapse-item.component.d.ts +2 -0
  24. package/collapse/collapse.component.d.ts +1 -0
  25. package/color-picker/color-picker-panel.component.d.ts +1 -0
  26. package/color-picker/color-picker.component.d.ts +7 -1
  27. package/copy/copy.directive.d.ts +1 -0
  28. package/core/behaviors/decorators.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +8 -1
  30. package/date-picker/abstract-picker.directive.d.ts +4 -0
  31. package/date-picker/base-picker.component.d.ts +2 -0
  32. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -0
  33. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -0
  34. package/date-picker/picker.component.d.ts +1 -0
  35. package/date-range/date-range.component.d.ts +2 -0
  36. package/dialog/body/dialog-body.component.d.ts +2 -1
  37. package/dialog/footer/dialog-footer.component.d.ts +1 -0
  38. package/dialog/header/dialog-header.component.d.ts +1 -0
  39. package/divider/divider.component.d.ts +2 -0
  40. package/drag-drop/drag-handle.directive.d.ts +1 -0
  41. package/drag-drop/drag.directive.d.ts +1 -0
  42. package/drag-drop/drop-container.directive.d.ts +1 -0
  43. package/dropdown/dropdown-menu-item.directive.d.ts +3 -1
  44. package/dropdown/dropdown-menu.component.d.ts +1 -0
  45. package/dropdown/dropdown.directive.d.ts +3 -0
  46. package/empty/empty.component.d.ts +1 -0
  47. package/esm2022/action/action.component.mjs +9 -22
  48. package/esm2022/affix/affix.component.mjs +8 -15
  49. package/esm2022/alert/alert.component.mjs +5 -10
  50. package/esm2022/anchor/anchor.component.mjs +10 -20
  51. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +5 -11
  52. package/esm2022/autocomplete/autocomplete.component.mjs +5 -23
  53. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +9 -20
  54. package/esm2022/avatar/avatar.component.mjs +14 -30
  55. package/esm2022/back-top/back-top.component.mjs +6 -10
  56. package/esm2022/badge/badge.component.mjs +15 -37
  57. package/esm2022/button/button-icon.component.mjs +9 -20
  58. package/esm2022/button/button.component.mjs +7 -16
  59. package/esm2022/card/card.component.mjs +6 -20
  60. package/esm2022/card/content.component.mjs +5 -6
  61. package/esm2022/carousel/carousel.component.mjs +13 -30
  62. package/esm2022/cascader/cascader-li.component.mjs +16 -31
  63. package/esm2022/cascader/cascader-search-option.component.mjs +12 -21
  64. package/esm2022/cascader/cascader.component.mjs +32 -52
  65. package/esm2022/cascader/types.mjs +1 -1
  66. package/esm2022/checkbox/checkbox.component.mjs +7 -13
  67. package/esm2022/collapse/collapse-item.component.mjs +8 -15
  68. package/esm2022/collapse/collapse.component.mjs +5 -10
  69. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -10
  70. package/esm2022/color-picker/color-picker.component.mjs +17 -37
  71. package/esm2022/copy/copy.directive.mjs +5 -10
  72. package/esm2022/core/behaviors/decorators.mjs +7 -44
  73. package/esm2022/date-picker/abstract-picker.component.mjs +21 -45
  74. package/esm2022/date-picker/abstract-picker.directive.mjs +11 -27
  75. package/esm2022/date-picker/base-picker.component.mjs +8 -15
  76. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -10
  77. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -2
  78. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +7 -6
  79. package/esm2022/date-picker/picker.component.mjs +6 -10
  80. package/esm2022/date-range/date-range.component.mjs +7 -15
  81. package/esm2022/dialog/body/dialog-body.component.mjs +6 -6
  82. package/esm2022/dialog/footer/dialog-footer.component.mjs +6 -13
  83. package/esm2022/dialog/header/dialog-header.component.mjs +6 -10
  84. package/esm2022/divider/divider.component.mjs +7 -15
  85. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -13
  86. package/esm2022/drag-drop/drag.directive.mjs +5 -11
  87. package/esm2022/drag-drop/drop-container.directive.mjs +5 -10
  88. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +9 -19
  89. package/esm2022/dropdown/dropdown-menu.component.mjs +6 -9
  90. package/esm2022/dropdown/dropdown.directive.mjs +8 -22
  91. package/esm2022/empty/empty.component.mjs +7 -13
  92. package/esm2022/flexible-text/flexible-text.component.mjs +4 -11
  93. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -10
  94. package/esm2022/form/form-group-label.directive.mjs +6 -6
  95. package/esm2022/form/form-group.component.mjs +13 -17
  96. package/esm2022/icon/icon.component.mjs +6 -20
  97. package/esm2022/image/image.directive.mjs +7 -15
  98. package/esm2022/input/input-search.component.mjs +6 -11
  99. package/esm2022/input/input.component.mjs +7 -15
  100. package/esm2022/input-number/input-number.component.mjs +12 -25
  101. package/esm2022/layout/header.component.mjs +9 -19
  102. package/esm2022/layout/sidebar-header.component.mjs +5 -10
  103. package/esm2022/layout/sidebar.component.mjs +22 -45
  104. package/esm2022/list/list.component.mjs +5 -11
  105. package/esm2022/list/selection/selection-list.mjs +13 -10
  106. package/esm2022/loading/loading.component.mjs +9 -20
  107. package/esm2022/menu/group/menu-group.component.mjs +12 -38
  108. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -10
  109. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -10
  110. package/esm2022/menu/menu.component.mjs +5 -10
  111. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +6 -6
  112. package/esm2022/nav/nav-ink-bar.directive.mjs +7 -15
  113. package/esm2022/nav/nav-item.directive.mjs +10 -20
  114. package/esm2022/nav/nav.component.mjs +12 -25
  115. package/esm2022/pagination/pagination.component.mjs +18 -68
  116. package/esm2022/popover/popover.directive.mjs +12 -33
  117. package/esm2022/progress/progress-circle.component.mjs +9 -20
  118. package/esm2022/progress/progress-strip.component.mjs +5 -11
  119. package/esm2022/progress/progress.component.mjs +11 -23
  120. package/esm2022/property/properties.component.mjs +5 -10
  121. package/esm2022/property/property-item.component.mjs +8 -15
  122. package/esm2022/property-operation/property-operation.component.mjs +16 -37
  123. package/esm2022/radio/group/radio-group.component.mjs +6 -21
  124. package/esm2022/rate/rate-item.component.mjs +5 -10
  125. package/esm2022/rate/rate.component.mjs +16 -25
  126. package/esm2022/resizable/resizable.directive.mjs +24 -62
  127. package/esm2022/resizable/resize-handle.component.mjs +6 -10
  128. package/esm2022/resizable/resize-handles.component.mjs +5 -10
  129. package/esm2022/segment/segment-item.component.mjs +5 -10
  130. package/esm2022/segment/segment.component.mjs +7 -16
  131. package/esm2022/select/custom-select/custom-select.component.mjs +30 -65
  132. package/esm2022/select/native-select/native-select.component.mjs +6 -10
  133. package/esm2022/shared/base-form-check.component.mjs +10 -20
  134. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -15
  135. package/esm2022/shared/directives/thy-scroll.directive.mjs +6 -13
  136. package/esm2022/shared/directives/thy-show.mjs +5 -11
  137. package/esm2022/shared/option/group/option-group.component.mjs +5 -10
  138. package/esm2022/shared/option/list-option/list-option.component.mjs +6 -13
  139. package/esm2022/shared/option/option.component.mjs +5 -11
  140. package/esm2022/shared/select/select-control/select-control.component.mjs +17 -44
  141. package/esm2022/skeleton/skeleton-circle.component.mjs +6 -9
  142. package/esm2022/skeleton/skeleton-rectangle.component.mjs +6 -9
  143. package/esm2022/skeleton/skeleton.component.mjs +5 -10
  144. package/esm2022/skeleton/stylized/bullet-list.component.mjs +6 -9
  145. package/esm2022/skeleton/stylized/list.component.mjs +6 -9
  146. package/esm2022/skeleton/stylized/paragraph.component.mjs +6 -9
  147. package/esm2022/slide/slide-body/slide-body-section.component.mjs +6 -6
  148. package/esm2022/slider/slider.component.mjs +18 -35
  149. package/esm2022/space/space.component.mjs +6 -10
  150. package/esm2022/stepper/step-header.component.mjs +9 -20
  151. package/esm2022/stepper/stepper.component.mjs +7 -16
  152. package/esm2022/switch/switch.component.mjs +12 -17
  153. package/esm2022/table/table-column.component.mjs +9 -31
  154. package/esm2022/table/table-skeleton.component.mjs +8 -14
  155. package/esm2022/table/table.component.mjs +32 -83
  156. package/esm2022/tabs/tab.component.mjs +5 -10
  157. package/esm2022/tabs/tabs.component.mjs +8 -15
  158. package/esm2022/tag/tag.component.mjs +6 -10
  159. package/esm2022/time-picker/time-picker-panel.component.mjs +8 -15
  160. package/esm2022/time-picker/time-picker.component.mjs +20 -46
  161. package/esm2022/timeline/timeline.component.mjs +5 -10
  162. package/esm2022/tooltip/tooltip.directive.mjs +11 -34
  163. package/esm2022/tree/tree-node.component.mjs +17 -40
  164. package/esm2022/tree/tree.component.mjs +19 -47
  165. package/esm2022/tree-select/tree-select.component.mjs +18 -40
  166. package/esm2022/upload/file-select-base.mjs +7 -6
  167. package/esm2022/upload/file-select.component.mjs +11 -26
  168. package/esm2022/version.mjs +2 -2
  169. package/esm2022/vote/vote.component.mjs +11 -33
  170. package/esm2022/watermark/watermark.directive.mjs +6 -10
  171. package/fesm2022/ngx-tethys-action.mjs +9 -21
  172. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-affix.mjs +6 -14
  174. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-alert.mjs +4 -9
  176. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-anchor.mjs +8 -19
  178. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -10
  180. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-autocomplete.mjs +14 -39
  182. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  183. package/fesm2022/ngx-tethys-avatar.mjs +14 -29
  184. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  185. package/fesm2022/ngx-tethys-back-top.mjs +5 -9
  186. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  187. package/fesm2022/ngx-tethys-badge.mjs +14 -36
  188. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  189. package/fesm2022/ngx-tethys-button.mjs +13 -30
  190. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  191. package/fesm2022/ngx-tethys-card.mjs +8 -23
  192. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  193. package/fesm2022/ngx-tethys-carousel.mjs +12 -29
  194. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  195. package/fesm2022/ngx-tethys-cascader.mjs +55 -95
  196. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  197. package/fesm2022/ngx-tethys-checkbox.mjs +5 -12
  198. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  199. package/fesm2022/ngx-tethys-collapse.mjs +10 -20
  200. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  201. package/fesm2022/ngx-tethys-color-picker.mjs +19 -42
  202. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  203. package/fesm2022/ngx-tethys-copy.mjs +4 -9
  204. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  205. package/fesm2022/ngx-tethys-core.mjs +6 -43
  206. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  207. package/fesm2022/ngx-tethys-date-picker.mjs +48 -94
  208. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  209. package/fesm2022/ngx-tethys-date-range.mjs +6 -14
  210. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  211. package/fesm2022/ngx-tethys-dialog.mjs +13 -21
  212. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  213. package/fesm2022/ngx-tethys-divider.mjs +6 -14
  214. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  215. package/fesm2022/ngx-tethys-drag-drop.mjs +10 -25
  216. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  217. package/fesm2022/ngx-tethys-dropdown.mjs +19 -42
  218. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  219. package/fesm2022/ngx-tethys-empty.mjs +5 -12
  220. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  221. package/fesm2022/ngx-tethys-flexible-text.mjs +3 -10
  222. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  223. package/fesm2022/ngx-tethys-form.mjs +19 -25
  224. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  225. package/fesm2022/ngx-tethys-icon.mjs +5 -19
  226. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  227. package/fesm2022/ngx-tethys-image.mjs +7 -14
  228. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  229. package/fesm2022/ngx-tethys-input-number.mjs +11 -24
  230. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  231. package/fesm2022/ngx-tethys-input.mjs +10 -21
  232. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  233. package/fesm2022/ngx-tethys-layout.mjs +31 -64
  234. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  235. package/fesm2022/ngx-tethys-list.mjs +16 -18
  236. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  237. package/fesm2022/ngx-tethys-loading.mjs +8 -19
  238. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  239. package/fesm2022/ngx-tethys-menu.mjs +20 -55
  240. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  241. package/fesm2022/ngx-tethys-nav.mjs +28 -55
  242. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  243. package/fesm2022/ngx-tethys-pagination.mjs +17 -67
  244. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  245. package/fesm2022/ngx-tethys-popover.mjs +11 -32
  246. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  247. package/fesm2022/ngx-tethys-progress.mjs +20 -45
  248. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  249. package/fesm2022/ngx-tethys-property-operation.mjs +14 -36
  250. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  251. package/fesm2022/ngx-tethys-property.mjs +10 -21
  252. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  253. package/fesm2022/ngx-tethys-radio.mjs +5 -19
  254. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  255. package/fesm2022/ngx-tethys-rate.mjs +18 -30
  256. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  257. package/fesm2022/ngx-tethys-resizable.mjs +29 -73
  258. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  259. package/fesm2022/ngx-tethys-segment.mjs +10 -21
  260. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  261. package/fesm2022/ngx-tethys-select.mjs +32 -70
  262. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  263. package/fesm2022/ngx-tethys-shared.mjs +49 -105
  264. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  265. package/fesm2022/ngx-tethys-skeleton.mjs +20 -38
  266. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  267. package/fesm2022/ngx-tethys-slide.mjs +6 -5
  268. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  269. package/fesm2022/ngx-tethys-slider.mjs +17 -34
  270. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  271. package/fesm2022/ngx-tethys-space.mjs +5 -9
  272. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  273. package/fesm2022/ngx-tethys-stepper.mjs +13 -31
  274. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  275. package/fesm2022/ngx-tethys-switch.mjs +11 -16
  276. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  277. package/fesm2022/ngx-tethys-table.mjs +43 -120
  278. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  279. package/fesm2022/ngx-tethys-tabs.mjs +10 -20
  280. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  281. package/fesm2022/ngx-tethys-tag.mjs +5 -9
  282. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  283. package/fesm2022/ngx-tethys-time-picker.mjs +24 -55
  284. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  285. package/fesm2022/ngx-tethys-timeline.mjs +4 -9
  286. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  287. package/fesm2022/ngx-tethys-tooltip.mjs +10 -33
  288. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  289. package/fesm2022/ngx-tethys-tree-select.mjs +17 -39
  290. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  291. package/fesm2022/ngx-tethys-tree.mjs +33 -82
  292. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  293. package/fesm2022/ngx-tethys-upload.mjs +15 -28
  294. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  295. package/fesm2022/ngx-tethys-vote.mjs +10 -32
  296. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  297. package/fesm2022/ngx-tethys-watermark.mjs +5 -9
  298. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  299. package/fesm2022/ngx-tethys.mjs +1 -1
  300. package/fesm2022/ngx-tethys.mjs.map +1 -1
  301. package/flexible-text/flexible-text.component.d.ts +1 -0
  302. package/form/form-group-error/form-group-error.component.d.ts +1 -0
  303. package/form/form-group-label.directive.d.ts +2 -1
  304. package/form/form-group.component.d.ts +5 -2
  305. package/icon/icon.component.d.ts +3 -0
  306. package/image/image.directive.d.ts +2 -0
  307. package/input/input-search.component.d.ts +1 -0
  308. package/input/input.component.d.ts +2 -0
  309. package/input-number/input-number.component.d.ts +4 -0
  310. package/layout/header.component.d.ts +5 -2
  311. package/layout/sidebar-header.component.d.ts +1 -0
  312. package/layout/sidebar.component.d.ts +14 -4
  313. package/list/list.component.d.ts +1 -0
  314. package/list/selection/selection-list.d.ts +4 -1
  315. package/loading/loading.component.d.ts +4 -2
  316. package/menu/group/menu-group.component.d.ts +6 -0
  317. package/menu/item/action/menu-item-action.component.d.ts +1 -0
  318. package/menu/item/name/menu-item-name.component.d.ts +1 -0
  319. package/menu/menu.component.d.ts +1 -0
  320. package/nav/icon-nav/icon-nav-link.directive.d.ts +2 -1
  321. package/nav/nav-ink-bar.directive.d.ts +2 -0
  322. package/nav/nav-item.directive.d.ts +3 -0
  323. package/nav/nav.component.d.ts +4 -0
  324. package/package.json +7 -7
  325. package/pagination/pagination.component.d.ts +11 -0
  326. package/popover/popover.directive.d.ts +5 -0
  327. package/progress/progress-circle.component.d.ts +3 -0
  328. package/progress/progress-strip.component.d.ts +1 -0
  329. package/progress/progress.component.d.ts +3 -0
  330. package/property/properties.component.d.ts +1 -0
  331. package/property/property-item.component.d.ts +2 -0
  332. package/property-operation/property-operation.component.d.ts +5 -0
  333. package/radio/group/radio-group.component.d.ts +2 -2
  334. package/rate/rate-item.component.d.ts +1 -0
  335. package/rate/rate.component.d.ts +5 -1
  336. package/resizable/resizable.directive.d.ts +10 -1
  337. package/resizable/resize-handle.component.d.ts +1 -0
  338. package/resizable/resize-handles.component.d.ts +1 -0
  339. package/resizable/styles/resizable.scss +1 -0
  340. package/schematics/dependencies.js +1 -1
  341. package/schematics/version.d.ts +1 -1
  342. package/schematics/version.js +1 -1
  343. package/segment/segment-item.component.d.ts +1 -0
  344. package/segment/segment.component.d.ts +2 -0
  345. package/select/custom-select/custom-select.component.d.ts +12 -1
  346. package/select/native-select/native-select.component.d.ts +1 -0
  347. package/shared/base-form-check.component.d.ts +2 -0
  348. package/shared/directives/thy-autofocus.directive.d.ts +3 -1
  349. package/shared/directives/thy-scroll.directive.d.ts +1 -0
  350. package/shared/directives/thy-show.d.ts +1 -0
  351. package/shared/option/group/option-group.component.d.ts +1 -0
  352. package/shared/option/list-option/list-option.component.d.ts +1 -0
  353. package/shared/option/option.component.d.ts +1 -0
  354. package/shared/option/styles/select-dropdown.scss +1 -0
  355. package/shared/select/select-control/select-control.component.d.ts +7 -0
  356. package/skeleton/skeleton-circle.component.d.ts +1 -0
  357. package/skeleton/skeleton-rectangle.component.d.ts +1 -0
  358. package/skeleton/skeleton.component.d.ts +1 -0
  359. package/skeleton/stylized/bullet-list.component.d.ts +1 -0
  360. package/skeleton/stylized/list.component.d.ts +1 -0
  361. package/skeleton/stylized/paragraph.component.d.ts +1 -0
  362. package/slide/slide-body/slide-body-section.component.d.ts +2 -1
  363. package/slider/slider.component.d.ts +6 -1
  364. package/space/space.component.d.ts +1 -0
  365. package/stepper/step-header.component.d.ts +3 -0
  366. package/stepper/stepper.component.d.ts +2 -0
  367. package/switch/switch.component.d.ts +3 -1
  368. package/table/table-column.component.d.ts +7 -2
  369. package/table/table-skeleton.component.d.ts +2 -0
  370. package/table/table.component.d.ts +14 -0
  371. package/tabs/tab.component.d.ts +1 -0
  372. package/tabs/tabs.component.d.ts +2 -0
  373. package/tag/tag.component.d.ts +1 -0
  374. package/time-picker/time-picker-panel.component.d.ts +2 -0
  375. package/time-picker/time-picker.component.d.ts +6 -2
  376. package/timeline/timeline.component.d.ts +1 -0
  377. package/tooltip/tooltip.directive.d.ts +5 -0
  378. package/tree/tree-node.component.d.ts +7 -0
  379. package/tree/tree.component.d.ts +8 -0
  380. package/tree-select/tree-select.component.d.ts +7 -0
  381. package/upload/file-select-base.d.ts +1 -0
  382. package/upload/file-select.component.d.ts +3 -0
  383. package/vote/vote.component.d.ts +4 -2
  384. package/watermark/watermark.directive.d.ts +1 -0
@@ -1,10 +1,8 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Input, TemplateRef, ViewChild, ChangeDetectionStrategy, HostBinding, HostListener, ElementRef, ChangeDetectorRef, EventEmitter, Output, Inject, Optional } from '@angular/core';
1
+ import { Component, Input, TemplateRef, ViewChild, ChangeDetectionStrategy, HostBinding, HostListener, ElementRef, ChangeDetectorRef, EventEmitter, Output, Inject, Optional, booleanAttribute } from '@angular/core';
3
2
  import { SelectOptionBase } from './select-option-base';
4
3
  import { ENTER, SPACE, hasModifierKey } from 'ngx-tethys/util';
5
4
  import { THY_OPTION_GROUP_COMPONENT, THY_OPTION_PARENT_COMPONENT } from './option.token';
6
5
  import { NgIf } from '@angular/common';
7
- import { InputBoolean } from 'ngx-tethys/core';
8
6
  import { ThyIcon } from 'ngx-tethys/icon';
9
7
  import * as i0 from "@angular/core";
10
8
  export class ThyOptionSelectionChangeEvent {
@@ -134,13 +132,8 @@ export class ThyOption extends SelectOptionBase {
134
132
  }
135
133
  ngOnDestroy() { }
136
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyOption, deps: [{ token: i0.ElementRef }, { token: THY_OPTION_PARENT_COMPONENT, optional: true }, { token: THY_OPTION_GROUP_COMPONENT, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyOption, isStandalone: true, selector: "thy-option", inputs: { thyValue: "thyValue", thyRawValue: "thyRawValue", thyLabelText: "thyLabelText", thyShowOptionCustom: "thyShowOptionCustom", thySearchKey: "thySearchKey", thyDisabled: "thyDisabled" }, outputs: { selectionChange: "selectionChange", visibleChange: "visibleChange" }, host: { listeners: { "click": "onClick($event)", "keydown": "handleKeydown($event)" }, properties: { "class.thy-option-item": "this._isOptionItem", "class.disabled": "this.thyDisabled", "class.hidden": "this.hidden", "attr.tabindex": "this.tabIndex", "class.active": "this.selected" } }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"thyShowOptionCustom; else defaultOption\">\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-container>\n<ng-template #defaultOption>\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-template>\n", dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyOption, isStandalone: true, selector: "thy-option", inputs: { thyValue: "thyValue", thyRawValue: "thyRawValue", thyLabelText: "thyLabelText", thyShowOptionCustom: "thyShowOptionCustom", thySearchKey: "thySearchKey", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, outputs: { selectionChange: "selectionChange", visibleChange: "visibleChange" }, host: { listeners: { "click": "onClick($event)", "keydown": "handleKeydown($event)" }, properties: { "class.thy-option-item": "this._isOptionItem", "class.disabled": "this.thyDisabled", "class.hidden": "this.hidden", "attr.tabindex": "this.tabIndex", "class.active": "this.selected" } }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"thyShowOptionCustom; else defaultOption\">\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-container>\n<ng-template #defaultOption>\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-template>\n", dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
136
  }
139
- __decorate([
140
- InputBoolean(),
141
- __metadata("design:type", Boolean),
142
- __metadata("design:paramtypes", [Boolean])
143
- ], ThyOption.prototype, "thyDisabled", null);
144
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyOption, decorators: [{
145
138
  type: Component,
146
139
  args: [{ selector: 'thy-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyIcon], template: "<ng-container *ngIf=\"thyShowOptionCustom; else defaultOption\">\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-container>\n<ng-template #defaultOption>\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n</ng-template>\n" }]
@@ -171,7 +164,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
171
164
  type: ViewChild,
172
165
  args: [TemplateRef, { static: true }]
173
166
  }], thyDisabled: [{
174
- type: Input
167
+ type: Input,
168
+ args: [{ transform: booleanAttribute }]
175
169
  }, {
176
170
  type: HostBinding,
177
171
  args: [`class.disabled`]
@@ -195,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
195
189
  type: HostListener,
196
190
  args: ['keydown', ['$event']]
197
191
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvb3B0aW9uL29wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL29wdGlvbi9vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBRVosTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUdILDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFMUMsTUFBTSxPQUFPLDZCQUE2QjtJQUN0QyxZQUFtQixNQUFpQixFQUFTLGNBQWMsS0FBSztRQUE3QyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFBRyxDQUFDO0NBQ3ZFO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtDQUV2QztBQUVEOzs7R0FHRztBQVFILE1BQU0sT0FBTyxTQUFVLFNBQVEsZ0JBQWdCO0lBbUIzQyxJQUdJLFdBQVcsQ0FBQyxLQUFjO1FBQzFCLElB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Z0JBRU0sUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtwQyxXQUFXO3NCQUhkLEtBQUs7O3NCQUVMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWN6QixNQUFNO3NCQURULFdBQVc7dUJBQUMsY0FBYztnQkFNdkIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGVBQWU7Z0JBTXhCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxjQUFjO2dCQUtSLGVBQWU7c0JBQWpDLE1BQU07Z0JBQ1ksYUFBYTtzQkFBL0IsTUFBTTtnQkFnQlAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIaWdobGlnaHRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQmFzZSB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi1iYXNlJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSwgaGFzTW9kaWZpZXJLZXkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHtcbiAgICBJVGh5T3B0aW9uR3JvdXBDb21wb25lbnQsXG4gICAgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCxcbiAgICBUSFlfT1BUSU9OX0dST1VQX0NPTVBPTkVOVCxcbiAgICBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlRcbn0gZnJvbSAnLi9vcHRpb24udG9rZW4nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5cbmV4cG9ydCBjbGFzcyBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbjogVGh5T3B0aW9uLCBwdWJsaWMgaXNVc2VySW5wdXQgPSBmYWxzZSkge31cbn1cblxuZXhwb3J0IGNsYXNzIFRoeU9wdGlvblZpc2libGVDaGFuZ2VFdmVudCB7XG4gICAgb3B0aW9uOiBUaHlPcHRpb247XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIEBvcmRlciAyMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1vcHRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeU9wdGlvbiBleHRlbmRzIFNlbGVjdE9wdGlvbkJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEhpZ2hsaWdodGFibGUge1xuICAgIHByaXZhdGUgX3NlbGVjdGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaGlkZGVuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRoeVZhbHVlOiBhbnk7XG5cbiAgICBASW5wdXQoKSB0aHlSYXdWYWx1ZTogYW55O1xuXG4gICAgQElucHV0KCkgdGh5TGFiZWxUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSB0aHlTaG93T3B0aW9uQ3VzdG9tOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGh5U2VhcmNoS2V5OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1vcHRpb24taXRlbScpIF9pc09wdGlvbkl0ZW0gPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuZGlzYWJsZWRgKVxuICAgIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aHlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGlkZGVuIHx8IHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGlkZGVuJylcbiAgICBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZGVuO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IHRhYkluZGV4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJy0xJyA6ICcwJztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLmFjdGl2ZWApXG4gICAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPFRoeU9wdGlvblZpc2libGVDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIWV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCkgcHVibGljIHBhcmVudDogSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChUSFlfT1BUSU9OX0dST1VQX0NPTVBPTkVOVCkgcHVibGljIGdyb3VwOiBJVGh5T3B0aW9uR3JvdXBDb21wb25lbnQsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldEhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2ZW50LmtleUNvZGUgPT09IEVOVEVSIHx8IGV2ZW50LmtleUNvZGUgPT09IFNQQUNFKSAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLnBhcmVudC5pc011bHRpcGxlID8gIXRoaXMuX3NlbGVjdGVkIDogdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QoZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVPcHRpb24oKSB7XG4gICAgICAgIGlmICghdGhpcy5faGlkZGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoeyBvcHRpb246IHRoaXMgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dPcHRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9oaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoeyBvcHRpb246IHRoaXMgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1hdGNoU2VhcmNoVGV4dChzZWFyY2hUZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudGh5U2VhcmNoS2V5KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlTZWFyY2hLZXkudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkgPj0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlMYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkgPj0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdob3ZlcicpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoJ2hvdmVyJyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudChpc1VzZXJJbnB1dCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobmV3IFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KHRoaXMsIGlzVXNlcklucHV0KSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7fVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoeVNob3dPcHRpb25DdXN0b207IGVsc2UgZGVmYXVsdE9wdGlvblwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDx0aHktaWNvbiBjbGFzcz1cImNoZWNrZWQtaWNvblwiIHRoeUljb25OYW1lPVwiY2hlY2tcIj48L3RoeS1pY29uPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb24+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPnt7IHRoeUxhYmVsVGV4dCB9fTwvc3Bhbj5cbiAgPHRoeS1pY29uIGNsYXNzPVwiY2hlY2tlZC1pY29uXCIgdGh5SWNvbk5hbWU9XCJjaGVja1wiPjwvdGh5LWljb24+XG48L25nLXRlbXBsYXRlPlxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvb3B0aW9uL29wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL29wdGlvbi9vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLFlBQVksRUFFWixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUdILDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQyxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFlBQW1CLE1BQWlCLEVBQVMsY0FBYyxLQUFLO1FBQTdDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUFHLENBQUM7Q0FDdkU7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0NBRXZDO0FBRUQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLFNBQVUsU0FBUSxnQkFBZ0I7SUFtQjNDLElBRUksV0FBVyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFD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RUFBRSxJQUFJLEVBQUU7Z0JBSXBDLFdBQVc7c0JBRmQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWN6QixNQUFNO3NCQURULFdBQVc7dUJBQUMsY0FBYztnQkFNdkIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGVBQWU7Z0JBTXhCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxjQUFjO2dCQUtSLGVBQWU7c0JBQWpDLE1BQU07Z0JBQ1ksYUFBYTtzQkFBL0IsTUFBTTtnQkFnQlAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25CYXNlIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLWJhc2UnO1xuaW1wb3J0IHsgRU5URVIsIFNQQUNFLCBoYXNNb2RpZmllcktleSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQge1xuICAgIElUaHlPcHRpb25Hcm91cENvbXBvbmVudCxcbiAgICBJVGh5T3B0aW9uUGFyZW50Q29tcG9uZW50LFxuICAgIFRIWV9PUFRJT05fR1JPVVBfQ09NUE9ORU5ULFxuICAgIFRIWV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVFxufSBmcm9tICcuL29wdGlvbi50b2tlbic7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuXG5leHBvcnQgY2xhc3MgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb246IFRoeU9wdGlvbiwgcHVibGljIGlzVXNlcklucHV0ID0gZmFsc2UpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBUaHlPcHRpb25WaXNpYmxlQ2hhbmdlRXZlbnQge1xuICAgIG9wdGlvbjogVGh5T3B0aW9uO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktb3B0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlPcHRpb24gZXh0ZW5kcyBTZWxlY3RPcHRpb25CYXNlIGltcGxlbWVudHMgT25EZXN0cm95LCBIaWdobGlnaHRhYmxlIHtcbiAgICBwcml2YXRlIF9zZWxlY3RlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2hpZGRlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0aHlWYWx1ZTogYW55O1xuXG4gICAgQElucHV0KCkgdGh5UmF3VmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCgpIHRoeUxhYmVsVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdGh5U2hvd09wdGlvbkN1c3RvbTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHRoeVNlYXJjaEtleTogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktb3B0aW9uLWl0ZW0nKSBfaXNPcHRpb25JdGVtID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5kaXNhYmxlZGApXG4gICAgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gfHwgdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRkZW4nKVxuICAgIGdldCBoaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW47XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgdGFiSW5kZXgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAnLTEnIDogJzAnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuYWN0aXZlYClcbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uVmlzaWJsZUNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhZX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UKSBwdWJsaWMgcGFyZW50OiBJVGh5T3B0aW9uUGFyZW50Q29tcG9uZW50LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIWV9PUFRJT05fR1JPVVBfQ09NUE9ORU5UKSBwdWJsaWMgZ3JvdXA6IElUaHlPcHRpb25Hcm91cENvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICgoZXZlbnQua2V5Q29kZSA9PT0gRU5URVIgfHwgZXZlbnQua2V5Q29kZSA9PT0gU1BBQ0UpICYmICFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RWaWFJbnRlcmFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRoaXMucGFyZW50LmlzTXVsdGlwbGUgPyAhdGhpcy5fc2VsZWN0ZWQgOiB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZU9wdGlvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9oaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh7IG9wdGlvbjogdGhpcyB9KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd09wdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5faGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh7IG9wdGlvbjogdGhpcyB9KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWF0Y2hTZWFyY2hUZXh0KHNlYXJjaFRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy50aHlTZWFyY2hLZXkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVNlYXJjaEtleS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUxhYmVsVGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnaG92ZXInKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGlzVXNlcklucHV0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChuZXcgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQodGhpcywgaXNVc2VySW5wdXQpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHt9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGh5U2hvd09wdGlvbkN1c3RvbTsgZWxzZSBkZWZhdWx0T3B0aW9uXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPHRoeS1pY29uIGNsYXNzPVwiY2hlY2tlZC1pY29uXCIgdGh5SWNvbk5hbWU9XCJjaGVja1wiPjwvdGh5LWljb24+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvbj5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgdGh5TGFiZWxUZXh0IH19PC9zcGFuPlxuICA8dGh5LWljb24gY2xhc3M9XCJjaGVja2VkLWljb25cIiB0aHlJY29uTmFtZT1cImNoZWNrXCI+PC90aHktaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,7 +1,5 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { InputBoolean, InputNumber } from 'ngx-tethys/core';
3
1
  import { isUndefinedOrNull } from 'ngx-tethys/util';
4
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, Renderer2, TemplateRef, ViewChild, booleanAttribute, numberAttribute } from '@angular/core';
5
3
  import { useHostRenderer } from '@tethys/cdk/dom';
6
4
  import { NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
7
5
  import { FormsModule } from '@angular/forms';
@@ -229,67 +227,42 @@ export class ThySelectControl {
229
227
  this.thyOnBlur.emit(event);
230
228
  }
231
229
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySelectControl, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThySelectControl, isStandalone: true, selector: "thy-select-control,[thySelectControl]", inputs: { thyPanelOpened: "thyPanelOpened", thyIsMultiple: "thyIsMultiple", thyShowSearch: "thyShowSearch", thySelectedOptions: "thySelectedOptions", thyDisabled: "thyDisabled", customDisplayTemplate: "customDisplayTemplate", thyAllowClear: "thyAllowClear", thyPlaceholder: "thyPlaceholder", thySize: "thySize", thyMaxTagCount: "thyMaxTagCount", thyBorderless: "thyBorderless", thyPreset: "thyPreset" }, outputs: { thyOnSearch: "thyOnSearch", thyOnRemove: "thyOnRemove", thyOnClear: "thyOnClear", thyOnBlur: "thyOnBlur" }, host: { properties: { "class.select-control-borderless": "thyBorderless" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"isComposing = true\"\n (compositionend)=\"isComposing = false\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n <div class=\"text-placeholder text-truncate\" *ngIf=\"!isSelectedValue\" [ngStyle]=\"placeholderStyle\">\n {{ thyPlaceholder }}\n </div>\n <ng-container *ngIf=\"isMultiple; else single\">\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\">\n <ng-container *ngIf=\"thyPreset === 'tag'; else default\">\n <div thyFlexItem class=\"custom-choice-item text-truncate\" *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #default>\n <div\n thyFlexItem\n thyTag\n class=\"choice-item\"\n [ngClass]=\"{ disabled: disabled === true }\"\n [thySize]=\"tagSize\"\n *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <div class=\"text-truncate h-100\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n {{ item.thyLabelText }}\n </ng-container>\n </div>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-template>\n\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n *ngIf=\"thyMaxTagCount && multipleSelectedValue.length > thyMaxTagCount\"\n thyTag\n [thySize]=\"tagSize\"\n [ngClass]=\"{ disabled: disabled === true }\">\n <div class=\"text-truncate\">+{{ multipleSelectedValue.length - thyMaxTagCount + 1 }}...</div>\n </div>\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #single>\n <ng-container *ngIf=\"isSelectedValue\">\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: selectedValue.thyRawValue || selectedValue.thyValue || selectedValue\n }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n <span class=\"text-truncate\">{{ selectedValue?.thyLabelText }}</span>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </ng-template>\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n<span class=\"select-control-clear remove-link\" *ngIf=\"showClearIcon\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</span>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyGridModule }, { kind: "directive", type: i2.ThyFlex, selector: "[thyFlex]", inputs: ["thyDirection", "thyWrap", "thyJustifyContent", "thyAlignItems", "thyGap"] }, { kind: "directive", type: i2.ThyFlexItem, selector: "[thyFlexItem]", inputs: ["thyFlexItem", "thyGrow", "thyShrink", "thyBasis"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySelectControl, isStandalone: true, selector: "thy-select-control,[thySelectControl]", inputs: { thyPanelOpened: ["thyPanelOpened", "thyPanelOpened", booleanAttribute], thyIsMultiple: ["thyIsMultiple", "thyIsMultiple", booleanAttribute], thyShowSearch: ["thyShowSearch", "thyShowSearch", booleanAttribute], thySelectedOptions: "thySelectedOptions", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], customDisplayTemplate: "customDisplayTemplate", thyAllowClear: ["thyAllowClear", "thyAllowClear", booleanAttribute], thyPlaceholder: "thyPlaceholder", thySize: "thySize", thyMaxTagCount: ["thyMaxTagCount", "thyMaxTagCount", numberAttribute], thyBorderless: ["thyBorderless", "thyBorderless", booleanAttribute], thyPreset: "thyPreset" }, outputs: { thyOnSearch: "thyOnSearch", thyOnRemove: "thyOnRemove", thyOnClear: "thyOnClear", thyOnBlur: "thyOnBlur" }, host: { properties: { "class.select-control-borderless": "thyBorderless" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"isComposing = true\"\n (compositionend)=\"isComposing = false\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n <div class=\"text-placeholder text-truncate\" *ngIf=\"!isSelectedValue\" [ngStyle]=\"placeholderStyle\">\n {{ thyPlaceholder }}\n </div>\n <ng-container *ngIf=\"isMultiple; else single\">\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\">\n <ng-container *ngIf=\"thyPreset === 'tag'; else default\">\n <div thyFlexItem class=\"custom-choice-item text-truncate\" *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #default>\n <div\n thyFlexItem\n thyTag\n class=\"choice-item\"\n [ngClass]=\"{ disabled: disabled === true }\"\n [thySize]=\"tagSize\"\n *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <div class=\"text-truncate h-100\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n {{ item.thyLabelText }}\n </ng-container>\n </div>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-template>\n\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n *ngIf=\"thyMaxTagCount && multipleSelectedValue.length > thyMaxTagCount\"\n thyTag\n [thySize]=\"tagSize\"\n [ngClass]=\"{ disabled: disabled === true }\">\n <div class=\"text-truncate\">+{{ multipleSelectedValue.length - thyMaxTagCount + 1 }}...</div>\n </div>\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #single>\n <ng-container *ngIf=\"isSelectedValue\">\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: selectedValue.thyRawValue || selectedValue.thyValue || selectedValue\n }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n <span class=\"text-truncate\">{{ selectedValue?.thyLabelText }}</span>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </ng-template>\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n<span class=\"select-control-clear remove-link\" *ngIf=\"showClearIcon\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</span>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyGridModule }, { kind: "directive", type: i2.ThyFlex, selector: "[thyFlex]", inputs: ["thyDirection", "thyWrap", "thyJustifyContent", "thyAlignItems", "thyGap"] }, { kind: "directive", type: i2.ThyFlexItem, selector: "[thyFlexItem]", inputs: ["thyFlexItem", "thyGrow", "thyShrink", "thyBasis"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
233
231
  }
234
- __decorate([
235
- InputBoolean(),
236
- __metadata("design:type", Boolean),
237
- __metadata("design:paramtypes", [Boolean])
238
- ], ThySelectControl.prototype, "thyPanelOpened", null);
239
- __decorate([
240
- InputBoolean(),
241
- __metadata("design:type", Boolean),
242
- __metadata("design:paramtypes", [Boolean])
243
- ], ThySelectControl.prototype, "thyIsMultiple", null);
244
- __decorate([
245
- InputBoolean(),
246
- __metadata("design:type", Boolean),
247
- __metadata("design:paramtypes", [Boolean])
248
- ], ThySelectControl.prototype, "thyShowSearch", null);
249
- __decorate([
250
- InputBoolean(),
251
- __metadata("design:type", Boolean),
252
- __metadata("design:paramtypes", [Boolean])
253
- ], ThySelectControl.prototype, "thyDisabled", null);
254
- __decorate([
255
- InputBoolean(),
256
- __metadata("design:type", Object)
257
- ], ThySelectControl.prototype, "thyAllowClear", void 0);
258
- __decorate([
259
- InputNumber(),
260
- __metadata("design:type", Object)
261
- ], ThySelectControl.prototype, "thyMaxTagCount", void 0);
262
- __decorate([
263
- InputBoolean(),
264
- __metadata("design:type", Object)
265
- ], ThySelectControl.prototype, "thyBorderless", void 0);
266
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySelectControl, decorators: [{
267
233
  type: Component,
268
234
  args: [{ selector: 'thy-select-control,[thySelectControl]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule, NgClass, NgIf, NgStyle, NgFor, ThyTag, NgTemplateOutlet, ThyIcon, ThyGridModule], host: {
269
235
  '[class.select-control-borderless]': 'thyBorderless'
270
236
  }, template: "<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"isComposing = true\"\n (compositionend)=\"isComposing = false\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n <div class=\"text-placeholder text-truncate\" *ngIf=\"!isSelectedValue\" [ngStyle]=\"placeholderStyle\">\n {{ thyPlaceholder }}\n </div>\n <ng-container *ngIf=\"isMultiple; else single\">\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\">\n <ng-container *ngIf=\"thyPreset === 'tag'; else default\">\n <div thyFlexItem class=\"custom-choice-item text-truncate\" *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #default>\n <div\n thyFlexItem\n thyTag\n class=\"choice-item\"\n [ngClass]=\"{ disabled: disabled === true }\"\n [thySize]=\"tagSize\"\n *ngFor=\"let item of maxSelectedTags; trackBy: trackValue\">\n <div class=\"text-truncate h-100\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n {{ item.thyLabelText }}\n </ng-container>\n </div>\n <div *ngIf=\"!disabled\" class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n </div>\n </ng-template>\n\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n *ngIf=\"thyMaxTagCount && multipleSelectedValue.length > thyMaxTagCount\"\n thyTag\n [thySize]=\"tagSize\"\n [ngClass]=\"{ disabled: disabled === true }\">\n <div class=\"text-truncate\">+{{ multipleSelectedValue.length - thyMaxTagCount + 1 }}...</div>\n </div>\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #single>\n <ng-container *ngIf=\"isSelectedValue\">\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle\">\n <ng-template\n #customDisplay\n [ngTemplateOutlet]=\"customDisplayTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: selectedValue.thyRawValue || selectedValue.thyValue || selectedValue\n }\"></ng-template>\n <ng-container *ngIf=\"!customDisplayTemplate; else customDisplay\">\n <span class=\"text-truncate\">{{ selectedValue?.thyLabelText }}</span>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </ng-template>\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n<span class=\"select-control-clear remove-link\" *ngIf=\"showClearIcon\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</span>\n" }]
271
237
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { thyPanelOpened: [{
272
- type: Input
238
+ type: Input,
239
+ args: [{ transform: booleanAttribute }]
273
240
  }], thyIsMultiple: [{
274
- type: Input
241
+ type: Input,
242
+ args: [{ transform: booleanAttribute }]
275
243
  }], thyShowSearch: [{
276
- type: Input
244
+ type: Input,
245
+ args: [{ transform: booleanAttribute }]
277
246
  }], thySelectedOptions: [{
278
247
  type: Input
279
248
  }], thyDisabled: [{
280
- type: Input
249
+ type: Input,
250
+ args: [{ transform: booleanAttribute }]
281
251
  }], customDisplayTemplate: [{
282
252
  type: Input
283
253
  }], thyAllowClear: [{
284
- type: Input
254
+ type: Input,
255
+ args: [{ transform: booleanAttribute }]
285
256
  }], thyPlaceholder: [{
286
257
  type: Input
287
258
  }], thySize: [{
288
259
  type: Input
289
260
  }], thyMaxTagCount: [{
290
- type: Input
261
+ type: Input,
262
+ args: [{ transform: numberAttribute }]
291
263
  }], thyBorderless: [{
292
- type: Input
264
+ type: Input,
265
+ args: [{ transform: booleanAttribute }]
293
266
  }], thyPreset: [{
294
267
  type: Input
295
268
  }], thyOnSearch: [{
@@ -304,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
304
277
  type: ViewChild,
305
278
  args: ['inputElement']
306
279
  }] } });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9zZWxlY3Qvc2VsZWN0LWNvbnRyb2wvc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9zZWxlY3Qvc2VsZWN0LWNvbnRyb2wvc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSWhEOztHQUVHO0FBV0gsTUFBTSxPQUFPLGdCQUFnQjtJQXVCekIsSUFFSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FB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YUFBYTtzQkFGWixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBa0JrQixjQUFjO3NCQUFyQyxLQUFLO2dCQUVtQixhQUFhO3NCQUFyQyxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUlBLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxTQUFTO3NCQURmLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVRhZ1NpemUgfSBmcm9tICduZ3gtdGV0aHlzL3RhZyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlUYWcgfSBmcm9tICduZ3gtdGV0aHlzL3RhZyc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vb3B0aW9uL3NlbGVjdC1vcHRpb24tYmFzZSc7XG5pbXBvcnQgeyBUaHlHcmlkTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9ncmlkJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0Q29udHJvbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAnJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zZWxlY3QtY29udHJvbCxbdGh5U2VsZWN0Q29udHJvbF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nRm9yLCBUaHlUYWcsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUljb24sIFRoeUdyaWRNb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5zZWxlY3QtY29udHJvbC1ib3JkZXJsZXNzXSc6ICd0aHlCb3JkZXJsZXNzJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2VsZWN0Q29udHJvbCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaW5wdXRWYWx1ZSA9ICcnO1xuXG4gICAgaXNDb21wb3NpbmcgPSBmYWxzZTtcblxuICAgIHBhbmVsT3BlbmVkID0gZmFsc2U7XG5cbiAgICBpc011bHRpcGxlID0gZmFsc2U7XG5cbiAgICBzaG93U2VhcmNoID0gZmFsc2U7XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgc2l6ZTogU2VsZWN0Q29udHJvbFNpemU7XG5cbiAgICBzZWxlY3RlZE9wdGlvbnM6IFNlbGVjdE9wdGlvbkJhc2UgfCBTZWxlY3RPcHRpb25CYXNlW107XG5cbiAgICBzZWFyY2hJbnB1dENvbnRyb2xDbGFzczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG5cbiAgICB0YWdTaXplOiBUaHlUYWdTaXplO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgZ2V0IHRoeVBhbmVsT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYW5lbE9wZW5lZDtcbiAgICB9XG5cbiAgICBzZXQgdGh5UGFuZWxPcGVuZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCAmJiB0aGlzLnRoeVNob3dTZWFyY2gpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGFuZWxPcGVuZWQgJiYgdGhpcy50aHlTaG93U2VhcmNoKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0Q29udHJvbENsYXNzKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBnZXQgdGh5SXNNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNdWx0aXBsZTtcbiAgICB9XG5cbiAgICBzZXQgdGh5SXNNdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzTXVsdGlwbGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RDb250cm9sQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIGdldCB0aHlTaG93U2VhcmNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93U2VhcmNoO1xuICAgIH1cblxuICAgIHNldCB0aHlTaG93U2VhcmNoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2hvd1NlYXJjaCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFNlbGVjdENvbnRyb2xDbGFzcygpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHRoeVNlbGVjdGVkT3B0aW9ucygpOiBTZWxlY3RPcHRpb25CYXNlIHwgU2VsZWN0T3B0aW9uQmFzZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zO1xuICAgIH1cblxuICAgIHNldCB0aHlTZWxlY3RlZE9wdGlvbnModmFsdWU6IFNlbGVjdE9wdGlvbkJhc2UgfCBTZWxlY3RPcHRpb25CYXNlW10pIHtcbiAgICAgICAgbGV0IHNhbWVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zO1xuICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICBpZiAob2xkVmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIG9sZFZhbHVlLmxlbmd0aCA9PT0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc2FtZVZhbHVlID0gdmFsdWUuZXZlcnkoKG9wdGlvbiwgaW5kZXgpID0+IG9wdGlvbi50aHlWYWx1ZSA9PT0gb2xkVmFsdWVbaW5kZXhdLnRoeVZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChvbGRWYWx1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNhbWVWYWx1ZSA9IChvbGRWYWx1ZSBhcyBTZWxlY3RPcHRpb25CYXNlKS50aHlWYWx1ZSA9PT0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbkJhc2UpLnRoeVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnBhbmVsT3BlbmVkICYmIHRoaXMudGh5U2hvd1NlYXJjaCkge1xuICAgICAgICAgICAgaWYgKCFzYW1lVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL+etieW+hee7hOS7tua4suafk+WlveWGjeiBmueEplxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIGdldCB0aHlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RDb250cm9sQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbURpc3BsYXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgdGh5QWxsb3dDbGVhciA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICB0aHlQbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgdGh5U2l6ZSgpOiBTZWxlY3RDb250cm9sU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemU7XG4gICAgfVxuXG4gICAgc2V0IHRoeVNpemUodmFsdWU6IFNlbGVjdENvbnRyb2xTaXplKSB7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFNlbGVjdENvbnRyb2xDbGFzcygpO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ3NtJykge1xuICAgICAgICAgICAgdGhpcy50YWdTaXplID0gJ3NtJztcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdGhpcy50YWdTaXplID0gJ2xnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFnU2l6ZSA9ICdtZCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlNYXhUYWdDb3VudCA9IDA7XG5cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5Qm9yZGVybGVzcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGh5UHJlc2V0OiBzdHJpbmcgPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHRoeU9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh5T25SZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogU2VsZWN0T3B0aW9uQmFzZTsgJGV2ZW50T3JpZ2luOiBFdmVudCB9PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRoeU9uQ2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRoeU9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKVxuICAgIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIGdldCBzZWxlY3RlZFZhbHVlU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgICAgIGxldCBzaG93U2VsZWN0ZWRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5zaG93U2VhcmNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgIHNob3dTZWxlY3RlZFZhbHVlID0gISh0aGlzLmlzQ29tcG9zaW5nIHx8IHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNob3dTZWxlY3RlZFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNob3dTZWxlY3RlZFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkaXNwbGF5OiBzaG93U2VsZWN0ZWRWYWx1ZSA/ICdmbGV4JyA6ICdub25lJyB9O1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICBsZXQgcGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRoeVBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQ29tcG9zaW5nIHx8IHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkaXNwbGF5OiBwbGFjZWhvbGRlciA/ICdibG9jaycgOiAnbm9uZScgfTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlTZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IG11bHRpcGxlU2VsZWN0ZWRWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlTZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IG1heFNlbGVjdGVkVGFncygpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5TWF4VGFnQ291bnQgPiAwICYmIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkgJiYgdGhpcy50aHlTZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gdGhpcy50aHlNYXhUYWdDb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zLnNsaWNlKDAsIHRoaXMudGh5TWF4VGFnQ291bnQgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50aHlTZWxlY3RlZE9wdGlvbnMgYXMgU2VsZWN0T3B0aW9uQmFzZVtdO1xuICAgIH1cblxuICAgIGdldCBzaG93Q2xlYXJJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlBbGxvd0NsZWFyICYmIHRoaXMuaXNTZWxlY3RlZFZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpc1NlbGVjdGVkVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoIXRoaXMuaXNNdWx0aXBsZSAmJiAhaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlTZWxlY3RlZE9wdGlvbnMpKSB8fFxuICAgICAgICAgICAgKHRoaXMuaXNNdWx0aXBsZSAmJiAoPFNlbGVjdE9wdGlvbkJhc2VbXT50aGlzLnRoeVNlbGVjdGVkT3B0aW9ucykubGVuZ3RoID4gMClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RDb250cm9sQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RDb250cm9sQ2xhc3MoKSB7XG4gICAgICAgIGNvbnN0IG1vZGVUeXBlID0gdGhpcy5pc011bHRpcGxlID8gJ211bHRpcGxlJyA6ICdzaW5nbGUnO1xuICAgICAgICBjb25zdCBzZWxlY3RDb250cm9sQ2xhc3MgPSB7XG4gICAgICAgICAgICBbYGZvcm0tY29udHJvbGBdOiB0cnVlLFxuICAgICAgICAgICAgW2Bmb3JtLWNvbnRyb2wtJHt0aGlzLnRoeVNpemV9YF06ICEhdGhpcy50aHlTaXplLFxuICAgICAgICAgICAgW2Bmb3JtLWNvbnRyb2wtY3VzdG9tYF06IHRydWUsXG4gICAgICAgICAgICBbYHNlbGVjdC1jb250cm9sYF06IHRydWUsXG4gICAgICAgICAgICBbYHNlbGVjdC1jb250cm9sLSR7bW9kZVR5cGV9YF06IHRydWUsXG4gICAgICAgICAgICBbYHNlbGVjdC1jb250cm9sLXNob3ctc2VhcmNoYF06IHRoaXMuc2hvd1NlYXJjaCxcbiAgICAgICAgICAgIFtgcGFuZWwtaXMtb3BlbmVkYF06IHRoaXMucGFuZWxPcGVuZWQsXG4gICAgICAgICAgICBbYGRpc2FibGVkYF06IHRoaXMuZGlzYWJsZWRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3NCeU1hcChzZWxlY3RDb250cm9sQ2xhc3MpO1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0Q29udHJvbENsYXNzID0ge1xuICAgICAgICAgICAgW2Bmb3JtLWNvbnRyb2xgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgZm9ybS1jb250cm9sLSR7dGhpcy50aHlTaXplfWBdOiAhIXRoaXMudGh5U2l6ZSxcbiAgICAgICAgICAgIFtgc2VhcmNoLWlucHV0LWZpZWxkYF06IHRydWUsXG4gICAgICAgICAgICBbYGhpZGRlbmBdOiAhdGhpcy50aHlTaG93U2VhcmNoXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2V0SW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICAgICAgICAgIHRoaXMudGh5T25TZWFyY2guZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQmFja3NwYWNlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmlzQ29tcG9zaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZS5sZW5ndGggPT09IDAgJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUhhbmRsZSh0aGlzLnNlbGVjdGVkT3B0aW9uc1t0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSAxXSwgZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlV2lkdGgoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGUgJiYgdGhpcy50aHlTaG93U2VhcmNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFZhbHVlIHx8IHRoaXMuaXNDb21wb3NpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGh9cHhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnd2lkdGgnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUhhbmRsZShpdGVtOiBTZWxlY3RPcHRpb25CYXNlLCAkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCh7IGl0ZW06IGl0ZW0sICRldmVudE9yaWdpbjogJGV2ZW50IH0pO1xuICAgIH1cblxuICAgIGNsZWFySGFuZGxlKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlPbkNsZWFyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICB0cmFja1ZhbHVlKF9pbmRleDogbnVtYmVyLCBvcHRpb246IFNlbGVjdE9wdGlvbkJhc2UpOiBhbnkge1xuICAgICAgICByZXR1cm4gb3B0aW9uLnRoeVZhbHVlO1xuICAgIH1cblxuICAgIG9uQmx1cihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy50aHlPbkJsdXIuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlPlxuICA8aW5wdXRcbiAgICAjaW5wdXRFbGVtZW50XG4gICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAoY29tcG9zaXRpb25zdGFydCk9XCJpc0NvbXBvc2luZyA9IHRydWVcIlxuICAgIChjb21wb3NpdGlvbmVuZCk9XCJpc0NvbXBvc2luZyA9IGZhbHNlXCJcbiAgICBhdXRvY29tcGxldGU9XCJzb21ldGhpbmctbmV3XCJcbiAgICBbbmdDbGFzc109XCJzZWFyY2hJbnB1dENvbnRyb2xDbGFzc1wiXG4gICAgKGlucHV0KT1cInVwZGF0ZVdpZHRoKClcIlxuICAgIFtuZ01vZGVsXT1cImlucHV0VmFsdWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldElucHV0VmFsdWUoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uYmFja3NwYWNlKT1cImhhbmRsZUJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwidGh5RGlzYWJsZWRcIlxuICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXYgY2xhc3M9XCJzZWxlY3QtY29udHJvbC1yZW5kZXJlZFwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1wbGFjZWhvbGRlciB0ZXh0LXRydW5jYXRlXCIgKm5nSWY9XCIhaXNTZWxlY3RlZFZhbHVlXCIgW25nU3R5bGVdPVwicGxhY2Vob2xkZXJTdHlsZVwiPlxuICAgIHt7IHRoeVBsYWNlaG9sZGVyIH19XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNdWx0aXBsZTsgZWxzZSBzaW5nbGVcIj5cbiAgICA8ZGl2IHRoeUZsZXggdGh5V3JhcD1cIndyYXBcIiB0aHlHYXA9XCI0XCIgdGh5QWxpZ25JdGVtcz1cImNlbnRlclwiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlQcmVzZXQgPT09ICd0YWcnOyBlbHNlIGRlZmF1bHRcIj5cbiAgICAgICAgPGRpdiB0aHlGbGV4SXRlbSBjbGFzcz1cImN1c3RvbS1jaG9pY2UtaXRlbSB0ZXh0LXRydW5jYXRlXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWF4U2VsZWN0ZWRUYWdzOyB0cmFja0J5OiB0cmFja1ZhbHVlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21EaXNwbGF5VGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLnRoeVJhd1ZhbHVlIHx8IGl0ZW0udGh5VmFsdWUgfHwgaXRlbSB9XCI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJjaG9pY2UtcmVtb3ZlLWxpbmsgbWwtMVwiIChjbGljayk9XCJyZW1vdmVIYW5kbGUoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImNsb3NlXCIgY2xhc3M9XCJmb250LXNpemUtc21cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICB0aHlGbGV4SXRlbVxuICAgICAgICAgIHRoeVRhZ1xuICAgICAgICAgIGNsYXNzPVwiY2hvaWNlLWl0ZW1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkID09PSB0cnVlIH1cIlxuICAgICAgICAgIFt0aHlTaXplXT1cInRhZ1NpemVcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1heFNlbGVjdGVkVGFnczsgdHJhY2tCeTogdHJhY2tWYWx1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIGgtMTAwXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgI2N1c3RvbURpc3BsYXlcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tRGlzcGxheVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLnRoeVJhd1ZhbHVlIHx8IGl0ZW0udGh5VmFsdWUgfHwgaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tRGlzcGxheVRlbXBsYXRlOyBlbHNlIGN1c3RvbURpc3BsYXlcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS50aHlMYWJlbFRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRcIiBjbGFzcz1cImNob2ljZS1yZW1vdmUtbGluayBtbC0xXCIgKGNsaWNrKT1cInJlbW92ZUhhbmRsZShpdGVtLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIiBjbGFzcz1cImZvbnQtc2l6ZS1zbVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdlxuICAgICAgICB0aHlGbGV4SXRlbVxuICAgICAgICBjbGFzcz1cImNob2ljZS1pdGVtIG1heC10YWctY291bnQtY2hvaWNlXCJcbiAgICAgICAgKm5nSWY9XCJ0aHlNYXhUYWdDb3VudCAmJiBtdWx0aXBsZVNlbGVjdGVkVmFsdWUubGVuZ3RoID4gdGh5TWF4VGFnQ291bnRcIlxuICAgICAgICB0aHlUYWdcbiAgICAgICAgW3RoeVNpemVdPVwidGFnU2l6ZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkID09PSB0cnVlIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj4re3sgbXVsdGlwbGVTZWxlY3RlZFZhbHVlLmxlbmd0aCAtIHRoeU1heFRhZ0NvdW50ICsgMSB9fS4uLjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHRoeUZsZXhJdGVtIGNsYXNzPVwic2VsZWN0LWNvbnRyb2wtc2VhcmNoXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNzaW5nbGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VsZWN0ZWRWYWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLXZhbHVlIHRleHQtdHJ1bmNhdGVcIiBbbmdTdHlsZV09XCJzZWxlY3RlZFZhbHVlU3R5bGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI2N1c3RvbURpc3BsYXlcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21EaXNwbGF5VGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHNlbGVjdGVkVmFsdWUudGh5UmF3VmFsdWUgfHwgc2VsZWN0ZWRWYWx1ZS50aHlWYWx1ZSB8fCBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tRGlzcGxheVRlbXBsYXRlOyBlbHNlIGN1c3RvbURpc3BsYXlcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj57eyBzZWxlY3RlZFZhbHVlPy50aHlMYWJlbFRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdC1jb250cm9sLXNlYXJjaFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG48c3BhbiBjbGFzcz1cInNlbGVjdC1jb250cm9sLWFycm93XCI+XG4gIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvd25cIiBjbGFzcz1cImZvbnQtc2l6ZS1iYXNlXCI+PC90aHktaWNvbj5cbjwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwic2VsZWN0LWNvbnRyb2wtY2xlYXIgcmVtb3ZlLWxpbmtcIiAqbmdJZj1cInNob3dDbGVhckljb25cIiAoY2xpY2spPVwiY2xlYXJIYW5kbGUoJGV2ZW50KVwiPlxuICA8dGh5LWljb24gY2xhc3M9XCJyZW1vdmUtbGluay1pY29uIGZvbnQtc2l6ZS1iYXNlXCIgdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCI+PC90aHktaWNvbj5cbjwvc3Bhbj5cbiJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9zZWxlY3Qvc2VsZWN0LWNvbnRyb2wvc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9zZWxlY3Qvc2VsZWN0LWNvbnRyb2wvc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSWhEOztHQUVHO0FBV0gsTUFBTSxPQUFPLGdCQUFnQjtJQXVCekIsSUFDSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdB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TixhQUFhO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLGNBQWM7c0JBRGIsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBa0JpQyxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFFRyxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixTQUFTO3NCQUFqQixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTTtnQkFJQSxXQUFXO3NCQURqQixNQUFNO2dCQUlBLFVBQVU7c0JBRGhCLE1BQU07Z0JBSUEsU0FBUztzQkFEZixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5VGFnU2l6ZSB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkT3JOdWxsIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgbnVtYmVyQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9vcHRpb24vc2VsZWN0LW9wdGlvbi1iYXNlJztcbmltcG9ydCB7IFRoeUdyaWRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2dyaWQnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RDb250cm9sU2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNlbGVjdC1jb250cm9sLFt0aHlTZWxlY3RDb250cm9sXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSwgTmdGb3IsIFRoeVRhZywgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgVGh5R3JpZE1vZHVsZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnNlbGVjdC1jb250cm9sLWJvcmRlcmxlc3NdJzogJ3RoeUJvcmRlcmxlc3MnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTZWxlY3RDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpbnB1dFZhbHVlID0gJyc7XG5cbiAgICBpc0NvbXBvc2luZyA9IGZhbHNlO1xuXG4gICAgcGFuZWxPcGVuZWQgPSBmYWxzZTtcblxuICAgIGlzTXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIHNob3dTZWFyY2ggPSBmYWxzZTtcblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBzaXplOiBTZWxlY3RDb250cm9sU2l6ZTtcblxuICAgIHNlbGVjdGVkT3B0aW9uczogU2VsZWN0T3B0aW9uQmFzZSB8IFNlbGVjdE9wdGlvbkJhc2VbXTtcblxuICAgIHNlYXJjaElucHV0Q29udHJvbENsYXNzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcblxuICAgIHRhZ1NpemU6IFRoeVRhZ1NpemU7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IHRoeVBhbmVsT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYW5lbE9wZW5lZDtcbiAgICB9XG5cbiAgICBzZXQgdGh5UGFuZWxPcGVuZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCAmJiB0aGlzLnRoeVNob3dTZWFyY2gpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGFuZWxPcGVuZWQgJiYgdGhpcy50aHlTaG93U2VhcmNoKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0Q29udHJvbENsYXNzKCk7XG4gICAgfVxuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IHRoeUlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTXVsdGlwbGU7XG4gICAgfVxuXG4gICAgc2V0IHRoeUlzTXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc011bHRpcGxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0Q29udHJvbENsYXNzKCk7XG4gICAgfVxuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IHRoeVNob3dTZWFyY2goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dTZWFyY2g7XG4gICAgfVxuXG4gICAgc2V0IHRoeVNob3dTZWFyY2godmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0Q29udHJvbENsYXNzKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgdGh5U2VsZWN0ZWRPcHRpb25zKCk6IFNlbGVjdE9wdGlvbkJhc2UgfCBTZWxlY3RPcHRpb25CYXNlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgc2V0IHRoeVNlbGVjdGVkT3B0aW9ucyh2YWx1ZTogU2VsZWN0T3B0aW9uQmFzZSB8IFNlbGVjdE9wdGlvbkJhc2VbXSkge1xuICAgICAgICBsZXQgc2FtZVZhbHVlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGlmIChvbGRWYWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgb2xkVmFsdWUubGVuZ3RoID09PSB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzYW1lVmFsdWUgPSB2YWx1ZS5ldmVyeSgob3B0aW9uLCBpbmRleCkgPT4gb3B0aW9uLnRoeVZhbHVlID09PSBvbGRWYWx1ZVtpbmRleF0udGh5VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9sZFZhbHVlICYmIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc2FtZVZhbHVlID0gKG9sZFZhbHVlIGFzIFNlbGVjdE9wdGlvbkJhc2UpLnRoeVZhbHVlID09PSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uQmFzZSkudGh5VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMucGFuZWxPcGVuZWQgJiYgdGhpcy50aHlTaG93U2VhcmNoKSB7XG4gICAgICAgICAgICBpZiAoIXNhbWVWYWx1ZSkge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8v562J5b6F57uE5Lu25riy5p+T5aW95YaN6IGa54SmXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGdldCB0aHlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RDb250cm9sQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbURpc3BsYXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHRoeUFsbG93Q2xlYXIgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgdGh5UGxhY2Vob2xkZXIgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHRoeVNpemUoKTogU2VsZWN0Q29udHJvbFNpemUge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplO1xuICAgIH1cblxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBTZWxlY3RDb250cm9sU2l6ZSkge1xuICAgICAgICB0aGlzLnNpemUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RDb250cm9sQ2xhc3MoKTtcblxuICAgICAgICBpZiAodmFsdWUgPT09ICdzbScpIHtcbiAgICAgICAgICAgIHRoaXMudGFnU2l6ZSA9ICdzbSc7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICdsZycpIHtcbiAgICAgICAgICAgIHRoaXMudGFnU2l6ZSA9ICdsZyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhZ1NpemUgPSAnbWQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5TWF4VGFnQ291bnQgPSAwO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUJvcmRlcmxlc3MgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRoeVByZXNldDogc3RyaW5nID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICB0aHlPblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRoeU9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGl0ZW06IFNlbGVjdE9wdGlvbkJhc2U7ICRldmVudE9yaWdpbjogRXZlbnQgfT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHlPbkNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHlPbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBnZXQgc2VsZWN0ZWRWYWx1ZVN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICBsZXQgc2hvd1NlbGVjdGVkVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1NlYXJjaCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICBzaG93U2VsZWN0ZWRWYWx1ZSA9ICEodGhpcy5pc0NvbXBvc2luZyB8fCB0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93U2VsZWN0ZWRWYWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaG93U2VsZWN0ZWRWYWx1ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZGlzcGxheTogc2hvd1NlbGVjdGVkVmFsdWUgPyAnZmxleCcgOiAnbm9uZScgfTtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXJTdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgbGV0IHBsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aHlQbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0NvbXBvc2luZyB8fCB0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZGlzcGxheTogcGxhY2Vob2xkZXIgPyAnYmxvY2snIDogJ25vbmUnIH07XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkVmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBtdWx0aXBsZVNlbGVjdGVkVmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBtYXhTZWxlY3RlZFRhZ3MoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeU1heFRhZ0NvdW50ID4gMCAmJiB0aGlzLnRoeVNlbGVjdGVkT3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IHRoaXMudGh5TWF4VGFnQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVNlbGVjdGVkT3B0aW9ucy5zbGljZSgwLCB0aGlzLnRoeU1heFRhZ0NvdW50IC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zIGFzIFNlbGVjdE9wdGlvbkJhc2VbXTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0NsZWFySWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5QWxsb3dDbGVhciAmJiB0aGlzLmlzU2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNTZWxlY3RlZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKCF0aGlzLmlzTXVsdGlwbGUgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMudGh5U2VsZWN0ZWRPcHRpb25zKSkgfHxcbiAgICAgICAgICAgICh0aGlzLmlzTXVsdGlwbGUgJiYgKDxTZWxlY3RPcHRpb25CYXNlW10+dGhpcy50aHlTZWxlY3RlZE9wdGlvbnMpLmxlbmd0aCA+IDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0Q29udHJvbENsYXNzKCk7XG4gICAgfVxuXG4gICAgc2V0U2VsZWN0Q29udHJvbENsYXNzKCkge1xuICAgICAgICBjb25zdCBtb2RlVHlwZSA9IHRoaXMuaXNNdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnc2luZ2xlJztcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbENsYXNzID0ge1xuICAgICAgICAgICAgW2Bmb3JtLWNvbnRyb2xgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgZm9ybS1jb250cm9sLSR7dGhpcy50aHlTaXplfWBdOiAhIXRoaXMudGh5U2l6ZSxcbiAgICAgICAgICAgIFtgZm9ybS1jb250cm9sLWN1c3RvbWBdOiB0cnVlLFxuICAgICAgICAgICAgW2BzZWxlY3QtY29udHJvbGBdOiB0cnVlLFxuICAgICAgICAgICAgW2BzZWxlY3QtY29udHJvbC0ke21vZGVUeXBlfWBdOiB0cnVlLFxuICAgICAgICAgICAgW2BzZWxlY3QtY29udHJvbC1zaG93LXNlYXJjaGBdOiB0aGlzLnNob3dTZWFyY2gsXG4gICAgICAgICAgICBbYHBhbmVsLWlzLW9wZW5lZGBdOiB0aGlzLnBhbmVsT3BlbmVkLFxuICAgICAgICAgICAgW2BkaXNhYmxlZGBdOiB0aGlzLmRpc2FibGVkXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzQnlNYXAoc2VsZWN0Q29udHJvbENsYXNzKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dENvbnRyb2xDbGFzcyA9IHtcbiAgICAgICAgICAgIFtgZm9ybS1jb250cm9sYF06IHRydWUsXG4gICAgICAgICAgICBbYGZvcm0tY29udHJvbC0ke3RoaXMudGh5U2l6ZX1gXTogISF0aGlzLnRoeVNpemUsXG4gICAgICAgICAgICBbYHNlYXJjaC1pbnB1dC1maWVsZGBdOiB0cnVlLFxuICAgICAgICAgICAgW2BoaWRkZW5gXTogIXRoaXMudGh5U2hvd1NlYXJjaFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldElucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdpZHRoKCk7XG4gICAgICAgICAgICB0aGlzLnRoeU9uU2VhcmNoLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUJhY2tzcGFjZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5pc0NvbXBvc2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlucHV0VmFsdWUubGVuZ3RoID09PSAwICYmIHRoaXMuc2VsZWN0ZWRPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVIYW5kbGUodGhpcy5zZWxlY3RlZE9wdGlvbnNbdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIC0gMV0sIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVdpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlICYmIHRoaXMudGh5U2hvd1NlYXJjaCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSB8fCB0aGlzLmlzQ29tcG9zaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRofXB4YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3dpZHRoJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVIYW5kbGUoaXRlbTogU2VsZWN0T3B0aW9uQmFzZSwgJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLnRoeU9uUmVtb3ZlLmVtaXQoeyBpdGVtOiBpdGVtLCAkZXZlbnRPcmlnaW46ICRldmVudCB9KTtcbiAgICB9XG5cbiAgICBjbGVhckhhbmRsZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25DbGVhci5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgdHJhY2tWYWx1ZShfaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb25CYXNlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbi50aHlWYWx1ZTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25CbHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZT5cbiAgPGlucHV0XG4gICAgI2lucHV0RWxlbWVudFxuICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwiaXNDb21wb3NpbmcgPSB0cnVlXCJcbiAgICAoY29tcG9zaXRpb25lbmQpPVwiaXNDb21wb3NpbmcgPSBmYWxzZVwiXG4gICAgYXV0b2NvbXBsZXRlPVwic29tZXRoaW5nLW5ld1wiXG4gICAgW25nQ2xhc3NdPVwic2VhcmNoSW5wdXRDb250cm9sQ2xhc3NcIlxuICAgIChpbnB1dCk9XCJ1cGRhdGVXaWR0aCgpXCJcbiAgICBbbmdNb2RlbF09XCJpbnB1dFZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRJbnB1dFZhbHVlKCRldmVudClcIlxuICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJoYW5kbGVCYWNrc3BhY2UoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cInRoeURpc2FibGVkXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwic2VsZWN0LWNvbnRyb2wtcmVuZGVyZWRcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQtcGxhY2Vob2xkZXIgdGV4dC10cnVuY2F0ZVwiICpuZ0lmPVwiIWlzU2VsZWN0ZWRWYWx1ZVwiIFtuZ1N0eWxlXT1cInBsYWNlaG9sZGVyU3R5bGVcIj5cbiAgICB7eyB0aHlQbGFjZWhvbGRlciB9fVxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlwbGU7IGVsc2Ugc2luZ2xlXCI+XG4gICAgPGRpdiB0aHlGbGV4IHRoeVdyYXA9XCJ3cmFwXCIgdGh5R2FwPVwiNFwiIHRoeUFsaWduSXRlbXM9XCJjZW50ZXJcIiBjbGFzcz1cInctMTAwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5UHJlc2V0ID09PSAndGFnJzsgZWxzZSBkZWZhdWx0XCI+XG4gICAgICAgIDxkaXYgdGh5RmxleEl0ZW0gY2xhc3M9XCJjdXN0b20tY2hvaWNlLWl0ZW0gdGV4dC10cnVuY2F0ZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1heFNlbGVjdGVkVGFnczsgdHJhY2tCeTogdHJhY2tWYWx1ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tRGlzcGxheVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbS50aHlSYXdWYWx1ZSB8fCBpdGVtLnRoeVZhbHVlIHx8IGl0ZW0gfVwiPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiY2hvaWNlLXJlbW92ZS1saW5rIG1sLTFcIiAoY2xpY2spPVwicmVtb3ZlSGFuZGxlKGl0ZW0sICRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiIGNsYXNzPVwiZm9udC1zaXplLXNtXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgdGh5RmxleEl0ZW1cbiAgICAgICAgICB0aHlUYWdcbiAgICAgICAgICBjbGFzcz1cImNob2ljZS1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCA9PT0gdHJ1ZSB9XCJcbiAgICAgICAgICBbdGh5U2l6ZV09XCJ0YWdTaXplXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtYXhTZWxlY3RlZFRhZ3M7IHRyYWNrQnk6IHRyYWNrVmFsdWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZSBoLTEwMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICNjdXN0b21EaXNwbGF5XG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbURpc3BsYXlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbS50aHlSYXdWYWx1ZSB8fCBpdGVtLnRoeVZhbHVlIHx8IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbURpc3BsYXlUZW1wbGF0ZTsgZWxzZSBjdXN0b21EaXNwbGF5XCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0udGh5TGFiZWxUZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJjaG9pY2UtcmVtb3ZlLWxpbmsgbWwtMVwiIChjbGljayk9XCJyZW1vdmVIYW5kbGUoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImNsb3NlXCIgY2xhc3M9XCJmb250LXNpemUtc21cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgdGh5RmxleEl0ZW1cbiAgICAgICAgY2xhc3M9XCJjaG9pY2UtaXRlbSBtYXgtdGFnLWNvdW50LWNob2ljZVwiXG4gICAgICAgICpuZ0lmPVwidGh5TWF4VGFnQ291bnQgJiYgbXVsdGlwbGVTZWxlY3RlZFZhbHVlLmxlbmd0aCA+IHRoeU1heFRhZ0NvdW50XCJcbiAgICAgICAgdGh5VGFnXG4gICAgICAgIFt0aHlTaXplXT1cInRhZ1NpemVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCA9PT0gdHJ1ZSB9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+K3t7IG11bHRpcGxlU2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSB0aHlNYXhUYWdDb3VudCArIDEgfX0uLi48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiB0aHlGbGV4SXRlbSBjbGFzcz1cInNlbGVjdC1jb250cm9sLXNlYXJjaFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjc2luZ2xlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlbGVjdGVkVmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC12YWx1ZSB0ZXh0LXRydW5jYXRlXCIgW25nU3R5bGVdPVwic2VsZWN0ZWRWYWx1ZVN0eWxlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICNjdXN0b21EaXNwbGF5XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tRGlzcGxheVRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZFZhbHVlLnRoeVJhd1ZhbHVlIHx8IHNlbGVjdGVkVmFsdWUudGh5VmFsdWUgfHwgc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbURpc3BsYXlUZW1wbGF0ZTsgZWxzZSBjdXN0b21EaXNwbGF5XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgc2VsZWN0ZWRWYWx1ZT8udGh5TGFiZWxUZXh0IH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtY29udHJvbC1zZWFyY2hcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPHNwYW4gY2xhc3M9XCJzZWxlY3QtY29udHJvbC1hcnJvd1wiPlxuICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3duXCIgY2xhc3M9XCJmb250LXNpemUtYmFzZVwiPjwvdGh5LWljb24+XG48L3NwYW4+XG48c3BhbiBjbGFzcz1cInNlbGVjdC1jb250cm9sLWNsZWFyIHJlbW92ZS1saW5rXCIgKm5nSWY9XCJzaG93Q2xlYXJJY29uXCIgKGNsaWNrKT1cImNsZWFySGFuZGxlKCRldmVudClcIj5cbiAgPHRoeS1pY29uIGNsYXNzPVwicmVtb3ZlLWxpbmstaWNvbiBmb250LXNpemUtYmFzZVwiIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiPjwvdGh5LWljb24+XG48L3NwYW4+XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Optional, Inject } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Optional, Inject, booleanAttribute } from '@angular/core';
3
3
  import { ThySkeleton } from './skeleton.component';
4
4
  import { helpers } from 'ngx-tethys/util';
5
- import { InputBoolean, InputCssPixel } from 'ngx-tethys/core';
5
+ import { InputCssPixel } from 'ngx-tethys/core';
6
6
  import { THY_SKELETON_CONFIG } from './skeleton.config';
7
7
  import { isUndefinedOrNull } from 'ngx-tethys/util';
8
8
  import { NgStyle } from '@angular/common';
@@ -55,16 +55,12 @@ export class ThySkeletonCircle {
55
55
  }
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySkeletonCircle, deps: [{ token: THY_SKELETON_CONFIG, optional: true }, { token: i1.ThySkeleton, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThySkeletonCircle, isStandalone: true, selector: "thy-skeleton-circle", inputs: { thyAnimatedInterval: "thyAnimatedInterval", thySize: "thySize", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyAnimated: "thyAnimated" }, host: { properties: { "class.thy-skeleton": "true", "class.thy-skeleton-circle": "true", "style.background": "thyPrimaryColor", "style.width": "thySize", "style.height": "thySize" } }, usesOnChanges: true, ngImport: i0, template: ` <div class="thy-skeleton-after" [ngStyle]="afterStyles"></div> `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySkeletonCircle, isStandalone: true, selector: "thy-skeleton-circle", inputs: { thyAnimatedInterval: "thyAnimatedInterval", thySize: "thySize", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute] }, host: { properties: { "class.thy-skeleton": "true", "class.thy-skeleton-circle": "true", "style.background": "thyPrimaryColor", "style.width": "thySize", "style.height": "thySize" } }, usesOnChanges: true, ngImport: i0, template: ` <div class="thy-skeleton-after" [ngStyle]="afterStyles"></div> `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
59
59
  }
60
60
  __decorate([
61
61
  InputCssPixel(),
62
62
  __metadata("design:type", Object)
63
63
  ], ThySkeletonCircle.prototype, "thySize", void 0);
64
- __decorate([
65
- InputBoolean(),
66
- __metadata("design:type", Boolean)
67
- ], ThySkeletonCircle.prototype, "thyAnimated", void 0);
68
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySkeletonCircle, decorators: [{
69
65
  type: Component,
70
66
  args: [{
@@ -98,6 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
98
94
  }], thySecondaryColor: [{
99
95
  type: Input
100
96
  }], thyAnimated: [{
101
- type: Input
97
+ type: Input,
98
+ args: [{ transform: booleanAttribute }]
102
99
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9za2VsZXRvbi9za2VsZXRvbi1jaXJjbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUVMLFFBQVEsRUFHUixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU8xQzs7OztHQUlHO0FBZ0JILE1BQU0sT0FBTyxpQkFBaUI7SUFxQzFCLFlBR1ksbUJBQTJDLEVBQy9CLE9BQW9CO1FBRGhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQWxDNUM7OztXQUdHO1FBR0gsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFzQnZCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBTzVCLENBQUM7SUFFSixRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLG1GQUFtRjtTQUN0TCxDQUFDO1FBQ0YsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDeEYsS0FBSyxJQUFJLEdBQUcsSUFBSSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDZixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJO2dCQUMxQixVQUFVLEVBQUUsMEJBQTBCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQ2xHLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUNQLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7YUFDdEQsQ0FBQztZQUNGLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsMEJBQTBCLElBQUksQ0FBQyxtQkFBbUIsWUFBWTtnQkFDaEUsQ0FBQyxDQUFDLE1BQU07U0FDZixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixNQUFNLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3hFLElBQ0ksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztZQUN0RCxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7WUFDMUMsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxFQUM1RCxDQUFDO1lBQ0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7OEdBaEZRLGlCQUFpQixrQkF1Q2QsbUJBQW1CO2tHQXZDdEIsaUJBQWlCLGlkQU5oQixrRUFBa0UsNERBSWxFLE9BQU87O0FBZWpCO0lBREMsYUFBYSxFQUFFOztrREFDYztBQW9COUI7SUFEQyxZQUFZLEVBQUU7O3NEQUNNOzJGQWpDWixpQkFBaUI7a0JBZjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsSUFBSSxFQUFFO3dCQUNGLHNCQUFzQixFQUFFLE1BQU07d0JBQzlCLDZCQUE2QixFQUFFLE1BQU07d0JBQ3JDLG9CQUFvQixFQUFFLGlCQUFpQjt3QkFDdkMsZUFBZSxFQUFFLFNBQVM7d0JBQzFCLGdCQUFnQixFQUFFLFNBQVM7cUJBQzlCO29CQUNELFFBQVEsRUFBRSxrRUFBa0U7b0JBQzVFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDckI7OzBCQXVDUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLFFBQVE7eUNBcENKLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFRTixPQUFPO3NCQUZOLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBUU4sV0FBVztzQkFGVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVNrZWxldG9uIH0gZnJvbSAnLi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0Q3NzUGl4ZWwgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVEhZX1NLRUxFVE9OX0NPTkZJRywgVGh5U2tlbGV0b25Db25maWdNb2RlbCB9IGZyb20gJy4vc2tlbGV0b24uY29uZmlnJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkT3JOdWxsIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbnRlcmZhY2UgU3R5bGUge1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgYW5pbWF0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIOmqqOaetuWxj+WchuW9oue7hOS7tlxuICogQG5hbWUgdGh5LXNrZWxldG9uLWNpcmNsZVxuICogQG9yZGVyIDMwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNrZWxldG9uLWNpcmNsZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnRoeS1za2VsZXRvbl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MudGh5LXNrZWxldG9uLWNpcmNsZV0nOiAndHJ1ZScsXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZF0nOiAndGh5UHJpbWFyeUNvbG9yJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aF0nOiAndGh5U2l6ZScsXG4gICAgICAgICdbc3R5bGUuaGVpZ2h0XSc6ICd0aHlTaXplJ1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGAgPGRpdiBjbGFzcz1cInRoeS1za2VsZXRvbi1hZnRlclwiIFtuZ1N0eWxlXT1cImFmdGVyU3R5bGVzXCI+PC9kaXY+IGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTa2VsZXRvbkNpcmNsZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKiBAZGVmYXVsdCAxLjVzXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5QW5pbWF0ZWRJbnRlcnZhbDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bC65a+4XG4gICAgICogQGRlZmF1bHQgMjBweFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeVNpemU6IHN0cmluZyB8IG51bWJlciA9IDIwO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625Li76ImyXG4gICAgICogQGRlZmF1bHQgI0Y3RjdGN1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByaW1hcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625qyh6ImyXG4gICAgICogQGRlZmF1bHQgI2FhYWFhYVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrliqjnlLtcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBhZnRlclN0eWxlczogU3R5bGUgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9TS0VMRVRPTl9DT05GSUcpXG4gICAgICAgIHByaXZhdGUgc2tlbGV0b25Db25maWdNb2RlbDogVGh5U2tlbGV0b25Db25maWdNb2RlbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFyZW50OiBUaHlTa2VsZXRvblxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLnNrZWxldG9uQ29uZmlnTW9kZWwsXG4gICAgICAgICAgICAuLi4odGhpcy5fcGFyZW50IHx8IHt9KSxcbiAgICAgICAgICAgIC4uLighaXNVbmRlZmluZWRPck51bGwodGhpcy5fcGFyZW50Py50aHlBbmltYXRlZCkgJiYgeyB0aHlBbmltYXRlZDogdGhpcy5fcGFyZW50LnRoeUFuaW1hdGVkIH0pIC8vIGRvIGl0IGJlY2F1c2UgQElucHV0Qm9vbGVhbigpIGxlYWQgdG8gY2Fubm90IGdldCB0aHlBbmltYXRlZCBmcm9tIF9wYXJlbnQgaW5qZWN0XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgdGh5QW5pbWF0ZWRJbnRlcnZhbCwgdGh5UHJpbWFyeUNvbG9yLCB0aHlTZWNvbmRhcnlDb2xvciwgdGh5QW5pbWF0ZWQgfSA9IGNvbmZpZztcbiAgICAgICAgZm9yIChsZXQga2V5IGluIHsgdGh5QW5pbWF0ZWRJbnRlcnZhbCwgdGh5UHJpbWFyeUNvbG9yLCB0aHlTZWNvbmRhcnlDb2xvciwgdGh5QW5pbWF0ZWQgfSkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXNba2V5XSkgPyB0aGlzW2tleV0gOiBjb25maWdba2V5XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyYXRlQWZ0ZXJTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBjcmF0ZUFmdGVyU3R5bGVzKCkge1xuICAgICAgICB0aGlzLmFmdGVyU3R5bGVzID0ge1xuICAgICAgICAgICAgLi4uKHRoaXMudGh5U2Vjb25kYXJ5Q29sb3IgJiYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICR7aGVscGVycy5oZXhUb1JnYih0aGlzLnRoeVNlY29uZGFyeUNvbG9yLCAwKX0sICR7aGVscGVycy5oZXhUb1JnYihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlTZWNvbmRhcnlDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgMC4xNVxuICAgICAgICAgICAgICAgICl9LCAke2hlbHBlcnMuaGV4VG9SZ2IodGhpcy50aHlTZWNvbmRhcnlDb2xvciwgMCl9YFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBhbmltYXRpb246ICFbZmFsc2UsICdmYWxzZSddLmluY2x1ZGVzKHRoaXMudGh5QW5pbWF0ZWQpXG4gICAgICAgICAgICAgICAgPyBgdGh5LXNrZWxldG9uLWFuaW1hdGlvbiAke3RoaXMudGh5QW5pbWF0ZWRJbnRlcnZhbH1zIGluZmluaXRlYFxuICAgICAgICAgICAgICAgIDogJ25vbmUnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeVNlY29uZGFyeUNvbG9yLCB0aHlBbmltYXRlZCwgdGh5QW5pbWF0ZWRJbnRlcnZhbCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoeVNlY29uZGFyeUNvbG9yICYmICF0aHlTZWNvbmRhcnlDb2xvcj8uZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAgICAgICAodGh5QW5pbWF0ZWQgJiYgIXRoeUFuaW1hdGVkPy5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgICh0aHlBbmltYXRlZEludGVydmFsICYmICF0aHlBbmltYXRlZEludGVydmFsPy5maXJzdENoYW5nZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNyYXRlQWZ0ZXJTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9za2VsZXRvbi9za2VsZXRvbi1jaXJjbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUVMLFFBQVEsRUFHUixNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU8xQzs7OztHQUlHO0FBZ0JILE1BQU0sT0FBTyxpQkFBaUI7SUFvQzFCLFlBR1ksbUJBQTJDLEVBQy9CLE9BQW9CO1FBRGhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQWpDNUM7OztXQUdHO1FBR0gsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFxQnZCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBTzVCLENBQUM7SUFFSixRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxD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QUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBJbmplY3QsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVNrZWxldG9uIH0gZnJvbSAnLi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBJbnB1dENzc1BpeGVsIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRIWV9TS0VMRVRPTl9DT05GSUcsIFRoeVNrZWxldG9uQ29uZmlnTW9kZWwgfSBmcm9tICcuL3NrZWxldG9uLmNvbmZpZyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW50ZXJmYWNlIFN0eWxlIHtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIGFuaW1hdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiDpqqjmnrblsY/lnIblvaLnu4Tku7ZcbiAqIEBuYW1lIHRoeS1za2VsZXRvbi1jaXJjbGVcbiAqIEBvcmRlciAzMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1za2VsZXRvbi1jaXJjbGUnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy50aHktc2tlbGV0b25dJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1za2VsZXRvbi1jaXJjbGVdJzogJ3RydWUnLFxuICAgICAgICAnW3N0eWxlLmJhY2tncm91bmRdJzogJ3RoeVByaW1hcnlDb2xvcicsXG4gICAgICAgICdbc3R5bGUud2lkdGhdJzogJ3RoeVNpemUnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodF0nOiAndGh5U2l6ZSdcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJ0aHktc2tlbGV0b24tYWZ0ZXJcIiBbbmdTdHlsZV09XCJhZnRlclN0eWxlc1wiPjwvZGl2PiBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2tlbGV0b25DaXJjbGUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICog5Yqo55S76YCf5bqmXG4gICAgICogQGRlZmF1bHQgMS41c1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUFuaW1hdGVkSW50ZXJ2YWw6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuWwuuWvuFxuICAgICAqIEBkZWZhdWx0IDIwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlTaXplOiBzdHJpbmcgfCBudW1iZXIgPSAyMDtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuS4u+iJslxuICAgICAqIEBkZWZhdWx0ICNGN0Y3RjdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqIEBkZWZhdWx0ICNhYWFhYWFcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRhcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S65Yqo55S7XG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHRoeUFuaW1hdGVkOiBib29sZWFuO1xuXG4gICAgcHVibGljIGFmdGVyU3R5bGVzOiBTdHlsZSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVEhZX1NLRUxFVE9OX0NPTkZJRylcbiAgICAgICAgcHJpdmF0ZSBza2VsZXRvbkNvbmZpZ01vZGVsOiBUaHlTa2VsZXRvbkNvbmZpZ01vZGVsLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wYXJlbnQ6IFRoeVNrZWxldG9uXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2tlbGV0b25Db25maWdNb2RlbCxcbiAgICAgICAgICAgIC4uLih0aGlzLl9wYXJlbnQgfHwge30pLFxuICAgICAgICAgICAgLi4uKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLl9wYXJlbnQ/LnRoeUFuaW1hdGVkKSAmJiB7IHRoeUFuaW1hdGVkOiB0aGlzLl9wYXJlbnQudGh5QW5pbWF0ZWQgfSkgLy8gZG8gaXQgYmVjYXVzZSBASW5wdXRCb29sZWFuKCkgbGVhZCB0byBjYW5ub3QgZ2V0IHRoeUFuaW1hdGVkIGZyb20gX3BhcmVudCBpbmplY3RcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyB0aHlBbmltYXRlZEludGVydmFsLCB0aHlQcmltYXJ5Q29sb3IsIHRoeVNlY29uZGFyeUNvbG9yLCB0aHlBbmltYXRlZCB9ID0gY29uZmlnO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4geyB0aHlBbmltYXRlZEludGVydmFsLCB0aHlQcmltYXJ5Q29sb3IsIHRoeVNlY29uZGFyeUNvbG9yLCB0aHlBbmltYXRlZCB9KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSAhaXNVbmRlZmluZWRPck51bGwodGhpc1trZXldKSA/IHRoaXNba2V5XSA6IGNvbmZpZ1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3JhdGVBZnRlclN0eWxlcygpO1xuICAgIH1cblxuICAgIGNyYXRlQWZ0ZXJTdHlsZXMoKSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJTdHlsZXMgPSB7XG4gICAgICAgICAgICAuLi4odGhpcy50aHlTZWNvbmRhcnlDb2xvciAmJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHtoZWxwZXJzLmhleFRvUmdiKHRoaXMudGh5U2Vjb25kYXJ5Q29sb3IsIDApfSwgJHtoZWxwZXJzLmhleFRvUmdiKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVNlY29uZGFyeUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAwLjE1XG4gICAgICAgICAgICAgICAgKX0sICR7aGVscGVycy5oZXhUb1JnYih0aGlzLnRoeVNlY29uZGFyeUNvbG9yLCAwKX1gXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFuaW1hdGlvbjogIVtmYWxzZSwgJ2ZhbHNlJ10uaW5jbHVkZXModGhpcy50aHlBbmltYXRlZClcbiAgICAgICAgICAgICAgICA/IGB0aHktc2tlbGV0b24tYW5pbWF0aW9uICR7dGhpcy50aHlBbmltYXRlZEludGVydmFsfXMgaW5maW5pdGVgXG4gICAgICAgICAgICAgICAgOiAnbm9uZSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5U2Vjb25kYXJ5Q29sb3IsIHRoeUFuaW1hdGVkLCB0aHlBbmltYXRlZEludGVydmFsIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGh5U2Vjb25kYXJ5Q29sb3IgJiYgIXRoeVNlY29uZGFyeUNvbG9yPy5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgICh0aHlBbmltYXRlZCAmJiAhdGh5QW5pbWF0ZWQ/LmZpcnN0Q2hhbmdlKSB8fFxuICAgICAgICAgICAgKHRoeUFuaW1hdGVkSW50ZXJ2YWwgJiYgIXRoeUFuaW1hdGVkSW50ZXJ2YWw/LmZpcnN0Q2hhbmdlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY3JhdGVBZnRlclN0eWxlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Optional, Inject } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Optional, Inject, booleanAttribute } from '@angular/core';
3
3
  import { ThySkeleton } from './skeleton.component';
4
4
  import { helpers } from 'ngx-tethys/util';
5
- import { InputBoolean, InputCssPixel } from 'ngx-tethys/core';
5
+ import { InputCssPixel } from 'ngx-tethys/core';
6
6
  import { THY_SKELETON_CONFIG } from './skeleton.config';
7
7
  import { isUndefinedOrNull } from 'ngx-tethys/util';
8
8
  import { NgStyle } from '@angular/common';
@@ -50,12 +50,8 @@ export class ThySkeletonRectangle {
50
50
  }
51
51
  }
52
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySkeletonRectangle, deps: [{ token: THY_SKELETON_CONFIG, optional: true }, { token: i1.ThySkeleton, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThySkeletonRectangle, isStandalone: true, selector: "thy-skeleton-rectangle", inputs: { thyAnimated: "thyAnimated", thyAnimatedInterval: "thyAnimatedInterval", thyBorderRadius: "thyBorderRadius", thyRowWidth: "thyRowWidth", thyRowHeight: "thyRowHeight", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor" }, host: { properties: { "class.thy-skeleton": "true", "class.thy-skeleton-rectangle": "true", "style.background": "thyPrimaryColor", "style.width": "thyRowWidth", "style.height": "thyRowHeight", "style.borderRadius": "thyBorderRadius" } }, usesOnChanges: true, ngImport: i0, template: ` <div class="thy-skeleton-after" [ngStyle]="afterStyles"></div> `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySkeletonRectangle, isStandalone: true, selector: "thy-skeleton-rectangle", inputs: { thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute], thyAnimatedInterval: "thyAnimatedInterval", thyBorderRadius: "thyBorderRadius", thyRowWidth: "thyRowWidth", thyRowHeight: "thyRowHeight", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor" }, host: { properties: { "class.thy-skeleton": "true", "class.thy-skeleton-rectangle": "true", "style.background": "thyPrimaryColor", "style.width": "thyRowWidth", "style.height": "thyRowHeight", "style.borderRadius": "thyBorderRadius" } }, usesOnChanges: true, ngImport: i0, template: ` <div class="thy-skeleton-after" [ngStyle]="afterStyles"></div> `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
54
  }
55
- __decorate([
56
- InputBoolean(),
57
- __metadata("design:type", Boolean)
58
- ], ThySkeletonRectangle.prototype, "thyAnimated", void 0);
59
55
  __decorate([
60
56
  InputCssPixel(),
61
57
  __metadata("design:type", Object)
@@ -94,7 +90,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
94
90
  }] }, { type: i1.ThySkeleton, decorators: [{
95
91
  type: Optional
96
92
  }] }], propDecorators: { thyAnimated: [{
97
- type: Input
93
+ type: Input,
94
+ args: [{ transform: booleanAttribute }]
98
95
  }], thyAnimatedInterval: [{
99
96
  type: Input
100
97
  }], thyBorderRadius: [{
@@ -108,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
108
105
  }], thySecondaryColor: [{
109
106
  type: Input
110
107
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tcmVjdGFuZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9za2VsZXRvbi9za2VsZXRvbi1yZWN0YW5nbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUVMLFFBQVEsRUFHUixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU8xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxvQkFBb0I7SUFxRDdCLFlBR1ksbUJBQTJDLEVBQy9CLE9BQW9CO1FBRGhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQU41QyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztJQU9yQixDQUFDO0lBRUosUUFBUTtRQUNKLE1BQU0sTUFBTSxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsbUJBQW1CO1lBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFP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LEtBQUs7Z0JBUU4sZUFBZTtzQkFGZCxLQUFLO2dCQVVOLFdBQVc7c0JBRlYsS0FBSztnQkFVTixZQUFZO3NCQUZYLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2tlbGV0b24gfSBmcm9tICcuL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiwgSW5wdXRDc3NQaXhlbCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUSFlfU0tFTEVUT05fQ09ORklHLCBUaHlTa2VsZXRvbkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9za2VsZXRvbi5jb25maWcnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWRPck51bGwgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmludGVyZmFjZSBTdHlsZSB7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgICBhbmltYXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICog6aqo5p625bGP55+p5b2i57uE5Lu2XG4gKiBAbmFtZSB0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2tlbGV0b24tcmVjdGFuZ2xlJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MudGh5LXNrZWxldG9uXSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2tlbGV0b24tcmVjdGFuZ2xlXSc6ICd0cnVlJyxcbiAgICAgICAgJ1tzdHlsZS5iYWNrZ3JvdW5kXSc6ICd0aHlQcmltYXJ5Q29sb3InLFxuICAgICAgICAnW3N0eWxlLndpZHRoXSc6ICd0aHlSb3dXaWR0aCcsXG4gICAgICAgICdbc3R5bGUuaGVpZ2h0XSc6ICd0aHlSb3dIZWlnaHQnLFxuICAgICAgICAnW3N0eWxlLmJvcmRlclJhZGl1c10nOiAndGh5Qm9yZGVyUmFkaXVzJ1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGAgPGRpdiBjbGFzcz1cInRoeS1za2VsZXRvbi1hZnRlclwiIFtuZ1N0eWxlXT1cImFmdGVyU3R5bGVzXCI+PC9kaXY+IGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTa2VsZXRvblJlY3RhbmdsZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiDmmK/lkKblvIDlkK/liqjnlLtcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgdGh5QW5pbWF0ZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKiBAZGVmYXVsdCAxLjVzXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5QW5pbWF0ZWRJbnRlcnZhbDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p626L655qGG5ZyG6KeSXG4gICAgICogQGRlZmF1bHQgNHB4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Qm9yZGVyUmFkaXVzOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrblrr3luqZcbiAgICAgKiBAZGVmYXVsdCAxMDAlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Um93V2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetumrmOW6plxuICAgICAqIEBkZWZhdWx0IDIwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlSb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuS4u+iJslxuICAgICAqIEBkZWZhdWx0ICNGN0Y3RjdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqIEBkZWZhdWx0ICNhYWFhYWFcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRhcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgYWZ0ZXJTdHlsZXM6IFN0eWxlID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUSFlfU0tFTEVUT05fQ09ORklHKVxuICAgICAgICBwcml2YXRlIHNrZWxldG9uQ29uZmlnTW9kZWw6IFRoeVNrZWxldG9uQ29uZmlnTW9kZWwsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhcmVudDogVGh5U2tlbGV0b25cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5za2VsZXRvbkNvbmZpZ01vZGVsLFxuICAgICAgICAgICAgLi4uKHRoaXMuX3BhcmVudCB8fCB7fSksXG4gICAgICAgICAgICAuLi4oIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMuX3BhcmVudD8udGh5QW5pbWF0ZWQpICYmIHsgdGh5QW5pbWF0ZWQ6IHRoaXMuX3BhcmVudC50aHlBbmltYXRlZCB9KVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IHRoeUFuaW1hdGVkSW50ZXJ2YWwsIHRoeVByaW1hcnlDb2xvciwgdGh5U2Vjb25kYXJ5Q29sb3IsIHRoeUFuaW1hdGVkIH0gPSBjb25maWc7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIHsgdGh5QW5pbWF0ZWRJbnRlcnZhbCwgdGh5UHJpbWFyeUNvbG9yLCB0aHlTZWNvbmRhcnlDb2xvciwgdGh5QW5pbWF0ZWQgfSkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXNba2V5XSkgPyB0aGlzW2tleV0gOiBjb25maWdba2V5XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNyYXRlQWZ0ZXJTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBjcmF0ZUFmdGVyU3R5bGVzKCkge1xuICAgICAgICB0aGlzLmFmdGVyU3R5bGVzID0ge1xuICAgICAgICAgICAgLi4uKHRoaXMudGh5U2Vjb25kYXJ5Q29sb3IgJiYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICR7aGVscGVycy5oZXhUb1JnYih0aGlzLnRoeVNlY29uZGFyeUNvbG9yLCAwKX0sICR7aGVscGVycy5oZXhUb1JnYihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlTZWNvbmRhcnlDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgMC4xNVxuICAgICAgICAgICAgICAgICl9LCAke2hlbHBlcnMuaGV4VG9SZ2IodGhpcy50aHlTZWNvbmRhcnlDb2xvciwgMCl9YFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBhbmltYXRpb246ICFbZmFsc2UsICdmYWxzZSddLmluY2x1ZGVzKHRoaXMudGh5QW5pbWF0ZWQpXG4gICAgICAgICAgICAgICAgPyBgdGh5LXNrZWxldG9uLWFuaW1hdGlvbiAke3RoaXMudGh5QW5pbWF0ZWRJbnRlcnZhbH1zIGluZmluaXRlYFxuICAgICAgICAgICAgICAgIDogJ25vbmUnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeVNlY29uZGFyeUNvbG9yLCB0aHlBbmltYXRlZCwgdGh5QW5pbWF0ZWRJbnRlcnZhbCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoeVNlY29uZGFyeUNvbG9yICYmICF0aHlTZWNvbmRhcnlDb2xvcj8uZmlyc3RDaGFuZ2UpIHx8XG4gICAgICAgICAgICAodGh5QW5pbWF0ZWQgJiYgIXRoeUFuaW1hdGVkPy5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgICh0aHlBbmltYXRlZEludGVydmFsICYmICF0aHlBbmltYXRlZEludGVydmFsPy5maXJzdENoYW5nZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNyYXRlQWZ0ZXJTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tcmVjdGFuZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9za2VsZXRvbi9za2VsZXRvbi1yZWN0YW5nbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUVMLFFBQVEsRUFHUixNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU8xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxvQkFBb0I7SUFvRDdCLFlBR1ksbUJBQTJDLEVBQy9CLE9BQW9CO1FBRGhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQU41QyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztJQU9yQixDQUFDO0lBRUosUUFBUTtRQUNKLE1BQU0sTUFBTSxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsbUJBQW1CO1lBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxP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RTtnQkFPN0IsbUJBQW1CO3NCQUEzQixLQUFLO2dCQVFOLGVBQWU7c0JBRmQsS0FBSztnQkFVTixXQUFXO3NCQUZWLEtBQUs7Z0JBVU4sWUFBWTtzQkFGWCxLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTUcsaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEluamVjdCxcbiAgICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2tlbGV0b24gfSBmcm9tICcuL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IElucHV0Q3NzUGl4ZWwgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVEhZX1NLRUxFVE9OX0NPTkZJRywgVGh5U2tlbGV0b25Db25maWdNb2RlbCB9IGZyb20gJy4vc2tlbGV0b24uY29uZmlnJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkT3JOdWxsIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbnRlcmZhY2UgU3R5bGUge1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgYW5pbWF0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIOmqqOaetuWxj+efqeW9oue7hOS7tlxuICogQG5hbWUgdGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICogQG9yZGVyIDIwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNrZWxldG9uLXJlY3RhbmdsZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnRoeS1za2VsZXRvbl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MudGh5LXNrZWxldG9uLXJlY3RhbmdsZV0nOiAndHJ1ZScsXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZF0nOiAndGh5UHJpbWFyeUNvbG9yJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aF0nOiAndGh5Um93V2lkdGgnLFxuICAgICAgICAnW3N0eWxlLmhlaWdodF0nOiAndGh5Um93SGVpZ2h0JyxcbiAgICAgICAgJ1tzdHlsZS5ib3JkZXJSYWRpdXNdJzogJ3RoeUJvcmRlclJhZGl1cydcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJ0aHktc2tlbGV0b24tYWZ0ZXJcIiBbbmdTdHlsZV09XCJhZnRlclN0eWxlc1wiPjwvZGl2PiBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2tlbGV0b25SZWN0YW5nbGUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICog5piv5ZCm5byA5ZCv5Yqo55S7XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWKqOeUu+mAn+W6plxuICAgICAqIEBkZWZhdWx0IDEuNXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBbmltYXRlZEludGVydmFsOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbovrnmoYblnIbop5JcbiAgICAgKiBAZGVmYXVsdCA0cHhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlCb3JkZXJSYWRpdXM6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuWuveW6plxuICAgICAqIEBkZWZhdWx0IDEwMCVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlSb3dXaWR0aDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p626auY5bqmXG4gICAgICogQGRlZmF1bHQgMjBweFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeVJvd0hlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625Li76ImyXG4gICAgICogQGRlZmF1bHQgI0Y3RjdGN1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByaW1hcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625qyh6ImyXG4gICAgICogQGRlZmF1bHQgI2FhYWFhYVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICBhZnRlclN0eWxlczogU3R5bGUgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9TS0VMRVRPTl9DT05GSUcpXG4gICAgICAgIHByaXZhdGUgc2tlbGV0b25Db25maWdNb2RlbDogVGh5U2tlbGV0b25Db25maWdNb2RlbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFyZW50OiBUaHlTa2VsZXRvblxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLnNrZWxldG9uQ29uZmlnTW9kZWwsXG4gICAgICAgICAgICAuLi4odGhpcy5fcGFyZW50IHx8IHt9KSxcbiAgICAgICAgICAgIC4uLighaXNVbmRlZmluZWRPck51bGwodGhpcy5fcGFyZW50Py50aHlBbmltYXRlZCkgJiYgeyB0aHlBbmltYXRlZDogdGhpcy5fcGFyZW50LnRoeUFuaW1hdGVkIH0pXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgdGh5QW5pbWF0ZWRJbnRlcnZhbCwgdGh5UHJpbWFyeUNvbG9yLCB0aHlTZWNvbmRhcnlDb2xvciwgdGh5QW5pbWF0ZWQgfSA9IGNvbmZpZztcblxuICAgICAgICBmb3IgKGxldCBrZXkgaW4geyB0aHlBbmltYXRlZEludGVydmFsLCB0aHlQcmltYXJ5Q29sb3IsIHRoeVNlY29uZGFyeUNvbG9yLCB0aHlBbmltYXRlZCB9KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSAhaXNVbmRlZmluZWRPck51bGwodGhpc1trZXldKSA/IHRoaXNba2V5XSA6IGNvbmZpZ1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3JhdGVBZnRlclN0eWxlcygpO1xuICAgIH1cblxuICAgIGNyYXRlQWZ0ZXJTdHlsZXMoKSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJTdHlsZXMgPSB7XG4gICAgICAgICAgICAuLi4odGhpcy50aHlTZWNvbmRhcnlDb2xvciAmJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHtoZWxwZXJzLmhleFRvUmdiKHRoaXMudGh5U2Vjb25kYXJ5Q29sb3IsIDApfSwgJHtoZWxwZXJzLmhleFRvUmdiKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVNlY29uZGFyeUNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAwLjE1XG4gICAgICAgICAgICAgICAgKX0sICR7aGVscGVycy5oZXhUb1JnYih0aGlzLnRoeVNlY29uZGFyeUNvbG9yLCAwKX1gXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFuaW1hdGlvbjogIVtmYWxzZSwgJ2ZhbHNlJ10uaW5jbHVkZXModGhpcy50aHlBbmltYXRlZClcbiAgICAgICAgICAgICAgICA/IGB0aHktc2tlbGV0b24tYW5pbWF0aW9uICR7dGhpcy50aHlBbmltYXRlZEludGVydmFsfXMgaW5maW5pdGVgXG4gICAgICAgICAgICAgICAgOiAnbm9uZSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5U2Vjb25kYXJ5Q29sb3IsIHRoeUFuaW1hdGVkLCB0aHlBbmltYXRlZEludGVydmFsIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGh5U2Vjb25kYXJ5Q29sb3IgJiYgIXRoeVNlY29uZGFyeUNvbG9yPy5maXJzdENoYW5nZSkgfHxcbiAgICAgICAgICAgICh0aHlBbmltYXRlZCAmJiAhdGh5QW5pbWF0ZWQ/LmZpcnN0Q2hhbmdlKSB8fFxuICAgICAgICAgICAgKHRoeUFuaW1hdGVkSW50ZXJ2YWwgJiYgIXRoeUFuaW1hdGVkSW50ZXJ2YWw/LmZpcnN0Q2hhbmdlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY3JhdGVBZnRlclN0eWxlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19