pdm-ui-kit 0.4.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (880) hide show
  1. package/accordion/accordion.module.d.ts +8 -0
  2. package/alert/alert.module.d.ts +9 -0
  3. package/aspect-ratio/aspect-ratio.module.d.ts +8 -0
  4. package/avatar/avatar.module.d.ts +8 -0
  5. package/badge/badge.module.d.ts +8 -0
  6. package/breadcrumb/breadcrumb.module.d.ts +8 -0
  7. package/button/button.module.d.ts +9 -0
  8. package/calendar/calendar.module.d.ts +11 -0
  9. package/{lib/components/date-picker → calendar}/date-picker.component.d.ts +2 -2
  10. package/card/card.module.d.ts +8 -0
  11. package/carousel/carousel.module.d.ts +8 -0
  12. package/chart/chart.module.d.ts +8 -0
  13. package/checkbox/checkbox.module.d.ts +8 -0
  14. package/collapsible/collapsible.module.d.ts +8 -0
  15. package/combobox/combobox.module.d.ts +9 -0
  16. package/{lib/components/command → command}/command.component.d.ts +1 -1
  17. package/command/command.module.d.ts +9 -0
  18. package/{lib/components/context-menu → context-menu}/context-menu.component.d.ts +1 -1
  19. package/context-menu/context-menu.module.d.ts +9 -0
  20. package/{lib/components/data-table → data-table}/data-table.component.d.ts +1 -1
  21. package/data-table/data-table.module.d.ts +10 -0
  22. package/{lib/components/draggable-table → data-table}/draggable-table.component.d.ts +2 -2
  23. package/{lib/components/table → data-table}/table.component.d.ts +1 -1
  24. package/dialog/dialog.module.d.ts +8 -0
  25. package/drawer/drawer.module.d.ts +10 -0
  26. package/{lib/components/dropdown-menu → dropdown-menu}/dropdown-menu.component.d.ts +1 -1
  27. package/dropdown-menu/dropdown-menu.module.d.ts +9 -0
  28. package/empty/empty.module.d.ts +10 -0
  29. package/esm2020/{lib/components/accordion → accordion}/accordion.component.mjs +1 -1
  30. package/esm2020/accordion/accordion.module.mjs +21 -0
  31. package/esm2020/{lib/components/alert-dialog → alert}/alert-dialog.component.mjs +1 -1
  32. package/esm2020/{lib/components/alert → alert}/alert.component.mjs +1 -1
  33. package/esm2020/alert/alert.module.mjs +25 -0
  34. package/esm2020/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.mjs +1 -1
  35. package/esm2020/aspect-ratio/aspect-ratio.module.mjs +21 -0
  36. package/esm2020/{lib/components/avatar → avatar}/avatar.component.mjs +1 -1
  37. package/esm2020/avatar/avatar.module.mjs +21 -0
  38. package/esm2020/{lib/components/badge → badge}/badge.component.mjs +1 -1
  39. package/esm2020/badge/badge.module.mjs +21 -0
  40. package/esm2020/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.mjs +1 -1
  41. package/esm2020/breadcrumb/breadcrumb.module.mjs +21 -0
  42. package/esm2020/button/button-group.component.mjs +236 -0
  43. package/esm2020/button/button.component.mjs +114 -0
  44. package/esm2020/button/button.module.mjs +25 -0
  45. package/esm2020/calendar/calendar.component.mjs +529 -0
  46. package/esm2020/calendar/calendar.module.mjs +22 -0
  47. package/esm2020/{lib/components/date-picker → calendar}/date-picker.component.mjs +6 -6
  48. package/esm2020/{lib/components/card → card}/card.component.mjs +1 -1
  49. package/esm2020/card/card.module.mjs +21 -0
  50. package/esm2020/carousel/carousel.component.mjs +102 -0
  51. package/esm2020/carousel/carousel.module.mjs +21 -0
  52. package/esm2020/{lib/components/chart → chart}/chart.component.mjs +1 -1
  53. package/esm2020/chart/chart.module.mjs +21 -0
  54. package/esm2020/{lib/components/checkbox → checkbox}/checkbox.component.mjs +1 -1
  55. package/esm2020/checkbox/checkbox.module.mjs +21 -0
  56. package/esm2020/{lib/components/collapsible → collapsible}/collapsible.component.mjs +1 -1
  57. package/esm2020/collapsible/collapsible.module.mjs +21 -0
  58. package/esm2020/{lib/components/combobox → combobox}/combobox.component.mjs +2 -2
  59. package/esm2020/combobox/combobox.module.mjs +22 -0
  60. package/esm2020/command/command.component.mjs +75 -0
  61. package/esm2020/command/command.module.mjs +20 -0
  62. package/esm2020/context-menu/context-menu.component.mjs +165 -0
  63. package/esm2020/context-menu/context-menu.module.mjs +22 -0
  64. package/esm2020/data-table/data-table.component.mjs +299 -0
  65. package/esm2020/data-table/data-table.module.mjs +29 -0
  66. package/esm2020/data-table/draggable-table.component.mjs +300 -0
  67. package/esm2020/data-table/table.component.mjs +182 -0
  68. package/esm2020/dialog/dialog.component.mjs +265 -0
  69. package/esm2020/dialog/dialog.module.mjs +21 -0
  70. package/esm2020/drawer/drawer.component.mjs +217 -0
  71. package/esm2020/drawer/drawer.module.mjs +21 -0
  72. package/esm2020/drawer/sheet.component.mjs +116 -0
  73. package/esm2020/dropdown-menu/dropdown-menu.component.mjs +192 -0
  74. package/esm2020/dropdown-menu/dropdown-menu.module.mjs +22 -0
  75. package/esm2020/{lib/components/empty → empty}/empty.component.mjs +3 -3
  76. package/esm2020/empty/empty.module.mjs +21 -0
  77. package/esm2020/{lib/components/field → field}/field.component.mjs +1 -1
  78. package/esm2020/field/field.module.mjs +21 -0
  79. package/esm2020/{lib/components/hover-card → hover-card}/hover-card.component.mjs +2 -2
  80. package/esm2020/hover-card/hover-card.module.mjs +22 -0
  81. package/esm2020/icon/icon.component.mjs +144 -0
  82. package/esm2020/icon/icon.module.mjs +21 -0
  83. package/esm2020/input/input-group.component.mjs +63 -0
  84. package/esm2020/input/input-otp.component.mjs +144 -0
  85. package/esm2020/{lib/components/input-password → input}/input-password.component.mjs +1 -1
  86. package/esm2020/{lib/components/input → input}/input.component.mjs +1 -1
  87. package/esm2020/input/input.module.mjs +38 -0
  88. package/esm2020/{lib/components/textarea → input}/textarea.component.mjs +1 -1
  89. package/esm2020/{lib/components/item → item}/item.component.mjs +1 -1
  90. package/esm2020/item/item.module.mjs +21 -0
  91. package/esm2020/{lib/components/kbd → kbd}/kbd.component.mjs +1 -1
  92. package/esm2020/kbd/kbd.module.mjs +21 -0
  93. package/esm2020/{lib/components/label → label}/label.component.mjs +1 -1
  94. package/esm2020/label/label.module.mjs +21 -0
  95. package/esm2020/menubar/menubar.component.mjs +144 -0
  96. package/esm2020/menubar/menubar.module.mjs +22 -0
  97. package/esm2020/{lib/components/native-select → native-select}/native-select.component.mjs +2 -2
  98. package/esm2020/native-select/native-select.module.mjs +20 -0
  99. package/esm2020/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.mjs +1 -1
  100. package/esm2020/navigation-menu/navigation-menu.module.mjs +21 -0
  101. package/esm2020/overlay/create-flexible-position-strategy.mjs +54 -0
  102. package/esm2020/overlay/pdm-outside-click.directive.mjs +86 -0
  103. package/esm2020/overlay/pdm-outside-click.module.mjs +18 -0
  104. package/esm2020/overlay/pdm-overlay-options.mjs +2 -0
  105. package/esm2020/overlay/z-index-helper.mjs +69 -0
  106. package/esm2020/pagination/pagination.component.mjs +72 -0
  107. package/esm2020/pagination/pagination.module.mjs +21 -0
  108. package/esm2020/pdm-ui-kit.module.mjs +260 -0
  109. package/esm2020/{lib/components/popover → popover}/popover.component.mjs +2 -2
  110. package/esm2020/popover/popover.module.mjs +22 -0
  111. package/esm2020/{lib/components/progress → progress}/progress.component.mjs +1 -1
  112. package/esm2020/progress/progress.module.mjs +21 -0
  113. package/esm2020/public-api.mjs +117 -67
  114. package/esm2020/{lib/components/radio-group → radio-group}/radio-group.component.mjs +1 -1
  115. package/esm2020/radio-group/radio-group.module.mjs +21 -0
  116. package/esm2020/{lib/components/scroll-area → scroll-area}/scroll-area.component.mjs +1 -1
  117. package/esm2020/scroll-area/scroll-area.module.mjs +21 -0
  118. package/esm2020/select/select-option.directive.mjs +55 -0
  119. package/esm2020/select/select.component.mjs +164 -0
  120. package/esm2020/select/select.module.mjs +22 -0
  121. package/esm2020/{lib/components/separator → separator}/separator.component.mjs +1 -1
  122. package/esm2020/separator/separator.module.mjs +21 -0
  123. package/esm2020/{lib/components/sidebar → sidebar}/sidebar.component.mjs +1 -1
  124. package/esm2020/sidebar/sidebar.module.mjs +21 -0
  125. package/esm2020/{lib/components/skeleton → skeleton}/skeleton.component.mjs +1 -1
  126. package/esm2020/skeleton/skeleton.module.mjs +21 -0
  127. package/esm2020/{lib/components/slider → slider}/slider.component.mjs +1 -1
  128. package/esm2020/slider/slider.module.mjs +21 -0
  129. package/esm2020/{lib/components/sonner → sonner}/sonner.component.mjs +2 -2
  130. package/esm2020/sonner/sonner.module.mjs +20 -0
  131. package/esm2020/{lib/components/spinner → spinner}/spinner.component.mjs +1 -1
  132. package/esm2020/spinner/spinner.module.mjs +21 -0
  133. package/esm2020/src/accordion/accordion.component.mjs +42 -0
  134. package/esm2020/src/accordion/accordion.module.mjs +21 -0
  135. package/esm2020/src/accordion/pdm-ui-kit-src-accordion.mjs +5 -0
  136. package/esm2020/src/accordion/public-api.mjs +3 -0
  137. package/esm2020/src/alert/alert-dialog.component.mjs +87 -0
  138. package/esm2020/src/alert/alert.component.mjs +35 -0
  139. package/esm2020/src/alert/alert.module.mjs +25 -0
  140. package/esm2020/src/alert/pdm-ui-kit-src-alert.mjs +5 -0
  141. package/esm2020/src/alert/public-api.mjs +4 -0
  142. package/esm2020/src/aspect-ratio/aspect-ratio.component.mjs +31 -0
  143. package/esm2020/src/aspect-ratio/aspect-ratio.module.mjs +21 -0
  144. package/esm2020/src/aspect-ratio/pdm-ui-kit-src-aspect-ratio.mjs +5 -0
  145. package/esm2020/src/aspect-ratio/public-api.mjs +3 -0
  146. package/esm2020/src/avatar/avatar.component.mjs +46 -0
  147. package/esm2020/src/avatar/avatar.module.mjs +21 -0
  148. package/esm2020/src/avatar/pdm-ui-kit-src-avatar.mjs +5 -0
  149. package/esm2020/src/avatar/public-api.mjs +3 -0
  150. package/esm2020/src/badge/badge.component.mjs +23 -0
  151. package/esm2020/src/badge/badge.module.mjs +21 -0
  152. package/esm2020/src/badge/pdm-ui-kit-src-badge.mjs +5 -0
  153. package/esm2020/src/badge/public-api.mjs +3 -0
  154. package/esm2020/src/breadcrumb/breadcrumb.component.mjs +62 -0
  155. package/esm2020/src/breadcrumb/breadcrumb.module.mjs +21 -0
  156. package/esm2020/src/breadcrumb/pdm-ui-kit-src-breadcrumb.mjs +5 -0
  157. package/esm2020/src/breadcrumb/public-api.mjs +3 -0
  158. package/esm2020/{lib/components/button-group → src/button}/button-group.component.mjs +1 -1
  159. package/esm2020/src/button/button.component.mjs +114 -0
  160. package/esm2020/src/button/button.module.mjs +25 -0
  161. package/esm2020/src/button/pdm-ui-kit-src-button.mjs +5 -0
  162. package/esm2020/src/button/public-api.mjs +4 -0
  163. package/esm2020/src/calendar/calendar.component.mjs +529 -0
  164. package/esm2020/src/calendar/calendar.module.mjs +22 -0
  165. package/esm2020/src/calendar/date-picker.component.mjs +362 -0
  166. package/esm2020/src/calendar/pdm-ui-kit-src-calendar.mjs +5 -0
  167. package/esm2020/src/calendar/public-api.mjs +4 -0
  168. package/esm2020/src/card/card.component.mjs +48 -0
  169. package/esm2020/src/card/card.module.mjs +21 -0
  170. package/esm2020/src/card/pdm-ui-kit-src-card.mjs +5 -0
  171. package/esm2020/src/card/public-api.mjs +3 -0
  172. package/esm2020/src/carousel/carousel.component.mjs +102 -0
  173. package/esm2020/src/carousel/carousel.module.mjs +21 -0
  174. package/esm2020/src/carousel/pdm-ui-kit-src-carousel.mjs +5 -0
  175. package/esm2020/src/carousel/public-api.mjs +3 -0
  176. package/esm2020/src/chart/chart.component.mjs +177 -0
  177. package/esm2020/src/chart/chart.module.mjs +21 -0
  178. package/esm2020/src/chart/pdm-ui-kit-src-chart.mjs +5 -0
  179. package/esm2020/src/chart/public-api.mjs +3 -0
  180. package/esm2020/src/checkbox/checkbox.component.mjs +47 -0
  181. package/esm2020/src/checkbox/checkbox.module.mjs +21 -0
  182. package/esm2020/src/checkbox/pdm-ui-kit-src-checkbox.mjs +5 -0
  183. package/esm2020/src/checkbox/public-api.mjs +3 -0
  184. package/esm2020/src/collapsible/collapsible.component.mjs +43 -0
  185. package/esm2020/src/collapsible/collapsible.module.mjs +21 -0
  186. package/esm2020/src/collapsible/pdm-ui-kit-src-collapsible.mjs +5 -0
  187. package/esm2020/src/collapsible/public-api.mjs +3 -0
  188. package/esm2020/src/combobox/combobox.component.mjs +173 -0
  189. package/esm2020/src/combobox/combobox.module.mjs +22 -0
  190. package/esm2020/src/combobox/pdm-ui-kit-src-combobox.mjs +5 -0
  191. package/esm2020/src/combobox/public-api.mjs +3 -0
  192. package/esm2020/src/command/command.component.mjs +75 -0
  193. package/esm2020/src/command/command.module.mjs +20 -0
  194. package/esm2020/src/command/pdm-ui-kit-src-command.mjs +5 -0
  195. package/esm2020/src/command/public-api.mjs +3 -0
  196. package/esm2020/src/context-menu/context-menu.component.mjs +165 -0
  197. package/esm2020/src/context-menu/context-menu.module.mjs +22 -0
  198. package/esm2020/src/context-menu/pdm-ui-kit-src-context-menu.mjs +5 -0
  199. package/esm2020/src/context-menu/public-api.mjs +3 -0
  200. package/esm2020/src/data-table/data-table.component.mjs +299 -0
  201. package/esm2020/src/data-table/data-table.module.mjs +29 -0
  202. package/esm2020/src/data-table/draggable-table.component.mjs +300 -0
  203. package/esm2020/src/data-table/pdm-ui-kit-src-data-table.mjs +5 -0
  204. package/esm2020/src/data-table/public-api.mjs +5 -0
  205. package/esm2020/src/data-table/table.component.mjs +182 -0
  206. package/esm2020/src/dialog/dialog.component.mjs +265 -0
  207. package/esm2020/src/dialog/dialog.module.mjs +21 -0
  208. package/esm2020/src/dialog/pdm-ui-kit-src-dialog.mjs +5 -0
  209. package/esm2020/src/dialog/public-api.mjs +3 -0
  210. package/esm2020/src/drawer/drawer.component.mjs +217 -0
  211. package/esm2020/src/drawer/drawer.module.mjs +21 -0
  212. package/esm2020/src/drawer/pdm-ui-kit-src-drawer.mjs +5 -0
  213. package/esm2020/src/drawer/public-api.mjs +4 -0
  214. package/esm2020/src/drawer/sheet.component.mjs +116 -0
  215. package/esm2020/src/dropdown-menu/dropdown-menu.component.mjs +192 -0
  216. package/esm2020/src/dropdown-menu/dropdown-menu.module.mjs +22 -0
  217. package/esm2020/src/dropdown-menu/pdm-ui-kit-src-dropdown-menu.mjs +5 -0
  218. package/esm2020/src/dropdown-menu/public-api.mjs +3 -0
  219. package/esm2020/src/empty/empty.component.mjs +58 -0
  220. package/esm2020/src/empty/empty.module.mjs +21 -0
  221. package/esm2020/src/empty/pdm-ui-kit-src-empty.mjs +5 -0
  222. package/esm2020/src/empty/public-api.mjs +3 -0
  223. package/esm2020/src/field/field.component.mjs +64 -0
  224. package/esm2020/src/field/field.module.mjs +21 -0
  225. package/esm2020/src/field/pdm-ui-kit-src-field.mjs +5 -0
  226. package/esm2020/src/field/public-api.mjs +3 -0
  227. package/esm2020/src/hover-card/hover-card.component.mjs +205 -0
  228. package/esm2020/src/hover-card/hover-card.module.mjs +22 -0
  229. package/esm2020/src/hover-card/pdm-ui-kit-src-hover-card.mjs +5 -0
  230. package/esm2020/src/hover-card/public-api.mjs +3 -0
  231. package/esm2020/src/icon/icon.component.mjs +144 -0
  232. package/esm2020/src/icon/icon.module.mjs +21 -0
  233. package/esm2020/src/icon/pdm-ui-kit-src-icon.mjs +5 -0
  234. package/esm2020/src/icon/public-api.mjs +3 -0
  235. package/esm2020/{lib/components/input-group → src/input}/input-group.component.mjs +2 -2
  236. package/esm2020/src/input/input-otp.component.mjs +144 -0
  237. package/esm2020/src/input/input-password.component.mjs +78 -0
  238. package/esm2020/src/input/input.component.mjs +71 -0
  239. package/esm2020/src/input/input.module.mjs +38 -0
  240. package/esm2020/src/input/pdm-ui-kit-src-input.mjs +5 -0
  241. package/esm2020/src/input/public-api.mjs +7 -0
  242. package/esm2020/src/input/textarea.component.mjs +59 -0
  243. package/esm2020/src/item/item.component.mjs +23 -0
  244. package/esm2020/src/item/item.module.mjs +21 -0
  245. package/esm2020/src/item/pdm-ui-kit-src-item.mjs +5 -0
  246. package/esm2020/src/item/public-api.mjs +3 -0
  247. package/esm2020/src/kbd/kbd.component.mjs +17 -0
  248. package/esm2020/src/kbd/kbd.module.mjs +21 -0
  249. package/esm2020/src/kbd/pdm-ui-kit-src-kbd.mjs +5 -0
  250. package/esm2020/src/kbd/public-api.mjs +3 -0
  251. package/esm2020/src/label/label.component.mjs +23 -0
  252. package/esm2020/src/label/label.module.mjs +21 -0
  253. package/esm2020/src/label/pdm-ui-kit-src-label.mjs +5 -0
  254. package/esm2020/src/label/public-api.mjs +3 -0
  255. package/esm2020/src/menubar/menubar.component.mjs +144 -0
  256. package/esm2020/src/menubar/menubar.module.mjs +22 -0
  257. package/esm2020/src/menubar/pdm-ui-kit-src-menubar.mjs +5 -0
  258. package/esm2020/src/menubar/public-api.mjs +3 -0
  259. package/esm2020/src/native-select/native-select.component.mjs +42 -0
  260. package/esm2020/src/native-select/native-select.module.mjs +20 -0
  261. package/esm2020/src/native-select/pdm-ui-kit-src-native-select.mjs +5 -0
  262. package/esm2020/src/native-select/public-api.mjs +3 -0
  263. package/esm2020/src/navigation-menu/navigation-menu.component.mjs +42 -0
  264. package/esm2020/src/navigation-menu/navigation-menu.module.mjs +21 -0
  265. package/esm2020/src/navigation-menu/pdm-ui-kit-src-navigation-menu.mjs +5 -0
  266. package/esm2020/src/navigation-menu/public-api.mjs +3 -0
  267. package/esm2020/src/overlay/create-flexible-position-strategy.mjs +54 -0
  268. package/esm2020/src/overlay/pdm-outside-click.directive.mjs +86 -0
  269. package/esm2020/src/overlay/pdm-outside-click.module.mjs +18 -0
  270. package/esm2020/src/overlay/pdm-overlay-options.mjs +2 -0
  271. package/esm2020/src/overlay/pdm-ui-kit-src-overlay.mjs +5 -0
  272. package/esm2020/src/overlay/public-api.mjs +6 -0
  273. package/esm2020/src/overlay/z-index-helper.mjs +69 -0
  274. package/esm2020/{lib/components → src}/pagination/pagination.component.mjs +3 -3
  275. package/esm2020/src/pagination/pagination.module.mjs +21 -0
  276. package/esm2020/src/pagination/pdm-ui-kit-src-pagination.mjs +5 -0
  277. package/esm2020/src/pagination/public-api.mjs +3 -0
  278. package/esm2020/src/popover/pdm-ui-kit-src-popover.mjs +5 -0
  279. package/esm2020/src/popover/popover.component.mjs +162 -0
  280. package/esm2020/src/popover/popover.module.mjs +22 -0
  281. package/esm2020/src/popover/public-api.mjs +3 -0
  282. package/esm2020/src/progress/pdm-ui-kit-src-progress.mjs +5 -0
  283. package/esm2020/src/progress/progress.component.mjs +33 -0
  284. package/esm2020/src/progress/progress.module.mjs +21 -0
  285. package/esm2020/src/progress/public-api.mjs +3 -0
  286. package/esm2020/src/radio-group/pdm-ui-kit-src-radio-group.mjs +5 -0
  287. package/esm2020/src/radio-group/public-api.mjs +3 -0
  288. package/esm2020/src/radio-group/radio-group.component.mjs +38 -0
  289. package/esm2020/src/radio-group/radio-group.module.mjs +21 -0
  290. package/esm2020/src/scroll-area/pdm-ui-kit-src-scroll-area.mjs +5 -0
  291. package/esm2020/src/scroll-area/public-api.mjs +3 -0
  292. package/esm2020/src/scroll-area/scroll-area.component.mjs +20 -0
  293. package/esm2020/src/scroll-area/scroll-area.module.mjs +21 -0
  294. package/esm2020/src/select/pdm-ui-kit-src-select.mjs +5 -0
  295. package/esm2020/src/select/public-api.mjs +4 -0
  296. package/esm2020/src/select/select-option.directive.mjs +55 -0
  297. package/esm2020/src/select/select.component.mjs +164 -0
  298. package/esm2020/src/select/select.module.mjs +22 -0
  299. package/esm2020/src/separator/pdm-ui-kit-src-separator.mjs +5 -0
  300. package/esm2020/src/separator/public-api.mjs +3 -0
  301. package/esm2020/src/separator/separator.component.mjs +26 -0
  302. package/esm2020/src/separator/separator.module.mjs +21 -0
  303. package/esm2020/src/sidebar/pdm-ui-kit-src-sidebar.mjs +5 -0
  304. package/esm2020/src/sidebar/public-api.mjs +3 -0
  305. package/esm2020/src/sidebar/sidebar.component.mjs +67 -0
  306. package/esm2020/src/sidebar/sidebar.module.mjs +21 -0
  307. package/esm2020/src/skeleton/pdm-ui-kit-src-skeleton.mjs +5 -0
  308. package/esm2020/src/skeleton/public-api.mjs +3 -0
  309. package/esm2020/src/skeleton/skeleton.component.mjs +17 -0
  310. package/esm2020/src/skeleton/skeleton.module.mjs +21 -0
  311. package/esm2020/src/slider/pdm-ui-kit-src-slider.mjs +5 -0
  312. package/esm2020/src/slider/public-api.mjs +3 -0
  313. package/esm2020/src/slider/slider.component.mjs +46 -0
  314. package/esm2020/src/slider/slider.module.mjs +21 -0
  315. package/esm2020/src/sonner/pdm-ui-kit-src-sonner.mjs +5 -0
  316. package/esm2020/src/sonner/public-api.mjs +3 -0
  317. package/esm2020/src/sonner/sonner.component.mjs +39 -0
  318. package/esm2020/src/sonner/sonner.module.mjs +20 -0
  319. package/esm2020/src/spinner/pdm-ui-kit-src-spinner.mjs +5 -0
  320. package/esm2020/src/spinner/public-api.mjs +3 -0
  321. package/esm2020/src/spinner/spinner.component.mjs +20 -0
  322. package/esm2020/src/spinner/spinner.module.mjs +21 -0
  323. package/esm2020/src/switch/pdm-ui-kit-src-switch.mjs +5 -0
  324. package/esm2020/src/switch/public-api.mjs +3 -0
  325. package/esm2020/src/switch/switch.component.mjs +58 -0
  326. package/esm2020/src/switch/switch.module.mjs +21 -0
  327. package/esm2020/src/tabs/pdm-ui-kit-src-tabs.mjs +5 -0
  328. package/esm2020/src/tabs/public-api.mjs +3 -0
  329. package/esm2020/{lib/components → src}/tabs/tabs.component.mjs +1 -1
  330. package/esm2020/src/tabs/tabs.module.mjs +21 -0
  331. package/esm2020/src/toggle/pdm-ui-kit-src-toggle.mjs +5 -0
  332. package/esm2020/src/toggle/public-api.mjs +4 -0
  333. package/esm2020/{lib/components/toggle-group → src/toggle}/toggle-group.component.mjs +1 -1
  334. package/esm2020/{lib/components → src}/toggle/toggle.component.mjs +1 -1
  335. package/esm2020/src/toggle/toggle.module.mjs +25 -0
  336. package/esm2020/src/tooltip/pdm-ui-kit-src-tooltip.mjs +5 -0
  337. package/esm2020/src/tooltip/public-api.mjs +3 -0
  338. package/esm2020/src/tooltip/tooltip.component.mjs +176 -0
  339. package/esm2020/src/tooltip/tooltip.module.mjs +22 -0
  340. package/esm2020/src/utils/pdm-ui-kit-src-utils.mjs +5 -0
  341. package/esm2020/src/utils/public-api.mjs +3 -0
  342. package/esm2020/src/utils/responsive.mjs +143 -0
  343. package/esm2020/src/utils/z-index.mjs +90 -0
  344. package/esm2020/switch/switch.component.mjs +58 -0
  345. package/esm2020/switch/switch.module.mjs +21 -0
  346. package/esm2020/tabs/tabs.component.mjs +34 -0
  347. package/esm2020/tabs/tabs.module.mjs +21 -0
  348. package/esm2020/toggle/toggle-group.component.mjs +31 -0
  349. package/esm2020/toggle/toggle.component.mjs +41 -0
  350. package/esm2020/toggle/toggle.module.mjs +25 -0
  351. package/esm2020/{lib/components/tooltip → tooltip}/tooltip.component.mjs +2 -2
  352. package/esm2020/tooltip/tooltip.module.mjs +22 -0
  353. package/esm2020/utils/responsive.mjs +143 -0
  354. package/esm2020/utils/z-index.mjs +90 -0
  355. package/fesm2015/pdm-ui-kit-src-accordion.mjs +68 -0
  356. package/fesm2015/pdm-ui-kit-src-accordion.mjs.map +1 -0
  357. package/fesm2015/pdm-ui-kit-src-alert.mjs +147 -0
  358. package/fesm2015/pdm-ui-kit-src-alert.mjs.map +1 -0
  359. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs +56 -0
  360. package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -0
  361. package/fesm2015/pdm-ui-kit-src-avatar.mjs +71 -0
  362. package/fesm2015/pdm-ui-kit-src-avatar.mjs.map +1 -0
  363. package/fesm2015/pdm-ui-kit-src-badge.mjs +48 -0
  364. package/fesm2015/pdm-ui-kit-src-badge.mjs.map +1 -0
  365. package/fesm2015/pdm-ui-kit-src-breadcrumb.mjs +87 -0
  366. package/fesm2015/pdm-ui-kit-src-breadcrumb.mjs.map +1 -0
  367. package/fesm2015/pdm-ui-kit-src-button.mjs +376 -0
  368. package/fesm2015/pdm-ui-kit-src-button.mjs.map +1 -0
  369. package/fesm2015/pdm-ui-kit-src-calendar.mjs +912 -0
  370. package/fesm2015/pdm-ui-kit-src-calendar.mjs.map +1 -0
  371. package/fesm2015/pdm-ui-kit-src-card.mjs +73 -0
  372. package/fesm2015/pdm-ui-kit-src-card.mjs.map +1 -0
  373. package/fesm2015/pdm-ui-kit-src-carousel.mjs +127 -0
  374. package/fesm2015/pdm-ui-kit-src-carousel.mjs.map +1 -0
  375. package/fesm2015/pdm-ui-kit-src-chart.mjs +203 -0
  376. package/fesm2015/pdm-ui-kit-src-chart.mjs.map +1 -0
  377. package/fesm2015/pdm-ui-kit-src-checkbox.mjs +72 -0
  378. package/fesm2015/pdm-ui-kit-src-checkbox.mjs.map +1 -0
  379. package/fesm2015/pdm-ui-kit-src-collapsible.mjs +68 -0
  380. package/fesm2015/pdm-ui-kit-src-collapsible.mjs.map +1 -0
  381. package/fesm2015/pdm-ui-kit-src-combobox.mjs +200 -0
  382. package/fesm2015/pdm-ui-kit-src-combobox.mjs.map +1 -0
  383. package/fesm2015/pdm-ui-kit-src-command.mjs +100 -0
  384. package/fesm2015/pdm-ui-kit-src-command.mjs.map +1 -0
  385. package/fesm2015/pdm-ui-kit-src-context-menu.mjs +191 -0
  386. package/fesm2015/pdm-ui-kit-src-context-menu.mjs.map +1 -0
  387. package/fesm2015/pdm-ui-kit-src-data-table.mjs +806 -0
  388. package/fesm2015/pdm-ui-kit-src-data-table.mjs.map +1 -0
  389. package/fesm2015/pdm-ui-kit-src-dialog.mjs +289 -0
  390. package/fesm2015/pdm-ui-kit-src-dialog.mjs.map +1 -0
  391. package/fesm2015/pdm-ui-kit-src-drawer.mjs +354 -0
  392. package/fesm2015/pdm-ui-kit-src-drawer.mjs.map +1 -0
  393. package/fesm2015/pdm-ui-kit-src-dropdown-menu.mjs +212 -0
  394. package/fesm2015/pdm-ui-kit-src-dropdown-menu.mjs.map +1 -0
  395. package/fesm2015/pdm-ui-kit-src-empty.mjs +83 -0
  396. package/fesm2015/pdm-ui-kit-src-empty.mjs.map +1 -0
  397. package/fesm2015/pdm-ui-kit-src-field.mjs +89 -0
  398. package/fesm2015/pdm-ui-kit-src-field.mjs.map +1 -0
  399. package/fesm2015/pdm-ui-kit-src-hover-card.mjs +231 -0
  400. package/fesm2015/pdm-ui-kit-src-hover-card.mjs.map +1 -0
  401. package/fesm2015/pdm-ui-kit-src-icon.mjs +172 -0
  402. package/fesm2015/pdm-ui-kit-src-icon.mjs.map +1 -0
  403. package/fesm2015/pdm-ui-kit-src-input.mjs +443 -0
  404. package/fesm2015/pdm-ui-kit-src-input.mjs.map +1 -0
  405. package/fesm2015/pdm-ui-kit-src-item.mjs +48 -0
  406. package/fesm2015/pdm-ui-kit-src-item.mjs.map +1 -0
  407. package/fesm2015/pdm-ui-kit-src-kbd.mjs +42 -0
  408. package/fesm2015/pdm-ui-kit-src-kbd.mjs.map +1 -0
  409. package/fesm2015/pdm-ui-kit-src-label.mjs +48 -0
  410. package/fesm2015/pdm-ui-kit-src-label.mjs.map +1 -0
  411. package/fesm2015/pdm-ui-kit-src-menubar.mjs +170 -0
  412. package/fesm2015/pdm-ui-kit-src-menubar.mjs.map +1 -0
  413. package/fesm2015/pdm-ui-kit-src-native-select.mjs +66 -0
  414. package/fesm2015/pdm-ui-kit-src-native-select.mjs.map +1 -0
  415. package/fesm2015/pdm-ui-kit-src-navigation-menu.mjs +67 -0
  416. package/fesm2015/pdm-ui-kit-src-navigation-menu.mjs.map +1 -0
  417. package/fesm2015/pdm-ui-kit-src-overlay.mjs +225 -0
  418. package/fesm2015/pdm-ui-kit-src-overlay.mjs.map +1 -0
  419. package/fesm2015/pdm-ui-kit-src-pagination.mjs +97 -0
  420. package/fesm2015/pdm-ui-kit-src-pagination.mjs.map +1 -0
  421. package/fesm2015/pdm-ui-kit-src-popover.mjs +189 -0
  422. package/fesm2015/pdm-ui-kit-src-popover.mjs.map +1 -0
  423. package/fesm2015/pdm-ui-kit-src-progress.mjs +58 -0
  424. package/fesm2015/pdm-ui-kit-src-progress.mjs.map +1 -0
  425. package/fesm2015/pdm-ui-kit-src-radio-group.mjs +63 -0
  426. package/fesm2015/pdm-ui-kit-src-radio-group.mjs.map +1 -0
  427. package/fesm2015/pdm-ui-kit-src-scroll-area.mjs +45 -0
  428. package/fesm2015/pdm-ui-kit-src-scroll-area.mjs.map +1 -0
  429. package/fesm2015/pdm-ui-kit-src-select.mjs +238 -0
  430. package/fesm2015/pdm-ui-kit-src-select.mjs.map +1 -0
  431. package/fesm2015/pdm-ui-kit-src-separator.mjs +51 -0
  432. package/fesm2015/pdm-ui-kit-src-separator.mjs.map +1 -0
  433. package/fesm2015/pdm-ui-kit-src-sidebar.mjs +92 -0
  434. package/fesm2015/pdm-ui-kit-src-sidebar.mjs.map +1 -0
  435. package/fesm2015/pdm-ui-kit-src-skeleton.mjs +42 -0
  436. package/fesm2015/pdm-ui-kit-src-skeleton.mjs.map +1 -0
  437. package/fesm2015/pdm-ui-kit-src-slider.mjs +71 -0
  438. package/fesm2015/pdm-ui-kit-src-slider.mjs.map +1 -0
  439. package/fesm2015/pdm-ui-kit-src-sonner.mjs +63 -0
  440. package/fesm2015/pdm-ui-kit-src-sonner.mjs.map +1 -0
  441. package/fesm2015/pdm-ui-kit-src-spinner.mjs +45 -0
  442. package/fesm2015/pdm-ui-kit-src-spinner.mjs.map +1 -0
  443. package/fesm2015/pdm-ui-kit-src-switch.mjs +83 -0
  444. package/fesm2015/pdm-ui-kit-src-switch.mjs.map +1 -0
  445. package/fesm2015/pdm-ui-kit-src-tabs.mjs +59 -0
  446. package/fesm2015/pdm-ui-kit-src-tabs.mjs.map +1 -0
  447. package/fesm2015/pdm-ui-kit-src-toggle.mjs +97 -0
  448. package/fesm2015/pdm-ui-kit-src-toggle.mjs.map +1 -0
  449. package/fesm2015/pdm-ui-kit-src-tooltip.mjs +202 -0
  450. package/fesm2015/pdm-ui-kit-src-tooltip.mjs.map +1 -0
  451. package/fesm2015/pdm-ui-kit-src-utils.mjs +239 -0
  452. package/fesm2015/pdm-ui-kit-src-utils.mjs.map +1 -0
  453. package/fesm2015/pdm-ui-kit.mjs +3832 -2982
  454. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  455. package/fesm2020/pdm-ui-kit-src-accordion.mjs +67 -0
  456. package/fesm2020/pdm-ui-kit-src-accordion.mjs.map +1 -0
  457. package/fesm2020/pdm-ui-kit-src-alert.mjs +147 -0
  458. package/fesm2020/pdm-ui-kit-src-alert.mjs.map +1 -0
  459. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs +56 -0
  460. package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -0
  461. package/fesm2020/pdm-ui-kit-src-avatar.mjs +71 -0
  462. package/fesm2020/pdm-ui-kit-src-avatar.mjs.map +1 -0
  463. package/fesm2020/pdm-ui-kit-src-badge.mjs +48 -0
  464. package/fesm2020/pdm-ui-kit-src-badge.mjs.map +1 -0
  465. package/fesm2020/pdm-ui-kit-src-breadcrumb.mjs +87 -0
  466. package/fesm2020/pdm-ui-kit-src-breadcrumb.mjs.map +1 -0
  467. package/fesm2020/pdm-ui-kit-src-button.mjs +375 -0
  468. package/fesm2020/pdm-ui-kit-src-button.mjs.map +1 -0
  469. package/fesm2020/pdm-ui-kit-src-calendar.mjs +911 -0
  470. package/fesm2020/pdm-ui-kit-src-calendar.mjs.map +1 -0
  471. package/fesm2020/pdm-ui-kit-src-card.mjs +73 -0
  472. package/fesm2020/pdm-ui-kit-src-card.mjs.map +1 -0
  473. package/fesm2020/pdm-ui-kit-src-carousel.mjs +127 -0
  474. package/fesm2020/pdm-ui-kit-src-carousel.mjs.map +1 -0
  475. package/fesm2020/pdm-ui-kit-src-chart.mjs +202 -0
  476. package/fesm2020/pdm-ui-kit-src-chart.mjs.map +1 -0
  477. package/fesm2020/pdm-ui-kit-src-checkbox.mjs +72 -0
  478. package/fesm2020/pdm-ui-kit-src-checkbox.mjs.map +1 -0
  479. package/fesm2020/pdm-ui-kit-src-collapsible.mjs +68 -0
  480. package/fesm2020/pdm-ui-kit-src-collapsible.mjs.map +1 -0
  481. package/fesm2020/pdm-ui-kit-src-combobox.mjs +199 -0
  482. package/fesm2020/pdm-ui-kit-src-combobox.mjs.map +1 -0
  483. package/fesm2020/pdm-ui-kit-src-command.mjs +99 -0
  484. package/fesm2020/pdm-ui-kit-src-command.mjs.map +1 -0
  485. package/fesm2020/pdm-ui-kit-src-context-menu.mjs +191 -0
  486. package/fesm2020/pdm-ui-kit-src-context-menu.mjs.map +1 -0
  487. package/fesm2020/pdm-ui-kit-src-data-table.mjs +805 -0
  488. package/fesm2020/pdm-ui-kit-src-data-table.mjs.map +1 -0
  489. package/fesm2020/pdm-ui-kit-src-dialog.mjs +289 -0
  490. package/fesm2020/pdm-ui-kit-src-dialog.mjs.map +1 -0
  491. package/fesm2020/pdm-ui-kit-src-drawer.mjs +354 -0
  492. package/fesm2020/pdm-ui-kit-src-drawer.mjs.map +1 -0
  493. package/fesm2020/pdm-ui-kit-src-dropdown-menu.mjs +218 -0
  494. package/fesm2020/pdm-ui-kit-src-dropdown-menu.mjs.map +1 -0
  495. package/fesm2020/pdm-ui-kit-src-empty.mjs +83 -0
  496. package/fesm2020/pdm-ui-kit-src-empty.mjs.map +1 -0
  497. package/fesm2020/pdm-ui-kit-src-field.mjs +89 -0
  498. package/fesm2020/pdm-ui-kit-src-field.mjs.map +1 -0
  499. package/fesm2020/pdm-ui-kit-src-hover-card.mjs +231 -0
  500. package/fesm2020/pdm-ui-kit-src-hover-card.mjs.map +1 -0
  501. package/fesm2020/pdm-ui-kit-src-icon.mjs +169 -0
  502. package/fesm2020/pdm-ui-kit-src-icon.mjs.map +1 -0
  503. package/fesm2020/pdm-ui-kit-src-input.mjs +441 -0
  504. package/fesm2020/pdm-ui-kit-src-input.mjs.map +1 -0
  505. package/fesm2020/pdm-ui-kit-src-item.mjs +48 -0
  506. package/fesm2020/pdm-ui-kit-src-item.mjs.map +1 -0
  507. package/fesm2020/pdm-ui-kit-src-kbd.mjs +42 -0
  508. package/fesm2020/pdm-ui-kit-src-kbd.mjs.map +1 -0
  509. package/fesm2020/pdm-ui-kit-src-label.mjs +48 -0
  510. package/fesm2020/pdm-ui-kit-src-label.mjs.map +1 -0
  511. package/fesm2020/pdm-ui-kit-src-menubar.mjs +170 -0
  512. package/fesm2020/pdm-ui-kit-src-menubar.mjs.map +1 -0
  513. package/fesm2020/pdm-ui-kit-src-native-select.mjs +66 -0
  514. package/fesm2020/pdm-ui-kit-src-native-select.mjs.map +1 -0
  515. package/fesm2020/pdm-ui-kit-src-navigation-menu.mjs +67 -0
  516. package/fesm2020/pdm-ui-kit-src-navigation-menu.mjs.map +1 -0
  517. package/fesm2020/pdm-ui-kit-src-overlay.mjs +229 -0
  518. package/fesm2020/pdm-ui-kit-src-overlay.mjs.map +1 -0
  519. package/fesm2020/pdm-ui-kit-src-pagination.mjs +97 -0
  520. package/fesm2020/pdm-ui-kit-src-pagination.mjs.map +1 -0
  521. package/fesm2020/pdm-ui-kit-src-popover.mjs +188 -0
  522. package/fesm2020/pdm-ui-kit-src-popover.mjs.map +1 -0
  523. package/fesm2020/pdm-ui-kit-src-progress.mjs +58 -0
  524. package/fesm2020/pdm-ui-kit-src-progress.mjs.map +1 -0
  525. package/fesm2020/pdm-ui-kit-src-radio-group.mjs +63 -0
  526. package/fesm2020/pdm-ui-kit-src-radio-group.mjs.map +1 -0
  527. package/fesm2020/pdm-ui-kit-src-scroll-area.mjs +45 -0
  528. package/fesm2020/pdm-ui-kit-src-scroll-area.mjs.map +1 -0
  529. package/fesm2020/pdm-ui-kit-src-select.mjs +241 -0
  530. package/fesm2020/pdm-ui-kit-src-select.mjs.map +1 -0
  531. package/fesm2020/pdm-ui-kit-src-separator.mjs +51 -0
  532. package/fesm2020/pdm-ui-kit-src-separator.mjs.map +1 -0
  533. package/fesm2020/pdm-ui-kit-src-sidebar.mjs +92 -0
  534. package/fesm2020/pdm-ui-kit-src-sidebar.mjs.map +1 -0
  535. package/fesm2020/pdm-ui-kit-src-skeleton.mjs +42 -0
  536. package/fesm2020/pdm-ui-kit-src-skeleton.mjs.map +1 -0
  537. package/fesm2020/pdm-ui-kit-src-slider.mjs +71 -0
  538. package/fesm2020/pdm-ui-kit-src-slider.mjs.map +1 -0
  539. package/fesm2020/pdm-ui-kit-src-sonner.mjs +63 -0
  540. package/fesm2020/pdm-ui-kit-src-sonner.mjs.map +1 -0
  541. package/fesm2020/pdm-ui-kit-src-spinner.mjs +45 -0
  542. package/fesm2020/pdm-ui-kit-src-spinner.mjs.map +1 -0
  543. package/fesm2020/pdm-ui-kit-src-switch.mjs +83 -0
  544. package/fesm2020/pdm-ui-kit-src-switch.mjs.map +1 -0
  545. package/fesm2020/pdm-ui-kit-src-tabs.mjs +59 -0
  546. package/fesm2020/pdm-ui-kit-src-tabs.mjs.map +1 -0
  547. package/fesm2020/pdm-ui-kit-src-toggle.mjs +97 -0
  548. package/fesm2020/pdm-ui-kit-src-toggle.mjs.map +1 -0
  549. package/fesm2020/pdm-ui-kit-src-tooltip.mjs +202 -0
  550. package/fesm2020/pdm-ui-kit-src-tooltip.mjs.map +1 -0
  551. package/fesm2020/pdm-ui-kit-src-utils.mjs +239 -0
  552. package/fesm2020/pdm-ui-kit-src-utils.mjs.map +1 -0
  553. package/fesm2020/pdm-ui-kit.mjs +3865 -3015
  554. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  555. package/field/field.module.d.ts +8 -0
  556. package/hover-card/hover-card.module.d.ts +9 -0
  557. package/icon/icon.module.d.ts +8 -0
  558. package/{lib/components/input-password → input}/input-password.component.d.ts +1 -1
  559. package/input/input.module.d.ts +13 -0
  560. package/item/item.module.d.ts +8 -0
  561. package/kbd/kbd.module.d.ts +8 -0
  562. package/label/label.module.d.ts +8 -0
  563. package/{lib/components/menubar → menubar}/menubar.component.d.ts +1 -1
  564. package/menubar/menubar.module.d.ts +9 -0
  565. package/native-select/native-select.module.d.ts +9 -0
  566. package/navigation-menu/navigation-menu.module.d.ts +8 -0
  567. package/overlay/pdm-outside-click.module.d.ts +8 -0
  568. package/package.json +786 -2
  569. package/{lib/components/pagination → pagination}/pagination.component.d.ts +1 -1
  570. package/pagination/pagination.module.d.ts +10 -0
  571. package/pdm-ui-kit.module.d.ts +60 -0
  572. package/popover/popover.module.d.ts +9 -0
  573. package/progress/progress.module.d.ts +8 -0
  574. package/public-api.d.ts +114 -66
  575. package/radio-group/radio-group.module.d.ts +8 -0
  576. package/scroll-area/scroll-area.module.d.ts +8 -0
  577. package/{lib/components/select → select}/select.component.d.ts +1 -1
  578. package/select/select.module.d.ts +11 -0
  579. package/separator/separator.module.d.ts +8 -0
  580. package/sidebar/sidebar.module.d.ts +8 -0
  581. package/skeleton/skeleton.module.d.ts +8 -0
  582. package/slider/slider.module.d.ts +8 -0
  583. package/sonner/sonner.module.d.ts +9 -0
  584. package/spinner/spinner.module.d.ts +8 -0
  585. package/src/accordion/accordion.component.d.ts +19 -0
  586. package/src/accordion/accordion.module.d.ts +8 -0
  587. package/src/accordion/index.d.ts +5 -0
  588. package/src/accordion/public-api.d.ts +2 -0
  589. package/src/alert/alert-dialog.component.d.ts +29 -0
  590. package/src/alert/alert.component.d.ts +13 -0
  591. package/src/alert/alert.module.d.ts +9 -0
  592. package/src/alert/index.d.ts +5 -0
  593. package/src/alert/public-api.d.ts +3 -0
  594. package/src/aspect-ratio/aspect-ratio.component.d.ts +10 -0
  595. package/src/aspect-ratio/aspect-ratio.module.d.ts +8 -0
  596. package/src/aspect-ratio/index.d.ts +5 -0
  597. package/src/aspect-ratio/public-api.d.ts +2 -0
  598. package/src/avatar/avatar.component.d.ts +20 -0
  599. package/src/avatar/avatar.module.d.ts +8 -0
  600. package/src/avatar/index.d.ts +5 -0
  601. package/src/avatar/public-api.d.ts +2 -0
  602. package/src/badge/badge.component.d.ts +9 -0
  603. package/src/badge/badge.module.d.ts +8 -0
  604. package/src/badge/index.d.ts +5 -0
  605. package/src/badge/public-api.d.ts +2 -0
  606. package/src/breadcrumb/breadcrumb.component.d.ts +32 -0
  607. package/src/breadcrumb/breadcrumb.module.d.ts +8 -0
  608. package/src/breadcrumb/index.d.ts +5 -0
  609. package/src/breadcrumb/public-api.d.ts +2 -0
  610. package/src/button/button-group.component.d.ts +19 -0
  611. package/src/button/button.component.d.ts +29 -0
  612. package/src/button/button.module.d.ts +9 -0
  613. package/src/button/index.d.ts +5 -0
  614. package/src/button/public-api.d.ts +3 -0
  615. package/src/calendar/calendar.component.d.ts +149 -0
  616. package/src/calendar/calendar.module.d.ts +11 -0
  617. package/src/calendar/date-picker.component.d.ts +89 -0
  618. package/src/calendar/index.d.ts +5 -0
  619. package/src/calendar/public-api.d.ts +3 -0
  620. package/src/card/card.component.d.ts +37 -0
  621. package/src/card/card.module.d.ts +8 -0
  622. package/src/card/index.d.ts +5 -0
  623. package/src/card/public-api.d.ts +2 -0
  624. package/src/carousel/carousel.component.d.ts +28 -0
  625. package/src/carousel/carousel.module.d.ts +8 -0
  626. package/src/carousel/index.d.ts +5 -0
  627. package/src/carousel/public-api.d.ts +2 -0
  628. package/src/chart/chart.component.d.ts +44 -0
  629. package/src/chart/chart.module.d.ts +8 -0
  630. package/src/chart/index.d.ts +5 -0
  631. package/src/chart/public-api.d.ts +2 -0
  632. package/src/checkbox/checkbox.component.d.ts +17 -0
  633. package/src/checkbox/checkbox.module.d.ts +8 -0
  634. package/src/checkbox/index.d.ts +5 -0
  635. package/src/checkbox/public-api.d.ts +2 -0
  636. package/src/collapsible/collapsible.component.d.ts +14 -0
  637. package/src/collapsible/collapsible.module.d.ts +8 -0
  638. package/src/collapsible/index.d.ts +5 -0
  639. package/src/collapsible/public-api.d.ts +2 -0
  640. package/src/combobox/combobox.component.d.ts +35 -0
  641. package/src/combobox/combobox.module.d.ts +9 -0
  642. package/src/combobox/index.d.ts +5 -0
  643. package/src/combobox/public-api.d.ts +2 -0
  644. package/src/command/command.component.d.ts +33 -0
  645. package/src/command/command.module.d.ts +9 -0
  646. package/src/command/index.d.ts +5 -0
  647. package/src/command/public-api.d.ts +2 -0
  648. package/src/context-menu/context-menu.component.d.ts +38 -0
  649. package/src/context-menu/context-menu.module.d.ts +9 -0
  650. package/src/context-menu/index.d.ts +5 -0
  651. package/src/context-menu/public-api.d.ts +2 -0
  652. package/src/data-table/data-table.component.d.ts +200 -0
  653. package/src/data-table/data-table.module.d.ts +10 -0
  654. package/src/data-table/draggable-table.component.d.ts +74 -0
  655. package/src/data-table/index.d.ts +5 -0
  656. package/src/data-table/public-api.d.ts +4 -0
  657. package/src/data-table/table.component.d.ts +55 -0
  658. package/src/dialog/dialog.component.d.ts +72 -0
  659. package/src/dialog/dialog.module.d.ts +8 -0
  660. package/src/dialog/index.d.ts +5 -0
  661. package/src/dialog/public-api.d.ts +2 -0
  662. package/src/drawer/drawer.component.d.ts +96 -0
  663. package/src/drawer/drawer.module.d.ts +10 -0
  664. package/src/drawer/index.d.ts +5 -0
  665. package/src/drawer/public-api.d.ts +3 -0
  666. package/src/drawer/sheet.component.d.ts +46 -0
  667. package/src/dropdown-menu/dropdown-menu.component.d.ts +61 -0
  668. package/src/dropdown-menu/dropdown-menu.module.d.ts +9 -0
  669. package/src/dropdown-menu/index.d.ts +5 -0
  670. package/src/dropdown-menu/public-api.d.ts +2 -0
  671. package/src/empty/empty.component.d.ts +19 -0
  672. package/src/empty/empty.module.d.ts +10 -0
  673. package/src/empty/index.d.ts +5 -0
  674. package/src/empty/public-api.d.ts +2 -0
  675. package/src/field/field.component.d.ts +23 -0
  676. package/src/field/field.module.d.ts +8 -0
  677. package/src/field/index.d.ts +5 -0
  678. package/src/field/public-api.d.ts +2 -0
  679. package/src/hover-card/hover-card.component.d.ts +37 -0
  680. package/src/hover-card/hover-card.module.d.ts +9 -0
  681. package/src/hover-card/index.d.ts +5 -0
  682. package/src/hover-card/public-api.d.ts +2 -0
  683. package/src/icon/icon.component.d.ts +28 -0
  684. package/src/icon/icon.module.d.ts +8 -0
  685. package/src/icon/index.d.ts +5 -0
  686. package/src/icon/public-api.d.ts +2 -0
  687. package/src/input/index.d.ts +5 -0
  688. package/src/input/input-group.component.d.ts +22 -0
  689. package/src/input/input-otp.component.d.ts +26 -0
  690. package/src/input/input-password.component.d.ts +28 -0
  691. package/src/input/input.component.d.ts +27 -0
  692. package/src/input/input.module.d.ts +13 -0
  693. package/src/input/public-api.d.ts +6 -0
  694. package/src/input/textarea.component.d.ts +21 -0
  695. package/src/item/index.d.ts +5 -0
  696. package/src/item/item.component.d.ts +8 -0
  697. package/src/item/item.module.d.ts +8 -0
  698. package/src/item/public-api.d.ts +2 -0
  699. package/src/kbd/index.d.ts +5 -0
  700. package/src/kbd/kbd.component.d.ts +6 -0
  701. package/src/kbd/kbd.module.d.ts +8 -0
  702. package/src/kbd/public-api.d.ts +2 -0
  703. package/src/label/index.d.ts +5 -0
  704. package/src/label/label.component.d.ts +8 -0
  705. package/src/label/label.module.d.ts +8 -0
  706. package/src/label/public-api.d.ts +2 -0
  707. package/src/menubar/index.d.ts +5 -0
  708. package/src/menubar/menubar.component.d.ts +34 -0
  709. package/src/menubar/menubar.module.d.ts +9 -0
  710. package/src/menubar/public-api.d.ts +2 -0
  711. package/src/native-select/index.d.ts +5 -0
  712. package/src/native-select/native-select.component.d.ts +20 -0
  713. package/src/native-select/native-select.module.d.ts +9 -0
  714. package/src/native-select/public-api.d.ts +2 -0
  715. package/src/navigation-menu/index.d.ts +5 -0
  716. package/src/navigation-menu/navigation-menu.component.d.ts +33 -0
  717. package/src/navigation-menu/navigation-menu.module.d.ts +8 -0
  718. package/src/navigation-menu/public-api.d.ts +2 -0
  719. package/src/overlay/create-flexible-position-strategy.d.ts +15 -0
  720. package/src/overlay/index.d.ts +5 -0
  721. package/src/overlay/pdm-outside-click.directive.d.ts +40 -0
  722. package/src/overlay/pdm-outside-click.module.d.ts +8 -0
  723. package/src/overlay/pdm-overlay-options.d.ts +21 -0
  724. package/src/overlay/public-api.d.ts +5 -0
  725. package/src/overlay/z-index-helper.d.ts +36 -0
  726. package/src/pagination/index.d.ts +5 -0
  727. package/src/pagination/pagination.component.d.ts +21 -0
  728. package/src/pagination/pagination.module.d.ts +10 -0
  729. package/src/pagination/public-api.d.ts +2 -0
  730. package/src/popover/index.d.ts +5 -0
  731. package/src/popover/popover.component.d.ts +32 -0
  732. package/src/popover/popover.module.d.ts +9 -0
  733. package/src/popover/public-api.d.ts +2 -0
  734. package/src/progress/index.d.ts +5 -0
  735. package/src/progress/progress.component.d.ts +10 -0
  736. package/src/progress/progress.module.d.ts +8 -0
  737. package/src/progress/public-api.d.ts +2 -0
  738. package/src/radio-group/index.d.ts +5 -0
  739. package/src/radio-group/public-api.d.ts +2 -0
  740. package/src/radio-group/radio-group.component.d.ts +19 -0
  741. package/src/radio-group/radio-group.module.d.ts +8 -0
  742. package/src/scroll-area/index.d.ts +5 -0
  743. package/src/scroll-area/public-api.d.ts +2 -0
  744. package/src/scroll-area/scroll-area.component.d.ts +7 -0
  745. package/src/scroll-area/scroll-area.module.d.ts +8 -0
  746. package/src/select/index.d.ts +5 -0
  747. package/src/select/public-api.d.ts +3 -0
  748. package/src/select/select-option.directive.d.ts +34 -0
  749. package/src/select/select.component.d.ts +55 -0
  750. package/src/select/select.module.d.ts +11 -0
  751. package/src/separator/index.d.ts +5 -0
  752. package/src/separator/public-api.d.ts +2 -0
  753. package/src/separator/separator.component.d.ts +9 -0
  754. package/src/separator/separator.module.d.ts +8 -0
  755. package/src/sidebar/index.d.ts +5 -0
  756. package/src/sidebar/public-api.d.ts +2 -0
  757. package/src/sidebar/sidebar.component.d.ts +45 -0
  758. package/src/sidebar/sidebar.module.d.ts +8 -0
  759. package/src/skeleton/index.d.ts +5 -0
  760. package/src/skeleton/public-api.d.ts +2 -0
  761. package/src/skeleton/skeleton.component.d.ts +6 -0
  762. package/src/skeleton/skeleton.module.d.ts +8 -0
  763. package/src/slider/index.d.ts +5 -0
  764. package/src/slider/public-api.d.ts +2 -0
  765. package/src/slider/slider.component.d.ts +15 -0
  766. package/src/slider/slider.module.d.ts +8 -0
  767. package/src/sonner/index.d.ts +5 -0
  768. package/src/sonner/public-api.d.ts +2 -0
  769. package/src/sonner/sonner.component.d.ts +13 -0
  770. package/src/sonner/sonner.module.d.ts +9 -0
  771. package/src/spinner/index.d.ts +5 -0
  772. package/src/spinner/public-api.d.ts +2 -0
  773. package/src/spinner/spinner.component.d.ts +7 -0
  774. package/src/spinner/spinner.module.d.ts +8 -0
  775. package/src/switch/index.d.ts +5 -0
  776. package/src/switch/public-api.d.ts +2 -0
  777. package/src/switch/switch.module.d.ts +8 -0
  778. package/src/tabs/index.d.ts +5 -0
  779. package/src/tabs/public-api.d.ts +2 -0
  780. package/src/tabs/tabs.module.d.ts +8 -0
  781. package/src/toggle/index.d.ts +5 -0
  782. package/src/toggle/public-api.d.ts +3 -0
  783. package/src/toggle/toggle.module.d.ts +9 -0
  784. package/src/tooltip/index.d.ts +5 -0
  785. package/src/tooltip/public-api.d.ts +2 -0
  786. package/src/tooltip/tooltip.module.d.ts +9 -0
  787. package/src/utils/index.d.ts +5 -0
  788. package/src/utils/public-api.d.ts +2 -0
  789. package/switch/switch.component.d.ts +18 -0
  790. package/switch/switch.module.d.ts +8 -0
  791. package/tabs/tabs.component.d.ts +18 -0
  792. package/tabs/tabs.module.d.ts +8 -0
  793. package/toggle/toggle-group.component.d.ts +16 -0
  794. package/toggle/toggle.component.d.ts +14 -0
  795. package/toggle/toggle.module.d.ts +9 -0
  796. package/tooltip/tooltip.component.d.ts +28 -0
  797. package/tooltip/tooltip.module.d.ts +9 -0
  798. package/utils/responsive.d.ts +107 -0
  799. package/utils/z-index.d.ts +69 -0
  800. package/esm2020/lib/components/button/button.component.mjs +0 -114
  801. package/esm2020/lib/components/calendar/calendar.component.mjs +0 -529
  802. package/esm2020/lib/components/carousel/carousel.component.mjs +0 -102
  803. package/esm2020/lib/components/command/command.component.mjs +0 -75
  804. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -165
  805. package/esm2020/lib/components/data-table/data-table.component.mjs +0 -299
  806. package/esm2020/lib/components/dialog/dialog.component.mjs +0 -265
  807. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +0 -300
  808. package/esm2020/lib/components/drawer/drawer.component.mjs +0 -217
  809. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -192
  810. package/esm2020/lib/components/icon/icon.component.mjs +0 -144
  811. package/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -144
  812. package/esm2020/lib/components/menubar/menubar.component.mjs +0 -144
  813. package/esm2020/lib/components/select/select-option.directive.mjs +0 -55
  814. package/esm2020/lib/components/select/select.component.mjs +0 -164
  815. package/esm2020/lib/components/sheet/sheet.component.mjs +0 -116
  816. package/esm2020/lib/components/switch/switch.component.mjs +0 -58
  817. package/esm2020/lib/components/table/table.component.mjs +0 -182
  818. package/esm2020/lib/overlay/create-flexible-position-strategy.mjs +0 -54
  819. package/esm2020/lib/overlay/pdm-outside-click.directive.mjs +0 -86
  820. package/esm2020/lib/overlay/pdm-overlay-options.mjs +0 -2
  821. package/esm2020/lib/overlay/z-index-helper.mjs +0 -69
  822. package/esm2020/lib/pdm-ui-kit.module.mjs +0 -258
  823. package/esm2020/lib/utils/responsive.mjs +0 -143
  824. package/esm2020/lib/utils/z-index.mjs +0 -90
  825. package/lib/pdm-ui-kit.module.d.ts +0 -68
  826. /package/{lib/components/accordion → accordion}/accordion.component.d.ts +0 -0
  827. /package/{lib/components/alert-dialog → alert}/alert-dialog.component.d.ts +0 -0
  828. /package/{lib/components/alert → alert}/alert.component.d.ts +0 -0
  829. /package/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.d.ts +0 -0
  830. /package/{lib/components/avatar → avatar}/avatar.component.d.ts +0 -0
  831. /package/{lib/components/badge → badge}/badge.component.d.ts +0 -0
  832. /package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +0 -0
  833. /package/{lib/components/button-group → button}/button-group.component.d.ts +0 -0
  834. /package/{lib/components/button → button}/button.component.d.ts +0 -0
  835. /package/{lib/components/calendar → calendar}/calendar.component.d.ts +0 -0
  836. /package/{lib/components/card → card}/card.component.d.ts +0 -0
  837. /package/{lib/components/carousel → carousel}/carousel.component.d.ts +0 -0
  838. /package/{lib/components/chart → chart}/chart.component.d.ts +0 -0
  839. /package/{lib/components/checkbox → checkbox}/checkbox.component.d.ts +0 -0
  840. /package/{lib/components/collapsible → collapsible}/collapsible.component.d.ts +0 -0
  841. /package/{lib/components/combobox → combobox}/combobox.component.d.ts +0 -0
  842. /package/{lib/components/dialog → dialog}/dialog.component.d.ts +0 -0
  843. /package/{lib/components/drawer → drawer}/drawer.component.d.ts +0 -0
  844. /package/{lib/components/sheet → drawer}/sheet.component.d.ts +0 -0
  845. /package/{lib/components/empty → empty}/empty.component.d.ts +0 -0
  846. /package/{lib/components/field → field}/field.component.d.ts +0 -0
  847. /package/{lib/components/hover-card → hover-card}/hover-card.component.d.ts +0 -0
  848. /package/{lib/components/icon → icon}/icon.component.d.ts +0 -0
  849. /package/{lib/components/input-group → input}/input-group.component.d.ts +0 -0
  850. /package/{lib/components/input-otp → input}/input-otp.component.d.ts +0 -0
  851. /package/{lib/components/input → input}/input.component.d.ts +0 -0
  852. /package/{lib/components/textarea → input}/textarea.component.d.ts +0 -0
  853. /package/{lib/components/item → item}/item.component.d.ts +0 -0
  854. /package/{lib/components/kbd → kbd}/kbd.component.d.ts +0 -0
  855. /package/{lib/components/label → label}/label.component.d.ts +0 -0
  856. /package/{lib/components/native-select → native-select}/native-select.component.d.ts +0 -0
  857. /package/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.d.ts +0 -0
  858. /package/{lib/overlay → overlay}/create-flexible-position-strategy.d.ts +0 -0
  859. /package/{lib/overlay → overlay}/pdm-outside-click.directive.d.ts +0 -0
  860. /package/{lib/overlay → overlay}/pdm-overlay-options.d.ts +0 -0
  861. /package/{lib/overlay → overlay}/z-index-helper.d.ts +0 -0
  862. /package/{lib/components/popover → popover}/popover.component.d.ts +0 -0
  863. /package/{lib/components/progress → progress}/progress.component.d.ts +0 -0
  864. /package/{lib/components/radio-group → radio-group}/radio-group.component.d.ts +0 -0
  865. /package/{lib/components/scroll-area → scroll-area}/scroll-area.component.d.ts +0 -0
  866. /package/{lib/components/select → select}/select-option.directive.d.ts +0 -0
  867. /package/{lib/components/separator → separator}/separator.component.d.ts +0 -0
  868. /package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +0 -0
  869. /package/{lib/components/skeleton → skeleton}/skeleton.component.d.ts +0 -0
  870. /package/{lib/components/slider → slider}/slider.component.d.ts +0 -0
  871. /package/{lib/components/sonner → sonner}/sonner.component.d.ts +0 -0
  872. /package/{lib/components/spinner → spinner}/spinner.component.d.ts +0 -0
  873. /package/src/{lib/styles → styles}/tokens.css +0 -0
  874. /package/{lib/components → src}/switch/switch.component.d.ts +0 -0
  875. /package/{lib/components → src}/tabs/tabs.component.d.ts +0 -0
  876. /package/{lib/components/toggle-group → src/toggle}/toggle-group.component.d.ts +0 -0
  877. /package/{lib/components → src}/toggle/toggle.component.d.ts +0 -0
  878. /package/{lib/components → src}/tooltip/tooltip.component.d.ts +0 -0
  879. /package/{lib → src}/utils/responsive.d.ts +0 -0
  880. /package/{lib → src}/utils/z-index.d.ts +0 -0
