pdm-ui-kit 0.4.1 → 1.0.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 (363) hide show
  1. package/accordion/accordion.module.d.ts +8 -0
  2. package/accordion/index.d.ts +2 -0
  3. package/accordion/index.mjs +2 -0
  4. package/alert/alert.module.d.ts +9 -0
  5. package/alert/index.d.ts +3 -0
  6. package/alert/index.mjs +3 -0
  7. package/aspect-ratio/aspect-ratio.module.d.ts +8 -0
  8. package/aspect-ratio/index.d.ts +2 -0
  9. package/aspect-ratio/index.mjs +2 -0
  10. package/avatar/avatar.module.d.ts +8 -0
  11. package/avatar/index.d.ts +2 -0
  12. package/avatar/index.mjs +2 -0
  13. package/badge/badge.module.d.ts +8 -0
  14. package/badge/index.d.ts +2 -0
  15. package/badge/index.mjs +2 -0
  16. package/breadcrumb/breadcrumb.module.d.ts +8 -0
  17. package/breadcrumb/index.d.ts +2 -0
  18. package/breadcrumb/index.mjs +2 -0
  19. package/button/button.module.d.ts +9 -0
  20. package/button/index.d.ts +3 -0
  21. package/button/index.mjs +3 -0
  22. package/calendar/calendar.module.d.ts +11 -0
  23. package/{lib/components/date-picker → calendar}/date-picker.component.d.ts +1 -1
  24. package/calendar/index.d.ts +3 -0
  25. package/calendar/index.mjs +3 -0
  26. package/card/card.module.d.ts +8 -0
  27. package/card/index.d.ts +2 -0
  28. package/card/index.mjs +2 -0
  29. package/carousel/carousel.module.d.ts +8 -0
  30. package/carousel/index.d.ts +2 -0
  31. package/carousel/index.mjs +2 -0
  32. package/chart/chart.module.d.ts +8 -0
  33. package/chart/index.d.ts +2 -0
  34. package/chart/index.mjs +2 -0
  35. package/checkbox/checkbox.module.d.ts +8 -0
  36. package/checkbox/index.d.ts +2 -0
  37. package/checkbox/index.mjs +2 -0
  38. package/collapsible/collapsible.module.d.ts +8 -0
  39. package/collapsible/index.d.ts +2 -0
  40. package/collapsible/index.mjs +2 -0
  41. package/combobox/combobox.module.d.ts +9 -0
  42. package/combobox/index.d.ts +2 -0
  43. package/combobox/index.mjs +2 -0
  44. package/command/command.module.d.ts +9 -0
  45. package/command/index.d.ts +2 -0
  46. package/command/index.mjs +2 -0
  47. package/context-menu/context-menu.module.d.ts +9 -0
  48. package/context-menu/index.d.ts +2 -0
  49. package/context-menu/index.mjs +2 -0
  50. package/{lib/components/data-table → data-table}/data-table.component.d.ts +1 -1
  51. package/data-table/data-table.module.d.ts +10 -0
  52. package/{lib/components/draggable-table → data-table}/draggable-table.component.d.ts +2 -2
  53. package/data-table/index.d.ts +4 -0
  54. package/data-table/index.mjs +4 -0
  55. package/{lib/components/table → data-table}/table.component.d.ts +1 -1
  56. package/dialog/dialog.module.d.ts +8 -0
  57. package/dialog/index.d.ts +2 -0
  58. package/dialog/index.mjs +2 -0
  59. package/drawer/drawer.module.d.ts +10 -0
  60. package/drawer/index.d.ts +3 -0
  61. package/drawer/index.mjs +3 -0
  62. package/{lib/components/dropdown-menu → dropdown-menu}/dropdown-menu.component.d.ts +1 -1
  63. package/dropdown-menu/dropdown-menu.module.d.ts +9 -0
  64. package/dropdown-menu/index.d.ts +2 -0
  65. package/dropdown-menu/index.mjs +2 -0
  66. package/empty/empty.module.d.ts +10 -0
  67. package/empty/index.d.ts +2 -0
  68. package/empty/index.mjs +2 -0
  69. package/esm2020/{lib/components/accordion → accordion}/accordion.component.mjs +1 -1
  70. package/esm2020/accordion/accordion.module.mjs +21 -0
  71. package/esm2020/{lib/components/alert-dialog → alert}/alert-dialog.component.mjs +1 -1
  72. package/esm2020/{lib/components/alert → alert}/alert.component.mjs +1 -1
  73. package/esm2020/alert/alert.module.mjs +25 -0
  74. package/esm2020/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.mjs +1 -1
  75. package/esm2020/aspect-ratio/aspect-ratio.module.mjs +21 -0
  76. package/esm2020/{lib/components/avatar → avatar}/avatar.component.mjs +1 -1
  77. package/esm2020/avatar/avatar.module.mjs +21 -0
  78. package/esm2020/{lib/components/badge → badge}/badge.component.mjs +1 -1
  79. package/esm2020/badge/badge.module.mjs +21 -0
  80. package/esm2020/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.mjs +1 -1
  81. package/esm2020/breadcrumb/breadcrumb.module.mjs +21 -0
  82. package/esm2020/button/button-group.component.mjs +236 -0
  83. package/esm2020/button/button.component.mjs +114 -0
  84. package/esm2020/button/button.module.mjs +25 -0
  85. package/esm2020/calendar/calendar.component.mjs +529 -0
  86. package/esm2020/calendar/calendar.module.mjs +22 -0
  87. package/esm2020/{lib/components/date-picker → calendar}/date-picker.component.mjs +6 -6
  88. package/esm2020/{lib/components/card → card}/card.component.mjs +1 -1
  89. package/esm2020/card/card.module.mjs +21 -0
  90. package/esm2020/carousel/carousel.component.mjs +102 -0
  91. package/esm2020/carousel/carousel.module.mjs +21 -0
  92. package/esm2020/{lib/components/chart → chart}/chart.component.mjs +1 -1
  93. package/esm2020/chart/chart.module.mjs +21 -0
  94. package/esm2020/{lib/components/checkbox → checkbox}/checkbox.component.mjs +1 -1
  95. package/esm2020/checkbox/checkbox.module.mjs +21 -0
  96. package/esm2020/{lib/components/collapsible → collapsible}/collapsible.component.mjs +1 -1
  97. package/esm2020/collapsible/collapsible.module.mjs +21 -0
  98. package/esm2020/combobox/combobox.component.mjs +173 -0
  99. package/esm2020/combobox/combobox.module.mjs +22 -0
  100. package/esm2020/command/command.component.mjs +75 -0
  101. package/esm2020/command/command.module.mjs +20 -0
  102. package/esm2020/context-menu/context-menu.component.mjs +165 -0
  103. package/esm2020/context-menu/context-menu.module.mjs +22 -0
  104. package/esm2020/data-table/data-table.component.mjs +299 -0
  105. package/esm2020/data-table/data-table.module.mjs +29 -0
  106. package/esm2020/data-table/draggable-table.component.mjs +300 -0
  107. package/esm2020/data-table/table.component.mjs +182 -0
  108. package/esm2020/{lib/components/dialog → dialog}/dialog.component.mjs +3 -3
  109. package/esm2020/dialog/dialog.module.mjs +21 -0
  110. package/esm2020/{lib/components/drawer → drawer}/drawer.component.mjs +2 -2
  111. package/esm2020/drawer/drawer.module.mjs +21 -0
  112. package/esm2020/drawer/sheet.component.mjs +116 -0
  113. package/esm2020/dropdown-menu/dropdown-menu.component.mjs +192 -0
  114. package/esm2020/dropdown-menu/dropdown-menu.module.mjs +22 -0
  115. package/esm2020/{lib/components/empty → empty}/empty.component.mjs +1 -1
  116. package/esm2020/empty/empty.module.mjs +21 -0
  117. package/esm2020/{lib/components/field → field}/field.component.mjs +1 -1
  118. package/esm2020/field/field.module.mjs +21 -0
  119. package/esm2020/hover-card/hover-card.component.mjs +205 -0
  120. package/esm2020/hover-card/hover-card.module.mjs +22 -0
  121. package/esm2020/icon/icon.component.mjs +144 -0
  122. package/esm2020/icon/icon.module.mjs +21 -0
  123. package/esm2020/{lib/components/input-group → input}/input-group.component.mjs +1 -1
  124. package/esm2020/input/input-otp.component.mjs +144 -0
  125. package/esm2020/{lib/components/input-password → input}/input-password.component.mjs +1 -1
  126. package/esm2020/{lib/components/input → input}/input.component.mjs +1 -1
  127. package/esm2020/input/input.module.mjs +38 -0
  128. package/esm2020/{lib/components/textarea → input}/textarea.component.mjs +1 -1
  129. package/esm2020/{lib/components/item → item}/item.component.mjs +1 -1
  130. package/esm2020/item/item.module.mjs +21 -0
  131. package/esm2020/{lib/components/kbd → kbd}/kbd.component.mjs +1 -1
  132. package/esm2020/kbd/kbd.module.mjs +21 -0
  133. package/esm2020/{lib/components/label → label}/label.component.mjs +1 -1
  134. package/esm2020/label/label.module.mjs +21 -0
  135. package/esm2020/menubar/menubar.component.mjs +144 -0
  136. package/esm2020/menubar/menubar.module.mjs +22 -0
  137. package/esm2020/{lib/components/native-select → native-select}/native-select.component.mjs +1 -1
  138. package/esm2020/native-select/native-select.module.mjs +20 -0
  139. package/esm2020/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.mjs +1 -1
  140. package/esm2020/navigation-menu/navigation-menu.module.mjs +21 -0
  141. package/esm2020/overlay/create-flexible-position-strategy.mjs +54 -0
  142. package/esm2020/overlay/pdm-outside-click.directive.mjs +86 -0
  143. package/esm2020/overlay/pdm-outside-click.module.mjs +18 -0
  144. package/esm2020/overlay/pdm-overlay-options.mjs +2 -0
  145. package/esm2020/overlay/z-index-helper.mjs +69 -0
  146. package/esm2020/{lib/components/pagination → pagination}/pagination.component.mjs +1 -1
  147. package/esm2020/pagination/pagination.module.mjs +21 -0
  148. package/esm2020/pdm-ui-kit.module.mjs +260 -0
  149. package/esm2020/popover/popover.component.mjs +162 -0
  150. package/esm2020/popover/popover.module.mjs +22 -0
  151. package/esm2020/{lib/components/progress → progress}/progress.component.mjs +1 -1
  152. package/esm2020/progress/progress.module.mjs +21 -0
  153. package/esm2020/public-api.mjs +117 -67
  154. package/esm2020/{lib/components/radio-group → radio-group}/radio-group.component.mjs +1 -1
  155. package/esm2020/radio-group/radio-group.module.mjs +21 -0
  156. package/esm2020/{lib/components/scroll-area → scroll-area}/scroll-area.component.mjs +1 -1
  157. package/esm2020/scroll-area/scroll-area.module.mjs +21 -0
  158. package/esm2020/select/select-option.directive.mjs +55 -0
  159. package/esm2020/select/select.component.mjs +164 -0
  160. package/esm2020/select/select.module.mjs +22 -0
  161. package/esm2020/{lib/components/separator → separator}/separator.component.mjs +1 -1
  162. package/esm2020/separator/separator.module.mjs +21 -0
  163. package/esm2020/{lib/components/sidebar → sidebar}/sidebar.component.mjs +1 -1
  164. package/esm2020/sidebar/sidebar.module.mjs +21 -0
  165. package/esm2020/{lib/components/skeleton → skeleton}/skeleton.component.mjs +1 -1
  166. package/esm2020/skeleton/skeleton.module.mjs +21 -0
  167. package/esm2020/{lib/components/slider → slider}/slider.component.mjs +1 -1
  168. package/esm2020/slider/slider.module.mjs +21 -0
  169. package/esm2020/{lib/components/sonner → sonner}/sonner.component.mjs +1 -1
  170. package/esm2020/sonner/sonner.module.mjs +20 -0
  171. package/esm2020/{lib/components/spinner → spinner}/spinner.component.mjs +1 -1
  172. package/esm2020/spinner/spinner.module.mjs +21 -0
  173. package/esm2020/switch/switch.component.mjs +58 -0
  174. package/esm2020/switch/switch.module.mjs +21 -0
  175. package/esm2020/{lib/components/tabs → tabs}/tabs.component.mjs +1 -1
  176. package/esm2020/tabs/tabs.module.mjs +21 -0
  177. package/esm2020/{lib/components/toggle-group → toggle}/toggle-group.component.mjs +1 -1
  178. package/esm2020/{lib/components/toggle → toggle}/toggle.component.mjs +1 -1
  179. package/esm2020/toggle/toggle.module.mjs +25 -0
  180. package/esm2020/tooltip/tooltip.component.mjs +176 -0
  181. package/esm2020/tooltip/tooltip.module.mjs +22 -0
  182. package/esm2020/utils/responsive.mjs +143 -0
  183. package/esm2020/utils/z-index.mjs +90 -0
  184. package/fesm2015/pdm-ui-kit.mjs +3333 -2493
  185. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  186. package/fesm2020/pdm-ui-kit.mjs +2669 -1829
  187. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  188. package/field/field.module.d.ts +8 -0
  189. package/field/index.d.ts +2 -0
  190. package/field/index.mjs +2 -0
  191. package/hover-card/hover-card.module.d.ts +9 -0
  192. package/hover-card/index.d.ts +2 -0
  193. package/hover-card/index.mjs +2 -0
  194. package/icon/icon.module.d.ts +8 -0
  195. package/icon/index.d.ts +2 -0
  196. package/icon/index.mjs +2 -0
  197. package/input/index.d.ts +6 -0
  198. package/input/index.mjs +6 -0
  199. package/input/input.module.d.ts +13 -0
  200. package/item/index.d.ts +2 -0
  201. package/item/index.mjs +2 -0
  202. package/item/item.module.d.ts +8 -0
  203. package/kbd/index.d.ts +2 -0
  204. package/kbd/index.mjs +2 -0
  205. package/kbd/kbd.module.d.ts +8 -0
  206. package/label/index.d.ts +2 -0
  207. package/label/index.mjs +2 -0
  208. package/label/label.module.d.ts +8 -0
  209. package/menubar/index.d.ts +2 -0
  210. package/menubar/index.mjs +2 -0
  211. package/menubar/menubar.module.d.ts +9 -0
  212. package/native-select/index.d.ts +2 -0
  213. package/native-select/index.mjs +2 -0
  214. package/native-select/native-select.module.d.ts +9 -0
  215. package/navigation-menu/index.d.ts +2 -0
  216. package/navigation-menu/index.mjs +2 -0
  217. package/navigation-menu/navigation-menu.module.d.ts +8 -0
  218. package/overlay/index.d.ts +8 -0
  219. package/overlay/index.mjs +8 -0
  220. package/overlay/pdm-outside-click.module.d.ts +8 -0
  221. package/package.json +198 -2
  222. package/pagination/index.d.ts +2 -0
  223. package/pagination/index.mjs +2 -0
  224. package/pagination/pagination.module.d.ts +10 -0
  225. package/pdm-ui-kit.module.d.ts +60 -0
  226. package/popover/index.d.ts +2 -0
  227. package/popover/index.mjs +2 -0
  228. package/popover/popover.module.d.ts +9 -0
  229. package/progress/index.d.ts +2 -0
  230. package/progress/index.mjs +2 -0
  231. package/progress/progress.module.d.ts +8 -0
  232. package/public-api.d.ts +114 -66
  233. package/radio-group/index.d.ts +2 -0
  234. package/radio-group/index.mjs +2 -0
  235. package/radio-group/radio-group.module.d.ts +8 -0
  236. package/scroll-area/index.d.ts +2 -0
  237. package/scroll-area/index.mjs +2 -0
  238. package/scroll-area/scroll-area.module.d.ts +8 -0
  239. package/select/index.d.ts +3 -0
  240. package/select/index.mjs +3 -0
  241. package/{lib/components/select → select}/select.component.d.ts +1 -1
  242. package/select/select.module.d.ts +11 -0
  243. package/separator/index.d.ts +2 -0
  244. package/separator/index.mjs +2 -0
  245. package/separator/separator.module.d.ts +8 -0
  246. package/sidebar/index.d.ts +2 -0
  247. package/sidebar/index.mjs +2 -0
  248. package/sidebar/sidebar.module.d.ts +8 -0
  249. package/skeleton/index.d.ts +2 -0
  250. package/skeleton/index.mjs +2 -0
  251. package/skeleton/skeleton.module.d.ts +8 -0
  252. package/slider/index.d.ts +2 -0
  253. package/slider/index.mjs +2 -0
  254. package/slider/slider.module.d.ts +8 -0
  255. package/sonner/index.d.ts +2 -0
  256. package/sonner/index.mjs +2 -0
  257. package/sonner/sonner.module.d.ts +9 -0
  258. package/spinner/index.d.ts +2 -0
  259. package/spinner/index.mjs +2 -0
  260. package/spinner/spinner.module.d.ts +8 -0
  261. package/switch/index.d.ts +2 -0
  262. package/switch/index.mjs +2 -0
  263. package/switch/switch.module.d.ts +8 -0
  264. package/tabs/index.d.ts +2 -0
  265. package/tabs/index.mjs +2 -0
  266. package/tabs/tabs.module.d.ts +8 -0
  267. package/toggle/index.d.ts +3 -0
  268. package/toggle/index.mjs +3 -0
  269. package/toggle/toggle.module.d.ts +9 -0
  270. package/tooltip/index.d.ts +2 -0
  271. package/tooltip/index.mjs +2 -0
  272. package/tooltip/tooltip.module.d.ts +9 -0
  273. package/utils/index.d.ts +3 -0
  274. package/utils/index.mjs +3 -0
  275. package/esm2020/lib/components/button/button.component.mjs +0 -114
  276. package/esm2020/lib/components/button-group/button-group.component.mjs +0 -236
  277. package/esm2020/lib/components/calendar/calendar.component.mjs +0 -529
  278. package/esm2020/lib/components/carousel/carousel.component.mjs +0 -102
  279. package/esm2020/lib/components/combobox/combobox.component.mjs +0 -173
  280. package/esm2020/lib/components/command/command.component.mjs +0 -75
  281. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -165
  282. package/esm2020/lib/components/data-table/data-table.component.mjs +0 -299
  283. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +0 -300
  284. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -192
  285. package/esm2020/lib/components/hover-card/hover-card.component.mjs +0 -205
  286. package/esm2020/lib/components/icon/icon.component.mjs +0 -144
  287. package/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -144
  288. package/esm2020/lib/components/menubar/menubar.component.mjs +0 -144
  289. package/esm2020/lib/components/popover/popover.component.mjs +0 -162
  290. package/esm2020/lib/components/select/select-option.directive.mjs +0 -55
  291. package/esm2020/lib/components/select/select.component.mjs +0 -164
  292. package/esm2020/lib/components/sheet/sheet.component.mjs +0 -116
  293. package/esm2020/lib/components/switch/switch.component.mjs +0 -58
  294. package/esm2020/lib/components/table/table.component.mjs +0 -182
  295. package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -176
  296. package/esm2020/lib/overlay/create-flexible-position-strategy.mjs +0 -54
  297. package/esm2020/lib/overlay/pdm-outside-click.directive.mjs +0 -86
  298. package/esm2020/lib/overlay/pdm-overlay-options.mjs +0 -2
  299. package/esm2020/lib/overlay/z-index-helper.mjs +0 -69
  300. package/esm2020/lib/pdm-ui-kit.module.mjs +0 -258
  301. package/esm2020/lib/utils/responsive.mjs +0 -143
  302. package/esm2020/lib/utils/z-index.mjs +0 -90
  303. package/lib/pdm-ui-kit.module.d.ts +0 -68
  304. /package/{lib/components/accordion → accordion}/accordion.component.d.ts +0 -0
  305. /package/{lib/components/alert-dialog → alert}/alert-dialog.component.d.ts +0 -0
  306. /package/{lib/components/alert → alert}/alert.component.d.ts +0 -0
  307. /package/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.d.ts +0 -0
  308. /package/{lib/components/avatar → avatar}/avatar.component.d.ts +0 -0
  309. /package/{lib/components/badge → badge}/badge.component.d.ts +0 -0
  310. /package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +0 -0
  311. /package/{lib/components/button-group → button}/button-group.component.d.ts +0 -0
  312. /package/{lib/components/button → button}/button.component.d.ts +0 -0
  313. /package/{lib/components/calendar → calendar}/calendar.component.d.ts +0 -0
  314. /package/{lib/components/card → card}/card.component.d.ts +0 -0
  315. /package/{lib/components/carousel → carousel}/carousel.component.d.ts +0 -0
  316. /package/{lib/components/chart → chart}/chart.component.d.ts +0 -0
  317. /package/{lib/components/checkbox → checkbox}/checkbox.component.d.ts +0 -0
  318. /package/{lib/components/collapsible → collapsible}/collapsible.component.d.ts +0 -0
  319. /package/{lib/components/combobox → combobox}/combobox.component.d.ts +0 -0
  320. /package/{lib/components/command → command}/command.component.d.ts +0 -0
  321. /package/{lib/components/context-menu → context-menu}/context-menu.component.d.ts +0 -0
  322. /package/{lib/components/dialog → dialog}/dialog.component.d.ts +0 -0
  323. /package/{lib/components/drawer → drawer}/drawer.component.d.ts +0 -0
  324. /package/{lib/components/sheet → drawer}/sheet.component.d.ts +0 -0
  325. /package/{lib/components/empty → empty}/empty.component.d.ts +0 -0
  326. /package/{lib/components/field → field}/field.component.d.ts +0 -0
  327. /package/{lib/components/hover-card → hover-card}/hover-card.component.d.ts +0 -0
  328. /package/{lib/components/icon → icon}/icon.component.d.ts +0 -0
  329. /package/{lib/components/input-group → input}/input-group.component.d.ts +0 -0
  330. /package/{lib/components/input-otp → input}/input-otp.component.d.ts +0 -0
  331. /package/{lib/components/input-password → input}/input-password.component.d.ts +0 -0
  332. /package/{lib/components/input → input}/input.component.d.ts +0 -0
  333. /package/{lib/components/textarea → input}/textarea.component.d.ts +0 -0
  334. /package/{lib/components/item → item}/item.component.d.ts +0 -0
  335. /package/{lib/components/kbd → kbd}/kbd.component.d.ts +0 -0
  336. /package/{lib/components/label → label}/label.component.d.ts +0 -0
  337. /package/{lib/components/menubar → menubar}/menubar.component.d.ts +0 -0
  338. /package/{lib/components/native-select → native-select}/native-select.component.d.ts +0 -0
  339. /package/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.d.ts +0 -0
  340. /package/{lib/overlay → overlay}/create-flexible-position-strategy.d.ts +0 -0
  341. /package/{lib/overlay → overlay}/pdm-outside-click.directive.d.ts +0 -0
  342. /package/{lib/overlay → overlay}/pdm-overlay-options.d.ts +0 -0
  343. /package/{lib/overlay → overlay}/z-index-helper.d.ts +0 -0
  344. /package/{lib/components/pagination → pagination}/pagination.component.d.ts +0 -0
  345. /package/{lib/components/popover → popover}/popover.component.d.ts +0 -0
  346. /package/{lib/components/progress → progress}/progress.component.d.ts +0 -0
  347. /package/{lib/components/radio-group → radio-group}/radio-group.component.d.ts +0 -0
  348. /package/{lib/components/scroll-area → scroll-area}/scroll-area.component.d.ts +0 -0
  349. /package/{lib/components/select → select}/select-option.directive.d.ts +0 -0
  350. /package/{lib/components/separator → separator}/separator.component.d.ts +0 -0
  351. /package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +0 -0
  352. /package/{lib/components/skeleton → skeleton}/skeleton.component.d.ts +0 -0
  353. /package/{lib/components/slider → slider}/slider.component.d.ts +0 -0
  354. /package/{lib/components/sonner → sonner}/sonner.component.d.ts +0 -0
  355. /package/{lib/components/spinner → spinner}/spinner.component.d.ts +0 -0
  356. /package/src/{lib/styles → styles}/tokens.css +0 -0
  357. /package/{lib/components/switch → switch}/switch.component.d.ts +0 -0
  358. /package/{lib/components/tabs → tabs}/tabs.component.d.ts +0 -0
  359. /package/{lib/components/toggle-group → toggle}/toggle-group.component.d.ts +0 -0
  360. /package/{lib/components/toggle → toggle}/toggle.component.d.ts +0 -0
  361. /package/{lib/components/tooltip → tooltip}/tooltip.component.d.ts +0 -0
  362. /package/{lib/utils → utils}/responsive.d.ts +0 -0
  363. /package/{lib/utils → utils}/z-index.d.ts +0 -0
