@ng-nest/ui 13.0.1 → 13.0.5

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 (577) hide show
  1. package/README.md +1 -1
  2. package/alert/alert.component.d.ts +2 -1
  3. package/carousel/carousel-panel.component.d.ts +2 -3
  4. package/core/config/config.d.ts +4 -0
  5. package/core/interfaces/layout.type.d.ts +1 -1
  6. package/date-picker/date-picker.component.d.ts +1 -1
  7. package/date-picker/date-picker.property.d.ts +51 -1
  8. package/date-picker/date-range-portal.component.d.ts +7 -5
  9. package/date-picker/date-range.component.d.ts +5 -1
  10. package/date-picker/examples/en_US/default/disabled/README.md +1 -1
  11. package/date-picker/examples/en_US/default/time/README.md +6 -0
  12. package/date-picker/examples/zh_CN/default/disabled/README.md +1 -1
  13. package/date-picker/examples/zh_CN/default/time/README.md +6 -0
  14. package/date-picker/picker-date.component.d.ts +3 -0
  15. package/dialog/dialog-portal.component.d.ts +18 -0
  16. package/dialog/dialog-portal.directives.d.ts +24 -0
  17. package/dialog/dialog-ref.d.ts +9 -0
  18. package/dialog/dialog.module.d.ts +13 -11
  19. package/dialog/dialog.property.d.ts +85 -7
  20. package/dialog/dialog.service.d.ts +19 -0
  21. package/dialog/examples/en_US/default/service/README.md +6 -0
  22. package/dialog/examples/zh_CN/default/service/README.md +6 -0
  23. package/dialog/public-api.d.ts +4 -0
  24. package/drawer/drawer-container.component.d.ts +8 -0
  25. package/drawer/drawer-portal.component.d.ts +18 -0
  26. package/drawer/drawer-portal.directives.d.ts +19 -0
  27. package/drawer/drawer-ref.d.ts +9 -0
  28. package/drawer/drawer.component.d.ts +10 -3
  29. package/drawer/drawer.module.d.ts +9 -6
  30. package/drawer/drawer.property.d.ts +97 -2
  31. package/drawer/drawer.service.d.ts +19 -0
  32. package/drawer/examples/en_US/default/container/README.md +6 -0
  33. package/drawer/examples/en_US/default/service/README.md +6 -0
  34. package/drawer/examples/zh_CN/default/container/README.md +6 -0
  35. package/drawer/examples/zh_CN/default/service/README.md +6 -0
  36. package/drawer/public-api.d.ts +6 -0
  37. package/esm2020/affix/affix.component.mjs +3 -3
  38. package/esm2020/affix/affix.module.mjs +4 -4
  39. package/esm2020/affix/affix.property.mjs +3 -3
  40. package/esm2020/alert/alert.component.mjs +11 -6
  41. package/esm2020/alert/alert.module.mjs +4 -4
  42. package/esm2020/alert/alert.property.mjs +3 -3
  43. package/esm2020/anchor/anchor.component.mjs +3 -3
  44. package/esm2020/anchor/anchor.module.mjs +4 -4
  45. package/esm2020/anchor/anchor.property.mjs +3 -3
  46. package/esm2020/api/api.component.mjs +3 -3
  47. package/esm2020/api/api.module.mjs +4 -4
  48. package/esm2020/auto-complete/auto-complete-portal.component.mjs +5 -5
  49. package/esm2020/auto-complete/auto-complete.component.mjs +4 -4
  50. package/esm2020/auto-complete/auto-complete.module.mjs +6 -7
  51. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  52. package/esm2020/avatar/avatar.component.mjs +3 -3
  53. package/esm2020/avatar/avatar.module.mjs +4 -4
  54. package/esm2020/avatar/avatar.property.mjs +3 -3
  55. package/esm2020/back-top/back-top.component.mjs +3 -3
  56. package/esm2020/back-top/back-top.module.mjs +4 -4
  57. package/esm2020/back-top/back-top.property.mjs +3 -3
  58. package/esm2020/badge/badge.component.mjs +3 -3
  59. package/esm2020/badge/badge.module.mjs +4 -4
  60. package/esm2020/badge/badge.property.mjs +3 -3
  61. package/esm2020/base-form/base-form.component.mjs +3 -3
  62. package/esm2020/base-form/base-form.module.mjs +4 -4
  63. package/esm2020/base-form/base-form.property.mjs +3 -3
  64. package/esm2020/border/border.component.mjs +3 -3
  65. package/esm2020/border/border.module.mjs +4 -4
  66. package/esm2020/button/button.component.mjs +4 -4
  67. package/esm2020/button/button.module.mjs +4 -4
  68. package/esm2020/button/button.property.mjs +6 -6
  69. package/esm2020/button/buttons.component.mjs +3 -3
  70. package/esm2020/calendar/calendar.component.mjs +3 -3
  71. package/esm2020/calendar/calendar.module.mjs +4 -4
  72. package/esm2020/calendar/calendar.property.mjs +3 -3
  73. package/esm2020/card/card.component.mjs +4 -4
  74. package/esm2020/card/card.module.mjs +4 -4
  75. package/esm2020/card/card.property.mjs +3 -3
  76. package/esm2020/carousel/carousel-panel.component.mjs +14 -13
  77. package/esm2020/carousel/carousel.component.mjs +3 -3
  78. package/esm2020/carousel/carousel.module.mjs +4 -4
  79. package/esm2020/carousel/carousel.property.mjs +6 -6
  80. package/esm2020/cascade/cascade-portal.component.mjs +5 -5
  81. package/esm2020/cascade/cascade.component.mjs +4 -4
  82. package/esm2020/cascade/cascade.module.mjs +6 -7
  83. package/esm2020/cascade/cascade.property.mjs +3 -3
  84. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  85. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  86. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  87. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  88. package/esm2020/collapse/collapse.component.mjs +3 -3
  89. package/esm2020/collapse/collapse.module.mjs +4 -4
  90. package/esm2020/collapse/collapse.property.mjs +6 -6
  91. package/esm2020/color/color.component.mjs +3 -3
  92. package/esm2020/color/color.module.mjs +4 -4
  93. package/esm2020/color/color.property.mjs +3 -3
  94. package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
  95. package/esm2020/color-picker/color-picker.component.mjs +4 -4
  96. package/esm2020/color-picker/color-picker.module.mjs +6 -7
  97. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  98. package/esm2020/comment/comment-reply.component.mjs +3 -3
  99. package/esm2020/comment/comment.component.mjs +3 -3
  100. package/esm2020/comment/comment.module.mjs +4 -4
  101. package/esm2020/comment/comment.property.mjs +6 -6
  102. package/esm2020/container/aside.component.mjs +3 -3
  103. package/esm2020/container/container.component.mjs +3 -3
  104. package/esm2020/container/container.module.mjs +4 -4
  105. package/esm2020/container/container.property.mjs +12 -12
  106. package/esm2020/container/footer.component.mjs +4 -4
  107. package/esm2020/container/header.component.mjs +4 -4
  108. package/esm2020/container/main.component.mjs +4 -4
  109. package/esm2020/core/config/config.mjs +1 -1
  110. package/esm2020/core/config/config.service.mjs +3 -3
  111. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  112. package/esm2020/core/services/http.service.mjs +3 -3
  113. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  114. package/esm2020/core/services/storage.service.mjs +3 -3
  115. package/esm2020/core/theme/theme.service.mjs +3 -3
  116. package/esm2020/crumb/crumb.component.mjs +3 -3
  117. package/esm2020/crumb/crumb.module.mjs +4 -4
  118. package/esm2020/crumb/crumb.property.mjs +3 -3
  119. package/esm2020/date-picker/date-picker-portal.component.mjs +6 -6
  120. package/esm2020/date-picker/date-picker.component.mjs +6 -10
  121. package/esm2020/date-picker/date-picker.module.mjs +6 -7
  122. package/esm2020/date-picker/date-picker.property.mjs +86 -16
  123. package/esm2020/date-picker/date-range-portal.component.mjs +47 -28
  124. package/esm2020/date-picker/date-range.component.mjs +33 -10
  125. package/esm2020/date-picker/picker-date.component.mjs +33 -6
  126. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  127. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  128. package/esm2020/description/description-item.component.mjs +3 -3
  129. package/esm2020/description/description.component.mjs +3 -3
  130. package/esm2020/description/description.module.mjs +4 -4
  131. package/esm2020/description/description.property.mjs +6 -6
  132. package/esm2020/dialog/dialog-portal.component.mjs +52 -0
  133. package/esm2020/dialog/dialog-portal.directives.mjs +73 -0
  134. package/esm2020/dialog/dialog-ref.mjs +17 -0
  135. package/esm2020/dialog/dialog.component.mjs +7 -7
  136. package/esm2020/dialog/dialog.module.mjs +39 -9
  137. package/esm2020/dialog/dialog.property.mjs +21 -20
  138. package/esm2020/dialog/dialog.service.mjs +67 -0
  139. package/esm2020/dialog/public-api.mjs +5 -1
  140. package/esm2020/doc/doc.component.mjs +4 -4
  141. package/esm2020/doc/doc.module.mjs +4 -4
  142. package/esm2020/drawer/drawer-container.component.mjs +29 -0
  143. package/esm2020/drawer/drawer-portal.component.mjs +52 -0
  144. package/esm2020/drawer/drawer-portal.directives.mjs +57 -0
  145. package/esm2020/drawer/drawer-ref.mjs +17 -0
  146. package/esm2020/drawer/drawer.component.mjs +55 -19
  147. package/esm2020/drawer/drawer.module.mjs +42 -9
  148. package/esm2020/drawer/drawer.property.mjs +42 -8
  149. package/esm2020/drawer/drawer.service.mjs +65 -0
  150. package/esm2020/drawer/public-api.mjs +7 -1
  151. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  152. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  153. package/esm2020/dropdown/dropdown.module.mjs +6 -7
  154. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  155. package/esm2020/empty/empty.component.mjs +3 -3
  156. package/esm2020/empty/empty.module.mjs +4 -4
  157. package/esm2020/empty/empty.property.mjs +3 -3
  158. package/esm2020/examples/examples.component.mjs +3 -3
  159. package/esm2020/examples/examples.module.mjs +4 -4
  160. package/esm2020/find/find.component.mjs +4 -4
  161. package/esm2020/find/find.module.mjs +4 -4
  162. package/esm2020/find/find.property.mjs +3 -3
  163. package/esm2020/form/control.component.mjs +3 -3
  164. package/esm2020/form/form.component.mjs +3 -3
  165. package/esm2020/form/form.module.mjs +4 -4
  166. package/esm2020/form/form.property.mjs +6 -6
  167. package/esm2020/highlight/highlight.component.mjs +3 -3
  168. package/esm2020/highlight/highlight.module.mjs +4 -4
  169. package/esm2020/highlight/highlight.property.mjs +3 -3
  170. package/esm2020/i18n/i18n.directive.mjs +3 -3
  171. package/esm2020/i18n/i18n.module.mjs +4 -4
  172. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  173. package/esm2020/i18n/i18n.service.mjs +3 -3
  174. package/esm2020/icon/icon.component.mjs +3 -3
  175. package/esm2020/icon/icon.module.mjs +4 -4
  176. package/esm2020/icon/icon.property.mjs +3 -3
  177. package/esm2020/icon/icon.service.mjs +3 -3
  178. package/esm2020/inner/inner.component.mjs +3 -3
  179. package/esm2020/inner/inner.module.mjs +4 -4
  180. package/esm2020/inner/inner.property.mjs +3 -3
  181. package/esm2020/input/input-group.component.mjs +3 -3
  182. package/esm2020/input/input.component.mjs +8 -5
  183. package/esm2020/input/input.module.mjs +4 -4
  184. package/esm2020/input/input.property.mjs +6 -6
  185. package/esm2020/input-number/input-number.component.mjs +3 -3
  186. package/esm2020/input-number/input-number.module.mjs +4 -4
  187. package/esm2020/input-number/input-number.property.mjs +3 -3
  188. package/esm2020/layout/col.component.mjs +3 -3
  189. package/esm2020/layout/layout.module.mjs +4 -4
  190. package/esm2020/layout/layout.property.mjs +6 -6
  191. package/esm2020/layout/row.component.mjs +3 -3
  192. package/esm2020/link/link.component.mjs +3 -3
  193. package/esm2020/link/link.module.mjs +4 -4
  194. package/esm2020/link/link.property.mjs +3 -3
  195. package/esm2020/list/list-option.component.mjs +3 -3
  196. package/esm2020/list/list.component.mjs +3 -3
  197. package/esm2020/list/list.module.mjs +4 -4
  198. package/esm2020/list/list.property.mjs +6 -6
  199. package/esm2020/loading/loading.component.mjs +3 -3
  200. package/esm2020/loading/loading.module.mjs +4 -4
  201. package/esm2020/loading/loading.property.mjs +3 -3
  202. package/esm2020/menu/menu-node.component.mjs +3 -3
  203. package/esm2020/menu/menu.component.mjs +5 -5
  204. package/esm2020/menu/menu.module.mjs +4 -4
  205. package/esm2020/menu/menu.property.mjs +6 -6
  206. package/esm2020/message/message-ref.mjs +12 -0
  207. package/esm2020/message/message.component.mjs +6 -6
  208. package/esm2020/message/message.module.mjs +4 -4
  209. package/esm2020/message/message.property.mjs +2 -2
  210. package/esm2020/message/message.service.mjs +39 -18
  211. package/esm2020/message/public-api.mjs +2 -1
  212. package/esm2020/message-box/message-box.component.mjs +3 -3
  213. package/esm2020/message-box/message-box.module.mjs +4 -4
  214. package/esm2020/message-box/message-box.service.mjs +3 -3
  215. package/esm2020/notification/notification.component.mjs +3 -3
  216. package/esm2020/notification/notification.module.mjs +4 -4
  217. package/esm2020/notification/notification.service.mjs +3 -3
  218. package/esm2020/outlet/outlet.directive.mjs +3 -3
  219. package/esm2020/outlet/outlet.module.mjs +4 -4
  220. package/esm2020/page-header/page-header.component.mjs +3 -3
  221. package/esm2020/page-header/page-header.module.mjs +4 -4
  222. package/esm2020/page-header/page-header.property.mjs +3 -3
  223. package/esm2020/pagination/pagination.component.mjs +4 -4
  224. package/esm2020/pagination/pagination.module.mjs +4 -4
  225. package/esm2020/pagination/pagination.property.mjs +3 -3
  226. package/esm2020/pattern/pattern.component.mjs +3 -3
  227. package/esm2020/pattern/pattern.module.mjs +4 -4
  228. package/esm2020/popconfirm/popconfirm.component.mjs +28 -7
  229. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  230. package/esm2020/popconfirm/popconfirm.property.mjs +12 -5
  231. package/esm2020/popover/popover-portal.component.mjs +3 -3
  232. package/esm2020/popover/popover.directive.mjs +11 -5
  233. package/esm2020/popover/popover.module.mjs +6 -7
  234. package/esm2020/popover/popover.property.mjs +9 -4
  235. package/esm2020/portal/portal.module.mjs +6 -5
  236. package/esm2020/portal/portal.service.mjs +11 -12
  237. package/esm2020/progress/progress.component.mjs +179 -18
  238. package/esm2020/progress/progress.module.mjs +4 -4
  239. package/esm2020/progress/progress.property.mjs +52 -5
  240. package/esm2020/radio/radio.component.mjs +4 -4
  241. package/esm2020/radio/radio.module.mjs +4 -4
  242. package/esm2020/radio/radio.property.mjs +3 -3
  243. package/esm2020/rate/rate.component.mjs +4 -4
  244. package/esm2020/rate/rate.module.mjs +4 -4
  245. package/esm2020/rate/rate.property.mjs +3 -3
  246. package/esm2020/result/result.component.mjs +4 -4
  247. package/esm2020/result/result.module.mjs +4 -4
  248. package/esm2020/result/result.property.mjs +3 -3
  249. package/esm2020/ripple/ripple.directive.mjs +3 -3
  250. package/esm2020/ripple/ripple.module.mjs +4 -4
  251. package/esm2020/ripple/ripple.property.mjs +3 -3
  252. package/esm2020/select/select-portal.component.mjs +5 -5
  253. package/esm2020/select/select.component.mjs +4 -4
  254. package/esm2020/select/select.module.mjs +6 -7
  255. package/esm2020/select/select.property.mjs +3 -3
  256. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  257. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  258. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  259. package/esm2020/slider/slider.component.mjs +3 -3
  260. package/esm2020/slider/slider.module.mjs +4 -4
  261. package/esm2020/slider/slider.property.mjs +3 -3
  262. package/esm2020/slider-select/slider-select.component.mjs +4 -4
  263. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  264. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  265. package/esm2020/statistic/countdown.component.mjs +3 -3
  266. package/esm2020/statistic/statistic.component.mjs +3 -3
  267. package/esm2020/statistic/statistic.module.mjs +4 -4
  268. package/esm2020/statistic/statistic.property.mjs +6 -6
  269. package/esm2020/steps/steps.component.mjs +18 -11
  270. package/esm2020/steps/steps.module.mjs +4 -4
  271. package/esm2020/steps/steps.property.mjs +10 -5
  272. package/esm2020/switch/switch.component.mjs +4 -4
  273. package/esm2020/switch/switch.module.mjs +4 -4
  274. package/esm2020/switch/switch.property.mjs +3 -3
  275. package/esm2020/table/drag.directive.mjs +3 -3
  276. package/esm2020/table/table-body.component.mjs +3 -3
  277. package/esm2020/table/table-foot.component.mjs +3 -3
  278. package/esm2020/table/table-head.component.mjs +3 -3
  279. package/esm2020/table/table.component.mjs +3 -3
  280. package/esm2020/table/table.module.mjs +4 -4
  281. package/esm2020/table/table.property.mjs +13 -13
  282. package/esm2020/tabs/tab-content.component.mjs +3 -3
  283. package/esm2020/tabs/tab.component.mjs +3 -3
  284. package/esm2020/tabs/tabs.component.mjs +3 -3
  285. package/esm2020/tabs/tabs.module.mjs +4 -4
  286. package/esm2020/tabs/tabs.property.mjs +6 -6
  287. package/esm2020/tag/tag.component.mjs +4 -4
  288. package/esm2020/tag/tag.module.mjs +4 -4
  289. package/esm2020/tag/tag.property.mjs +3 -3
  290. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  291. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  292. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  293. package/esm2020/textarea/textarea.component.mjs +4 -4
  294. package/esm2020/textarea/textarea.module.mjs +4 -4
  295. package/esm2020/textarea/textarea.property.mjs +3 -3
  296. package/esm2020/theme/theme.component.mjs +3 -3
  297. package/esm2020/theme/theme.module.mjs +4 -4
  298. package/esm2020/theme/theme.property.mjs +3 -3
  299. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  300. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  301. package/esm2020/time-picker/time-picker-frame.component.mjs +11 -8
  302. package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
  303. package/esm2020/time-picker/time-picker.component.mjs +27 -14
  304. package/esm2020/time-picker/time-picker.module.mjs +6 -7
  305. package/esm2020/time-picker/time-picker.property.mjs +3 -3
  306. package/esm2020/time-range/time-range.module.mjs +4 -4
  307. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  308. package/esm2020/timeline/timeline.component.mjs +3 -3
  309. package/esm2020/timeline/timeline.module.mjs +4 -4
  310. package/esm2020/timeline/timeline.property.mjs +3 -3
  311. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  312. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  313. package/esm2020/tooltip/tooltip.module.mjs +6 -7
  314. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  315. package/esm2020/transfer/transfer.component.mjs +3 -3
  316. package/esm2020/transfer/transfer.module.mjs +4 -4
  317. package/esm2020/transfer/transfer.property.mjs +3 -3
  318. package/esm2020/tree/tree-node.component.mjs +3 -3
  319. package/esm2020/tree/tree.component.mjs +3 -3
  320. package/esm2020/tree/tree.module.mjs +4 -4
  321. package/esm2020/tree/tree.property.mjs +6 -6
  322. package/esm2020/tree-file/tree-file.component.mjs +4 -4
  323. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  324. package/esm2020/tree-file/tree-file.property.mjs +3 -3
  325. package/esm2020/typography/typography.component.mjs +3 -3
  326. package/esm2020/typography/typography.module.mjs +4 -4
  327. package/esm2020/typography/typography.property.mjs +3 -3
  328. package/esm2020/upload/upload-portal.component.mjs +4 -4
  329. package/esm2020/upload/upload.component.mjs +3 -3
  330. package/esm2020/upload/upload.module.mjs +4 -4
  331. package/esm2020/upload/upload.property.mjs +3 -3
  332. package/fesm2015/ng-nest-ui-affix.mjs +10 -10
  333. package/fesm2015/ng-nest-ui-alert.mjs +18 -12
  334. package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
  335. package/fesm2015/ng-nest-ui-anchor.mjs +10 -10
  336. package/fesm2015/ng-nest-ui-api.mjs +7 -7
  337. package/fesm2015/ng-nest-ui-auto-complete.mjs +17 -17
  338. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  339. package/fesm2015/ng-nest-ui-avatar.mjs +11 -10
  340. package/fesm2015/ng-nest-ui-back-top.mjs +10 -10
  341. package/fesm2015/ng-nest-ui-badge.mjs +11 -10
  342. package/fesm2015/ng-nest-ui-base-form.mjs +11 -10
  343. package/fesm2015/ng-nest-ui-border.mjs +8 -7
  344. package/fesm2015/ng-nest-ui-button.mjs +18 -17
  345. package/fesm2015/ng-nest-ui-calendar.mjs +11 -10
  346. package/fesm2015/ng-nest-ui-card.mjs +12 -11
  347. package/fesm2015/ng-nest-ui-carousel.mjs +27 -26
  348. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  349. package/fesm2015/ng-nest-ui-cascade.mjs +17 -17
  350. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  351. package/fesm2015/ng-nest-ui-checkbox.mjs +12 -11
  352. package/fesm2015/ng-nest-ui-collapse.mjs +17 -16
  353. package/fesm2015/ng-nest-ui-color-picker.mjs +17 -17
  354. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  355. package/fesm2015/ng-nest-ui-color.mjs +11 -10
  356. package/fesm2015/ng-nest-ui-comment.mjs +17 -16
  357. package/fesm2015/ng-nest-ui-container.mjs +35 -34
  358. package/fesm2015/ng-nest-ui-core.mjs +16 -15
  359. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  360. package/fesm2015/ng-nest-ui-crumb.mjs +11 -10
  361. package/fesm2015/ng-nest-ui-date-picker.mjs +217 -82
  362. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  363. package/fesm2015/ng-nest-ui-description.mjs +17 -16
  364. package/fesm2015/ng-nest-ui-dialog.mjs +260 -35
  365. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  366. package/fesm2015/ng-nest-ui-doc.mjs +8 -8
  367. package/fesm2015/ng-nest-ui-drawer.mjs +335 -31
  368. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  369. package/fesm2015/ng-nest-ui-dropdown.mjs +14 -15
  370. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  371. package/fesm2015/ng-nest-ui-empty.mjs +11 -10
  372. package/fesm2015/ng-nest-ui-examples.mjs +7 -7
  373. package/fesm2015/ng-nest-ui-find.mjs +12 -11
  374. package/fesm2015/ng-nest-ui-form.mjs +17 -16
  375. package/fesm2015/ng-nest-ui-highlight.mjs +11 -10
  376. package/fesm2015/ng-nest-ui-i18n.mjs +14 -13
  377. package/fesm2015/ng-nest-ui-icon.mjs +14 -13
  378. package/fesm2015/ng-nest-ui-inner.mjs +10 -10
  379. package/fesm2015/ng-nest-ui-input-number.mjs +11 -10
  380. package/fesm2015/ng-nest-ui-input.mjs +21 -17
  381. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  382. package/fesm2015/ng-nest-ui-layout.mjs +17 -16
  383. package/fesm2015/ng-nest-ui-link.mjs +11 -10
  384. package/fesm2015/ng-nest-ui-list.mjs +17 -16
  385. package/fesm2015/ng-nest-ui-loading.mjs +11 -10
  386. package/fesm2015/ng-nest-ui-menu.mjs +17 -17
  387. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  388. package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
  389. package/fesm2015/ng-nest-ui-message.mjs +61 -27
  390. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  391. package/fesm2015/ng-nest-ui-notification.mjs +10 -10
  392. package/fesm2015/ng-nest-ui-outlet.mjs +8 -7
  393. package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
  394. package/fesm2015/ng-nest-ui-pagination.mjs +12 -11
  395. package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
  396. package/fesm2015/ng-nest-ui-popconfirm.mjs +42 -14
  397. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  398. package/fesm2015/ng-nest-ui-popover.mjs +26 -16
  399. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  400. package/fesm2015/ng-nest-ui-portal.mjs +16 -15
  401. package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
  402. package/fesm2015/ng-nest-ui-progress.mjs +235 -26
  403. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  404. package/fesm2015/ng-nest-ui-radio.mjs +12 -11
  405. package/fesm2015/ng-nest-ui-rate.mjs +12 -11
  406. package/fesm2015/ng-nest-ui-result.mjs +11 -11
  407. package/fesm2015/ng-nest-ui-ripple.mjs +11 -10
  408. package/fesm2015/ng-nest-ui-select.mjs +17 -17
  409. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  410. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
  411. package/fesm2015/ng-nest-ui-slider-select.mjs +12 -11
  412. package/fesm2015/ng-nest-ui-slider.mjs +11 -10
  413. package/fesm2015/ng-nest-ui-statistic.mjs +17 -16
  414. package/fesm2015/ng-nest-ui-steps.mjs +30 -18
  415. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  416. package/fesm2015/ng-nest-ui-switch.mjs +12 -11
  417. package/fesm2015/ng-nest-ui-table.mjs +32 -31
  418. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  419. package/fesm2015/ng-nest-ui-tabs.mjs +20 -19
  420. package/fesm2015/ng-nest-ui-tag.mjs +12 -11
  421. package/fesm2015/ng-nest-ui-text-retract.mjs +11 -10
  422. package/fesm2015/ng-nest-ui-textarea.mjs +12 -11
  423. package/fesm2015/ng-nest-ui-theme.mjs +11 -10
  424. package/fesm2015/ng-nest-ui-time-ago.mjs +8 -7
  425. package/fesm2015/ng-nest-ui-time-picker.mjs +48 -32
  426. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  427. package/fesm2015/ng-nest-ui-time-range.mjs +8 -7
  428. package/fesm2015/ng-nest-ui-timeline.mjs +11 -10
  429. package/fesm2015/ng-nest-ui-tooltip.mjs +15 -15
  430. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  431. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  432. package/fesm2015/ng-nest-ui-tree-file.mjs +12 -11
  433. package/fesm2015/ng-nest-ui-tree.mjs +17 -16
  434. package/fesm2015/ng-nest-ui-typography.mjs +11 -10
  435. package/fesm2015/ng-nest-ui-upload.mjs +14 -14
  436. package/fesm2020/ng-nest-ui-affix.mjs +10 -10
  437. package/fesm2020/ng-nest-ui-alert.mjs +18 -12
  438. package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
  439. package/fesm2020/ng-nest-ui-anchor.mjs +10 -10
  440. package/fesm2020/ng-nest-ui-api.mjs +7 -7
  441. package/fesm2020/ng-nest-ui-auto-complete.mjs +17 -17
  442. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  443. package/fesm2020/ng-nest-ui-avatar.mjs +11 -10
  444. package/fesm2020/ng-nest-ui-back-top.mjs +10 -10
  445. package/fesm2020/ng-nest-ui-badge.mjs +11 -10
  446. package/fesm2020/ng-nest-ui-base-form.mjs +11 -10
  447. package/fesm2020/ng-nest-ui-border.mjs +8 -7
  448. package/fesm2020/ng-nest-ui-button.mjs +18 -17
  449. package/fesm2020/ng-nest-ui-calendar.mjs +11 -10
  450. package/fesm2020/ng-nest-ui-card.mjs +12 -11
  451. package/fesm2020/ng-nest-ui-carousel.mjs +27 -25
  452. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  453. package/fesm2020/ng-nest-ui-cascade.mjs +17 -17
  454. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  455. package/fesm2020/ng-nest-ui-checkbox.mjs +12 -11
  456. package/fesm2020/ng-nest-ui-collapse.mjs +17 -16
  457. package/fesm2020/ng-nest-ui-color-picker.mjs +17 -17
  458. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  459. package/fesm2020/ng-nest-ui-color.mjs +11 -10
  460. package/fesm2020/ng-nest-ui-comment.mjs +17 -16
  461. package/fesm2020/ng-nest-ui-container.mjs +35 -34
  462. package/fesm2020/ng-nest-ui-core.mjs +16 -15
  463. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  464. package/fesm2020/ng-nest-ui-crumb.mjs +11 -10
  465. package/fesm2020/ng-nest-ui-date-picker.mjs +217 -82
  466. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  467. package/fesm2020/ng-nest-ui-description.mjs +17 -16
  468. package/fesm2020/ng-nest-ui-dialog.mjs +258 -35
  469. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  470. package/fesm2020/ng-nest-ui-doc.mjs +8 -8
  471. package/fesm2020/ng-nest-ui-drawer.mjs +331 -31
  472. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  473. package/fesm2020/ng-nest-ui-dropdown.mjs +14 -15
  474. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  475. package/fesm2020/ng-nest-ui-empty.mjs +11 -10
  476. package/fesm2020/ng-nest-ui-examples.mjs +7 -7
  477. package/fesm2020/ng-nest-ui-find.mjs +12 -11
  478. package/fesm2020/ng-nest-ui-form.mjs +17 -16
  479. package/fesm2020/ng-nest-ui-highlight.mjs +11 -10
  480. package/fesm2020/ng-nest-ui-i18n.mjs +14 -13
  481. package/fesm2020/ng-nest-ui-icon.mjs +14 -13
  482. package/fesm2020/ng-nest-ui-inner.mjs +10 -10
  483. package/fesm2020/ng-nest-ui-input-number.mjs +11 -10
  484. package/fesm2020/ng-nest-ui-input.mjs +21 -17
  485. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  486. package/fesm2020/ng-nest-ui-layout.mjs +17 -16
  487. package/fesm2020/ng-nest-ui-link.mjs +11 -10
  488. package/fesm2020/ng-nest-ui-list.mjs +17 -16
  489. package/fesm2020/ng-nest-ui-loading.mjs +11 -10
  490. package/fesm2020/ng-nest-ui-menu.mjs +17 -17
  491. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  492. package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
  493. package/fesm2020/ng-nest-ui-message.mjs +60 -27
  494. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  495. package/fesm2020/ng-nest-ui-notification.mjs +10 -10
  496. package/fesm2020/ng-nest-ui-outlet.mjs +8 -7
  497. package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
  498. package/fesm2020/ng-nest-ui-pagination.mjs +12 -11
  499. package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
  500. package/fesm2020/ng-nest-ui-popconfirm.mjs +42 -14
  501. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  502. package/fesm2020/ng-nest-ui-popover.mjs +26 -16
  503. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  504. package/fesm2020/ng-nest-ui-portal.mjs +16 -15
  505. package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
  506. package/fesm2020/ng-nest-ui-progress.mjs +234 -25
  507. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  508. package/fesm2020/ng-nest-ui-radio.mjs +12 -11
  509. package/fesm2020/ng-nest-ui-rate.mjs +12 -11
  510. package/fesm2020/ng-nest-ui-result.mjs +11 -11
  511. package/fesm2020/ng-nest-ui-ripple.mjs +11 -10
  512. package/fesm2020/ng-nest-ui-select.mjs +17 -17
  513. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  514. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
  515. package/fesm2020/ng-nest-ui-slider-select.mjs +12 -11
  516. package/fesm2020/ng-nest-ui-slider.mjs +11 -10
  517. package/fesm2020/ng-nest-ui-statistic.mjs +17 -16
  518. package/fesm2020/ng-nest-ui-steps.mjs +30 -18
  519. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  520. package/fesm2020/ng-nest-ui-switch.mjs +12 -11
  521. package/fesm2020/ng-nest-ui-table.mjs +32 -31
  522. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  523. package/fesm2020/ng-nest-ui-tabs.mjs +20 -19
  524. package/fesm2020/ng-nest-ui-tag.mjs +12 -11
  525. package/fesm2020/ng-nest-ui-text-retract.mjs +11 -10
  526. package/fesm2020/ng-nest-ui-textarea.mjs +12 -11
  527. package/fesm2020/ng-nest-ui-theme.mjs +11 -10
  528. package/fesm2020/ng-nest-ui-time-ago.mjs +8 -7
  529. package/fesm2020/ng-nest-ui-time-picker.mjs +48 -32
  530. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  531. package/fesm2020/ng-nest-ui-time-range.mjs +8 -7
  532. package/fesm2020/ng-nest-ui-timeline.mjs +11 -10
  533. package/fesm2020/ng-nest-ui-tooltip.mjs +15 -15
  534. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  535. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  536. package/fesm2020/ng-nest-ui-tree-file.mjs +12 -11
  537. package/fesm2020/ng-nest-ui-tree.mjs +17 -16
  538. package/fesm2020/ng-nest-ui-typography.mjs +11 -10
  539. package/fesm2020/ng-nest-ui-upload.mjs +14 -14
  540. package/layout/examples/en_US/default/flex/README.md +1 -1
  541. package/layout/examples/zh_CN/default/flex/README.md +1 -1
  542. package/message/examples/en_US/default/loading/README.md +6 -0
  543. package/message/examples/zh_CN/default/loading/README.md +6 -0
  544. package/message/message-ref.d.ts +8 -0
  545. package/message/message.component.d.ts +3 -3
  546. package/message/message.property.d.ts +24 -4
  547. package/message/message.service.d.ts +4 -1
  548. package/message/public-api.d.ts +1 -0
  549. package/package.json +7 -7
  550. package/popconfirm/examples/en_US/default/async-close/README.md +6 -0
  551. package/popconfirm/examples/en_US/default/condition/README.md +6 -0
  552. package/popconfirm/examples/zh_CN/default/async-close/README.md +6 -0
  553. package/popconfirm/examples/zh_CN/default/condition/README.md +6 -0
  554. package/popconfirm/popconfirm.component.d.ts +6 -2
  555. package/popconfirm/popconfirm.property.d.ts +13 -2
  556. package/popover/popover.property.d.ts +6 -1
  557. package/portal/portal.module.d.ts +1 -1
  558. package/portal/portal.service.d.ts +2 -3
  559. package/progress/examples/en_US/default/circle/README.md +6 -0
  560. package/progress/examples/en_US/default/dashboard/README.md +6 -0
  561. package/progress/examples/en_US/default/gradient/README.md +6 -0
  562. package/progress/examples/en_US/default/steps/README.md +6 -0
  563. package/progress/examples/en_US/default/subsection/README.md +6 -0
  564. package/progress/examples/zh_CN/default/circle/README.md +6 -0
  565. package/progress/examples/zh_CN/default/dashboard/README.md +6 -0
  566. package/progress/examples/zh_CN/default/gradient/README.md +6 -0
  567. package/progress/examples/zh_CN/default/steps/README.md +6 -0
  568. package/progress/examples/zh_CN/default/subsection/README.md +6 -0
  569. package/progress/progress.component.d.ts +31 -3
  570. package/progress/progress.property.d.ts +80 -5
  571. package/steps/examples/en_US/default/node-status/README.md +6 -0
  572. package/steps/examples/zh_CN/default/node-status/README.md +6 -0
  573. package/steps/steps.property.d.ts +7 -2
  574. package/style/core/index.scss +1 -0
  575. package/table/table.property.d.ts +1 -1
  576. package/time-picker/time-picker-frame.component.d.ts +1 -0
  577. package/time-picker/time-picker.component.d.ts +3 -1
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Optional, Inject, ViewChild, HostListener, Directive, TemplateRef, Injectable, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import * as i3 from '@ng-nest/ui/core';
5
- import { XProperty, XInputBoolean, XWithConfig, XIsChange, XIsEmpty, XSlideAnimation } from '@ng-nest/ui/core';
5
+ import { XProperty, XInputBoolean, XWithConfig, XIsChange, XClearClass, XIsEmpty, XSlideAnimation, fillDefault } from '@ng-nest/ui/core';
6
6
  import * as i1 from '@angular/cdk/overlay';