@@ -1,529 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Input, Output, } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- const DAY_MS = 24 * 60 * 60 * 1000;
5
- export class PdmCalendarComponent {
6
- constructor() {
7
- this._value = null;
8
- this._rangeValue = null;
9
- this._month = null;
10
- this.cdr = inject(ChangeDetectorRef);
11
- this.variant = "single";
12
- this.className = "";
13
- this.disabledDates = [];
14
- this.minDate = null;
15
- this.maxDate = null;
16
- this.minYear = null;
17
- this.maxYear = null;
18
- this.isDateDisabled = null;
19
- this.allowSameDayRange = true;
20
- this.readonly = false;
21
- this.valueChange = new EventEmitter();
22
- this.rangeValueChange = new EventEmitter();
23
- this.monthChange = new EventEmitter();
24
- this.dateClick = new EventEmitter();
25
- this.disabledDateClick = new EventEmitter();
26
- this.weekdays = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
27
- this.monthOptions = [
28
- { value: 0, label: "Jan" },
29
- { value: 1, label: "Feb" },
30
- { value: 2, label: "Mar" },
31
- { value: 3, label: "Apr" },
32
- { value: 4, label: "May" },
33
- { value: 5, label: "Jun" },
34
- { value: 6, label: "Jul" },
35
- { value: 7, label: "Aug" },
36
- { value: 8, label: "Sep" },
37
- { value: 9, label: "Oct" },
38
- { value: 10, label: "Nov" },
39
- { value: 11, label: "Dec" },
40
- ];
41
- this.trackByIndex = (index) => {
42
- return index;
43
- };
44
- this.trackByDate = (_index, cell) => {
45
- return this.dateKey(cell.date);
46
- };
47
- }
48
- set value(value) {
49
- this._value = this.normalizeDate(value);
50
- }
51
- get value() {
52
- return this._value;
53
- }
54
- set rangeValue(value) {
55
- this._rangeValue = value
56
- ? {
57
- start: this.normalizeDate(value.start),
58
- end: this.normalizeDate(value.end),
59
- }
60
- : null;
61
- }
62
- get rangeValue() {
63
- return this._rangeValue;
64
- }
65
- set month(value) {
66
- this._month = value ? this.startOfMonth(value) : null;
67
- }
68
- get month() {
69
- return this._month;
70
- }
71
- get resolvedVariant() {
72
- return this.variant === "range" ? "range" : "single";
73
- }
74
- get visibleMonths() {
75
- const baseMonth = this.getAnchorMonth();
76
- if (this.resolvedVariant === "single") {
77
- return [
78
- {
79
- date: baseMonth,
80
- title: this.formatMonthYear(baseMonth),
81
- titleStyle: "dropdowns",
82
- dropdownMonth: this.formatMonthShort(baseMonth),
83
- dropdownYear: String(baseMonth.getFullYear()),
84
- showPrevButton: true,
85
- showNextButton: true,
86
- weeks: this.buildMonthWeeks(baseMonth, false),
87
- },
88
- ];
89
- }
90
- const nextMonth = this.addMonths(baseMonth, 1);
91
- return [
92
- {
93
- date: baseMonth,
94
- title: this.formatMonthYear(baseMonth),
95
- titleStyle: "plain",
96
- showPrevButton: true,
97
- showNextButton: false,
98
- weeks: this.buildMonthWeeks(baseMonth, true),
99
- },
100
- {
101
- date: nextMonth,
102
- title: this.formatMonthYear(nextMonth),
103
- titleStyle: "plain",
104
- showPrevButton: false,
105
- showNextButton: true,
106
- weeks: this.buildMonthWeeks(nextMonth, true),
107
- },
108
- ];
109
- }
110
- get singleHeaderMonth() {
111
- return this.getAnchorMonth().getMonth();
112
- }
113
- get singleHeaderYear() {
114
- return this.getAnchorMonth().getFullYear();
115
- }
116
- get yearOptions() {
117
- const baseYear = new Date().getFullYear();
118
- const selectedYear = this.singleHeaderYear;
119
- let minYear = this.minYear ??
120
- (this.minDate ? this.minDate.getFullYear() : baseYear - 100);
121
- let maxYear = this.maxYear ??
122
- (this.maxDate ? this.maxDate.getFullYear() : baseYear + 10);
123
- const years = [];
124
- if (selectedYear < minYear) {
125
- minYear = selectedYear;
126
- }
127
- if (selectedYear > maxYear) {
128
- maxYear = selectedYear;
129
- }
130
- if (minYear > maxYear) {
131
- const nextMin = maxYear;
132
- maxYear = minYear;
133
- minYear = nextMin;
134
- }
135
- for (let year = minYear; year <= maxYear; year += 1) {
136
- years.push(year);
137
- }
138
- return years;
139
- }
140
- get rootClasses() {
141
- return [
142
- "border-border bg-background relative rounded-[10px] border border-solid p-3 shadow-sm",
143
- this.resolvedVariant === "range"
144
- ? "inline-flex items-start justify-center gap-4 shrink-0 grow-0 basis-auto"
145
- : "inline-flex flex-col gap-4 shrink-0 grow-0 basis-auto",
146
- this.className,
147
- ];
148
- }
149
- get rootStyle() {
150
- const width = this.resolvedVariant === "range" ? "488px" : "250px";
151
- return {
152
- width,
153
- minWidth: width,
154
- maxWidth: width,
155
- minHeight: "293px",
156
- flex: "0 0 auto",
157
- alignSelf: "flex-start",
158
- };
159
- }
160
- monthPanelClasses(_index) {
161
- return [
162
- "flex flex-col items-start",
163
- this.resolvedVariant === "range" ? "w-[224px] gap-4" : "w-full gap-0",
164
- ];
165
- }
166
- headerClasses(month) {
167
- return [
168
- "flex w-full items-center justify-between",
169
- month.titleStyle === "dropdowns" ? "" : "mb-4",
170
- ];
171
- }
172
- navButtonClasses() {
173
- return [
174
- "flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 bg-transparent p-0 text-foreground",
175
- "disabled:pointer-events-none disabled:opacity-40",
176
- ];
177
- }
178
- navPlaceholderClasses() {
179
- return ["h-7 w-7 shrink-0"];
180
- }
181
- dropdownWrapClasses() {
182
- return ["flex w-40 items-center justify-center gap-2"];
183
- }
184
- dropdownClasses(widthClass) {
185
- return ["flex h-8 items-center justify-center gap-1 px-1", widthClass];
186
- }
187
- dropdownSelectClasses() {
188
- return [
189
- "text-foreground h-full bg-transparent text-sm font-medium leading-5",
190
- "appearance-none box-border border-0 outline-none ring-0 focus:outline-none focus:ring-0 text-center cursor-pointer",
191
- ];
192
- }
193
- get dropdownSelectStyle() {
194
- return {
195
- appearance: "none",
196
- WebkitAppearance: "none",
197
- MozAppearance: "none",
198
- background: "transparent",
199
- border: "0",
200
- boxShadow: "none",
201
- outline: "0",
202
- padding: "0",
203
- margin: "0",
204
- };
205
- }
206
- calendarGridWrapClasses() {
207
- return ["flex w-full flex-col items-start"];
208
- }
209
- weekdayRowClasses() {
210
- return ["flex w-full items-center"];
211
- }
212
- weekdayCellClasses() {
213
- return [
214
- "text-muted-foreground flex h-[21px] w-8 items-center justify-center rounded-md text-xs leading-4",
215
- ];
216
- }
217
- weekRowClasses() {
218
- return ["flex w-full items-start pt-2"];
219
- }
220
- dayCellClasses(cell) {
221
- return [
222
- "relative flex h-8 w-8 shrink-0 items-center justify-center",
223
- cell.rangeFill ? "bg-accent" : "",
224
- cell.rangeLeftCap ? "rounded-l-md" : "",
225
- cell.rangeRightCap ? "rounded-r-md" : "",
226
- ];
227
- }
228
- dayButtonClasses(cell) {
229
- return [
230
- "relative z-10 flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 p-0 text-sm leading-5",
231
- cell.selected
232
- ? "bg-primary text-primary-foreground"
233
- : cell.rangeFill
234
- ? "bg-transparent text-accent-foreground"
235
- : "bg-transparent text-foreground",
236
- cell.muted && !cell.rangeFill ? "opacity-50" : "",
237
- cell.disabled ? "cursor-not-allowed opacity-40" : "",
238
- !cell.disabled && !this.readonly && !cell.selected
239
- ? "hover:bg-accent/70"
240
- : "",
241
- ];
242
- }
243
- dayLabelClasses(_cell) {
244
- return ["font-normal"];
245
- }
246
- goToPreviousMonth() {
247
- this.setAnchorMonth(this.addMonths(this.getAnchorMonth(), -1));
248
- }
249
- goToNextMonth() {
250
- this.setAnchorMonth(this.addMonths(this.getAnchorMonth(), 1));
251
- }
252
- onSingleMonthChange(monthValue) {
253
- const month = Number(monthValue);
254
- if (Number.isNaN(month) || month < 0 || month > 11) {
255
- return;
256
- }
257
- const anchor = this.getAnchorMonth();
258
- this.setAnchorMonth(new Date(anchor.getFullYear(), month, 1));
259
- }
260
- onSingleYearChange(yearValue) {
261
- const year = Number(yearValue);
262
- if (Number.isNaN(year)) {
263
- return;
264
- }
265
- const anchor = this.getAnchorMonth();
266
- this.setAnchorMonth(new Date(year, anchor.getMonth(), 1));
267
- }
268
- onDatePressed(cell) {
269
- const date = this.cloneDate(cell.date);
270
- if (cell.disabled) {
271
- this.disabledDateClick.emit(date);
272
- return;
273
- }
274
- if (this.readonly) {
275
- return;
276
- }
277
- this.dateClick.emit(date);
278
- if (this.resolvedVariant === "single") {
279
- this._value = date;
280
- this.valueChange.emit(this.cloneDate(date));
281
- this.syncVisibleMonthToDate(date);
282
- this.cdr.markForCheck();
283
- return;
284
- }
285
- this.handleRangeSelection(date);
286
- this.cdr.markForCheck();
287
- }
288
- handleRangeSelection(date) {
289
- const current = this._rangeValue;
290
- const currentStart = current?.start ? this.cloneDate(current.start) : null;
291
- const currentEnd = current?.end ? this.cloneDate(current.end) : null;
292
- if (!currentStart || (currentStart && currentEnd)) {
293
- this._rangeValue = { start: date, end: null };
294
- this.rangeValueChange.emit({ start: this.cloneDate(date), end: null });
295
- this.syncVisibleMonthToDate(date);
296
- return;
297
- }
298
- if (this.isSameDay(currentStart, date) && !this.allowSameDayRange) {
299
- this._rangeValue = { start: date, end: null };
300
- this.rangeValueChange.emit({ start: this.cloneDate(date), end: null });
301
- return;
302
- }
303
- const start = this.compareDate(date, currentStart) < 0 ? date : currentStart;
304
- const end = this.compareDate(date, currentStart) < 0 ? currentStart : date;
305
- if (this.rangeContainsBlockedDate(start, end)) {
306
- this.disabledDateClick.emit(this.cloneDate(date));
307
- return;
308
- }
309
- this._rangeValue = { start, end };
310
- this.rangeValueChange.emit({
311
- start: this.cloneDate(start),
312
- end: this.cloneDate(end),
313
- });
314
- this.syncVisibleMonthToDate(start);
315
- }
316
- buildMonthWeeks(month, includeRange) {
317
- const firstOfMonth = this.startOfMonth(month);
318
- const start = this.startOfWeek(firstOfMonth);
319
- const end = this.endOfWeek(this.endOfMonth(firstOfMonth));
320
- const weeks = [];
321
- let cursor = this.cloneDate(start);
322
- while (this.compareDate(cursor, end) <= 0) {
323
- const row = [];
324
- for (let col = 0; col < 7; col += 1) {
325
- row.push(this.buildCell(cursor, month, includeRange));
326
- cursor = this.addDays(cursor, 1);
327
- }
328
- weeks.push(row);
329
- }
330
- for (const row of weeks) {
331
- for (let col = 0; col < row.length; col += 1) {
332
- const cell = row[col];
333
- if (!cell.inRange) {
334
- continue;
335
- }
336
- const leftInRow = col > 0 ? row[col - 1].inRange : false;
337
- const rightInRow = col < row.length - 1 ? row[col + 1].inRange : false;
338
- cell.rangeLeftCap = !leftInRow;
339
- cell.rangeRightCap = !rightInRow;
340
- }
341
- }
342
- return weeks;
343
- }
344
- buildCell(date, visibleMonth, includeRange) {
345
- const normalized = this.cloneDate(date);
346
- const inCurrentMonth = normalized.getMonth() === visibleMonth.getMonth() &&
347
- normalized.getFullYear() === visibleMonth.getFullYear();
348
- const disabled = this.isBlocked(normalized);
349
- const selectedSingle = this.resolvedVariant === "single" &&
350
- !!this._value &&
351
- this.isSameDay(normalized, this._value);
352
- const rangeStart = includeRange &&
353
- !!this._rangeValue?.start &&
354
- this.isSameDay(normalized, this._rangeValue.start);
355
- const rangeEnd = includeRange &&
356
- !!this._rangeValue?.end &&
357
- this.isSameDay(normalized, this._rangeValue.end);
358
- const inRange = includeRange &&
359
- !!this._rangeValue?.start &&
360
- !!this._rangeValue?.end &&
361
- this.compareDate(normalized, this._rangeValue.start) >= 0 &&
362
- this.compareDate(normalized, this._rangeValue.end) <= 0;
363
- return {
364
- date: normalized,
365
- label: normalized.getDate(),
366
- muted: !inCurrentMonth,
367
- disabled,
368
- selected: selectedSingle || rangeStart || rangeEnd,
369
- inRange,
370
- rangeFill: inRange,
371
- rangeLeftCap: false,
372
- rangeRightCap: false,
373
- };
374
- }
375
- getAnchorMonth() {
376
- let candidate = null;
377
- if (this._month) {
378
- candidate = this.cloneDate(this._month);
379
- }
380
- else if (this.resolvedVariant === "single" && this._value) {
381
- candidate = this.startOfMonth(this._value);
382
- }
383
- else if (this.resolvedVariant === "range" && this._rangeValue?.start) {
384
- candidate = this.startOfMonth(this._rangeValue.start);
385
- }
386
- else {
387
- candidate = this.startOfMonth(new Date());
388
- }
389
- if (!this.isValidDate(candidate)) {
390
- return this.startOfMonth(new Date());
391
- }
392
- return candidate;
393
- }
394
- setAnchorMonth(month) {
395
- const normalized = this.startOfMonth(month);
396
- if (!this.isValidDate(normalized)) {
397
- return;
398
- }
399
- this._month = normalized;
400
- this.monthChange.emit(this.cloneDate(this._month));
401
- }
402
- syncVisibleMonthToDate(date) {
403
- const nextMonth = this.startOfMonth(date);
404
- if (!this._month || !this.isSameMonth(this._month, nextMonth)) {
405
- this._month = nextMonth;
406
- this.monthChange.emit(this.cloneDate(nextMonth));
407
- }
408
- }
409
- isBlocked(date) {
410
- if (this.minDate && this.compareDate(date, this.minDate) < 0) {
411
- return true;
412
- }
413
- if (this.maxDate && this.compareDate(date, this.maxDate) > 0) {
414
- return true;
415
- }
416
- const blockedSet = new Set((this.disabledDates || []).map((item) => this.dateKey(item)));
417
- if (blockedSet.has(this.dateKey(date))) {
418
- return true;
419
- }
420
- return !!this.isDateDisabled?.(this.cloneDate(date));
421
- }
422
- rangeContainsBlockedDate(start, end) {
423
- let cursor = this.cloneDate(start);
424
- while (this.compareDate(cursor, end) <= 0) {
425
- if (this.isBlocked(cursor)) {
426
- return true;
427
- }
428
- cursor = this.addDays(cursor, 1);
429
- }
430
- return false;
431
- }
432
- normalizeDate(value) {
433
- if (!(value instanceof Date) || Number.isNaN(value.getTime())) {
434
- return null;
435
- }
436
- return new Date(value.getFullYear(), value.getMonth(), value.getDate());
437
- }
438
- cloneDate(date) {
439
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
440
- }
441
- isValidDate(date) {
442
- return !!date && date instanceof Date && !Number.isNaN(date.getTime());
443
- }
444
- startOfMonth(date) {
445
- return new Date(date.getFullYear(), date.getMonth(), 1);
446
- }
447
- endOfMonth(date) {
448
- return new Date(date.getFullYear(), date.getMonth() + 1, 0);
449
- }
450
- startOfWeek(date) {
451
- return this.addDays(date, -date.getDay());
452
- }
453
- endOfWeek(date) {
454
- return this.addDays(date, 6 - date.getDay());
455
- }
456
- addMonths(date, months) {
457
- return new Date(date.getFullYear(), date.getMonth() + months, 1);
458
- }
459
- addDays(date, days) {
460
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + days);
461
- }
462
- compareDate(a, b) {
463
- return this.dateValue(a) - this.dateValue(b);
464
- }
465
- dateValue(date) {
466
- return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) / DAY_MS);
467
- }
468
- isSameDay(a, b) {
469
- return this.compareDate(a, b) === 0;
470
- }
471
- isSameMonth(a, b) {
472
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
473
- }
474
- dateKey(date) {
475
- const y = date.getFullYear();
476
- const m = String(date.getMonth() + 1).padStart(2, "0");
477
- const d = String(date.getDate()).padStart(2, "0");
478
- return `${y}-${m}-${d}`;
479
- }
480
- formatMonthShort(date) {
481
- return date.toLocaleString("en-US", { month: "short" });
482
- }
483
- formatMonthYear(date) {
484
- return date.toLocaleString("en-US", { month: "long", year: "numeric" });
485
- }
486
- }
487
- PdmCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
488
- PdmCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: { variant: "variant", className: "className", disabledDates: "disabledDates", minDate: "minDate", maxDate: "maxDate", minYear: "minYear", maxYear: "maxYear", isDateDisabled: "isDateDisabled", allowSameDayRange: "allowSameDayRange", readonly: "readonly", value: "value", rangeValue: "rangeValue", month: "month" }, outputs: { valueChange: "valueChange", rangeValueChange: "rangeValueChange", monthChange: "monthChange", dateClick: "dateClick", disabledDateClick: "disabledDateClick" }, ngImport: i0, template: "<div [ngClass]=\"rootClasses\" [ngStyle]=\"rootStyle\">\n <div *ngFor=\"let month of visibleMonths; let monthIndex = index; trackBy: trackByIndex\" [ngClass]=\"monthPanelClasses(monthIndex)\">\n <div [ngClass]=\"headerClasses(month)\">\n <button\n *ngIf=\"month.showPrevButton; else prevPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Previous month\"\n (click)=\"goToPreviousMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m15 18-6-6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #prevPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n\n <ng-container *ngIf=\"month.titleStyle === 'dropdowns'; else plainTitle\">\n <div [ngClass]=\"dropdownWrapClasses()\">\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[72px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderMonth\"\n aria-label=\"Month\"\n (change)=\"onSingleMonthChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let monthOption of monthOptions\"\n [value]=\"monthOption.value\"\n [selected]=\"monthOption.value === singleHeaderMonth\"\n >\n {{ monthOption.label }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[82px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderYear\"\n aria-label=\"Year\"\n (change)=\"onSingleYearChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let year of yearOptions\"\n [value]=\"year\"\n [selected]=\"year === singleHeaderYear\"\n >\n {{ year }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-template #plainTitle>\n <div class=\"flex min-w-0 flex-1 items-center justify-center\">\n <p class=\"m-0 text-foreground text-center text-sm font-medium leading-5\">\n {{ month.title }}\n </p>\n </div>\n </ng-template>\n\n <button\n *ngIf=\"month.showNextButton; else nextPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m9 18 6-6-6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #nextPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n </div>\n\n <div [ngClass]=\"calendarGridWrapClasses()\">\n <div [ngClass]=\"weekdayRowClasses()\">\n <div *ngFor=\"let day of weekdays; trackBy: trackByIndex\" [ngClass]=\"weekdayCellClasses()\">\n <span>{{ day }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let week of month.weeks; trackBy: trackByIndex\" [ngClass]=\"weekRowClasses()\">\n <div *ngFor=\"let cell of week; trackBy: trackByDate\" [ngClass]=\"dayCellClasses(cell)\">\n <button\n type=\"button\"\n [ngClass]=\"dayButtonClasses(cell)\"\n [disabled]=\"readonly\"\n [attr.aria-selected]=\"cell.selected\"\n [attr.aria-disabled]=\"cell.disabled || readonly\"\n [attr.title]=\"cell.date | date : 'yyyy-MM-dd'\"\n (click)=\"onDatePressed(cell)\"\n >\n <span [ngClass]=\"dayLabelClasses(cell)\">{{ cell.label }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarComponent, decorators: [{
490
- type: Component,
491
- args: [{ selector: "pdm-calendar", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"rootClasses\" [ngStyle]=\"rootStyle\">\n <div *ngFor=\"let month of visibleMonths; let monthIndex = index; trackBy: trackByIndex\" [ngClass]=\"monthPanelClasses(monthIndex)\">\n <div [ngClass]=\"headerClasses(month)\">\n <button\n *ngIf=\"month.showPrevButton; else prevPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Previous month\"\n (click)=\"goToPreviousMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m15 18-6-6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #prevPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n\n <ng-container *ngIf=\"month.titleStyle === 'dropdowns'; else plainTitle\">\n <div [ngClass]=\"dropdownWrapClasses()\">\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[72px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderMonth\"\n aria-label=\"Month\"\n (change)=\"onSingleMonthChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let monthOption of monthOptions\"\n [value]=\"monthOption.value\"\n [selected]=\"monthOption.value === singleHeaderMonth\"\n >\n {{ monthOption.label }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[82px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderYear\"\n aria-label=\"Year\"\n (change)=\"onSingleYearChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let year of yearOptions\"\n [value]=\"year\"\n [selected]=\"year === singleHeaderYear\"\n >\n {{ year }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-template #plainTitle>\n <div class=\"flex min-w-0 flex-1 items-center justify-center\">\n <p class=\"m-0 text-foreground text-center text-sm font-medium leading-5\">\n {{ month.title }}\n </p>\n </div>\n </ng-template>\n\n <button\n *ngIf=\"month.showNextButton; else nextPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m9 18 6-6-6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #nextPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n </div>\n\n <div [ngClass]=\"calendarGridWrapClasses()\">\n <div [ngClass]=\"weekdayRowClasses()\">\n <div *ngFor=\"let day of weekdays; trackBy: trackByIndex\" [ngClass]=\"weekdayCellClasses()\">\n <span>{{ day }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let week of month.weeks; trackBy: trackByIndex\" [ngClass]=\"weekRowClasses()\">\n <div *ngFor=\"let cell of week; trackBy: trackByDate\" [ngClass]=\"dayCellClasses(cell)\">\n <button\n type=\"button\"\n [ngClass]=\"dayButtonClasses(cell)\"\n [disabled]=\"readonly\"\n [attr.aria-selected]=\"cell.selected\"\n [attr.aria-disabled]=\"cell.disabled || readonly\"\n [attr.title]=\"cell.date | date : 'yyyy-MM-dd'\"\n (click)=\"onDatePressed(cell)\"\n >\n <span [ngClass]=\"dayLabelClasses(cell)\">{{ cell.label }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
492
- }], propDecorators: { variant: [{
493
- type: Input
494
- }], className: [{
495
- type: Input
496
- }], disabledDates: [{
497
- type: Input
498
- }], minDate: [{
499
- type: Input
500
- }], maxDate: [{
501
- type: Input
502
- }], minYear: [{
503
- type: Input
504
- }], maxYear: [{
505
- type: Input
506
- }], isDateDisabled: [{
507
- type: Input
508
- }], allowSameDayRange: [{
509
- type: Input
510
- }], readonly: [{
511
- type: Input
512
- }], valueChange: [{
513
- type: Output
514
- }], rangeValueChange: [{
515
- type: Output
516
- }], monthChange: [{
517
- type: Output
518
- }], dateClick: [{
519
- type: Output
520
- }], disabledDateClick: [{
521
- type: Output
522
- }], value: [{
523
- type: Input
524
- }], rangeValue: [{
525
- type: Input
526
- }], month: [{
527
- type: Input
528
- }] } });
529
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDOzs7QUFnQ3ZCLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQU9uQyxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBTVMsV0FBTSxHQUFnQixJQUFJLENBQUM7UUFDM0IsZ0JBQVcsR0FBNEIsSUFBSSxDQUFDO1FBQzVDLFdBQU0sR0FBZ0IsSUFBSSxDQUFDO1FBRWxCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV4QyxZQUFPLEdBQWdDLFFBQVEsQ0FBQztRQUNoRCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2Ysa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFDNUIsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFDNUIsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFDOUIsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFDOUIsbUJBQWMsR0FBcUMsSUFBSSxDQUFDO1FBQ3hELHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBMkIs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Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0gsS0FBSztzQkFEUixLQUFLO2dCQVNGLFVBQVU7c0JBRGIsS0FBSztnQkFjRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RXZlbnRFbWl0dGVyLFxuXHRpbmplY3QsXG5cdElucHV0LFxuXHRPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFBkbUNhbGVuZGFyVmFyaWFudCA9IFwic2luZ2xlXCIgfCBcInJhbmdlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtQ2FsZW5kYXJSYW5nZSB7XG5cdHN0YXJ0OiBEYXRlIHwgbnVsbDtcblx0ZW5kOiBEYXRlIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFBkbUNhbGVuZGFyQ2VsbCB7XG5cdGRhdGU6IERhdGU7XG5cdGxhYmVsOiBudW1iZXI7XG5cdG11dGVkOiBib29sZWFuO1xuXHRkaXNhYmxlZDogYm9vbGVhbjtcblx0c2VsZWN0ZWQ6IGJvb2xlYW47XG5cdGluUmFuZ2U6IGJvb2xlYW47XG5cdHJhbmdlRmlsbDogYm9vbGVhbjtcblx0cmFuZ2VMZWZ0Q2FwOiBib29sZWFuO1xuXHRyYW5nZVJpZ2h0Q2FwOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUGRtQ2FsZW5kYXJNb250aFZpZXcge1xuXHRkYXRlOiBEYXRlO1xuXHR0aXRsZTogc3RyaW5nO1xuXHR0aXRsZVN0eWxlOiBcImRyb3Bkb3duc1wiIHwgXCJwbGFpblwiO1xuXHRkcm9wZG93bk1vbnRoPzogc3RyaW5nO1xuXHRkcm9wZG93blllYXI/OiBzdHJpbmc7XG5cdHNob3dQcmV2QnV0dG9uOiBib29sZWFuO1xuXHRzaG93TmV4dEJ1dHRvbjogYm9vbGVhbjtcblx0d2Vla3M6IHJlYWRvbmx5IChyZWFkb25seSBQZG1DYWxlbmRhckNlbGxbXSlbXTtcbn1cblxuY29uc3QgREFZX01TID0gMjQgKiA2MCAqIDYwICogMTAwMDtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcInBkbS1jYWxlbmRhclwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sXCIsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1DYWxlbmRhckNvbXBvbmVudCB7XG5cdHByaXZhdGUgX3ZhbHVlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX3JhbmdlVmFsdWU6IFBkbUNhbGVuZGFyUmFuZ2UgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBfbW9udGg6IERhdGUgfCBudWxsID0gbnVsbDtcblxuXHRwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0QElucHV0KCkgdmFyaWFudDogUGRtQ2FsZW5kYXJWYXJpYW50IHwgc3RyaW5nID0gXCJzaW5nbGVcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG5cdEBJbnB1dCgpIG1pbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblx0QElucHV0KCkgbWF4RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRASW5wdXQoKSBtaW5ZZWFyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblx0QElucHV0KCkgbWF4WWVhcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIGlzRGF0ZURpc2FibGVkOiAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIGFsbG93U2FtZURheVJhbmdlID0gdHJ1ZTtcblx0QElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcblxuXHRAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuXHRAT3V0cHV0KCkgcmFuZ2VWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGRtQ2FsZW5kYXJSYW5nZSB8IG51bGw+KCk7XG5cdEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblx0QE91dHB1dCgpIGRhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblx0QE91dHB1dCgpIGRpc2FibGVkRGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG5cdEBJbnB1dCgpXG5cdHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcblx0XHR0aGlzLl92YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG5cdH1cblx0Z2V0IHZhbHVlKCk6IERhdGUgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRzZXQgcmFuZ2VWYWx1ZSh2YWx1ZTogUGRtQ2FsZW5kYXJSYW5nZSB8IG51bGwpIHtcblx0XHR0aGlzLl9yYW5nZVZhbHVlID0gdmFsdWVcblx0XHRcdD8ge1xuXHRcdFx0XHRcdHN0YXJ0OiB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUuc3RhcnQpLFxuXHRcdFx0XHRcdGVuZDogdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlLmVuZCksXG5cdFx0XHRcdH1cblx0XHRcdDogbnVsbDtcblx0fVxuXHRnZXQgcmFuZ2VWYWx1ZSgpOiBQZG1DYWxlbmRhclJhbmdlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuX3JhbmdlVmFsdWU7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRzZXQgbW9udGgodmFsdWU6IERhdGUgfCBudWxsKSB7XG5cdFx0dGhpcy5fbW9udGggPSB2YWx1ZSA/IHRoaXMuc3RhcnRPZk1vbnRoKHZhbHVlKSA6IG51bGw7XG5cdH1cblx0Z2V0IG1vbnRoKCk6IERhdGUgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fbW9udGg7XG5cdH1cblxuXHRyZWFkb25seSB3ZWVrZGF5cyA9IFtcIlN1XCIsIFwiTW9cIiwgXCJUdVwiLCBcIldlXCIsIFwiVGhcIiwgXCJGclwiLCBcIlNhXCJdIGFzIGNvbnN0O1xuXHRyZWFkb25seSBtb250aE9wdGlvbnMgPSBbXG5cdFx0eyB2YWx1ZTogMCwgbGFiZWw6IFwiSmFuXCIgfSxcblx0XHR7IHZhbHVlOiAxLCBsYWJlbDogXCJGZWJcIiB9LFxuXHRcdHsgdmFsdWU6IDIsIGxhYmVsOiBcIk1hclwiIH0sXG5cdFx0eyB2YWx1ZTogMywgbGFiZWw6IFwiQXByXCIgfSxcblx0XHR7IHZhbHVlOiA0LCBsYWJlbDogXCJNYXlcIiB9LFxuXHRcdHsgdmFsdWU6IDUsIGxhYmVsOiBcIkp1blwiIH0sXG5cdFx0eyB2YWx1ZTogNiwgbGFiZWw6IFwiSnVsXCIgfSxcblx0XHR7IHZhbHVlOiA3LCBsYWJlbDogXCJBdWdcIiB9LFxuXHRcdHsgdmFsdWU6IDgsIGxhYmVsOiBcIlNlcFwiIH0sXG5cdFx0eyB2YWx1ZTogOSwgbGFiZWw6IFwiT2N0XCIgfSxcblx0XHR7IHZhbHVlOiAxMCwgbGFiZWw6IFwiTm92XCIgfSxcblx0XHR7IHZhbHVlOiAxMSwgbGFiZWw6IFwiRGVjXCIgfSxcblx0XSBhcyBjb25zdDtcblxuXHRnZXQgcmVzb2x2ZWRWYXJpYW50KCk6IFBkbUNhbGVuZGFyVmFyaWFudCB7XG5cdFx0cmV0dXJuIHRoaXMudmFyaWFudCA9PT0gXCJyYW5nZVwiID8gXCJyYW5nZVwiIDogXCJzaW5nbGVcIjtcblx0fVxuXG5cdGdldCB2aXNpYmxlTW9udGhzKCk6IHJlYWRvbmx5IFBkbUNhbGVuZGFyTW9udGhWaWV3W10ge1xuXHRcdGNvbnN0IGJhc2VNb250aCA9IHRoaXMuZ2V0QW5jaG9yTW9udGgoKTtcblxuXHRcdGlmICh0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRhdGU6IGJhc2VNb250aCxcblx0XHRcdFx0XHR0aXRsZTogdGhpcy5mb3JtYXRNb250aFllYXIoYmFzZU1vbnRoKSxcblx0XHRcdFx0XHR0aXRsZVN0eWxlOiBcImRyb3Bkb3duc1wiLFxuXHRcdFx0XHRcdGRyb3Bkb3duTW9udGg6IHRoaXMuZm9ybWF0TW9udGhTaG9ydChiYXNlTW9udGgpLFxuXHRcdFx0XHRcdGRyb3Bkb3duWWVhcjogU3RyaW5nKGJhc2VNb250aC5nZXRGdWxsWWVhcigpKSxcblx0XHRcdFx0XHRzaG93UHJldkJ1dHRvbjogdHJ1ZSxcblx0XHRcdFx0XHRzaG93TmV4dEJ1dHRvbjogdHJ1ZSxcblx0XHRcdFx0XHR3ZWVrczogdGhpcy5idWlsZE1vbnRoV2Vla3MoYmFzZU1vbnRoLCBmYWxzZSksXG5cdFx0XHRcdH0sXG5cdFx0XHRdO1xuXHRcdH1cblxuXHRcdGNvbnN0IG5leHRNb250aCA9IHRoaXMuYWRkTW9udGhzKGJhc2VNb250aCwgMSk7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZGF0ZTogYmFzZU1vbnRoLFxuXHRcdFx0XHR0aXRsZTogdGhpcy5mb3JtYXRNb250aFllYXIoYmFzZU1vbnRoKSxcblx0XHRcdFx0dGl0bGVTdHlsZTogXCJwbGFpblwiLFxuXHRcdFx0XHRzaG93UHJldkJ1dHRvbjogdHJ1ZSxcblx0XHRcdFx0c2hvd05leHRCdXR0b246IGZhbHNlLFxuXHRcdFx0XHR3ZWVrczogdGhpcy5idWlsZE1vbnRoV2Vla3MoYmFzZU1vbnRoLCB0cnVlKSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGRhdGU6IG5leHRNb250aCxcblx0XHRcdFx0dGl0bGU6IHRoaXMuZm9ybWF0TW9udGhZZWFyKG5leHRNb250aCksXG5cdFx0XHRcdHRpdGxlU3R5bGU6IFwicGxhaW5cIixcblx0XHRcdFx0c2hvd1ByZXZCdXR0b246IGZhbHNlLFxuXHRcdFx0XHRzaG93TmV4dEJ1dHRvbjogdHJ1ZSxcblx0XHRcdFx0d2Vla3M6IHRoaXMuYnVpbGRNb250aFdlZWtzKG5leHRNb250aCwgdHJ1ZSksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cblxuXHRnZXQgc2luZ2xlSGVhZGVyTW9udGgoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRBbmNob3JNb250aCgpLmdldE1vbnRoKCk7XG5cdH1cblxuXHRnZXQgc2luZ2xlSGVhZGVyWWVhcigpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLmdldEFuY2hvck1vbnRoKCkuZ2V0RnVsbFllYXIoKTtcblx0fVxuXG5cdGdldCB5ZWFyT3B0aW9ucygpOiByZWFkb25seSBudW1iZXJbXSB7XG5cdFx0Y29uc3QgYmFzZVllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRZZWFyID0gdGhpcy5zaW5nbGVIZWFkZXJZZWFyO1xuXHRcdGxldCBtaW5ZZWFyID1cblx0XHRcdHRoaXMubWluWWVhciA/P1xuXHRcdFx0KHRoaXMubWluRGF0ZSA/IHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpIDogYmFzZVllYXIgLSAxMDApO1xuXHRcdGxldCBtYXhZZWFyID1cblx0XHRcdHRoaXMubWF4WWVhciA/P1xuXHRcdFx0KHRoaXMubWF4RGF0ZSA/IHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpIDogYmFzZVllYXIgKyAxMCk7XG5cdFx0Y29uc3QgeWVhcnM6IG51bWJlcltdID0gW107XG5cblx0XHRpZiAoc2VsZWN0ZWRZZWFyIDwgbWluWWVhcikge1xuXHRcdFx0bWluWWVhciA9IHNlbGVjdGVkWWVhcjtcblx0XHR9XG5cblx0XHRpZiAoc2VsZWN0ZWRZZWFyID4gbWF4WWVhcikge1xuXHRcdFx0bWF4WWVhciA9IHNlbGVjdGVkWWVhcjtcblx0XHR9XG5cblx0XHRpZiAobWluWWVhciA+IG1heFllYXIpIHtcblx0XHRcdGNvbnN0IG5leHRNaW4gPSBtYXhZZWFyO1xuXHRcdFx0bWF4WWVhciA9IG1pblllYXI7XG5cdFx0XHRtaW5ZZWFyID0gbmV4dE1pbjtcblx0XHR9XG5cblx0XHRmb3IgKGxldCB5ZWFyID0gbWluWWVhcjsgeWVhciA8PSBtYXhZZWFyOyB5ZWFyICs9IDEpIHtcblx0XHRcdHllYXJzLnB1c2goeWVhcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHllYXJzO1xuXHR9XG5cblx0Z2V0IHJvb3RDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcmVsYXRpdmUgcm91bmRlZC1bMTBweF0gYm9yZGVyIGJvcmRlci1zb2xpZCBwLTMgc2hhZG93LXNtXCIsXG5cdFx0XHR0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJyYW5nZVwiXG5cdFx0XHRcdD8gXCJpbmxpbmUtZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlciBnYXAtNCBzaHJpbmstMCBncm93LTAgYmFzaXMtYXV0b1wiXG5cdFx0XHRcdDogXCJpbmxpbmUtZmxleCBmbGV4LWNvbCBnYXAtNCBzaHJpbmstMCBncm93LTAgYmFzaXMtYXV0b1wiLFxuXHRcdFx0dGhpcy5jbGFzc05hbWUsXG5cdFx0XTtcblx0fVxuXG5cdGdldCByb290U3R5bGUoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0Y29uc3Qgd2lkdGggPSB0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJyYW5nZVwiID8gXCI0ODhweFwiIDogXCIyNTBweFwiO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHdpZHRoLFxuXHRcdFx0bWluV2lkdGg6IHdpZHRoLFxuXHRcdFx0bWF4V2lkdGg6IHdpZHRoLFxuXHRcdFx0bWluSGVpZ2h0OiBcIjI5M3B4XCIsXG5cdFx0XHRmbGV4OiBcIjAgMCBhdXRvXCIsXG5cdFx0XHRhbGlnblNlbGY6IFwiZmxleC1zdGFydFwiLFxuXHRcdH07XG5cdH1cblxuXHRtb250aFBhbmVsQ2xhc3NlcyhfaW5kZXg6IG51bWJlcik6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0XCIsXG5cdFx0XHR0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJyYW5nZVwiID8gXCJ3LVsyMjRweF0gZ2FwLTRcIiA6IFwidy1mdWxsIGdhcC0wXCIsXG5cdFx0XTtcblx0fVxuXG5cdGhlYWRlckNsYXNzZXMobW9udGg6IFBkbUNhbGVuZGFyTW9udGhWaWV3KTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHRcImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIixcblx0XHRcdG1vbnRoLnRpdGxlU3R5bGUgPT09IFwiZHJvcGRvd25zXCIgPyBcIlwiIDogXCJtYi00XCIsXG5cdFx0XTtcblx0fVxuXG5cdG5hdkJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHRcImZsZXggaC04IHctOCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXItMCBiZy10cmFuc3BhcmVudCBwLTAgdGV4dC1mb3JlZ3JvdW5kXCIsXG5cdFx0XHRcImRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS00MFwiLFxuXHRcdF07XG5cdH1cblxuXHRuYXZQbGFjZWhvbGRlckNsYXNzZXMoKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBbXCJoLTcgdy03IHNocmluay0wXCJdO1xuXHR9XG5cblx0ZHJvcGRvd25XcmFwQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcImZsZXggdy00MCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTJcIl07XG5cdH1cblxuXHRkcm9wZG93bkNsYXNzZXMod2lkdGhDbGFzczogc3RyaW5nKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBbXCJmbGV4IGgtOCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTEgcHgtMVwiLCB3aWR0aENsYXNzXTtcblx0fVxuXG5cdGRyb3Bkb3duU2VsZWN0Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdFwidGV4dC1mb3JlZ3JvdW5kIGgtZnVsbCBiZy10cmFuc3BhcmVudCB0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctNVwiLFxuXHRcdFx0XCJhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBib3JkZXItMCBvdXRsaW5lLW5vbmUgcmluZy0wIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgdGV4dC1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIixcblx0XHRdO1xuXHR9XG5cblx0Z2V0IGRyb3Bkb3duU2VsZWN0U3R5bGUoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFwcGVhcmFuY2U6IFwibm9uZVwiLFxuXHRcdFx0V2Via2l0QXBwZWFyYW5jZTogXCJub25lXCIsXG5cdFx0XHRNb3pBcHBlYXJhbmNlOiBcIm5vbmVcIixcblx0XHRcdGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcblx0XHRcdGJvcmRlcjogXCIwXCIsXG5cdFx0XHRib3hTaGFkb3c6IFwibm9uZVwiLFxuXHRcdFx0b3V0bGluZTogXCIwXCIsXG5cdFx0XHRwYWRkaW5nOiBcIjBcIixcblx0XHRcdG1hcmdpbjogXCIwXCIsXG5cdFx0fTtcblx0fVxuXG5cdGNhbGVuZGFyR3JpZFdyYXBDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1wiZmxleCB3LWZ1bGwgZmxleC1jb2wgaXRlbXMtc3RhcnRcIl07XG5cdH1cblxuXHR3ZWVrZGF5Um93Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlclwiXTtcblx0fVxuXG5cdHdlZWtkYXlDZWxsQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdFwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZsZXggaC1bMjFweF0gdy04IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHRleHQteHMgbGVhZGluZy00XCIsXG5cdFx0XTtcblx0fVxuXG5cdHdlZWtSb3dDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1wiZmxleCB3LWZ1bGwgaXRlbXMtc3RhcnQgcHQtMlwiXTtcblx0fVxuXG5cdGRheUNlbGxDbGFzc2VzKGNlbGw6IFBkbUNhbGVuZGFyQ2VsbCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJyZWxhdGl2ZSBmbGV4IGgtOCB3LTggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCIsXG5cdFx0XHRjZWxsLnJhbmdlRmlsbCA/IFwiYmctYWNjZW50XCIgOiBcIlwiLFxuXHRcdFx0Y2VsbC5yYW5nZUxlZnRDYXAgPyBcInJvdW5kZWQtbC1tZFwiIDogXCJcIixcblx0XHRcdGNlbGwucmFuZ2VSaWdodENhcCA/IFwicm91bmRlZC1yLW1kXCIgOiBcIlwiLFxuXHRcdF07XG5cdH1cblxuXHRkYXlCdXR0b25DbGFzc2VzKGNlbGw6IFBkbUNhbGVuZGFyQ2VsbCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJyZWxhdGl2ZSB6LTEwIGZsZXggaC04IHctOCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXItMCBwLTAgdGV4dC1zbSBsZWFkaW5nLTVcIixcblx0XHRcdGNlbGwuc2VsZWN0ZWRcblx0XHRcdFx0PyBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmRcIlxuXHRcdFx0XHQ6IGNlbGwucmFuZ2VGaWxsXG5cdFx0XHRcdFx0PyBcImJnLXRyYW5zcGFyZW50IHRleHQtYWNjZW50LWZvcmVncm91bmRcIlxuXHRcdFx0XHRcdDogXCJiZy10cmFuc3BhcmVudCB0ZXh0LWZvcmVncm91bmRcIixcblx0XHRcdGNlbGwubXV0ZWQgJiYgIWNlbGwucmFuZ2VGaWxsID8gXCJvcGFjaXR5LTUwXCIgOiBcIlwiLFxuXHRcdFx0Y2VsbC5kaXNhYmxlZCA/IFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNDBcIiA6IFwiXCIsXG5cdFx0XHQhY2VsbC5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhY2VsbC5zZWxlY3RlZFxuXHRcdFx0XHQ/IFwiaG92ZXI6YmctYWNjZW50LzcwXCJcblx0XHRcdFx0OiBcIlwiLFxuXHRcdF07XG5cdH1cblxuXHRkYXlMYWJlbENsYXNzZXMoX2NlbGw6IFBkbUNhbGVuZGFyQ2VsbCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1wiZm9udC1ub3JtYWxcIl07XG5cdH1cblxuXHR0cmFja0J5SW5kZXggPSAoaW5kZXg6IG51bWJlcik6IG51bWJlciA9PiB7XG5cdFx0cmV0dXJuIGluZGV4O1xuXHR9O1xuXG5cdHRyYWNrQnlEYXRlID0gKF9pbmRleDogbnVtYmVyLCBjZWxsOiBQZG1DYWxlbmRhckNlbGwpOiBzdHJpbmcgPT4ge1xuXHRcdHJldHVybiB0aGlzLmRhdGVLZXkoY2VsbC5kYXRlKTtcblx0fTtcblxuXHRnb1RvUHJldmlvdXNNb250aCgpOiB2b2lkIHtcblx0XHR0aGlzLnNldEFuY2hvck1vbnRoKHRoaXMuYWRkTW9udGhzKHRoaXMuZ2V0QW5jaG9yTW9udGgoKSwgLTEpKTtcblx0fVxuXG5cdGdvVG9OZXh0TW9udGgoKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRBbmNob3JNb250aCh0aGlzLmFkZE1vbnRocyh0aGlzLmdldEFuY2hvck1vbnRoKCksIDEpKTtcblx0fVxuXG5cdG9uU2luZ2xlTW9udGhDaGFuZ2UobW9udGhWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgbW9udGggPSBOdW1iZXIobW9udGhWYWx1ZSk7XG5cdFx0aWYgKE51bWJlci5pc05hTihtb250aCkgfHwgbW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhbmNob3IgPSB0aGlzLmdldEFuY2hvck1vbnRoKCk7XG5cdFx0dGhpcy5zZXRBbmNob3JNb250aChuZXcgRGF0ZShhbmNob3IuZ2V0RnVsbFllYXIoKSwgbW9udGgsIDEpKTtcblx0fVxuXG5cdG9uU2luZ2xlWWVhckNoYW5nZSh5ZWFyVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IHllYXIgPSBOdW1iZXIoeWVhclZhbHVlKTtcblx0XHRpZiAoTnVtYmVyLmlzTmFOKHllYXIpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgYW5jaG9yID0gdGhpcy5nZXRBbmNob3JNb250aCgpO1xuXHRcdHRoaXMuc2V0QW5jaG9yTW9udGgobmV3IERhdGUoeWVhciwgYW5jaG9yLmdldE1vbnRoKCksIDEpKTtcblx0fVxuXG5cdG9uRGF0ZVByZXNzZWQoY2VsbDogUGRtQ2FsZW5kYXJDZWxsKTogdm9pZCB7XG5cdFx0Y29uc3QgZGF0ZSA9IHRoaXMuY2xvbmVEYXRlKGNlbGwuZGF0ZSk7XG5cblx0XHRpZiAoY2VsbC5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5kaXNhYmxlZERhdGVDbGljay5lbWl0KGRhdGUpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnJlYWRvbmx5KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5kYXRlQ2xpY2suZW1pdChkYXRlKTtcblxuXHRcdGlmICh0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0dGhpcy5fdmFsdWUgPSBkYXRlO1xuXHRcdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuY2xvbmVEYXRlKGRhdGUpKTtcblx0XHRcdHRoaXMuc3luY1Zpc2libGVNb250aFRvRGF0ZShkYXRlKTtcblx0XHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuaGFuZGxlUmFuZ2VTZWxlY3Rpb24oZGF0ZSk7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwcml2YXRlIGhhbmRsZVJhbmdlU2VsZWN0aW9uKGRhdGU6IERhdGUpOiB2b2lkIHtcblx0XHRjb25zdCBjdXJyZW50ID0gdGhpcy5fcmFuZ2VWYWx1ZTtcblx0XHRjb25zdCBjdXJyZW50U3RhcnQgPSBjdXJyZW50Py5zdGFydCA/IHRoaXMuY2xvbmVEYXRlKGN1cnJlbnQuc3RhcnQpIDogbnVsbDtcblx0XHRjb25zdCBjdXJyZW50RW5kID0gY3VycmVudD8uZW5kID8gdGhpcy5jbG9uZURhdGUoY3VycmVudC5lbmQpIDogbnVsbDtcblxuXHRcdGlmICghY3VycmVudFN0YXJ0IHx8IChjdXJyZW50U3RhcnQgJiYgY3VycmVudEVuZCkpIHtcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWUgPSB7IHN0YXJ0OiBkYXRlLCBlbmQ6IG51bGwgfTtcblx0XHRcdHRoaXMucmFuZ2VWYWx1ZUNoYW5nZS5lbWl0KHsgc3RhcnQ6IHRoaXMuY2xvbmVEYXRlKGRhdGUpLCBlbmQ6IG51bGwgfSk7XG5cdFx0XHR0aGlzLnN5bmNWaXNpYmxlTW9udGhUb0RhdGUoZGF0ZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaXNTYW1lRGF5KGN1cnJlbnRTdGFydCwgZGF0ZSkgJiYgIXRoaXMuYWxsb3dTYW1lRGF5UmFuZ2UpIHtcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWUgPSB7IHN0YXJ0OiBkYXRlLCBlbmQ6IG51bGwgfTtcblx0XHRcdHRoaXMucmFuZ2VWYWx1ZUNoYW5nZS5lbWl0KHsgc3RhcnQ6IHRoaXMuY2xvbmVEYXRlKGRhdGUpLCBlbmQ6IG51bGwgfSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc3RhcnQgPVxuXHRcdFx0dGhpcy5jb21wYXJlRGF0ZShkYXRlLCBjdXJyZW50U3RhcnQpIDwgMCA/IGRhdGUgOiBjdXJyZW50U3RhcnQ7XG5cdFx0Y29uc3QgZW5kID0gdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBjdXJyZW50U3RhcnQpIDwgMCA/IGN1cnJlbnRTdGFydCA6IGRhdGU7XG5cblx0XHRpZiAodGhpcy5yYW5nZUNvbnRhaW5zQmxvY2tlZERhdGUoc3RhcnQsIGVuZCkpIHtcblx0XHRcdHRoaXMuZGlzYWJsZWREYXRlQ2xpY2suZW1pdCh0aGlzLmNsb25lRGF0ZShkYXRlKSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fcmFuZ2VWYWx1ZSA9IHsgc3RhcnQsIGVuZCB9O1xuXHRcdHRoaXMucmFuZ2VWYWx1ZUNoYW5nZS5lbWl0KHtcblx0XHRcdHN0YXJ0OiB0aGlzLmNsb25lRGF0ZShzdGFydCksXG5cdFx0XHRlbmQ6IHRoaXMuY2xvbmVEYXRlKGVuZCksXG5cdFx0fSk7XG5cdFx0dGhpcy5zeW5jVmlzaWJsZU1vbnRoVG9EYXRlKHN0YXJ0KTtcblx0fVxuXG5cdHByaXZhdGUgYnVpbGRNb250aFdlZWtzKFxuXHRcdG1vbnRoOiBEYXRlLFxuXHRcdGluY2x1ZGVSYW5nZTogYm9vbGVhbixcblx0KTogcmVhZG9ubHkgKHJlYWRvbmx5IFBkbUNhbGVuZGFyQ2VsbFtdKVtdIHtcblx0XHRjb25zdCBmaXJzdE9mTW9udGggPSB0aGlzLnN0YXJ0T2ZNb250aChtb250aCk7XG5cdFx0Y29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0T2ZXZWVrKGZpcnN0T2ZNb250aCk7XG5cdFx0Y29uc3QgZW5kID0gdGhpcy5lbmRPZldlZWsodGhpcy5lbmRPZk1vbnRoKGZpcnN0T2ZNb250aCkpO1xuXHRcdGNvbnN0IHdlZWtzOiBQZG1DYWxlbmRhckNlbGxbXVtdID0gW107XG5cblx0XHRsZXQgY3Vyc29yID0gdGhpcy5jbG9uZURhdGUoc3RhcnQpO1xuXHRcdHdoaWxlICh0aGlzLmNvbXBhcmVEYXRlKGN1cnNvciwgZW5kKSA8PSAwKSB7XG5cdFx0XHRjb25zdCByb3c6IFBkbUNhbGVuZGFyQ2VsbFtdID0gW107XG5cblx0XHRcdGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IDc7IGNvbCArPSAxKSB7XG5cdFx0XHRcdHJvdy5wdXNoKHRoaXMuYnVpbGRDZWxsKGN1cnNvciwgbW9udGgsIGluY2x1ZGVSYW5nZSkpO1xuXHRcdFx0XHRjdXJzb3IgPSB0aGlzLmFkZERheXMoY3Vyc29yLCAxKTtcblx0XHRcdH1cblxuXHRcdFx0d2Vla3MucHVzaChyb3cpO1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3Qgcm93IG9mIHdlZWtzKSB7XG5cdFx0XHRmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCByb3cubGVuZ3RoOyBjb2wgKz0gMSkge1xuXHRcdFx0XHRjb25zdCBjZWxsID0gcm93W2NvbF07XG5cdFx0XHRcdGlmICghY2VsbC5pblJhbmdlKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBsZWZ0SW5Sb3cgPSBjb2wgPiAwID8gcm93W2NvbCAtIDFdLmluUmFuZ2UgOiBmYWxzZTtcblx0XHRcdFx0Y29uc3QgcmlnaHRJblJvdyA9IGNvbCA8IHJvdy5sZW5ndGggLSAxID8gcm93W2NvbCArIDFdLmluUmFuZ2UgOiBmYWxzZTtcblxuXHRcdFx0XHRjZWxsLnJhbmdlTGVmdENhcCA9ICFsZWZ0SW5Sb3c7XG5cdFx0XHRcdGNlbGwucmFuZ2VSaWdodENhcCA9ICFyaWdodEluUm93O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB3ZWVrcztcblx0fVxuXG5cdHByaXZhdGUgYnVpbGRDZWxsKFxuXHRcdGRhdGU6IERhdGUsXG5cdFx0dmlzaWJsZU1vbnRoOiBEYXRlLFxuXHRcdGluY2x1ZGVSYW5nZTogYm9vbGVhbixcblx0KTogUGRtQ2FsZW5kYXJDZWxsIHtcblx0XHRjb25zdCBub3JtYWxpemVkID0gdGhpcy5jbG9uZURhdGUoZGF0ZSk7XG5cdFx0Y29uc3QgaW5DdXJyZW50TW9udGggPVxuXHRcdFx0bm9ybWFsaXplZC5nZXRNb250aCgpID09PSB2aXNpYmxlTW9udGguZ2V0TW9udGgoKSAmJlxuXHRcdFx0bm9ybWFsaXplZC5nZXRGdWxsWWVhcigpID09PSB2aXNpYmxlTW9udGguZ2V0RnVsbFllYXIoKTtcblx0XHRjb25zdCBkaXNhYmxlZCA9IHRoaXMuaXNCbG9ja2VkKG5vcm1hbGl6ZWQpO1xuXG5cdFx0Y29uc3Qgc2VsZWN0ZWRTaW5nbGUgPVxuXHRcdFx0dGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwic2luZ2xlXCIgJiZcblx0XHRcdCEhdGhpcy5fdmFsdWUgJiZcblx0XHRcdHRoaXMuaXNTYW1lRGF5KG5vcm1hbGl6ZWQsIHRoaXMuX3ZhbHVlKTtcblx0XHRjb25zdCByYW5nZVN0YXJ0ID1cblx0XHRcdGluY2x1ZGVSYW5nZSAmJlxuXHRcdFx0ISF0aGlzLl9yYW5nZVZhbHVlPy5zdGFydCAmJlxuXHRcdFx0dGhpcy5pc1NhbWVEYXkobm9ybWFsaXplZCwgdGhpcy5fcmFuZ2VWYWx1ZS5zdGFydCk7XG5cdFx0Y29uc3QgcmFuZ2VFbmQgPVxuXHRcdFx0aW5jbHVkZVJhbmdlICYmXG5cdFx0XHQhIXRoaXMuX3JhbmdlVmFsdWU/LmVuZCAmJlxuXHRcdFx0dGhpcy5pc1NhbWVEYXkobm9ybWFsaXplZCwgdGhpcy5fcmFuZ2VWYWx1ZS5lbmQpO1xuXHRcdGNvbnN0IGluUmFuZ2UgPVxuXHRcdFx0aW5jbHVkZVJhbmdlICYmXG5cdFx0XHQhIXRoaXMuX3JhbmdlVmFsdWU/LnN0YXJ0ICYmXG5cdFx0XHQhIXRoaXMuX3JhbmdlVmFsdWU/LmVuZCAmJlxuXHRcdFx0dGhpcy5jb21wYXJlRGF0ZShub3JtYWxpemVkLCB0aGlzLl9yYW5nZVZhbHVlLnN0YXJ0KSA+PSAwICYmXG5cdFx0XHR0aGlzLmNvbXBhcmVEYXRlKG5vcm1hbGl6ZWQsIHRoaXMuX3JhbmdlVmFsdWUuZW5kKSA8PSAwO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGRhdGU6IG5vcm1hbGl6ZWQsXG5cdFx0XHRsYWJlbDogbm9ybWFsaXplZC5nZXREYXRlKCksXG5cdFx0XHRtdXRlZDogIWluQ3VycmVudE1vbnRoLFxuXHRcdFx0ZGlzYWJsZWQsXG5cdFx0XHRzZWxlY3RlZDogc2VsZWN0ZWRTaW5nbGUgfHwgcmFuZ2VTdGFydCB8fCByYW5nZUVuZCxcblx0XHRcdGluUmFuZ2UsXG5cdFx0XHRyYW5nZUZpbGw6IGluUmFuZ2UsXG5cdFx0XHRyYW5nZUxlZnRDYXA6IGZhbHNlLFxuXHRcdFx0cmFuZ2VSaWdodENhcDogZmFsc2UsXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QW5jaG9yTW9udGgoKTogRGF0ZSB7XG5cdFx0bGV0IGNhbmRpZGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG5cdFx0aWYgKHRoaXMuX21vbnRoKSB7XG5cdFx0XHRjYW5kaWRhdGUgPSB0aGlzLmNsb25lRGF0ZSh0aGlzLl9tb250aCk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJzaW5nbGVcIiAmJiB0aGlzLl92YWx1ZSkge1xuXHRcdFx0Y2FuZGlkYXRlID0gdGhpcy5zdGFydE9mTW9udGgodGhpcy5fdmFsdWUpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwicmFuZ2VcIiAmJiB0aGlzLl9yYW5nZVZhbHVlPy5zdGFydCkge1xuXHRcdFx0Y2FuZGlkYXRlID0gdGhpcy5zdGFydE9mTW9udGgodGhpcy5fcmFuZ2VWYWx1ZS5zdGFydCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhbmRpZGF0ZSA9IHRoaXMuc3RhcnRPZk1vbnRoKG5ldyBEYXRlKCkpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5pc1ZhbGlkRGF0ZShjYW5kaWRhdGUpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zdGFydE9mTW9udGgobmV3IERhdGUoKSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNhbmRpZGF0ZTtcblx0fVxuXG5cdHByaXZhdGUgc2V0QW5jaG9yTW9udGgobW9udGg6IERhdGUpOiB2b2lkIHtcblx0XHRjb25zdCBub3JtYWxpemVkID0gdGhpcy5zdGFydE9mTW9udGgobW9udGgpO1xuXHRcdGlmICghdGhpcy5pc1ZhbGlkRGF0ZShub3JtYWxpemVkKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9tb250aCA9IG5vcm1hbGl6ZWQ7XG5cdFx0dGhpcy5tb250aENoYW5nZS5lbWl0KHRoaXMuY2xvbmVEYXRlKHRoaXMuX21vbnRoKSk7XG5cdH1cblxuXHRwcml2YXRlIHN5bmNWaXNpYmxlTW9udGhUb0RhdGUoZGF0ZTogRGF0ZSk6IHZvaWQge1xuXHRcdGNvbnN0IG5leHRNb250aCA9IHRoaXMuc3RhcnRPZk1vbnRoKGRhdGUpO1xuXHRcdGlmICghdGhpcy5fbW9udGggfHwgIXRoaXMuaXNTYW1lTW9udGgodGhpcy5fbW9udGgsIG5leHRNb250aCkpIHtcblx0XHRcdHRoaXMuX21vbnRoID0gbmV4dE1vbnRoO1xuXHRcdFx0dGhpcy5tb250aENoYW5nZS5lbWl0KHRoaXMuY2xvbmVEYXRlKG5leHRNb250aCkpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgaXNCbG9ja2VkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcblx0XHRpZiAodGhpcy5taW5EYXRlICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgdGhpcy5taW5EYXRlKSA8IDApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1heERhdGUgJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCB0aGlzLm1heERhdGUpID4gMCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYmxvY2tlZFNldCA9IG5ldyBTZXQoXG5cdFx0XHQodGhpcy5kaXNhYmxlZERhdGVzIHx8IFtdKS5tYXAoKGl0ZW0pID0+IHRoaXMuZGF0ZUtleShpdGVtKSksXG5cdFx0KTtcblx0XHRpZiAoYmxvY2tlZFNldC5oYXModGhpcy5kYXRlS2V5KGRhdGUpKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuICEhdGhpcy5pc0RhdGVEaXNhYmxlZD8uKHRoaXMuY2xvbmVEYXRlKGRhdGUpKTtcblx0fVxuXG5cdHByaXZhdGUgcmFuZ2VDb250YWluc0Jsb2NrZWREYXRlKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpOiBib29sZWFuIHtcblx0XHRsZXQgY3Vyc29yID0gdGhpcy5jbG9uZURhdGUoc3RhcnQpO1xuXG5cdFx0d2hpbGUgKHRoaXMuY29tcGFyZURhdGUoY3Vyc29yLCBlbmQpIDw9IDApIHtcblx0XHRcdGlmICh0aGlzLmlzQmxvY2tlZChjdXJzb3IpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0Y3Vyc29yID0gdGhpcy5hZGREYXlzKGN1cnNvciwgMSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cHJpdmF0ZSBub3JtYWxpemVEYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcblx0XHRpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHx8IE51bWJlci5pc05hTih2YWx1ZS5nZXRUaW1lKCkpKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmV3IERhdGUodmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSwgdmFsdWUuZ2V0RGF0ZSgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvbmVEYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcblx0XHRyZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcblx0fVxuXG5cdHByaXZhdGUgaXNWYWxpZERhdGUoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIERhdGUge1xuXHRcdHJldHVybiAhIWRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIU51bWJlci5pc05hTihkYXRlLmdldFRpbWUoKSk7XG5cdH1cblxuXHRwcml2YXRlIHN0YXJ0T2ZNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcblx0fVxuXG5cdHByaXZhdGUgZW5kT2ZNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMCk7XG5cdH1cblxuXHRwcml2YXRlIHN0YXJ0T2ZXZWVrKGRhdGU6IERhdGUpOiBEYXRlIHtcblx0XHRyZXR1cm4gdGhpcy5hZGREYXlzKGRhdGUsIC1kYXRlLmdldERheSgpKTtcblx0fVxuXG5cdHByaXZhdGUgZW5kT2ZXZWVrKGRhdGU6IERhdGUpOiBEYXRlIHtcblx0XHRyZXR1cm4gdGhpcy5hZGREYXlzKGRhdGUsIDYgLSBkYXRlLmdldERheSgpKTtcblx0fVxuXG5cdHByaXZhdGUgYWRkTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgbW9udGhzLCAxKTtcblx0fVxuXG5cdHByaXZhdGUgYWRkRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcblx0XHRyZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpICsgZGF5cyk7XG5cdH1cblxuXHRwcml2YXRlIGNvbXBhcmVEYXRlKGE6IERhdGUsIGI6IERhdGUpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLmRhdGVWYWx1ZShhKSAtIHRoaXMuZGF0ZVZhbHVlKGIpO1xuXHR9XG5cblx0cHJpdmF0ZSBkYXRlVmFsdWUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG5cdFx0cmV0dXJuIChcblx0XHRcdERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkgLyBEQVlfTVNcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBpc1NhbWVEYXkoYTogRGF0ZSwgYjogRGF0ZSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmNvbXBhcmVEYXRlKGEsIGIpID09PSAwO1xuXHR9XG5cblx0cHJpdmF0ZSBpc1NhbWVNb250aChhOiBEYXRlLCBiOiBEYXRlKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIGEuZ2V0RnVsbFllYXIoKSA9PT0gYi5nZXRGdWxsWWVhcigpICYmIGEuZ2V0TW9udGgoKSA9PT0gYi5nZXRNb250aCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBkYXRlS2V5KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuXHRcdGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdFx0Y29uc3QgbSA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdFx0Y29uc3QgZCA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHRcdHJldHVybiBgJHt5fS0ke219LSR7ZH1gO1xuXHR9XG5cblx0cHJpdmF0ZSBmb3JtYXRNb250aFNob3J0KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuXHRcdHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKFwiZW4tVVNcIiwgeyBtb250aDogXCJzaG9ydFwiIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBmb3JtYXRNb250aFllYXIoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJlbi1VU1wiLCB7IG1vbnRoOiBcImxvbmdcIiwgeWVhcjogXCJudW1lcmljXCIgfSk7XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwicm9vdENsYXNzZXNcIiBbbmdTdHlsZV09XCJyb290U3R5bGVcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgbW9udGggb2YgdmlzaWJsZU1vbnRoczsgbGV0IG1vbnRoSW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCIgW25nQ2xhc3NdPVwibW9udGhQYW5lbENsYXNzZXMobW9udGhJbmRleClcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImhlYWRlckNsYXNzZXMobW9udGgpXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwibW9udGguc2hvd1ByZXZCdXR0b247IGVsc2UgcHJldlBsYWNlaG9sZGVyXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIm5hdkJ1dHRvbkNsYXNzZXMoKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBtb250aFwiXG4gICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNNb250aCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgID5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggZD1cIm0xNSAxOC02LTYgNi02XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNwcmV2UGxhY2Vob2xkZXI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwibmF2UGxhY2Vob2xkZXJDbGFzc2VzKClcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb250aC50aXRsZVN0eWxlID09PSAnZHJvcGRvd25zJzsgZWxzZSBwbGFpblRpdGxlXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZHJvcGRvd25XcmFwQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJkcm9wZG93bkNsYXNzZXMoJ3ctMTYgc206dy1bNzJweF0nKVwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJkcm9wZG93blNlbGVjdENsYXNzZXMoKVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImRyb3Bkb3duU2VsZWN0U3R5bGVcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2luZ2xlSGVhZGVyTW9udGhcIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTW9udGhcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2luZ2xlTW9udGhDaGFuZ2UoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vbnRoT3B0aW9uIG9mIG1vbnRoT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vbnRoT3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9udGhPcHRpb24udmFsdWUgPT09IHNpbmdsZUhlYWRlck1vbnRoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1vbnRoT3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBjbGFzcz1cImgtMyB3LTMgdGV4dC1mb3JlZ3JvdW5kXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJtNiA5IDYgNiA2LTZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImRyb3Bkb3duQ2xhc3Nlcygndy0xNiBzbTp3LVs4MnB4XScpXCI+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRyb3Bkb3duU2VsZWN0Q2xhc3NlcygpXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZHJvcGRvd25TZWxlY3RTdHlsZVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzaW5nbGVIZWFkZXJZZWFyXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlllYXJcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2luZ2xlWWVhckNoYW5nZSgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInllYXJcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ5ZWFyID09PSBzaW5nbGVIZWFkZXJZZWFyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHllYXIgfX1cbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGNsYXNzPVwiaC0zIHctMyB0ZXh0LWZvcmVncm91bmRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIm02IDkgNiA2IDYtNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWluVGl0bGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1pbi13LTAgZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS0wIHRleHQtZm9yZWdyb3VuZCB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctNVwiPlxuICAgICAgICAgICAge3sgbW9udGgudGl0bGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIm1vbnRoLnNob3dOZXh0QnV0dG9uOyBlbHNlIG5leHRQbGFjZWhvbGRlclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbbmdDbGFzc109XCJuYXZCdXR0b25DbGFzc2VzKClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBtb250aFwiXG4gICAgICAgIChjbGljayk9XCJnb1RvTmV4dE1vbnRoKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIlxuICAgICAgPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBjbGFzcz1cImgtNCB3LTRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBkPVwibTkgMTggNi02LTYtNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbmV4dFBsYWNlaG9sZGVyPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIm5hdlBsYWNlaG9sZGVyQ2xhc3NlcygpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBbbmdDbGFzc109XCJjYWxlbmRhckdyaWRXcmFwQ2xhc3NlcygpXCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cIndlZWtkYXlSb3dDbGFzc2VzKClcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtkYXlzOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIiBbbmdDbGFzc109XCJ3ZWVrZGF5Q2VsbENsYXNzZXMoKVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGRheSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgd2VlayBvZiBtb250aC53ZWVrczsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCIgW25nQ2xhc3NdPVwid2Vla1Jvd0NsYXNzZXMoKVwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjZWxsIG9mIHdlZWs7IHRyYWNrQnk6IHRyYWNrQnlEYXRlXCIgW25nQ2xhc3NdPVwiZGF5Q2VsbENsYXNzZXMoY2VsbClcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRheUJ1dHRvbkNsYXNzZXMoY2VsbClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY2VsbC5zZWxlY3RlZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImNlbGwuZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiY2VsbC5kYXRlIHwgZGF0ZSA6ICd5eXl5LU1NLWRkJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25EYXRlUHJlc3NlZChjZWxsKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZGF5TGFiZWxDbGFzc2VzKGNlbGwpXCI+e3sgY2VsbC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==