@@ -1,144 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
- import { TemplatePortal } from "@angular/cdk/portal";
3
- import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/overlay";
6
- import * as i2 from "@angular/common";
7
- export class PdmMenubarComponent {
8
- constructor(overlay, viewContainerRef, elementRef, cdr) {
9
- this.overlay = overlay;
10
- this.viewContainerRef = viewContainerRef;
11
- this.elementRef = elementRef;
12
- this.cdr = cdr;
13
- this.menus = [];
14
- this.className = "";
15
- this.panelClassName = "";
16
- this.itemSelect = new EventEmitter();
17
- this.openIndex = -1;
18
- this.overlayRef = null;
19
- this.outsideClickSub = null;
20
- }
21
- ngOnInit() { }
22
- ngOnDestroy() {
23
- this.destroyOverlay();
24
- }
25
- onDocumentClickOrEsc(event) {
26
- // Close on escape
27
- if (event.type === "keydown") {
28
- if (this.openIndex >= 0) {
29
- this.openIndex = -1;
30
- this.cdr.markForCheck();
31
- }
32
- return;
33
- }
34
- // Close on click outside
35
- if (this.openIndex >= 0) {
36
- const target = event.target;
37
- if (!this.elementRef.nativeElement.contains(target)) {
38
- this.openIndex = -1;
39
- this.cdr.markForCheck();
40
- }
41
- }
42
- }
43
- toggle(index, event) {
44
- event.stopPropagation();
45
- this.openIndex = this.openIndex === index ? -1 : index;
46
- this.cdr.markForCheck();
47
- if (this.openIndex >= 0) {
48
- this.createOverlay(event);
49
- }
50
- else {
51
- this.destroyOverlay();
52
- }
53
- }
54
- select(value) {
55
- this.itemSelect.emit(value);
56
- this.openIndex = -1;
57
- this.cdr.markForCheck();
58
- this.destroyOverlay();
59
- }
60
- selectItem(item) {
61
- if (item.disabled || !item.value) {
62
- return;
63
- }
64
- this.select(item.value);
65
- }
66
- createOverlay(event) {
67
- this.destroyOverlay();
68
- const triggerEl = event.currentTarget;
69
- const positionStrategy = this.overlay
70
- .position()
71
- .flexibleConnectedTo(triggerEl)
72
- .withPositions(this.getPositionConfigs())
73
- .withFlexibleDimensions(false)
74
- .withPush(true);
75
- const panelClass = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX, this.panelClassName);
76
- this.overlayRef = this.overlay.create({
77
- positionStrategy,
78
- panelClass,
79
- });
80
- const portal = new TemplatePortal(this.menuTemplateRef, this.viewContainerRef);
81
- this.overlayRef.attach(portal);
82
- // Close on click outside
83
- this.outsideClickSub = this.overlayRef
84
- .outsidePointerEvents()
85
- .subscribe(() => {
86
- this.openIndex = -1;
87
- this.cdr.markForCheck();
88
- this.destroyOverlay();
89
- });
90
- }
91
- destroyOverlay() {
92
- if (this.outsideClickSub) {
93
- this.outsideClickSub.unsubscribe();
94
- this.outsideClickSub = null;
95
- }
96
- if (this.overlayRef) {
97
- this.overlayRef.detach();
98
- this.overlayRef.dispose();
99
- this.overlayRef = null;
100
- }
101
- }
102
- getPositionConfigs() {
103
- return [
104
- {
105
- originX: "start",
106
- originY: "bottom",
107
- overlayX: "start",
108
- overlayY: "top",
109
- offsetY: 4,
110
- },
111
- {
112
- originX: "start",
113
- originY: "top",
114
- overlayX: "start",
115
- overlayY: "bottom",
116
- offsetY: -4,
117
- },
118
- ];
119
- }
120
- }
121
- PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
122
- PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className", panelClassName: "panelClassName" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:click": "onDocumentClickOrEsc()", "document:keydown.escape": "onDocumentClickOrEsc()" } }, viewQueries: [{ propertyName: "menuTemplateRef", first: true, predicate: ["menuTemplate"], descendants: true }], ngImport: i0, template: "<nav\n role=\"menubar\"\n [ngClass]=\"[\n 'inline-flex h-9 items-center gap-0.5 rounded-md border border-solid border-border bg-background p-1 shadow-sm',\n className,\n ]\"\n>\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button\n type=\"button\"\n class=\"inline-flex h-7 appearance-none box-border items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n [attr.aria-expanded]=\"openIndex === i\"\n (click)=\"toggle(i, $event)\"\n >\n {{ menu.label }}\n </button>\n </div>\n\n <!-- Template for CDK Overlay -->\n <ng-template #menuTemplate>\n <div\n class=\"min-w-40 rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\"\n >\n <button\n *ngFor=\"let item of menus[openIndex]?.items || []\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none box-border cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </ng-template>\n</nav>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, decorators: [{
124
- type: Component,
125
- args: [{ selector: "pdm-menubar", changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n role=\"menubar\"\n [ngClass]=\"[\n 'inline-flex h-9 items-center gap-0.5 rounded-md border border-solid border-border bg-background p-1 shadow-sm',\n className,\n ]\"\n>\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button\n type=\"button\"\n class=\"inline-flex h-7 appearance-none box-border items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n [attr.aria-expanded]=\"openIndex === i\"\n (click)=\"toggle(i, $event)\"\n >\n {{ menu.label }}\n </button>\n </div>\n\n <!-- Template for CDK Overlay -->\n <ng-template #menuTemplate>\n <div\n class=\"min-w-40 rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\"\n >\n <button\n *ngFor=\"let item of menus[openIndex]?.items || []\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none box-border cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </ng-template>\n</nav>\n", styles: [":host{display:block}\n"] }]
126
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { menus: [{
127
- type: Input
128
- }], className: [{
129
- type: Input
130
- }], panelClassName: [{
131
- type: Input
132
- }], itemSelect: [{
133
- type: Output
134
- }], menuTemplateRef: [{
135
- type: ViewChild,
136
- args: ["menuTemplate"]
137
- }], onDocumentClickOrEsc: [{
138
- type: HostListener,
139
- args: ["document:click"]
140
- }, {
141
- type: HostListener,
142
- args: ["document:keydown.escape"]
143
- }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQWN0QyxNQUFNLE9BQU8sbUJBQW1CO0lBYy9CLFlBQ2tCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxVQUFtQyxFQUNuQyxHQUFzQjtRQUh0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQi9CLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRCxjQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFJUCxlQUFVLEdBQXNCLElBQUksQ0FBQztRQUNyQyxvQkFBZSxHQUFRLElBQUksQ0FBQztJQU9qQyxDQUFDO0lBRUosUUFBUSxLQUFVLENBQUM7SUFDbkIsV0FBVztRQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FB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LEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFJb0IsZUFBZTtzQkFBekMsU0FBUzt1QkFBQyxjQUFjO2dCQW1CekIsb0JBQW9CO3NCQUZuQixZQUFZO3VCQUFDLGdCQUFnQjs7c0JBQzdCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7XG5cdG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MsXG5cdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxufSBmcm9tIFwiLi4vLi4vb3ZlcmxheS96LWluZGV4LWhlbHBlclwiO1xuaW1wb3J0IHsgUGRtTWVudUl0ZW0gfSBmcm9tIFwiLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBkbU1lbnViYXJJdGVtIHtcblx0bGFiZWw6IHN0cmluZztcblx0aXRlbXM6IFBkbU1lbnVJdGVtW107XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJwZG0tbWVudWJhclwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL21lbnViYXIuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9XCJdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGRtTWVudWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0QElucHV0KCkgbWVudXM6IFBkbU1lbnViYXJJdGVtW10gPSBbXTtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXG5cdEBPdXRwdXQoKSBpdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0b3BlbkluZGV4ID0gLTE7XG5cblx0QFZpZXdDaGlsZChcIm1lbnVUZW1wbGF0ZVwiKSBtZW51VGVtcGxhdGVSZWY6IGFueTtcblxuXHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBvdXRzaWRlQ2xpY2tTdWI6IGFueSA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0XHRwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcblx0KSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIpXG5cdEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duLmVzY2FwZVwiKVxuXHRvbkRvY3VtZW50Q2xpY2tPckVzYyhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBDbG9zZSBvbiBlc2NhcGVcblx0XHRpZiAoZXZlbnQudHlwZSA9PT0gXCJrZXlkb3duXCIpIHtcblx0XHRcdGlmICh0aGlzLm9wZW5JbmRleCA+PSAwKSB7XG5cdFx0XHRcdHRoaXMub3BlbkluZGV4ID0gLTE7XG5cdFx0XHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHRpZiAodGhpcy5vcGVuSW5kZXggPj0gMCkge1xuXHRcdFx0Y29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIE5vZGU7XG5cdFx0XHRpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcblx0XHRcdFx0dGhpcy5vcGVuSW5kZXggPSAtMTtcblx0XHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dG9nZ2xlKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5vcGVuSW5kZXggPSB0aGlzLm9wZW5JbmRleCA9PT0gaW5kZXggPyAtMSA6IGluZGV4O1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG5cdFx0aWYgKHRoaXMub3BlbkluZGV4ID49IDApIHtcblx0XHRcdHRoaXMuY3JlYXRlT3ZlcmxheShldmVudCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR9XG5cdH1cblxuXHRzZWxlY3QodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuaXRlbVNlbGVjdC5lbWl0KHZhbHVlKTtcblx0XHR0aGlzLm9wZW5JbmRleCA9IC0xO1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0fVxuXG5cdHNlbGVjdEl0ZW0oaXRlbTogUGRtTWVudUl0ZW0pOiB2b2lkIHtcblx0XHRpZiAoaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS52YWx1ZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLnNlbGVjdChpdGVtLnZhbHVlKTtcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlT3ZlcmxheShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cblx0XHRjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0LmZsZXhpYmxlQ29ubmVjdGVkVG8odHJpZ2dlckVsKVxuXHRcdFx0LndpdGhQb3NpdGlvbnModGhpcy5nZXRQb3NpdGlvbkNvbmZpZ3MoKSlcblx0XHRcdC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuXHRcdFx0LndpdGhQdXNoKHRydWUpO1xuXG5cdFx0Y29uc3QgcGFuZWxDbGFzcyA9IG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoXG5cdFx0XHRPVkVSTEFZX0JBU0VfWl9JTkRFWCxcblx0XHRcdHRoaXMucGFuZWxDbGFzc05hbWUsXG5cdFx0KTtcblxuXHRcdHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuXHRcdFx0cG9zaXRpb25TdHJhdGVneSxcblx0XHRcdHBhbmVsQ2xhc3MsXG5cdFx0fSk7XG5cblx0XHRjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG5cdFx0XHR0aGlzLm1lbnVUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHR0aGlzLm91dHNpZGVDbGlja1N1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wZW5JbmRleCA9IC0xO1xuXHRcdFx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm91dHNpZGVDbGlja1N1Yikge1xuXHRcdFx0dGhpcy5vdXRzaWRlQ2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMub3V0c2lkZUNsaWNrU3ViID0gbnVsbDtcblx0XHR9XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblx0XHRcdHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRQb3NpdGlvbkNvbmZpZ3MoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogNCxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdG9yaWdpblg6IFwic3RhcnRcIixcblx0XHRcdFx0b3JpZ2luWTogXCJ0b3BcIixcblx0XHRcdFx0b3ZlcmxheVg6IFwic3RhcnRcIixcblx0XHRcdFx0b3ZlcmxheVk6IFwiYm90dG9tXCIsXG5cdFx0XHRcdG9mZnNldFk6IC00LFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iLCI8bmF2XG4gIHJvbGU9XCJtZW51YmFyXCJcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdpbmxpbmUtZmxleCBoLTkgaXRlbXMtY2VudGVyIGdhcC0wLjUgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBwLTEgc2hhZG93LXNtJyxcbiAgICBjbGFzc05hbWUsXG4gIF1cIlxuPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTcgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMyB0ZXh0LXNtIHRleHQtZm9yZWdyb3VuZCBob3ZlcjpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtYmFja2dyb3VuZFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5JbmRleCA9PT0gaVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKGksICRldmVudClcIlxuICAgID5cbiAgICAgIHt7IG1lbnUubGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUZW1wbGF0ZSBmb3IgQ0RLIE92ZXJsYXkgLS0+XG4gIDxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWluLXctNDAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTEgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kIHNtOm1pbi13LTQ4XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVzW29wZW5JbmRleF0/Lml0ZW1zIHx8IFtdXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkIHx8ICFpdGVtLnZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHB5LTEuNSB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmF2PlxuIl19
@@ -1,162 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
- import { TemplatePortal } from "@angular/cdk/portal";
3
- import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/overlay";
6
- import * as i2 from "@angular/common";
7
- export class PdmPopoverComponent {
8
- constructor(overlay, viewContainerRef, elementRef, cdr) {
9
- this.overlay = overlay;
10
- this.viewContainerRef = viewContainerRef;
11
- this.elementRef = elementRef;
12
- this.cdr = cdr;
13
- this._open = false;
14
- this.triggerText = "Open";
15
- this.className = "";
16
- this.panelClassName = "";
17
- this.showTrigger = true;
18
- this.openChange = new EventEmitter();
19
- this.overlayRef = null;
20
- this.outsideClickSub = null;
21
- }
22
- ngOnInit() { }
23
- ngOnDestroy() {
24
- this.destroyOverlay();
25
- }
26
- set open(value) {
27
- if (this._open === !!value)
28
- return;
29
- if (value) {
30
- this.openPanel();
31
- }
32
- else {
33
- this.closePanel();
34
- }
35
- }
36
- get open() {
37
- return this._open;
38
- }
39
- toggle() {
40
- this.open = !this.open;
41
- }
42
- onEsc() {
43
- if (this.open) {
44
- this.open = false;
45
- this.openChange.emit(false);
46
- }
47
- }
48
- openPanel() {
49
- if (this.overlayRef)
50
- return;
51
- const triggerEl = this.triggerRef?.nativeElement;
52
- if (!triggerEl)
53
- return;
54
- this._open = true;
55
- this.openChange.emit(true);
56
- this.cdr.markForCheck();
57
- const positionStrategy = this.overlay
58
- .position()
59
- .flexibleConnectedTo(triggerEl)
60
- .withPositions(this.getPositionConfigs())
61
- .withFlexibleDimensions(false)
62
- .withPush(true);
63
- const panelClass = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX, this.panelClassName);
64
- this.overlayRef = this.overlay.create({
65
- positionStrategy,
66
- panelClass,
67
- });
68
- const portal = new TemplatePortal(this.panelTemplateRef, this.viewContainerRef);
69
- this.overlayRef.attach(portal);
70
- // Close on click outside
71
- this.outsideClickSub = this.overlayRef
72
- .outsidePointerEvents()
73
- .subscribe(() => {
74
- this.open = false;
75
- this.openChange.emit(false);
76
- });
77
- this.cdr.markForCheck();
78
- }
79
- closePanel() {
80
- if (!this.overlayRef)
81
- return;
82
- this._open = false;
83
- this.openChange.emit(false);
84
- this.cdr.markForCheck();
85
- this.destroyOverlay();
86
- }
87
- destroyOverlay() {
88
- if (this.outsideClickSub) {
89
- this.outsideClickSub.unsubscribe();
90
- this.outsideClickSub = null;
91
- }
92
- if (this.overlayRef) {
93
- this.overlayRef.detach();
94
- this.overlayRef.dispose();
95
- this.overlayRef = null;
96
- }
97
- }
98
- getPositionConfigs() {
99
- return [
100
- // Bottom (default)
101
- {
102
- originX: "start",
103
- originY: "bottom",
104
- overlayX: "start",
105
- overlayY: "top",
106
- offsetY: 8,
107
- },
108
- // Top (fallback)
109
- {
110
- originX: "start",
111
- originY: "top",
112
- overlayX: "start",
113
- overlayY: "bottom",
114
- offsetY: -8,
115
- },
116
- // Right
117
- {
118
- originX: "end",
119
- originY: "bottom",
120
- overlayX: "start",
121
- overlayY: "top",
122
- offsetY: 8,
123
- },
124
- // Left
125
- {
126
- originX: "start",
127
- originY: "bottom",
128
- overlayX: "end",
129
- overlayY: "top",
130
- offsetY: 8,
131
- },
132
- ];
133
- }
134
- }
135
- PdmPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
136
- PdmPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPopoverComponent, selector: "pdm-popover", inputs: { triggerText: "triggerText", className: "className", panelClassName: "panelClassName", showTrigger: "showTrigger", open: "open" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n #triggerEl\n *ngIf=\"showTrigger\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-haspopup]=\"'dialog'\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <!-- Trigger slot for custom trigger -->\n <ng-content select=\"[pdmPopoverTrigger]\"></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #panelTemplate>\n <div\n class=\"min-w-80 rounded-md border border-solid border-border bg-popover p-4 text-popover-foreground shadow-md\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, decorators: [{
138
- type: Component,
139
- args: [{ selector: "pdm-popover", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n #triggerEl\n *ngIf=\"showTrigger\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-haspopup]=\"'dialog'\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <!-- Trigger slot for custom trigger -->\n <ng-content select=\"[pdmPopoverTrigger]\"></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #panelTemplate>\n <div\n class=\"min-w-80 rounded-md border border-solid border-border bg-popover p-4 text-popover-foreground shadow-md\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-block}\n"] }]
140
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { triggerText: [{
141
- type: Input
142
- }], className: [{
143
- type: Input
144
- }], panelClassName: [{
145
- type: Input
146
- }], showTrigger: [{
147
- type: Input
148
- }], openChange: [{
149
- type: Output
150
- }], triggerRef: [{
151
- type: ViewChild,
152
- args: ["triggerEl"]
153
- }], panelTemplateRef: [{
154
- type: ViewChild,
155
- args: ["panelTemplate"]
156
- }], open: [{
157
- type: Input
158
- }], onEsc: [{
159
- type: HostListener,
160
- args: ["document:keydown.escape"]
161
- }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQVF0QyxNQUFNLE9BQU8sbUJBQW1CO0lBZ0IvQixZQUNrQixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsVUFBbUMsRUFDbkMsR0FBc0I7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkJoQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSzNDLGVBQVUsR0FBc0IsSUFBSSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVEsSUFBSSxDQUFDO0lBT2pDLENBQUM7SUFFSixRQUFRLEtBQVUsQ0FBQztJQUNuQixXQUFXO1FBQ1Ys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U0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQWtCdEIsSUFBSTtzQkFEUCxLQUFLO2dCQW1CTixLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7XG5cdG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MsXG5cdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxufSBmcm9tIFwiLi4vLi4vb3ZlcmxheS96LWluZGV4LWhlbHBlclwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXBvcG92ZXJcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sXCIsXG5cdHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1Qb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIF9vcGVuID0gZmFsc2U7XG5cblx0QElucHV0KCkgdHJpZ2dlclRleHQgPSBcIk9wZW5cIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBzaG93VHJpZ2dlciA9IHRydWU7XG5cblx0QE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0QFZpZXdDaGlsZChcInRyaWdnZXJFbFwiKSBwcml2YXRlIHRyaWdnZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0QFZpZXdDaGlsZChcInBhbmVsVGVtcGxhdGVcIikgcHJpdmF0ZSBwYW5lbFRlbXBsYXRlUmVmOiBhbnk7XG5cblx0cHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgb3V0c2lkZUNsaWNrU3ViOiBhbnkgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuX29wZW4gPT09ICEhdmFsdWUpIHJldHVybjtcblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0fVxuXHR9XG5cdGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9vcGVuO1xuXHR9XG5cblx0dG9nZ2xlKCk6IHZvaWQge1xuXHRcdHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGVcIilcblx0b25Fc2MoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3Blbikge1xuXHRcdFx0dGhpcy5vcGVuID0gZmFsc2U7XG5cdFx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBvcGVuUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdHJpZ2dlckVsID0gdGhpcy50cmlnZ2VyUmVmPy5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghdHJpZ2dlckVsKSByZXR1cm47XG5cblx0XHR0aGlzLl9vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcblx0XHRcdC5wb3NpdGlvbigpXG5cdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyh0cmlnZ2VyRWwpXG5cdFx0XHQud2l0aFBvc2l0aW9ucyh0aGlzLmdldFBvc2l0aW9uQ29uZmlncygpKVxuXHRcdFx0LndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG5cdFx0XHQud2l0aFB1c2godHJ1ZSk7XG5cblx0XHRjb25zdCBwYW5lbENsYXNzID0gbWVyZ2VPdmVybGF5UGFuZWxDbGFzcyhcblx0XHRcdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRcdFx0dGhpcy5wYW5lbENsYXNzTmFtZSxcblx0XHQpO1xuXG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0cGFuZWxDbGFzcyxcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcblx0XHRcdHRoaXMucGFuZWxUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHR0aGlzLm91dHNpZGVDbGlja1N1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wZW4gPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VQYW5lbCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0dGhpcy5fb3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHR0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cdH1cblxuXHRwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm91dHNpZGVDbGlja1N1Yikge1xuXHRcdFx0dGhpcy5vdXRzaWRlQ2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMub3V0c2lkZUNsaWNrU3ViID0gbnVsbDtcblx0XHR9XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblx0XHRcdHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRQb3NpdGlvbkNvbmZpZ3MoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdC8vIEJvdHRvbSAoZGVmYXVsdClcblx0XHRcdHtcblx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBUb3AgKGZhbGxiYWNrKVxuXHRcdFx0e1xuXHRcdFx0XHRvcmlnaW5YOiBcInN0YXJ0XCIsXG5cdFx0XHRcdG9yaWdpblk6IFwidG9wXCIsXG5cdFx0XHRcdG92ZXJsYXlYOiBcInN0YXJ0XCIsXG5cdFx0XHRcdG92ZXJsYXlZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvZmZzZXRZOiAtOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBSaWdodFxuXHRcdFx0e1xuXHRcdFx0XHRvcmlnaW5YOiBcImVuZFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBMZWZ0XG5cdFx0XHR7XG5cdFx0XHRcdG9yaWdpblg6IFwic3RhcnRcIixcblx0XHRcdFx0b3JpZ2luWTogXCJib3R0b21cIixcblx0XHRcdFx0b3ZlcmxheVg6IFwiZW5kXCIsXG5cdFx0XHRcdG92ZXJsYXlZOiBcInRvcFwiLFxuXHRcdFx0XHRvZmZzZXRZOiA4LFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgaW5saW5lLWJsb2NrXCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCI+XG4gIDxidXR0b25cbiAgICAjdHJpZ2dlckVsXG4gICAgKm5nSWY9XCJzaG93VHJpZ2dlclwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBweC0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIidkaWFsb2cnXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICA+XG4gICAge3sgdHJpZ2dlclRleHQgfX1cbiAgPC9idXR0b24+XG5cbiAgPCEtLSBUcmlnZ2VyIHNsb3QgZm9yIGN1c3RvbSB0cmlnZ2VyIC0tPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGRtUG9wb3ZlclRyaWdnZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gIDwhLS0gVGVtcGxhdGUgZm9yIENESyBPdmVybGF5IC0tPlxuICA8bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtaW4tdy04MCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,55 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Directive used to declare an option inside `<pdm-select>` via content projection.
5
- *
6
- * Usage:
7
- * ```html
8
- * <pdm-select [(value)]="val">
9
- * <pdm-select-option value="a">Option A</pdm-select-option>
10
- * <pdm-select-option value="b" [disabled]="true">Option B</pdm-select-option>
11
- * <pdm-select-option value="c" label="Option C"></pdm-select-option>
12
- * </pdm-select>
13
- * ```
14
- *
15
- * When `label` is not provided, the text content of the projected node is used.
16
- */
17
- export class PdmSelectOptionDirective {
18
- constructor(el) {
19
- this.el = el;
20
- /** The option value that will be emitted on selection. */
21
- this.value = '';
22
- /** When true, the option is rendered but cannot be selected. */
23
- this.disabled = false;
24
- /**
25
- * Explicit label for the option.
26
- * When omitted, the directive reads the element's `textContent` after content init.
27
- */
28
- this.label = '';
29
- }
30
- ngAfterContentInit() {
31
- // If no explicit label, harvest text from the projected node.
32
- if (!this.label) {
33
- this.label = (this.el.nativeElement.textContent ?? '').trim();
34
- }
35
- }
36
- /** Resolved label string — always non-empty after ngAfterContentInit. */
37
- get resolvedLabel() {
38
- return this.label || this.value;
39
- }
40
- }
41
- PdmSelectOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectOptionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
42
- PdmSelectOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectOptionDirective, selector: "pdm-select-option", inputs: { value: "value", disabled: "disabled", label: "label" }, ngImport: i0 });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectOptionDirective, decorators: [{
44
- type: Directive,
45
- args: [{
46
- selector: 'pdm-select-option'
47
- }]
48
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { value: [{
49
- type: Input
50
- }], disabled: [{
51
- type: Input
52
- }], label: [{
53
- type: Input
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUE2QixFQUEyQjtRQUEzQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQVp4RCwwREFBMEQ7UUFDakQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVwQixnRUFBZ0U7UUFDdkQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXVDLENBQUM7SUFFNUQsa0JBQWtCO1FBQ2hCLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7O3FIQXpCVSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2lHQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gZGVjbGFyZSBhbiBvcHRpb24gaW5zaWRlIGA8cGRtLXNlbGVjdD5gIHZpYSBjb250ZW50IHByb2plY3Rpb24uXG4gKlxuICogVXNhZ2U6XG4gKiBgYGBodG1sXG4gKiA8cGRtLXNlbGVjdCBbKHZhbHVlKV09XCJ2YWxcIj5cbiAqICAgPHBkbS1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYVwiPk9wdGlvbiBBPC9wZG0tc2VsZWN0LW9wdGlvbj5cbiAqICAgPHBkbS1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+T3B0aW9uIEI8L3BkbS1zZWxlY3Qtb3B0aW9uPlxuICogICA8cGRtLXNlbGVjdC1vcHRpb24gdmFsdWU9XCJjXCIgbGFiZWw9XCJPcHRpb24gQ1wiPjwvcGRtLXNlbGVjdC1vcHRpb24+XG4gKiA8L3BkbS1zZWxlY3Q+XG4gKiBgYGBcbiAqXG4gKiBXaGVuIGBsYWJlbGAgaXMgbm90IHByb3ZpZGVkLCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwcm9qZWN0ZWQgbm9kZSBpcyB1c2VkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdwZG0tc2VsZWN0LW9wdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgUGRtU2VsZWN0T3B0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKiBUaGUgb3B0aW9uIHZhbHVlIHRoYXQgd2lsbCBiZSBlbWl0dGVkIG9uIHNlbGVjdGlvbi4gKi9cbiAgQElucHV0KCkgdmFsdWUgPSAnJztcblxuICAvKiogV2hlbiB0cnVlLCB0aGUgb3B0aW9uIGlzIHJlbmRlcmVkIGJ1dCBjYW5ub3QgYmUgc2VsZWN0ZWQuICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IGxhYmVsIGZvciB0aGUgb3B0aW9uLlxuICAgKiBXaGVuIG9taXR0ZWQsIHRoZSBkaXJlY3RpdmUgcmVhZHMgdGhlIGVsZW1lbnQncyBgdGV4dENvbnRlbnRgIGFmdGVyIGNvbnRlbnQgaW5pdC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIG5vIGV4cGxpY2l0IGxhYmVsLCBoYXJ2ZXN0IHRleHQgZnJvbSB0aGUgcHJvamVjdGVkIG5vZGUuXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA/PyAnJykudHJpbSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNvbHZlZCBsYWJlbCBzdHJpbmcg4oCUIGFsd2F5cyBub24tZW1wdHkgYWZ0ZXIgbmdBZnRlckNvbnRlbnRJbml0LiAqL1xuICBnZXQgcmVzb2x2ZWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsIHx8IHRoaXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -1,164 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
- import { TemplatePortal } from "@angular/cdk/portal";
3
- import { PdmSelectOptionDirective } from "./select-option.directive";
4
- import { createFlexiblePositionStrategy } from "../../overlay/create-flexible-position-strategy";
5
- import { Z_INDEX } from "../../utils/z-index";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/overlay";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "../icon/icon.component";
10
- export class PdmSelectComponent {
11
- constructor(cdr, overlay, viewContainerRef) {
12
- this.cdr = cdr;
13
- this.overlay = overlay;
14
- this.viewContainerRef = viewContainerRef;
15
- this.id = "";
16
- this.value = "";
17
- this.options = [];
18
- this.disabled = false;
19
- this.invalid = false;
20
- this.className = "";
21
- this.placeholder = "Select an option";
22
- this.open = false;
23
- this.valueChange = new EventEmitter();
24
- this.overlayRef = null;
25
- this.backdropSub = null;
26
- }
27
- ngAfterContentInit() {
28
- // Re-render when projected options change (e.g. *ngFor on pdm-select-option).
29
- this.projectedOptions.changes.subscribe(() => this.cdr.markForCheck());
30
- }
31
- ngOnDestroy() {
32
- this.destroyOverlay();
33
- }
34
- /**
35
- * Returns the effective list of options.
36
- * Projected `<pdm-select-option>` children take priority over the `[options]` input.
37
- * Falls back to `[options]` when no children are projected.
38
- */
39
- get resolvedOptions() {
40
- if (this.projectedOptions && this.projectedOptions.length > 0) {
41
- return this.projectedOptions.map((d) => ({
42
- label: d.resolvedLabel,
43
- value: d.value,
44
- disabled: d.disabled,
45
- }));
46
- }
47
- return this.options;
48
- }
49
- get selectedOption() {
50
- return this.resolvedOptions.find((option) => option.value === this.value);
51
- }
52
- get selectedLabel() {
53
- return this.selectedOption?.label || this.placeholder;
54
- }
55
- toggle() {
56
- if (this.disabled)
57
- return;
58
- if (this.open) {
59
- this.closePanel();
60
- }
61
- else {
62
- this.openPanel();
63
- }
64
- }
65
- onChange(event) {
66
- this.valueChange.emit(event.target.value);
67
- }
68
- selectOption(option) {
69
- if (option.disabled)
70
- return;
71
- this.valueChange.emit(option.value);
72
- this.closePanel();
73
- }
74
- onEscape() {
75
- if (this.open) {
76
- this.closePanel();
77
- }
78
- }
79
- openPanel() {
80
- if (this.overlayRef)
81
- return;
82
- const triggerEl = this.triggerRef?.nativeElement;
83
- if (!triggerEl)
84
- return;
85
- this.open = true;
86
- this.cdr.markForCheck();
87
- const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 4);
88
- this.overlayRef = this.overlay.create({
89
- // CRÍTICO: z-[70] para aparecer SOBRE modals (z-[60])
90
- // panelClass se aplica al cdk-overlay-pane wrapper
91
- panelClass: [Z_INDEX.popover],
92
- positionStrategy,
93
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
94
- width: triggerEl.offsetWidth,
95
- // Consumer overrides are spread last — they win over every default above.
96
- ...this.overlayOptions,
97
- });
98
- const portal = new TemplatePortal(this.panelTemplateRef, this.viewContainerRef);
99
- this.overlayRef.attach(portal);
100
- this.backdropSub = this.overlayRef
101
- .outsidePointerEvents()
102
- .subscribe((event) => {
103
- const target = event.target;
104
- if (!triggerEl.contains(target)) {
105
- this.closePanel();
106
- }
107
- });
108
- this.cdr.markForCheck();
109
- }
110
- closePanel() {
111
- if (!this.overlayRef)
112
- return;
113
- this.open = false;
114
- this.destroyOverlay();
115
- this.cdr.markForCheck();
116
- }
117
- destroyOverlay() {
118
- if (this.backdropSub) {
119
- this.backdropSub.unsubscribe();
120
- this.backdropSub = null;
121
- }
122
- if (this.overlayRef) {
123
- this.overlayRef.dispose();
124
- this.overlayRef = null;
125
- }
126
- }
127
- }
128
- PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
129
- PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none box-border items-center justify-between rounded-md border border-solid bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none box-border items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, decorators: [{
131
- type: Component,
132
- args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none box-border items-center justify-between rounded-md border border-solid bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none box-border items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
133
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { id: [{
134
- type: Input
135
- }], value: [{
136
- type: Input
137
- }], options: [{
138
- type: Input
139
- }], disabled: [{
140
- type: Input
141
- }], invalid: [{
142
- type: Input
143
- }], className: [{
144
- type: Input
145
- }], placeholder: [{
146
- type: Input
147
- }], overlayOptions: [{
148
- type: Input
149
- }], valueChange: [{
150
- type: Output
151
- }], triggerRef: [{
152
- type: ViewChild,
153
- args: ["triggerEl"]
154
- }], panelTemplateRef: [{
155
- type: ViewChild,
156
- args: ["panelTemplate"]
157
- }], projectedOptions: [{
158
- type: ContentChildren,
159
- args: [PdmSelectOptionDirective]
160
- }], onEscape: [{
161
- type: HostListener,
162
- args: ["document:keydown.escape"]
163
- }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBYzlDLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjlCLFlBQ2tCLEdBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjNDLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBUTFDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxnQkFBVyxHQUFHLElB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LEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNGLENBQUM7OytHQTNKVyxrQkFBa0I7bUdBQWxCLGtCQUFrQix3WEF1QmIsd0JBQXdCLDBPQzNEMUMseWpHQTBGQTsyRkR0RGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs2SkFHdEMsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUksV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQUlsQixnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsd0JBQXdCO2dCQWlFekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGRyZW4sXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBkbVNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gXCIuL3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9vdmVybGF5L3BkbS1vdmVybGF5LW9wdGlvbnNcIjtcbmltcG9ydCB7IGNyZWF0ZUZsZXhpYmxlUG9zaXRpb25TdHJhdGVneSB9IGZyb20gXCIuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneVwiO1xuaW1wb3J0IHsgWl9JTkRFWCB9IGZyb20gXCIuLi8uLi91dGlscy96LWluZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtU2VsZWN0T3B0aW9uIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXNlbGVjdFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcblx0QElucHV0KCkgb3B0aW9uczogUGRtU2VsZWN0T3B0aW9uW10gPSBbXTtcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0IGFuIG9wdGlvblwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cblx0b3BlbiA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG5cdEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyRWxcIikgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cdEBWaWV3Q2hpbGQoXCJwYW5lbFRlbXBsYXRlXCIpIHByaXZhdGUgcGFuZWxUZW1wbGF0ZVJlZiE6IGFueTtcblxuXHQvKiogQ29sbGVjdHMgYW55IGA8cGRtLXNlbGVjdC1vcHRpb24+YCBjaGlsZHJlbiBwcm9qZWN0ZWQgaW50byB0aGlzIGNvbXBvbmVudC4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUpXG5cdHByaXZhdGUgcHJvamVjdGVkT3B0aW9ucyE6IFF1ZXJ5TGlzdDxQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmU+O1xuXG5cdHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIGJhY2tkcm9wU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0KSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBSZS1yZW5kZXIgd2hlbiBwcm9qZWN0ZWQgb3B0aW9ucyBjaGFuZ2UgKGUuZy4gKm5nRm9yIG9uIHBkbS1zZWxlY3Qtb3B0aW9uKS5cblx0XHR0aGlzLnByb2plY3RlZE9wdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBsaXN0IG9mIG9wdGlvbnMuXG5cdCAqIFByb2plY3RlZCBgPHBkbS1zZWxlY3Qtb3B0aW9uPmAgY2hpbGRyZW4gdGFrZSBwcmlvcml0eSBvdmVyIHRoZSBgW29wdGlvbnNdYCBpbnB1dC5cblx0ICogRmFsbHMgYmFjayB0byBgW29wdGlvbnNdYCB3aGVuIG5vIGNoaWxkcmVuIGFyZSBwcm9qZWN0ZWQuXG5cdCAqL1xuXHRnZXQgcmVzb2x2ZWRPcHRpb25zKCk6IFBkbVNlbGVjdE9wdGlvbltdIHtcblx0XHRpZiAodGhpcy5wcm9qZWN0ZWRPcHRpb25zICYmIHRoaXMucHJvamVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcm9qZWN0ZWRPcHRpb25zLm1hcCgoZCkgPT4gKHtcblx0XHRcdFx0bGFiZWw6IGQucmVzb2x2ZWRMYWJlbCxcblx0XHRcdFx0dmFsdWU6IGQudmFsdWUsXG5cdFx0XHRcdGRpc2FibGVkOiBkLmRpc2FibGVkLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zO1xuXHR9XG5cblx0Z2V0IHNlbGVjdGVkT3B0aW9uKCk6IFBkbVNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb2x2ZWRPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8IHRoaXMucGxhY2Vob2xkZXI7XG5cdH1cblxuXHR0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblx0XHRpZiAodGhpcy5vcGVuKSB7XG5cdFx0XHR0aGlzLmNsb3NlUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9XG5cdH1cblxuXHRvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUpO1xuXHR9XG5cblx0c2VsZWN0T3B0aW9uKG9wdGlvbjogUGRtU2VsZWN0T3B0aW9uKTogdm9pZCB7XG5cdFx0aWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvcHRpb24udmFsdWUpO1xuXHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd24uZXNjYXBlXCIpXG5cdG9uRXNjYXBlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm9wZW4pIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG5cdFx0XHR0aGlzLm92ZXJsYXksXG5cdFx0XHR0cmlnZ2VyRWwsXG5cdFx0XHQ0LFxuXHRcdCk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcblx0XHRcdC8vIENSw41USUNPOiB6LVs3MF0gcGFyYSBhcGFyZWNlciBTT0JSRSBtb2RhbHMgKHotWzYwXSlcblx0XHRcdC8vIHBhbmVsQ2xhc3Mgc2UgYXBsaWNhIGFsIGNkay1vdmVybGF5LXBhbmUgd3JhcHBlclxuXHRcdFx0cGFuZWxDbGFzczogW1pfSU5ERVgucG9wb3Zlcl0sXG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdHdpZHRoOiB0cmlnZ2VyRWwub2Zmc2V0V2lkdGgsXG5cdFx0XHQvLyBDb25zdW1lciBvdmVycmlkZXMgYXJlIHNwcmVhZCBsYXN0IOKAlCB0aGV5IHdpbiBvdmVyIGV2ZXJ5IGRlZmF1bHQgYWJvdmUuXG5cdFx0XHQuLi50aGlzLm92ZXJsYXlPcHRpb25zLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuXHRcdFx0dGhpcy5wYW5lbFRlbXBsYXRlUmVmLFxuXHRcdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLFxuXHRcdCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG5cdFx0dGhpcy5iYWNrZHJvcFN1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuXHRcdFx0XHRpZiAoIXRyaWdnZXJFbC5jb250YWlucyh0YXJnZXQpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdHRoaXMub3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydyZWxhdGl2ZScsIGNsYXNzTmFtZSB8fCAndy1mdWxsJ11cIj5cbiAgPGJ1dHRvblxuICAgICN0cmlnZ2VyRWxcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdib3JkZXItaW5wdXQgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBhcmlhLWludmFsaWQ6cmluZy0yIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUgZmxleCBoLTkgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20gc2hhZG93LXNtIG91dGxpbmUtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgXVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgdGV4dC1sZWZ0IGxlYWRpbmctNScsXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uXG4gICAgICAgICAgPyAnZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgIDogJ2ZvbnQtbm9ybWFsIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZExhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxwZG0taWNvblxuICAgICAgbmFtZT1cImNoZXZyb24tZG93blwiXG4gICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIlxuICAgID48L3BkbS1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEhpZGRlbiBuYXRpdmUgc2VsZWN0IGtlcHQgZm9yIHNjcmVlbi1yZWFkZXIgLyBmb3JtIGZhbGxiYWNrIC0tPlxuICA8c2VsZWN0XG4gICAgY2xhc3M9XCJzci1vbmx5XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxvcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVzb2x2ZWRPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDwhLS0gU2xvdCBmb3IgY29udGVudC1wcm9qZWN0ZWQgcGRtLXNlbGVjdC1vcHRpb24gZWxlbWVudHMgKGhpZGRlbiBmcm9tIGxheW91dCkgLS0+XG4gIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicGRtLXNlbGVjdC1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gIDxkaXZcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkIHx8IG51bGxcIlxuICAgIGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LXktYXV0byByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtMSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgbWF4LWgtOTZcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZXNvbHZlZE9wdGlvbnNcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXG4gICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICdmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMiBweS0xLjUgdGV4dC1sZWZ0IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgb3B0aW9uLmRpc2FibGVkXG4gICAgICAgICAgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnXG4gICAgICAgICAgOiAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSA/ICd0ZXh0LWZvcmVncm91bmQnIDogJycsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1pbi13LTAgZmxleC0xIHRydW5jYXRlIGxlYWRpbmctNVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwibWwtMiBmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiXG4gICAgICA+XG4gICAgICAgIDxwZG0taWNvblxuICAgICAgICAgIG5hbWU9XCJjaGVja1wiXG4gICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInNocmluay0wIHRleHQtY3VycmVudFwiXG4gICAgICAgID48L3BkbS1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=