7
7
  import * as i2 from '@ng-nest/ui/portal';
8
8
  import { XPortalModule } from '@ng-nest/ui/portal';
@@ -12,6 +12,9 @@ import * as i5 from '@angular/common';
12
12
  import { CommonModule } from '@angular/common';
13
13
  import * as i6 from '@ng-nest/ui/outlet';
14
14
  import { XOutletModule } from '@ng-nest/ui/outlet';
15
+ import * as i1$1 from '@angular/cdk/portal';
16
+ import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
17
+ import { filter, take } from 'rxjs';
15
18
 
16
19
  /**
17
20
  * Drawer
@@ -19,7 +22,8 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
19
22
  * @decorator component
20
23
  */
21
24
  const XDrawerPrefix = 'x-drawer';
22
- const X_CONFIG_NAME = 'drawer';
25
+ const X_DRAWER_CONFIG_NAME = 'drawer';
26
+ const X_DRAWER_DATA = new InjectionToken('XDrawerData');
23
27
  /**
24
28
  * Drawer Property
25
29
  */
@@ -38,18 +42,27 @@ class XDrawerProperty extends XProperty {
38
42
  this.visibleChange = new EventEmitter();
39
43
  }
40
44
  }
41
- /** @nocollapse */ /** @nocollapse */ XDrawerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
- /** @nocollapse */ /** @nocollapse */ XDrawerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: XDrawerProperty, selector: "ng-component", inputs: { title: "title", visible: "visible", placement: "placement", size: "size" }, outputs: { close: "close", visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
45
+ /** @nocollapse */ /** @nocollapse */ XDrawerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
46
+ /** @nocollapse */ /** @nocollapse */ XDrawerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerProperty, selector: "ng-component", inputs: { title: "title", visible: "visible", placement: "placement", size: "size", backdropClose: "backdropClose", hasBackdrop: "hasBackdrop", className: "className" }, outputs: { close: "close", visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
43
47
  __decorate([
44
48
  XInputBoolean()
45
49
  ], XDrawerProperty.prototype, "visible", void 0);
46
50
  __decorate([
47
- XWithConfig(X_CONFIG_NAME, 'right')
51
+ XWithConfig(X_DRAWER_CONFIG_NAME, 'right')
48
52
  ], XDrawerProperty.prototype, "placement", void 0);
49
53
  __decorate([
50
- XWithConfig(X_CONFIG_NAME, '30%')
54
+ XWithConfig(X_DRAWER_CONFIG_NAME, '30%')
51
55
  ], XDrawerProperty.prototype, "size", void 0);
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerProperty, decorators: [{
56
+ __decorate([
57
+ XWithConfig(X_DRAWER_CONFIG_NAME, true)
58
+ ], XDrawerProperty.prototype, "backdropClose", void 0);
59
+ __decorate([
60
+ XWithConfig(X_DRAWER_CONFIG_NAME, true)
61
+ ], XDrawerProperty.prototype, "hasBackdrop", void 0);
62
+ __decorate([
63
+ XWithConfig(X_DRAWER_CONFIG_NAME, '')
64
+ ], XDrawerProperty.prototype, "className", void 0);
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerProperty, decorators: [{
53
66
  type: Component,
54
67
  args: [{ template: '' }]
55
68
  }], propDecorators: { title: [{
@@ -60,14 +73,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
60
73
  type: Input
61
74
  }], size: [{
62
75
  type: Input
76
+ }], backdropClose: [{
77
+ type: Input
78
+ }], hasBackdrop: [{
79
+ type: Input
80
+ }], className: [{
81
+ type: Input
63
82
  }], close: [{
64
83
  type: Output
65
84
  }], visibleChange: [{
66
85
  type: Output
86
+ }] } });
87
+ /**
88
+ * Drawer Container
89
+ * @selector x-drawer-container
90
+ * @decorator component
91
+ */
92
+ const XDrawerContainerPrefix = 'x-drawer-container';
93
+ const X_DRAWER_CONTAINER = new InjectionToken('X_DRAWER_CONTAINER');
94
+ /**
95
+ * Drawer Container Property
96
+ */
97
+ class XDrawerContainerProperty extends XProperty {
98
+ }
99
+ /** @nocollapse */ /** @nocollapse */ XDrawerContainerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
+ /** @nocollapse */ /** @nocollapse */ XDrawerContainerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerContainerProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContainerProperty, decorators: [{
102
+ type: Component,
103
+ args: [{ template: '' }]
104
+ }] });
105
+
106
+ class XDrawerContainerComponent extends XDrawerContainerProperty {
107
+ constructor() {
108
+ super();
109
+ this._has = true;
110
+ }
111
+ }
112
+ /** @nocollapse */ /** @nocollapse */ XDrawerContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ /** @nocollapse */ /** @nocollapse */ XDrawerContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerContainerComponent, selector: "x-drawer-container", host: { properties: { "class.x-drawer-container": "this._has" } }, providers: [
114
+ {
115
+ provide: X_DRAWER_CONTAINER,
116
+ useExisting: XDrawerContainerComponent
117
+ }
118
+ ], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-drawer-container{margin:0;padding:0;position:relative;z-index:1;box-sizing:border-box;display:block;overflow:hidden}.x-drawer-container .x-drawer{position:absolute;display:block;outline:0;z-index:2;transition:transform .2s ease-in,visibility .2s ease-in;visibility:hidden}.x-drawer-container .x-drawer-left{transform:translate(-100%);left:0;top:0}.x-drawer-container .x-drawer-right{transform:translate(100%);right:0;top:0}.x-drawer-container .x-drawer-top{transform:translateY(-100%);top:0;left:0}.x-drawer-container .x-drawer-bottom{transform:translateY(100%);bottom:0;left:0}.x-drawer-container .x-drawer-visible{transform:translate(0);visibility:inherit}.x-drawer-container .x-drawer-visible .x-drawer-backdrop{opacity:1;z-index:1}.x-drawer-container .x-drawer-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1;pointer-events:auto;background:rgba(0,0,0,.32);transition:opacity .4s cubic-bezier(.25,.8,.25,1),z-index 0 ease-in .4s;opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContainerComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'x-drawer-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
122
+ {
123
+ provide: X_DRAWER_CONTAINER,
124
+ useExisting: XDrawerContainerComponent
125
+ }
126
+ ], template: "<ng-content></ng-content>\r\n", styles: [".x-drawer-container{margin:0;padding:0;position:relative;z-index:1;box-sizing:border-box;display:block;overflow:hidden}.x-drawer-container .x-drawer{position:absolute;display:block;outline:0;z-index:2;transition:transform .2s ease-in,visibility .2s ease-in;visibility:hidden}.x-drawer-container .x-drawer-left{transform:translate(-100%);left:0;top:0}.x-drawer-container .x-drawer-right{transform:translate(100%);right:0;top:0}.x-drawer-container .x-drawer-top{transform:translateY(-100%);top:0;left:0}.x-drawer-container .x-drawer-bottom{transform:translateY(100%);bottom:0;left:0}.x-drawer-container .x-drawer-visible{transform:translate(0);visibility:inherit}.x-drawer-container .x-drawer-visible .x-drawer-backdrop{opacity:1;z-index:1}.x-drawer-container .x-drawer-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1;pointer-events:auto;background:rgba(0,0,0,.32);transition:opacity .4s cubic-bezier(.25,.8,.25,1),z-index 0 ease-in .4s;opacity:0}\n"] }]
127
+ }], ctorParameters: function () { return []; }, propDecorators: { _has: [{
128
+ type: HostBinding,
129
+ args: ['class.x-drawer-container']
67
130
  }] } });
68
131
 
69
132
  class XDrawerComponent extends XDrawerProperty {
70
- constructor(renderer, elementRef, cdr, overlay, portalService, viewContainerRef, configService) {
133
+ constructor(renderer, elementRef, cdr, overlay, portalService, viewContainerRef, configService, container) {
71
134
  super();
72
135
  this.renderer = renderer;
73
136
  this.elementRef = elementRef;
@@ -76,14 +139,25 @@ class XDrawerComponent extends XDrawerProperty {
76
139
  this.portalService = portalService;
77
140
  this.viewContainerRef = viewContainerRef;
78
141
  this.configService = configService;
142
+ this.container = container;
79
143
  this.back$ = null;
144
+ this.width = '100%';
145
+ this.height = '100%';
146
+ }
147
+ get getVisible() {
148
+ return this.visible;
80
149
  }
81
150
  ngOnInit() {
82
151
  this.setClassMap();
152
+ this.setSize();
83
153
  }
84
154
  ngOnChanges(simples) {
85
- const { visible } = simples;
155
+ const { visible, placement } = simples;
86
156
  XIsChange(visible) && this.setVisible();
157
+ if (XIsChange(placement)) {
158
+ this.setClassMap();
159
+ this.setSize();
160
+ }
87
161
  }
88
162
  ngOnDestroy() {
89
163
  this.unsubscribe();
@@ -93,11 +167,22 @@ class XDrawerComponent extends XDrawerProperty {
93
167
  (_a = this.back$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
94
168
  }
95
169
  setClassMap() {
170
+ XClearClass(this.classMap);
96
171
  this.classMap = {
97
172
  [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),
98
173
  [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)
99
174
  };
100
175
  }
176
+ setSize() {
177
+ if (this.container)
178
+ [this.width, this.height] = this.getSize();
179
+ }
180
+ getSize() {
181
+ return [
182
+ this.placement === 'left' || this.placement === 'right' ? this.size : '100%',
183
+ this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%'
184
+ ];
185
+ }
101
186
  setVisible() {
102
187
  if (this.visible) {
103
188
  this.createPortal();
@@ -107,14 +192,15 @@ class XDrawerComponent extends XDrawerProperty {
107
192
  }
108
193
  }
109
194
  createPortal() {
110
- const width = this.placement === 'left' || this.placement === 'right' ? this.size : '100%';
111
- const height = this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%';
195
+ if (this.container)
196
+ return;
197
+ const [width, height] = this.getSize();
112
198
  this.portal = this.portalService.attach({
113
199
  content: this.drawerTpl,
114
200
  viewContainerRef: this.viewContainerRef,
115
201
  overlayConfig: {
116
202
  hasBackdrop: true,
117
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
203
+ scrollStrategy: this.overlay.scrollStrategies.block(),
118
204
  positionStrategy: this.portalService.setPosition(this.placement, width, height)
119
205
  }
120
206
  });
@@ -127,37 +213,254 @@ class XDrawerComponent extends XDrawerProperty {
127
213
  }
128
214
  closePortal() {
129
215
  var _a, _b;
130
- if (this.portalAttached()) {
131
- (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
132
- this.unsubscribe();
216
+ if (this.container) {
133
217
  this.visibleChange.emit(this.visible);
134
218
  this.close.emit();
135
- return true;
136
219
  }
137
- return false;
220
+ else {
221
+ if (this.portalAttached()) {
222
+ (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
223
+ this.unsubscribe();
224
+ this.visibleChange.emit(this.visible);
225
+ this.close.emit();
226
+ }
227
+ }
138
228
  }
139
229
  }
140
- /** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
141
- /** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: XDrawerComponent, selector: "x-drawer", viewQueries: [{ propertyName: "drawerTpl", first: true, predicate: ["drawerTpl"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\" [@x-slide-animation]=\"placement\">\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-drawer{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:.5rem 1rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.25rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem .5rem;height:calc(100% - 2.5rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"], components: [{ type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XSlideAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerComponent, decorators: [{
230
+ /** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XConfigService }, { token: X_DRAWER_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
231
+ /** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerComponent, selector: "x-drawer", host: { properties: { "class.x-drawer-visible": "this.getVisible" } }, viewQueries: [{ propertyName: "drawerTpl", first: true, predicate: ["drawerTpl"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-drawer{margin:0;padding:0;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:1rem 1rem .5rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.425rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem 1rem;height:calc(100% - 3rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"], components: [{ type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [XSlideAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerComponent, decorators: [{
143
233
  type: Component,
144
- args: [{ selector: `${XDrawerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\" [@x-slide-animation]=\"placement\">\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-drawer{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:.5rem 1rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.25rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem .5rem;height:calc(100% - 2.5rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"] }]
145
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.XPortalService }, { type: i0.ViewContainerRef }, { type: i3.XConfigService }]; }, propDecorators: { drawerTpl: [{
234
+ args: [{ selector: `${XDrawerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-drawer{margin:0;padding:0;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:1rem 1rem .5rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.425rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem 1rem;height:calc(100% - 3rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"] }]
235
+ }], ctorParameters: function () {
236
+ return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.XPortalService }, { type: i0.ViewContainerRef }, { type: i3.XConfigService }, { type: XDrawerContainerComponent, decorators: [{
237
+ type: Optional
238
+ }, {
239
+ type: Inject,
240
+ args: [X_DRAWER_CONTAINER]
241
+ }] }];
242
+ }, propDecorators: { getVisible: [{
243
+ type: HostBinding,
244
+ args: ['class.x-drawer-visible']
245
+ }], drawerTpl: [{
146
246
  type: ViewChild,
147
247
  args: ['drawerTpl', { static: true }]
148
248
  }] } });
149
249
 
250
+ class XDrawerPortalComponent extends BasePortalOutlet {
251
+ constructor() {
252
+ super();
253
+ this._has = true;
254
+ this.animationChanged = new EventEmitter();
255
+ }
256
+ done({ toState, totalTime }) {
257
+ this.animationChanged.next({ action: 'done', state: toState, totalTime });
258
+ }
259
+ start({ toState, totalTime }) {
260
+ this.animationChanged.next({ action: 'start', state: toState, totalTime });
261
+ }
262
+ attachComponentPortal(portal) {
263
+ if (this.portalOutlet.hasAttached()) {
264
+ throw Error('drawer portal has attached');
265
+ }
266
+ return this.portalOutlet.attachComponentPortal(portal);
267
+ }
268
+ attachTemplatePortal(portal) {
269
+ if (this.portalOutlet.hasAttached()) {
270
+ throw Error('drawer portal has attached');
271
+ }
272
+ return this.portalOutlet.attachTemplatePortal(portal);
273
+ }
274
+ }
275
+ /** @nocollapse */ /** @nocollapse */ XDrawerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
276
+ /** @nocollapse */ /** @nocollapse */ XDrawerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerPortalComponent, selector: "x-drawer-portal", host: { listeners: { "@x-slide-animation.done": "done($event)", "@x-slide-animation.start": "start($event)" }, properties: { "class.x-drawer-portal": "this._has", "@x-slide-animation": "this.placement" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: [".x-drawer-portal{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto;padding:1rem}.x-drawer-portal-title{display:block;margin:0 0 .5rem;font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-portal-content{display:block;margin:0 -1rem;padding:0 1rem;overflow:auto}\n"], directives: [{ type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [XSlideAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerPortalComponent, decorators: [{
278
+ type: Component,
279
+ args: [{ selector: 'x-drawer-portal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: [".x-drawer-portal{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto;padding:1rem}.x-drawer-portal-title{display:block;margin:0 0 .5rem;font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-portal-content{display:block;margin:0 -1rem;padding:0 1rem;overflow:auto}\n"] }]
280
+ }], ctorParameters: function () { return []; }, propDecorators: { _has: [{
281
+ type: HostBinding,
282
+ args: ['class.x-drawer-portal']
283
+ }], placement: [{
284
+ type: HostBinding,
285
+ args: ['@x-slide-animation']
286
+ }], done: [{
287
+ type: HostListener,
288
+ args: ['@x-slide-animation.done', ['$event']]
289
+ }], start: [{
290
+ type: HostListener,
291
+ args: ['@x-slide-animation.start', ['$event']]
292
+ }], portalOutlet: [{
293
+ type: ViewChild,
294
+ args: [CdkPortalOutlet, { static: true }]
295
+ }] } });
296
+
297
+ // TODO: add more function
298
+ class XDrawerRef {
299
+ constructor(overlayRef, containerInstance) {
300
+ this.overlayRef = overlayRef;
301
+ this.containerInstance = containerInstance;
302
+ }
303
+ close() {
304
+ this.containerInstance.animationChanged
305
+ .pipe(filter((event) => event.state === 'void' && event.action === 'done'), take(1))
306
+ .subscribe(() => {
307
+ this.overlayRef.detach();
308
+ });
309
+ this.containerInstance.placement = 'void';
310
+ }
311
+ }
312
+
313
+ class XDrawerCloseDirective {
314
+ constructor(drawerRef) {
315
+ this.drawerRef = drawerRef;
316
+ }
317
+ onCloseClick() {
318
+ this.drawerRef && this.drawerRef.close();
319
+ }
320
+ }
321
+ /** @nocollapse */ /** @nocollapse */ XDrawerCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerCloseDirective, deps: [{ token: XDrawerRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
322
+ /** @nocollapse */ /** @nocollapse */ XDrawerCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerCloseDirective, selector: "[x-drawer-close]", host: { listeners: { "click": "onCloseClick($event)" } }, ngImport: i0 });
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerCloseDirective, decorators: [{
324
+ type: Directive,
325
+ args: [{
326
+ selector: `[x-drawer-close]`
327
+ }]
328
+ }], ctorParameters: function () {
329
+ return [{ type: XDrawerRef, decorators: [{
330
+ type: Optional
331
+ }] }];
332
+ }, propDecorators: { onCloseClick: [{
333
+ type: HostListener,
334
+ args: ['click', ['$event']]
335
+ }] } });
336
+ class XDrawerTitleDirective {
337
+ constructor() {
338
+ this._has = true;
339
+ }
340
+ }
341
+ /** @nocollapse */ /** @nocollapse */ XDrawerTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
342
+ /** @nocollapse */ /** @nocollapse */ XDrawerTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerTitleDirective, selector: "[x-drawer-title]", host: { properties: { "class.x-drawer-portal-title": "this._has" } }, ngImport: i0 });
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerTitleDirective, decorators: [{
344
+ type: Directive,
345
+ args: [{
346
+ selector: `[x-drawer-title]`
347
+ }]
348
+ }], propDecorators: { _has: [{
349
+ type: HostBinding,
350
+ args: ['class.x-drawer-portal-title']
351
+ }] } });
352
+ class XDrawerContentDirective {
353
+ constructor() {
354
+ this._has = true;
355
+ }
356
+ }
357
+ /** @nocollapse */ /** @nocollapse */ XDrawerContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
358
+ /** @nocollapse */ /** @nocollapse */ XDrawerContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: XDrawerContentDirective, selector: "[x-drawer-content], x-drawer-content", host: { properties: { "class.x-drawer-portal-content": "this._has" } }, ngImport: i0 });
359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerContentDirective, decorators: [{
360
+ type: Directive,
361
+ args: [{
362
+ selector: `[x-drawer-content], x-drawer-content`
363
+ }]
364
+ }], propDecorators: { _has: [{
365
+ type: HostBinding,
366
+ args: ['class.x-drawer-portal-content']
367
+ }] } });
368
+
369
+ class XDrawerService {
370
+ constructor(portalService, configService, overlay) {
371
+ this.portalService = portalService;
372
+ this.configService = configService;
373
+ this.overlay = overlay;
374
+ this.default = {
375
+ placement: 'right',
376
+ size: '30%',
377
+ hasBackdrop: true,
378
+ backdropClose: true
379
+ };
380
+ this.configDefault = this.configService.getConfigForComponent(X_DRAWER_CONFIG_NAME);
381
+ Object.assign(this.default, this.configDefault);
382
+ }
383
+ create(content, option = {}) {
384
+ fillDefault(option, this.default);
385
+ const width = ['left', 'right'].includes(option.placement) ? option.size : '100%';
386
+ const height = ['top', 'bottom'].includes(option.placement) ? option.size : '100%';
387
+ const portal = this.portalService.attach({
388
+ content: XDrawerPortalComponent,
389
+ viewContainerRef: option.viewContainerRef,
390
+ overlayConfig: {
391
+ hasBackdrop: option.hasBackdrop,
392
+ panelClass: option.className,
393
+ scrollStrategy: this.overlay.scrollStrategies.block(),
394
+ positionStrategy: this.portalService.setPosition(option.placement, width, height)
395
+ }
396
+ });
397
+ const { overlayRef, componentRef } = portal || {};
398
+ const { instance } = componentRef || {};
399
+ instance.placement = option.placement;
400
+ const drawerRef = new XDrawerRef(overlayRef, instance);
401
+ if (content instanceof TemplateRef) {
402
+ instance.attachTemplatePortal(new TemplatePortal(content, option.viewContainerRef, { $implicit: option.data, drawerRef: drawerRef }));
403
+ }
404
+ else {
405
+ const injector = this.portalService.createInjector([
406
+ { provide: X_DRAWER_DATA, useValue: option.data },
407
+ { provide: XDrawerRef, useValue: drawerRef }
408
+ ]);
409
+ instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));
410
+ }
411
+ if (option.hasBackdrop && option.backdropClose && overlayRef)
412
+ overlayRef.backdropClick().subscribe(() => {
413
+ drawerRef.close();
414
+ });
415
+ return drawerRef;
416
+ }
417
+ }
418
+ /** @nocollapse */ /** @nocollapse */ XDrawerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerService, deps: [{ token: i2.XPortalService }, { token: i3.XConfigService }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
419
+ /** @nocollapse */ /** @nocollapse */ XDrawerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerService });
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerService, decorators: [{
421
+ type: Injectable
422
+ }], ctorParameters: function () { return [{ type: i2.XPortalService }, { type: i3.XConfigService }, { type: i1.Overlay }]; } });
423
+
150
424
  class XDrawerModule {
151
425
  }
152
- /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
- /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerModule, declarations: [XDrawerComponent, XDrawerProperty], imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule], exports: [XDrawerComponent] });
154
- /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerModule, imports: [[CommonModule, XOutletModule, XButtonModule, XPortalModule]] });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: XDrawerModule, decorators: [{
426
+ /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
427
+ /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerModule, declarations: [XDrawerComponent,
428
+ XDrawerCloseDirective,
429
+ XDrawerTitleDirective,
430
+ XDrawerContentDirective,
431
+ XDrawerPortalComponent,
432
+ XDrawerContainerComponent,
433
+ XDrawerProperty,
434
+ XDrawerContainerProperty], imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule], exports: [XDrawerComponent,
435
+ XDrawerCloseDirective,
436
+ XDrawerTitleDirective,
437
+ XDrawerContentDirective,
438
+ XDrawerPortalComponent,
439
+ XDrawerContainerComponent] });
440
+ /** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerModule, providers: [XDrawerService], imports: [[CommonModule, XOutletModule, XButtonModule, XPortalModule]] });
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: XDrawerModule, decorators: [{
156
442
  type: NgModule,
157
443
  args: [{
158
- declarations: [XDrawerComponent, XDrawerProperty],
159
- exports: [XDrawerComponent],
160
- imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule]
444
+ declarations: [
445
+ XDrawerComponent,
446
+ XDrawerCloseDirective,
447
+ XDrawerTitleDirective,
448
+ XDrawerContentDirective,
449
+ XDrawerPortalComponent,
450
+ XDrawerContainerComponent,
451
+ XDrawerProperty,
452
+ XDrawerContainerProperty
453
+ ],
454
+ exports: [
455
+ XDrawerComponent,
456
+ XDrawerCloseDirective,
457
+ XDrawerTitleDirective,
458
+ XDrawerContentDirective,
459
+ XDrawerPortalComponent,
460
+ XDrawerContainerComponent
461
+ ],
462
+ imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule],
463
+ providers: [XDrawerService]
161
464
  }]
162
465
  }] });
163
466
 
@@ -165,4 +468,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
165
468
  * Generated bundle index. Do not edit.
166
469
  */
167
470
 
168
- export { XDrawerComponent, XDrawerModule, XDrawerPrefix, XDrawerProperty };
471
+ export { XDrawerCloseDirective, XDrawerComponent, XDrawerContainerComponent, XDrawerContainerPrefix, XDrawerContainerProperty, XDrawerContentDirective, XDrawerModule, XDrawerPortalComponent, XDrawerPrefix, XDrawerProperty, XDrawerRef, XDrawerService, XDrawerTitleDirective, X_DRAWER_CONFIG_NAME, X_DRAWER_CONTAINER, X_DRAWER_DATA };
472
+ //# sourceMappingURL=ng-nest-ui-drawer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-drawer.mjs","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.html","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nconst X_CONFIG_NAME = 'drawer';\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n */\r\n @Input() @XWithConfig<XPosition>(X_CONFIG_NAME, 'right') placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '30%') size?: string;\r\n /**\r\n * @zh_CN 关闭的事件\r\n * @en_US Closed event\r\n */\r\n @Output() close = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏的事件\r\n * @en_US Show/hide event\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { XDrawerPrefix, XDrawerProperty } from './drawer.property';\r\nimport { XIsChange, XIsEmpty, XSlideAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDrawerPrefix}`,\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerComponent extends XDrawerProperty implements OnInit, OnChanges {\r\n @ViewChild('drawerTpl', { static: true }) drawerTpl!: TemplateRef<void>;\r\n portal!: XPortalOverlayRef<any>;\r\n back$: Subscription | null = null;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public overlay: Overlay,\r\n public portalService: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { visible } = simples;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.back$?.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),\r\n [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)\r\n };\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n const width = this.placement === 'left' || this.placement === 'right' ? this.size : '100%';\r\n const height = this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%';\r\n this.portal = this.portalService.attach({\r\n content: this.drawerTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n positionStrategy: this.portalService.setPosition(this.placement, width, height)\r\n }\r\n });\r\n if (this.portal.overlayRef) this.back$ = this.portal.overlayRef.backdropClick().subscribe(() => this.closePortal());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.unsubscribe();\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\" [@x-slide-animation]=\"placement\">\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDrawerComponent } from './drawer.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XDrawerProperty } from './drawer.property';\r\n\r\n@NgModule({\r\n declarations: [XDrawerComponent, XDrawerProperty],\r\n exports: [XDrawerComponent],\r\n imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule]\r\n})\r\nexport class XDrawerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-drawer.mjs","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.component.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.component.html","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.html","../../../../lib/ng-nest/ui/drawer/drawer-portal.component.ts","../../../../lib/ng-nest/ui/drawer/drawer-portal.component.html","../../../../lib/ng-nest/ui/drawer/drawer-ref.ts","../../../../lib/ng-nest/ui/drawer/drawer-portal.directives.ts","../../../../lib/ng-nest/ui/drawer/drawer.service.ts","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, InjectionToken, ViewContainerRef } from '@angular/core';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDrawerRef } from './drawer-ref';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nexport const X_DRAWER_CONFIG_NAME = 'drawer';\r\nexport const X_DRAWER_DATA = new InjectionToken<any>('XDrawerData');\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n */\r\n @Input() @XWithConfig<XPosition>(X_DRAWER_CONFIG_NAME, 'right') placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '30%') size?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 关闭的事件\r\n * @en_US Closed event\r\n */\r\n @Output() close = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏的事件\r\n * @en_US Show/hide event\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n}\r\n\r\n/**\r\n * Drawer Option\r\n */\r\nexport interface XDrawerOption {\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n * @default 'right'\r\n * @withConfig true\r\n */\r\n placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n * @default '30%'\r\n * @withConfig true\r\n */\r\n size?: string;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default true\r\n * @withConfig true\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n * @default true\r\n * @withConfig true\r\n */\r\n hasBackdrop?: boolean;\r\n /**\r\n * @zh_CN 数据,通过 \"@Inject(X_DRAWER_DATA)\" 来接收数据\r\n * @en_US Data. Receive data by \"@Inject(X_DRAWER_DATA)\"\r\n */\r\n data?: any;\r\n /**\r\n * @en_US 视图容器实例可以包含其他视图容器。\r\n * @en_US A view container instance can contain other view containers.\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n}\r\n\r\n/**\r\n * Drawer Container\r\n * @selector x-drawer-container\r\n * @decorator component\r\n */\r\n export const XDrawerContainerPrefix = 'x-drawer-container';\r\n export const X_DRAWER_CONTAINER = new InjectionToken('X_DRAWER_CONTAINER');\r\n\r\n/**\r\n * Drawer Container Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerContainerProperty extends XProperty {}\r\n\r\n/**\r\n * @zh_CN 创建的抽屉对象\r\n * @en_US Drawer object created\r\n */\r\nexport interface XDrawerPortalOverlayRef extends XPortalOverlayRef<XDrawerPortalComponent> {\r\n drawerRef?: XDrawerRef<any>;\r\n}\r\n\r\nexport type XDrawerAnimationState = XPosition | 'void';\r\n\r\nexport interface XDrawerAnimationEvent {\r\n state: XDrawerAnimationState;\r\n action: 'start' | 'done';\r\n totalTime: number;\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\r\nimport { XDrawerContainerProperty, X_DRAWER_CONTAINER } from './drawer.property';\r\n\r\n@Component({\r\n selector: 'x-drawer-container',\r\n templateUrl: './drawer-container.component.html',\r\n styleUrls: ['./drawer-container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: X_DRAWER_CONTAINER,\r\n useExisting: XDrawerContainerComponent\r\n }\r\n ]\r\n})\r\nexport class XDrawerContainerComponent extends XDrawerContainerProperty {\r\n @HostBinding('class.x-drawer-container') _has = true;\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n Optional,\r\n Inject,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { XDrawerPrefix, XDrawerProperty, X_DRAWER_CONTAINER } from './drawer.property';\r\nimport { XIsChange, XIsEmpty, XSlideAnimation, XConfigService, XClearClass } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\n\r\n@Component({\r\n selector: `${XDrawerPrefix}`,\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerComponent extends XDrawerProperty implements OnInit, OnChanges {\r\n @HostBinding('class.x-drawer-visible') get getVisible() {\r\n return this.visible;\r\n }\r\n @ViewChild('drawerTpl', { static: true }) drawerTpl!: TemplateRef<void>;\r\n portal!: XPortalOverlayRef<any>;\r\n back$: Subscription | null = null;\r\n width = '100%';\r\n height = '100%';\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public overlay: Overlay,\r\n public portalService: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService,\r\n @Optional() @Inject(X_DRAWER_CONTAINER) public container?: XDrawerContainerComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setSize();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { visible, placement } = simples;\r\n XIsChange(visible) && this.setVisible();\r\n if (XIsChange(placement)) {\r\n this.setClassMap();\r\n this.setSize();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.back$?.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap);\r\n this.classMap = {\r\n [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),\r\n [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)\r\n };\r\n }\r\n\r\n setSize() {\r\n if (this.container) [this.width, this.height] = this.getSize();\r\n }\r\n\r\n getSize(): string[] {\r\n return [\r\n this.placement === 'left' || this.placement === 'right' ? this.size! : '100%',\r\n this.placement === 'top' || this.placement === 'bottom' ? this.size! : '100%'\r\n ];\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n if (this.container) return;\r\n const [width, height] = this.getSize();\r\n this.portal = this.portalService.attach({\r\n content: this.drawerTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy: this.portalService.setPosition(this.placement, width, height)\r\n }\r\n });\r\n if (this.portal.overlayRef) this.back$ = this.portal.overlayRef.backdropClick().subscribe(() => this.closePortal());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.container) {\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n } else {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.unsubscribe();\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n","import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XSlideAnimation } from '@ng-nest/ui/core';\r\nimport { XDrawerAnimationEvent, XDrawerAnimationState } from './drawer.property';\r\nimport { AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'x-drawer-portal',\r\n templateUrl: './drawer-portal.component.html',\r\n styleUrls: ['./drawer-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerPortalComponent extends BasePortalOutlet {\r\n @HostBinding('class.x-drawer-portal') _has = true;\r\n @HostBinding('@x-slide-animation') public placement?: XDrawerAnimationState;\r\n @HostListener('@x-slide-animation.done', ['$event']) done({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'done', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @HostListener('@x-slide-animation.start', ['$event']) start({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'start', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet!: CdkPortalOutlet;\r\n\r\n animationChanged = new EventEmitter<XDrawerAnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachComponentPortal(portal);\r\n }\r\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachTemplatePortal(portal);\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { filter, take } from 'rxjs';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\n\r\n// TODO: add more function\r\nexport class XDrawerRef<C> {\r\n componentInstance!: C;\r\n constructor(public overlayRef: OverlayRef, public containerInstance: XDrawerPortalComponent) {}\r\n close() {\r\n this.containerInstance.animationChanged\r\n .pipe(\r\n filter((event) => event.state === 'void' && event.action === 'done'),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n this.containerInstance.placement = 'void';\r\n }\r\n}\r\n","import { Directive, HostBinding, HostListener, Optional } from '@angular/core';\r\nimport { XDrawerRef } from './drawer-ref';\r\n\r\n@Directive({\r\n selector: `[x-drawer-close]`\r\n})\r\nexport class XDrawerCloseDirective {\r\n @HostListener('click', ['$event']) onCloseClick() {\r\n this.drawerRef && this.drawerRef.close();\r\n }\r\n constructor(@Optional() public drawerRef: XDrawerRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-title]`\r\n})\r\nexport class XDrawerTitleDirective {\r\n @HostBinding('class.x-drawer-portal-title') _has = true;\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-content], x-drawer-content`\r\n})\r\nexport class XDrawerContentDirective {\r\n @HostBinding('class.x-drawer-portal-content') _has = true;\r\n}\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\r\nimport { Injectable, TemplateRef } from '@angular/core';\r\nimport { fillDefault, XConfigService, XDrawerConfig } from '@ng-nest/ui/core';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\nimport { XDrawerRef } from './drawer-ref';\r\nimport { XDrawerOption, X_DRAWER_CONFIG_NAME, X_DRAWER_DATA } from './drawer.property';\r\n\r\n@Injectable()\r\nexport class XDrawerService {\r\n default: XDrawerOption = {\r\n placement: 'right',\r\n size: '30%',\r\n hasBackdrop: true,\r\n backdropClose: true\r\n };\r\n configDefault?: XDrawerConfig;\r\n\r\n constructor(public portalService: XPortalService, public configService: XConfigService, public overlay: Overlay) {\r\n this.configDefault = this.configService.getConfigForComponent(X_DRAWER_CONFIG_NAME);\r\n Object.assign(this.default, this.configDefault);\r\n }\r\n\r\n create<T>(content: TemplateRef<any> | ComponentType<T>, option: XDrawerOption = {}): XDrawerRef<T> {\r\n fillDefault(option, this.default);\r\n const width = ['left', 'right'].includes(option.placement as string) ? option.size : '100%';\r\n const height = ['top', 'bottom'].includes(option.placement as string) ? option.size : '100%';\r\n const portal = this.portalService.attach<XDrawerPortalComponent>({\r\n content: XDrawerPortalComponent,\r\n viewContainerRef: option.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: option.hasBackdrop,\r\n panelClass: option.className,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy: this.portalService.setPosition(option.placement, width, height)\r\n }\r\n });\r\n const { overlayRef, componentRef } = portal || {};\r\n const { instance } = componentRef! || {};\r\n instance.placement = option.placement;\r\n const drawerRef = new XDrawerRef<T>(overlayRef!, instance);\r\n if (content instanceof TemplateRef) {\r\n instance.attachTemplatePortal(\r\n new TemplatePortal(content, option.viewContainerRef!, { $implicit: option.data, drawerRef: drawerRef })\r\n );\r\n } else {\r\n const injector = this.portalService.createInjector([\r\n { provide: X_DRAWER_DATA, useValue: option.data },\r\n { provide: XDrawerRef, useValue: drawerRef }\r\n ]);\r\n\r\n instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));\r\n }\r\n if (option.hasBackdrop && option.backdropClose && overlayRef)\r\n overlayRef.backdropClick().subscribe(() => {\r\n drawerRef.close();\r\n });\r\n\r\n return drawerRef;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDrawerComponent } from './drawer.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XDrawerContainerProperty, XDrawerProperty } from './drawer.property';\r\nimport { XDrawerService } from './drawer.service';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\nimport { XDrawerCloseDirective, XDrawerContentDirective, XDrawerTitleDirective } from './drawer-portal.directives';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDrawerComponent,\r\n XDrawerCloseDirective,\r\n XDrawerTitleDirective,\r\n XDrawerContentDirective,\r\n XDrawerPortalComponent,\r\n XDrawerContainerComponent,\r\n XDrawerProperty,\r\n XDrawerContainerProperty\r\n ],\r\n exports: [\r\n XDrawerComponent,\r\n XDrawerCloseDirective,\r\n XDrawerTitleDirective,\r\n XDrawerContentDirective,\r\n XDrawerPortalComponent,\r\n XDrawerContainerComponent\r\n ],\r\n imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule],\r\n providers: [XDrawerService]\r\n})\r\nexport class XDrawerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}