@mintplayer/ng-bootstrap 15.23.2 → 15.23.4

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 (376) hide show
  1. package/dock/src/dock/dock.component.d.ts +1 -3
  2. package/dock/src/dock-pane-renderer/dock-pane-renderer.component.d.ts +6 -1
  3. package/dock/src/dock-panel/dock-panel.component.d.ts +0 -1
  4. package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +9 -5
  5. package/dock/src/interfaces/drag-operation.d.ts +6 -0
  6. package/dock/src/interfaces/index.d.ts +2 -0
  7. package/dock/src/interfaces/remove-from-pane-result.d.ts +6 -0
  8. package/dock/src/panes/document-host-pane.d.ts +2 -1
  9. package/esm2020/accordion/src/accordion/accordion.component.mjs +3 -3
  10. package/esm2020/accordion/src/accordion-tab/accordion-tab.component.mjs +3 -3
  11. package/esm2020/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +3 -3
  12. package/esm2020/accordion/src/accordion.module.mjs +4 -4
  13. package/esm2020/alert/src/alert/alert.component.mjs +3 -3
  14. package/esm2020/alert/src/alert-close/alert-close.component.mjs +3 -3
  15. package/esm2020/alert/src/alert.module.mjs +4 -4
  16. package/esm2020/badge/src/badge.component.mjs +3 -3
  17. package/esm2020/badge/src/badge.module.mjs +4 -4
  18. package/esm2020/breadcrumb/src/breadcrumb/breadcrumb.component.mjs +3 -3
  19. package/esm2020/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  20. package/esm2020/breadcrumb/src/breadcrumb.module.mjs +4 -4
  21. package/esm2020/button-group/src/button-group/button-group.component.mjs +3 -3
  22. package/esm2020/button-group/src/button-group.module.mjs +4 -4
  23. package/esm2020/button-type/src/button-type/button-type.directive.mjs +3 -3
  24. package/esm2020/button-type/src/button-type/button-type.module.mjs +4 -4
  25. package/esm2020/calendar/src/calendar.component.mjs +3 -3
  26. package/esm2020/calendar/src/calendar.module.mjs +4 -4
  27. package/esm2020/calendar-month/src/pipes/month-name/month-name.module.mjs +4 -4
  28. package/esm2020/calendar-month/src/pipes/month-name/month-name.pipe.mjs +3 -3
  29. package/esm2020/calendar-month/src/pipes/weekday-name/weekday-name.module.mjs +4 -4
  30. package/esm2020/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +3 -3
  31. package/esm2020/calendar-month/src/service/calendar-month.service.mjs +3 -3
  32. package/esm2020/card/src/card/card.component.mjs +3 -3
  33. package/esm2020/card/src/card-header/card-header.component.mjs +3 -3
  34. package/esm2020/card/src/card.module.mjs +4 -4
  35. package/esm2020/carousel/src/carousel/carousel.component.mjs +3 -3
  36. package/esm2020/carousel/src/carousel-image/carousel-image.directive.mjs +3 -3
  37. package/esm2020/carousel/src/carousel.module.mjs +4 -4
  38. package/esm2020/close/src/close.component.mjs +3 -3
  39. package/esm2020/close/src/close.module.mjs +4 -4
  40. package/esm2020/code-snippet/src/code-snippet.component.mjs +3 -3
  41. package/esm2020/code-snippet/src/code-snippet.module.mjs +4 -4
  42. package/esm2020/context-menu/src/context-menu.directive.mjs +3 -3
  43. package/esm2020/context-menu/src/context-menu.module.mjs +4 -4
  44. package/esm2020/copy/src/copy.directive.mjs +3 -3
  45. package/esm2020/copy/src/copy.module.mjs +4 -4
  46. package/esm2020/datatable/src/datatable/datatable.component.mjs +3 -3
  47. package/esm2020/datatable/src/datatable-column/datatable-column.directive.mjs +3 -3
  48. package/esm2020/datatable/src/datatable.module.mjs +4 -4
  49. package/esm2020/datatable/src/row-template/row-template.directive.mjs +3 -3
  50. package/esm2020/datepicker/src/datepicker.component.mjs +3 -3
  51. package/esm2020/datepicker/src/datepicker.module.mjs +4 -4
  52. package/esm2020/dock/src/dock/dock.component.mjs +11 -17
  53. package/esm2020/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +29 -30
  54. package/esm2020/dock/src/dock-panel/dock-panel.component.mjs +5 -7
  55. package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +126 -30
  56. package/esm2020/dock/src/dock.module.mjs +4 -4
  57. package/esm2020/dock/src/interfaces/drag-operation.mjs +2 -0
  58. package/esm2020/dock/src/interfaces/index.mjs +3 -1
  59. package/esm2020/dock/src/interfaces/remove-from-pane-result.mjs +2 -0
  60. package/esm2020/dock/src/panes/document-host-pane.mjs +1 -1
  61. package/esm2020/dropdown/src/dropdown/dropdown.directive.mjs +3 -3
  62. package/esm2020/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +3 -3
  63. package/esm2020/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  64. package/esm2020/dropdown/src/dropdown.module.mjs +4 -4
  65. package/esm2020/dropdown-divider/src/dropdown-divider.directive.mjs +3 -3
  66. package/esm2020/dropdown-divider/src/dropdown-divider.module.mjs +4 -4
  67. package/esm2020/dropdown-menu/src/dropdown-item/dropdown-item.component.mjs +3 -3
  68. package/esm2020/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +3 -3
  69. package/esm2020/dropdown-menu/src/dropdown-menu.module.mjs +4 -4
  70. package/esm2020/enhanced-paste/src/directive/enhanced-paste.directive.mjs +3 -3
  71. package/esm2020/enhanced-paste/src/enhanced-paste.module.mjs +4 -4
  72. package/esm2020/enum/src/service/enum.service.mjs +3 -3
  73. package/esm2020/file-upload/src/component/file-upload.component.mjs +3 -3
  74. package/esm2020/file-upload/src/directive/file-upload-template.directive.mjs +3 -3
  75. package/esm2020/file-upload/src/file-upload.module.mjs +4 -4
  76. package/esm2020/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +3 -3
  77. package/esm2020/floating-labels/src/floating-labels/floating-label/floating-label.component.mjs +3 -3
  78. package/esm2020/floating-labels/src/floating-labels/floating-labels.module.mjs +4 -4
  79. package/esm2020/for/src/for.directive.mjs +3 -3
  80. package/esm2020/for/src/for.module.mjs +4 -4
  81. package/esm2020/form/src/form/form.component.mjs +3 -3
  82. package/esm2020/form/src/form-control/form-control.directive.mjs +3 -3
  83. package/esm2020/form/src/form-group/form-group.directive.mjs +3 -3
  84. package/esm2020/form/src/form.module.mjs +4 -4
  85. package/esm2020/grid/src/component/grid.component.mjs +3 -3
  86. package/esm2020/grid/src/directives/col-form-label/col-form-label.directive.mjs +3 -3
  87. package/esm2020/grid/src/directives/column/column.directive.mjs +3 -3
  88. package/esm2020/grid/src/directives/row/row.directive.mjs +3 -3
  89. package/esm2020/grid/src/grid.module.mjs +4 -4
  90. package/esm2020/has-overlay/src/has-overlay/has-overlay.component.mjs +3 -3
  91. package/esm2020/has-overlay/src/has-overlay/has-overlay.module.mjs +4 -4
  92. package/esm2020/icon/src/icon.component.mjs +3 -3
  93. package/esm2020/icon/src/icon.module.mjs +4 -4
  94. package/esm2020/input-group/src/input-group/input-group.component.mjs +3 -3
  95. package/esm2020/input-group/src/input-group.module.mjs +4 -4
  96. package/esm2020/instance-of/src/directives/instanceof-case.directive.mjs +3 -3
  97. package/esm2020/instance-of/src/directives/instanceof-default.directive.mjs +3 -3
  98. package/esm2020/instance-of/src/directives/instanceof.directive.mjs +3 -3
  99. package/esm2020/instance-of/src/instance-of.module.mjs +4 -4
  100. package/esm2020/instance-of/src/pipes/instance-of.pipe.mjs +3 -3
  101. package/esm2020/lazy-loading/src/lazy-load/lazy-load.directive.mjs +3 -3
  102. package/esm2020/lazy-loading/src/lazy-loading.module.mjs +4 -4
  103. package/esm2020/let/directive/let.directive.mjs +3 -3
  104. package/esm2020/let/let.module.mjs +4 -4
  105. package/esm2020/lib/pipes/font-color/font-color.module.mjs +4 -4
  106. package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +3 -3
  107. package/esm2020/lib/pipes/in-list/in-list.module.mjs +4 -4
  108. package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +3 -3
  109. package/esm2020/lib/pipes/uc-first/uc-first.module.mjs +4 -4
  110. package/esm2020/lib/pipes/uc-first/uc-first.pipe.mjs +3 -3
  111. package/esm2020/list-group/src/list-group/list-group.component.mjs +3 -3
  112. package/esm2020/list-group/src/list-group-item/list-group-item.component.mjs +3 -3
  113. package/esm2020/list-group/src/list-group.module.mjs +4 -4
  114. package/esm2020/markdown/src/bold/bold.pipe.mjs +3 -3
  115. package/esm2020/markdown/src/italic/italic.pipe.mjs +3 -3
  116. package/esm2020/markdown/src/markdown.module.mjs +4 -4
  117. package/esm2020/markdown/src/strikethrough/strikethrough.pipe.mjs +3 -3
  118. package/esm2020/markdown/src/underline/underline.pipe.mjs +3 -3
  119. package/esm2020/modal/src/components/modal/modal.component.mjs +3 -3
  120. package/esm2020/modal/src/components/modal-host/modal-host.component.mjs +3 -3
  121. package/esm2020/modal/src/directives/modal/modal.directive.mjs +3 -3
  122. package/esm2020/modal/src/directives/modal-body/modal-body.directive.mjs +3 -3
  123. package/esm2020/modal/src/directives/modal-close/modal-close.directive.mjs +3 -3
  124. package/esm2020/modal/src/directives/modal-footer/modal-footer.directive.mjs +3 -3
  125. package/esm2020/modal/src/directives/modal-header/modal-header.directive.mjs +3 -3
  126. package/esm2020/modal/src/modal.module.mjs +4 -4
  127. package/esm2020/multiselect/src/component/multiselect.component.mjs +3 -3
  128. package/esm2020/multiselect/src/directives/button-template/button-template.directive.mjs +3 -3
  129. package/esm2020/multiselect/src/directives/footer-template/footer-template.directive.mjs +3 -3
  130. package/esm2020/multiselect/src/directives/header-template/header-template.directive.mjs +3 -3
  131. package/esm2020/multiselect/src/multiselect.module.mjs +4 -4
  132. package/esm2020/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  133. package/esm2020/navbar/src/expand-button/expand-button.directive.mjs +3 -3
  134. package/esm2020/navbar/src/nav-link/nav-link.directive.mjs +3 -3
  135. package/esm2020/navbar/src/navbar/navbar.component.mjs +3 -3
  136. package/esm2020/navbar/src/navbar-brand/navbar-brand.component.mjs +3 -3
  137. package/esm2020/navbar/src/navbar-content/navbar-content.directive.mjs +3 -3
  138. package/esm2020/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +3 -3
  139. package/esm2020/navbar/src/navbar-item/navbar-item.component.mjs +3 -3
  140. package/esm2020/navbar/src/navbar-nav/navbar-nav.component.mjs +3 -3
  141. package/esm2020/navbar/src/navbar-toggler/navbar-toggler.component.mjs +3 -3
  142. package/esm2020/navbar/src/navbar.module.mjs +4 -4
  143. package/esm2020/navigation-lock/src/directive/navigation-lock.directive.mjs +3 -3
  144. package/esm2020/navigation-lock/src/guard/navigation-lock.guard.mjs +3 -3
  145. package/esm2020/navigation-lock/src/navigation-lock.module.mjs +4 -4
  146. package/esm2020/no-noscript/src/no-noscript/no-noscript.directive.mjs +3 -3
  147. package/esm2020/no-noscript/src/no-noscript.module.mjs +4 -4
  148. package/esm2020/offcanvas/src/components/offcanvas/offcanvas.component.mjs +3 -3
  149. package/esm2020/offcanvas/src/components/offcanvas-body/offcanvas-body.component.mjs +3 -3
  150. package/esm2020/offcanvas/src/components/offcanvas-header/offcanvas-header.component.mjs +3 -3
  151. package/esm2020/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +3 -3
  152. package/esm2020/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +3 -3
  153. package/esm2020/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +3 -3
  154. package/esm2020/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +3 -3
  155. package/esm2020/offcanvas/src/offcanvas.module.mjs +4 -4
  156. package/esm2020/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +3 -3
  157. package/esm2020/ordinal-number/src/ordinal-number.module.mjs +4 -4
  158. package/esm2020/pagination/src/component/pagination/pagination.component.mjs +3 -3
  159. package/esm2020/pagination/src/pagination.module.mjs +4 -4
  160. package/esm2020/placeholder/src/placeholder/placeholder.component.mjs +3 -3
  161. package/esm2020/placeholder/src/placeholder-field/placeholder-field.directive.mjs +3 -3
  162. package/esm2020/placeholder/src/placeholder.module.mjs +4 -4
  163. package/esm2020/popover/src/component/popover.component.mjs +3 -3
  164. package/esm2020/popover/src/directives/popover/popover.directive.mjs +3 -3
  165. package/esm2020/popover/src/directives/popover-body/popover-body.directive.mjs +3 -3
  166. package/esm2020/popover/src/directives/popover-header/popover-header.directive.mjs +3 -3
  167. package/esm2020/popover/src/popover.module.mjs +4 -4
  168. package/esm2020/progress-bar/src/progress/progress.component.mjs +3 -3
  169. package/esm2020/progress-bar/src/progress-bar/progress-bar.component.mjs +3 -3
  170. package/esm2020/progress-bar/src/progress-bar.module.mjs +4 -4
  171. package/esm2020/range/src/component/range.component.mjs +3 -3
  172. package/esm2020/range/src/range.module.mjs +4 -4
  173. package/esm2020/range/src/value-accessor/range-value-accessor.mjs +3 -3
  174. package/esm2020/rating/src/component/rating.component.mjs +3 -3
  175. package/esm2020/rating/src/rating.module.mjs +4 -4
  176. package/esm2020/resizable/src/interfaces/index.mjs +2 -1
  177. package/esm2020/resizable/src/interfaces/preset-position.mjs +2 -0
  178. package/esm2020/resizable/src/resizable/resizable.component.mjs +19 -6
  179. package/esm2020/resizable/src/resizable.module.mjs +4 -4
  180. package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +4 -4
  181. package/esm2020/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +3 -3
  182. package/esm2020/scheduler/src/components/scheduler/scheduler.component.mjs +3 -3
  183. package/esm2020/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.mjs +3 -3
  184. package/esm2020/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.mjs +3 -3
  185. package/esm2020/scheduler/src/pipes/date-offset/date-offset.pipe.mjs +3 -3
  186. package/esm2020/scheduler/src/pipes/day-of-week/day-of-week.pipe.mjs +3 -3
  187. package/esm2020/scheduler/src/scheduler.module.mjs +4 -4
  188. package/esm2020/scheduler/src/services/timeline/timeline.service.mjs +3 -3
  189. package/esm2020/scrollspy/src/component/scrollspy.component.mjs +3 -3
  190. package/esm2020/scrollspy/src/directives/scrollspy.directive.mjs +3 -3
  191. package/esm2020/scrollspy/src/scrollspy.module.mjs +4 -4
  192. package/esm2020/scrollspy/src/services/scroll-offset/scroll-offset.service.mjs +3 -3
  193. package/esm2020/select/src/component/select.component.mjs +3 -3
  194. package/esm2020/select/src/select.module.mjs +4 -4
  195. package/esm2020/select/src/value-accessors/select-value-accessor.mjs +6 -6
  196. package/esm2020/select2/src/component/select2.component.mjs +3 -3
  197. package/esm2020/select2/src/directive/item-template.directive.mjs +3 -3
  198. package/esm2020/select2/src/select2.module.mjs +4 -4
  199. package/esm2020/snackbar/src/component/snackbar.component.mjs +3 -3
  200. package/esm2020/snackbar/src/directives/snackbar-close/snackbar-close.directive.mjs +3 -3
  201. package/esm2020/snackbar/src/service/snackbar.service.mjs +3 -3
  202. package/esm2020/snackbar/src/snackbar.module.mjs +4 -4
  203. package/esm2020/spinner/src/spinner.component.mjs +3 -3
  204. package/esm2020/spinner/src/spinner.module.mjs +4 -4
  205. package/esm2020/splitter/src/element-at/element-at.pipe.mjs +3 -3
  206. package/esm2020/splitter/src/split-panel/split-panel.component.mjs +3 -3
  207. package/esm2020/splitter/src/splitter/splitter.component.mjs +3 -3
  208. package/esm2020/splitter/src/splitter.module.mjs +4 -4
  209. package/esm2020/tab-control/src/tab-control/tab-control.component.mjs +12 -7
  210. package/esm2020/tab-control/src/tab-control.module.mjs +4 -4
  211. package/esm2020/tab-control/src/tab-page/tab-page.component.mjs +3 -3
  212. package/esm2020/tab-control/src/tab-page-header/tab-page-header.directive.mjs +3 -3
  213. package/esm2020/table/src/component/table.component.mjs +3 -3
  214. package/esm2020/table/src/table.module.mjs +4 -4
  215. package/esm2020/timepicker/src/timepicker.component.mjs +3 -3
  216. package/esm2020/timepicker/src/timepicker.module.mjs +4 -4
  217. package/esm2020/toast/src/components/toast/toast.component.mjs +3 -3
  218. package/esm2020/toast/src/components/toast-body/toast-body.component.mjs +3 -3
  219. package/esm2020/toast/src/components/toast-container/toast-container.component.mjs +3 -3
  220. package/esm2020/toast/src/components/toast-header/toast-header.component.mjs +3 -3
  221. package/esm2020/toast/src/directives/toast-close/toast-close.directive.mjs +3 -3
  222. package/esm2020/toast/src/pipes/add-properties.pipe.mjs +3 -3
  223. package/esm2020/toast/src/services/toast/toast.service.mjs +3 -3
  224. package/esm2020/toast/src/toast.module.mjs +4 -4
  225. package/esm2020/toggle-button/src/component/toggle-button.component.mjs +3 -3
  226. package/esm2020/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +3 -3
  227. package/esm2020/toggle-button/src/toggle-button.module.mjs +4 -4
  228. package/esm2020/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +3 -3
  229. package/esm2020/tooltip/src/component/tooltip.component.mjs +3 -3
  230. package/esm2020/tooltip/src/directive/tooltip.directive.mjs +3 -3
  231. package/esm2020/tooltip/src/tooltip.module.mjs +4 -4
  232. package/esm2020/typeahead/src/typeahead.component.mjs +3 -3
  233. package/esm2020/typeahead/src/typeahead.module.mjs +4 -4
  234. package/esm2020/user-agent/src/directive/user-agent.directive.mjs +3 -3
  235. package/esm2020/user-agent/src/user-agent.module.mjs +4 -4
  236. package/fesm2015/mintplayer-ng-bootstrap-accordion.mjs +13 -13
  237. package/fesm2015/mintplayer-ng-bootstrap-alert.mjs +10 -10
  238. package/fesm2015/mintplayer-ng-bootstrap-badge.mjs +7 -7
  239. package/fesm2015/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  240. package/fesm2015/mintplayer-ng-bootstrap-button-group.mjs +7 -7
  241. package/fesm2015/mintplayer-ng-bootstrap-button-type.mjs +7 -7
  242. package/fesm2015/mintplayer-ng-bootstrap-calendar-month.mjs +17 -17
  243. package/fesm2015/mintplayer-ng-bootstrap-calendar.mjs +7 -7
  244. package/fesm2015/mintplayer-ng-bootstrap-card.mjs +10 -10
  245. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs +10 -10
  246. package/fesm2015/mintplayer-ng-bootstrap-close.mjs +7 -7
  247. package/fesm2015/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  248. package/fesm2015/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  249. package/fesm2015/mintplayer-ng-bootstrap-copy.mjs +7 -7
  250. package/fesm2015/mintplayer-ng-bootstrap-datatable.mjs +13 -13
  251. package/fesm2015/mintplayer-ng-bootstrap-datepicker.mjs +7 -7
  252. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +163 -76
  253. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  254. package/fesm2015/mintplayer-ng-bootstrap-dropdown-divider.mjs +7 -7
  255. package/fesm2015/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  256. package/fesm2015/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
  257. package/fesm2015/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  258. package/fesm2015/mintplayer-ng-bootstrap-enum.mjs +3 -3
  259. package/fesm2015/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
  260. package/fesm2015/mintplayer-ng-bootstrap-floating-labels.mjs +7 -7
  261. package/fesm2015/mintplayer-ng-bootstrap-for.mjs +7 -7
  262. package/fesm2015/mintplayer-ng-bootstrap-form.mjs +13 -13
  263. package/fesm2015/mintplayer-ng-bootstrap-grid.mjs +16 -16
  264. package/fesm2015/mintplayer-ng-bootstrap-has-overlay.mjs +7 -7
  265. package/fesm2015/mintplayer-ng-bootstrap-icon.mjs +7 -7
  266. package/fesm2015/mintplayer-ng-bootstrap-input-group.mjs +7 -7
  267. package/fesm2015/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  268. package/fesm2015/mintplayer-ng-bootstrap-lazy-loading.mjs +7 -7
  269. package/fesm2015/mintplayer-ng-bootstrap-let.mjs +7 -7
  270. package/fesm2015/mintplayer-ng-bootstrap-list-group.mjs +10 -10
  271. package/fesm2015/mintplayer-ng-bootstrap-markdown.mjs +16 -16
  272. package/fesm2015/mintplayer-ng-bootstrap-modal.mjs +25 -25
  273. package/fesm2015/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
  274. package/fesm2015/mintplayer-ng-bootstrap-navbar.mjs +34 -34
  275. package/fesm2015/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
  276. package/fesm2015/mintplayer-ng-bootstrap-no-noscript.mjs +7 -7
  277. package/fesm2015/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
  278. package/fesm2015/mintplayer-ng-bootstrap-ordinal-number.mjs +7 -7
  279. package/fesm2015/mintplayer-ng-bootstrap-pagination.mjs +7 -7
  280. package/fesm2015/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
  281. package/fesm2015/mintplayer-ng-bootstrap-popover.mjs +16 -16
  282. package/fesm2015/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
  283. package/fesm2015/mintplayer-ng-bootstrap-range.mjs +10 -10
  284. package/fesm2015/mintplayer-ng-bootstrap-rating.mjs +7 -7
  285. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs +25 -12
  286. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  287. package/fesm2015/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
  288. package/fesm2015/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
  289. package/fesm2015/mintplayer-ng-bootstrap-select.mjs +13 -13
  290. package/fesm2015/mintplayer-ng-bootstrap-select2.mjs +10 -10
  291. package/fesm2015/mintplayer-ng-bootstrap-snackbar.mjs +13 -13
  292. package/fesm2015/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  293. package/fesm2015/mintplayer-ng-bootstrap-splitter.mjs +13 -13
  294. package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs +21 -16
  295. package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  296. package/fesm2015/mintplayer-ng-bootstrap-table.mjs +7 -7
  297. package/fesm2015/mintplayer-ng-bootstrap-timepicker.mjs +7 -7
  298. package/fesm2015/mintplayer-ng-bootstrap-toast.mjs +25 -25
  299. package/fesm2015/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
  300. package/fesm2015/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  301. package/fesm2015/mintplayer-ng-bootstrap-typeahead.mjs +7 -7
  302. package/fesm2015/mintplayer-ng-bootstrap-user-agent.mjs +7 -7
  303. package/fesm2015/mintplayer-ng-bootstrap.mjs +21 -21
  304. package/fesm2020/mintplayer-ng-bootstrap-accordion.mjs +13 -13
  305. package/fesm2020/mintplayer-ng-bootstrap-alert.mjs +10 -10
  306. package/fesm2020/mintplayer-ng-bootstrap-badge.mjs +7 -7
  307. package/fesm2020/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  308. package/fesm2020/mintplayer-ng-bootstrap-button-group.mjs +7 -7
  309. package/fesm2020/mintplayer-ng-bootstrap-button-type.mjs +7 -7
  310. package/fesm2020/mintplayer-ng-bootstrap-calendar-month.mjs +17 -17
  311. package/fesm2020/mintplayer-ng-bootstrap-calendar.mjs +7 -7
  312. package/fesm2020/mintplayer-ng-bootstrap-card.mjs +10 -10
  313. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs +10 -10
  314. package/fesm2020/mintplayer-ng-bootstrap-close.mjs +7 -7
  315. package/fesm2020/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  316. package/fesm2020/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  317. package/fesm2020/mintplayer-ng-bootstrap-copy.mjs +7 -7
  318. package/fesm2020/mintplayer-ng-bootstrap-datatable.mjs +13 -13
  319. package/fesm2020/mintplayer-ng-bootstrap-datepicker.mjs +7 -7
  320. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +162 -76
  321. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  322. package/fesm2020/mintplayer-ng-bootstrap-dropdown-divider.mjs +7 -7
  323. package/fesm2020/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  324. package/fesm2020/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
  325. package/fesm2020/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  326. package/fesm2020/mintplayer-ng-bootstrap-enum.mjs +3 -3
  327. package/fesm2020/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
  328. package/fesm2020/mintplayer-ng-bootstrap-floating-labels.mjs +7 -7
  329. package/fesm2020/mintplayer-ng-bootstrap-for.mjs +7 -7
  330. package/fesm2020/mintplayer-ng-bootstrap-form.mjs +13 -13
  331. package/fesm2020/mintplayer-ng-bootstrap-grid.mjs +16 -16
  332. package/fesm2020/mintplayer-ng-bootstrap-has-overlay.mjs +7 -7
  333. package/fesm2020/mintplayer-ng-bootstrap-icon.mjs +7 -7
  334. package/fesm2020/mintplayer-ng-bootstrap-input-group.mjs +7 -7
  335. package/fesm2020/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  336. package/fesm2020/mintplayer-ng-bootstrap-lazy-loading.mjs +7 -7
  337. package/fesm2020/mintplayer-ng-bootstrap-let.mjs +7 -7
  338. package/fesm2020/mintplayer-ng-bootstrap-list-group.mjs +10 -10
  339. package/fesm2020/mintplayer-ng-bootstrap-markdown.mjs +16 -16
  340. package/fesm2020/mintplayer-ng-bootstrap-modal.mjs +25 -25
  341. package/fesm2020/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
  342. package/fesm2020/mintplayer-ng-bootstrap-navbar.mjs +34 -34
  343. package/fesm2020/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
  344. package/fesm2020/mintplayer-ng-bootstrap-no-noscript.mjs +7 -7
  345. package/fesm2020/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
  346. package/fesm2020/mintplayer-ng-bootstrap-ordinal-number.mjs +7 -7
  347. package/fesm2020/mintplayer-ng-bootstrap-pagination.mjs +7 -7
  348. package/fesm2020/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
  349. package/fesm2020/mintplayer-ng-bootstrap-popover.mjs +16 -16
  350. package/fesm2020/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
  351. package/fesm2020/mintplayer-ng-bootstrap-range.mjs +10 -10
  352. package/fesm2020/mintplayer-ng-bootstrap-rating.mjs +7 -7
  353. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs +25 -12
  354. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  355. package/fesm2020/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
  356. package/fesm2020/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
  357. package/fesm2020/mintplayer-ng-bootstrap-select.mjs +13 -13
  358. package/fesm2020/mintplayer-ng-bootstrap-select2.mjs +10 -10
  359. package/fesm2020/mintplayer-ng-bootstrap-snackbar.mjs +13 -13
  360. package/fesm2020/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  361. package/fesm2020/mintplayer-ng-bootstrap-splitter.mjs +13 -13
  362. package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs +21 -16
  363. package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  364. package/fesm2020/mintplayer-ng-bootstrap-table.mjs +7 -7
  365. package/fesm2020/mintplayer-ng-bootstrap-timepicker.mjs +7 -7
  366. package/fesm2020/mintplayer-ng-bootstrap-toast.mjs +25 -25
  367. package/fesm2020/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
  368. package/fesm2020/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  369. package/fesm2020/mintplayer-ng-bootstrap-typeahead.mjs +7 -7
  370. package/fesm2020/mintplayer-ng-bootstrap-user-agent.mjs +7 -7
  371. package/fesm2020/mintplayer-ng-bootstrap.mjs +21 -21
  372. package/package.json +3 -2
  373. package/resizable/src/interfaces/index.d.ts +1 -0
  374. package/resizable/src/interfaces/preset-position.d.ts +6 -0
  375. package/resizable/src/resizable/resizable.component.d.ts +3 -1
  376. package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -2
@@ -8,18 +8,18 @@ import { BsHasOverlayModule } from '@mintplayer/ng-bootstrap/has-overlay';
8
8
  import * as i0 from "@angular/core";
9
9
  export class BsDatepickerModule {
10
10
  }
11
- BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
11
+ BsDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ BsDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsDatepickerModule, declarations: [BsDatepickerComponent], imports: [CommonModule,
13
13
  BsCalendarModule,
14
14
  BsDropdownModule,
15
15
  BsButtonTypeModule,
16
16
  BsHasOverlayModule], exports: [BsDatepickerComponent] });
17
- BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDatepickerModule, imports: [CommonModule,
17
+ BsDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDatepickerModule, imports: [CommonModule,
18
18
  BsCalendarModule,
19
19
  BsDropdownModule,
20
20
  BsButtonTypeModule,
21
21
  BsHasOverlayModule] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDatepickerModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDatepickerModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  declarations: [
@@ -3,14 +3,11 @@ import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
3
3
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
4
  import { BsTabGroupPane } from '../panes/tab-group-pane';
5
5
  import { BsDocumentHost } from '../panes/document-host-pane';
6
- import { Overlay } from '@angular/cdk/overlay';
7
6
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/overlay";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "../dock-pane-renderer/dock-pane-renderer.component";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../dock-pane-renderer/dock-pane-renderer.component";
11
9
  export class BsDockComponent {
12
- constructor(overlay) {
13
- this.overlay = overlay;
10
+ constructor() {
14
11
  //#region Panels
15
12
  this.panels$ = new BehaviorSubject([]);
16
13
  //#endregion
@@ -31,10 +28,7 @@ export class BsDockComponent {
31
28
  // })
32
29
  this.floating$.pipe(takeUntil(this.destroyed$))
33
30
  .subscribe((floating) => {
34
- floating.forEach((panel) => {
35
- const overlayRef = this.overlay.create({});
36
- overlayRef.attach(panel.portal);
37
- });
31
+ floating.forEach((panel) => panel.moveToOverlay());
38
32
  });
39
33
  }
40
34
  set panels(value) {
@@ -47,19 +41,19 @@ export class BsDockComponent {
47
41
  this.layout$.next(value);
48
42
  }
49
43
  set floatingPanes(value) {
50
- // value.changes.pipe(takeUntil(this.destroyed$)).subscribe((changes) => console.log('floatingPanes', changes));
51
44
  this.floating$.next(value.toArray());
52
45
  }
53
46
  ngOnDestroy() {
54
47
  this.destroyed$.next(true);
48
+ this.floating$.value.forEach(panel => panel.disposeOverlay());
55
49
  }
56
50
  }
57
- BsDockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
58
- BsDockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsDockComponent, selector: "bs-dock", inputs: { layout: "layout" }, host: { properties: { "class.position-absolute": "this.positionAbsolute", "style.top": "this.positionPx", "style.left": "this.positionPx", "style.bottom": "this.positionPx", "style.right": "this.positionPx" } }, queries: [{ propertyName: "panels", predicate: BsDockPanelComponent }], viewQueries: [{ propertyName: "floatingPanes", predicate: ["floating"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockComponent, decorators: [{
51
+ BsDockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
+ BsDockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockComponent, selector: "bs-dock", inputs: { layout: "layout" }, host: { properties: { "class.position-absolute": "this.positionAbsolute", "style.top": "this.positionPx", "style.left": "this.positionPx", "style.bottom": "this.positionPx", "style.right": "this.positionPx" } }, queries: [{ propertyName: "panels", predicate: BsDockPanelComponent }], viewQueries: [{ propertyName: "floatingPanes", predicate: ["floating"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}:host ::ng-deep bs-dock-pane-renderer{min-width:100%;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockComponent, decorators: [{
60
54
  type: Component,
61
- args: [{ selector: 'bs-dock', template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}\n"] }]
62
- }], ctorParameters: function () { return [{ type: i1.Overlay }]; }, propDecorators: { panels: [{
55
+ args: [{ selector: 'bs-dock', template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}:host ::ng-deep bs-dock-pane-renderer{min-width:100%;min-height:100%}\n"] }]
56
+ }], ctorParameters: function () { return []; }, propDecorators: { panels: [{
63
57
  type: ContentChildren,
64
58
  args: [BsDockPanelComponent]
65
59
  }], layout: [{
@@ -83,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
83
77
  type: HostBinding,
84
78
  args: ['style.right']
85
79
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFPL0MsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQXlCcEMsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFhMUQsWUFBWTtRQUVaLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFPbkUscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBTXhCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFZixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQXZEekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXhCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQWU7WUFDL0MsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsOENBQThDO1FBQzlDLHNDQUFzQztRQUN0Qyx1Q0FBdUM7UUFFdkMsT0FBTztRQUVQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxJQUEyQyxNQUFNLENBQUMsS0FBc0M7UUFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUlELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQW9CLE1BQU0sQ0FBQyxLQUFtQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBSUQsSUFBOEIsYUFBYSxDQUFDLEtBQTZDO1FBQ3ZGLGdIQUFnSDtRQUNoSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBWUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRHQTVEVSxlQUFlO2dHQUFmLGVBQWUsd1RBNEJULG9CQUFvQiwySEMzQ3ZDLGlwQkFnQkE7MkZERGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxTQUFTOzhGQWdDd0IsTUFBTTtzQkFBaEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBU2pCLE1BQU07c0JBQXpCLEtBQUs7Z0JBTXdCLGFBQWE7c0JBQTFDLFlBQVk7dUJBQUMsVUFBVTtnQkFNeEIsZ0JBQWdCO3NCQURmLFdBQVc7dUJBQUMseUJBQXlCO2dCQU90QyxVQUFVO3NCQUpULFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBWaWV3Q2hpbGRyZW4sIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgY29tYmluZUxhdGVzdEFsbCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc0RvY2tQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRVBhbmVUeXBlIH0gZnJvbSAnLi4vZW51bXMvcGFuZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQnNEb2NrTGF5b3V0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kb2NrLWxheW91dCc7XG5pbXBvcnQgeyBCc1RhYkdyb3VwUGFuZSB9IGZyb20gJy4uL3BhbmVzL3RhYi1ncm91cC1wYW5lJztcbmltcG9ydCB7IEJzRG9jdW1lbnRIb3N0IH0gZnJvbSAnLi4vcGFuZXMvZG9jdW1lbnQtaG9zdC1wYW5lJztcbmltcG9ydCB7IEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWRvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY2suY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc0RvY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXkpIHtcbiAgICBjb25zdCB0YWJzID0gbmV3IEJzVGFiR3JvdXBQYW5lKCk7XG4gICAgY29uc3QgZG9jSG9zdCA9IG5ldyBCc0RvY3VtZW50SG9zdCgpO1xuICAgIGRvY0hvc3Qucm9vdFBhbmUgPSB0YWJzO1xuXG4gICAgdGhpcy5sYXlvdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCc0RvY2tMYXlvdXQ+KHtcbiAgICAgIHJvb3RQYW5lOiBkb2NIb3N0LFxuICAgICAgZmxvYXRpbmdQYW5lczogW11cbiAgICB9KTtcblxuICAgIC8vIGNvbWJpbmVMYXRlc3QoW3RoaXMubGF5b3V0JCwgdGhpcy5wYW5lbHMkXSlcbiAgICAvLyAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgIC8vICAgLnN1YnNjcmliZSgoW2xheW91dCwgcGFuZWxzXSkgPT4ge1xuICAgICAgICBcbiAgICAvLyAgIH0pXG5cbiAgICB0aGlzLmZsb2F0aW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoZmxvYXRpbmcpID0+IHtcbiAgICAgICAgZmxvYXRpbmcuZm9yRWFjaCgocGFuZWwpID0+IHtcbiAgICAgICAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7fSk7XG4gICAgICAgICAgb3ZlcmxheVJlZi5hdHRhY2gocGFuZWwucG9ydGFsKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBQYW5lbHNcbiAgcGFuZWxzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZWxDb21wb25lbnRbXT4oW10pO1xuICBAQ29udGVudENoaWxkcmVuKEJzRG9ja1BhbmVsQ29tcG9uZW50KSBzZXQgcGFuZWxzKHZhbHVlOiBRdWVyeUxpc3Q8QnNEb2NrUGFuZWxDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5wYW5lbHMkLm5leHQodmFsdWUudG9BcnJheSgpKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIExheW91dFxuICBsYXlvdXQkOiBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0PjtcbiAgcHVibGljIGdldCBsYXlvdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0JC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGxheW91dCh2YWx1ZTogQnNEb2NrTGF5b3V0KSB7XG4gICAgdGhpcy5sYXlvdXQkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGZsb2F0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZVJlbmRlcmVyQ29tcG9uZW50W10+KFtdKTtcbiAgQFZpZXdDaGlsZHJlbignZmxvYXRpbmcnKSBzZXQgZmxvYXRpbmdQYW5lcyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudD4pIHtcbiAgICAvLyB2YWx1ZS5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoY2hhbmdlcykgPT4gY29uc29sZS5sb2coJ2Zsb2F0aW5nUGFuZXMnLCBjaGFuZ2VzKSk7XG4gICAgdGhpcy5mbG9hdGluZyQubmV4dCh2YWx1ZS50b0FycmF5KCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1hYnNvbHV0ZScpXG4gIHBvc2l0aW9uQWJzb2x1dGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20nKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0JylcbiAgcG9zaXRpb25QeCA9IDA7XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctY29udGFpbmVyICpuZ0lmPVwiKGxheW91dCQgfCBhc3luYykgYXMgbGF5b3V0XCI+XG4gICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cImxheW91dC5yb290UGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZSBvZiBsYXlvdXQuZmxvYXRpbmdQYW5lc1wiPlxuICAgICAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyICNmbG9hdGluZyAqbmdJZj1cInBhbmUucGFuZVwiIFtsYXlvdXRdPVwicGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48IS0tIDxicy1zcGxpdHRlcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFuZWwgb2YgKHBhbmVscyQgfCBhc3luYylcIj5cbiAgICAgICAgPGJzLXNwbGl0LXBhbmVsPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicGFuZWwucG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9icy1zcGxpdC1wYW5lbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYnMtc3BsaXR0ZXI+IC0tPlxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2svZG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBbUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBQzFCO1FBc0JBLGdCQUFnQjtRQUNoQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBYTFELFlBQVk7UUFFWixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBTW5FLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQU14QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFuRHpCLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFlO1lBQy9DLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxzQ0FBc0M7UUFDdEMsdUNBQXVDO1FBRXZDLE9BQU87UUFFUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUlELElBQTJDLE1BQU0sQ0FBQyxLQUFzQztRQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBb0IsTUFBTSxDQUFDLEtBQW1CO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFJRCxJQUE4QixhQUFhLENBQUMsS0FBNkM7UUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQVlELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs0R0F6RFUsZUFBZTtnR0FBZixlQUFlLHdUQXlCVCxvQkFBb0IsMkhDeEN2QyxpcEJBZ0JBOzJGRERhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsU0FBUzswRUE2QndCLE1BQU07c0JBQWhELGVBQWU7dUJBQUMsb0JBQW9CO2dCQVNqQixNQUFNO3NCQUF6QixLQUFLO2dCQU13QixhQUFhO3NCQUExQyxZQUFZO3VCQUFDLFVBQVU7Z0JBS3hCLGdCQUFnQjtzQkFEZixXQUFXO3VCQUFDLHlCQUF5QjtnQkFPdEMsVUFBVTtzQkFKVCxXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixXQUFXO3VCQUFDLFlBQVk7O3NCQUN4QixXQUFXO3VCQUFDLGNBQWM7O3NCQUMxQixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgVmlld0NoaWxkcmVuLCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbWJpbmVMYXRlc3RBbGwsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmVsL2RvY2stcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVQYW5lVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhbmUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJzRG9ja0xheW91dCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZG9jay1sYXlvdXQnO1xuaW1wb3J0IHsgQnNUYWJHcm91cFBhbmUgfSBmcm9tICcuLi9wYW5lcy90YWItZ3JvdXAtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY3VtZW50SG9zdCB9IGZyb20gJy4uL3BhbmVzL2RvY3VtZW50LWhvc3QtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmUtcmVuZGVyZXIvZG9jay1wYW5lLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgdGFicyA9IG5ldyBCc1RhYkdyb3VwUGFuZSgpO1xuICAgIGNvbnN0IGRvY0hvc3QgPSBuZXcgQnNEb2N1bWVudEhvc3QoKTtcbiAgICBkb2NIb3N0LnJvb3RQYW5lID0gdGFicztcblxuICAgIHRoaXMubGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrTGF5b3V0Pih7XG4gICAgICByb290UGFuZTogZG9jSG9zdCxcbiAgICAgIGZsb2F0aW5nUGFuZXM6IFtdXG4gICAgfSk7XG5cbiAgICAvLyBjb21iaW5lTGF0ZXN0KFt0aGlzLmxheW91dCQsIHRoaXMucGFuZWxzJF0pXG4gICAgLy8gICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAvLyAgIC5zdWJzY3JpYmUoKFtsYXlvdXQsIHBhbmVsc10pID0+IHtcbiAgICAgICAgXG4gICAgLy8gICB9KVxuXG4gICAgdGhpcy5mbG9hdGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZsb2F0aW5nKSA9PiB7XG4gICAgICAgIGZsb2F0aW5nLmZvckVhY2goKHBhbmVsKSA9PiBwYW5lbC5tb3ZlVG9PdmVybGF5KCkpO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gUGFuZWxzXG4gIHBhbmVscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVsQ29tcG9uZW50W10+KFtdKTtcbiAgQENvbnRlbnRDaGlsZHJlbihCc0RvY2tQYW5lbENvbXBvbmVudCkgc2V0IHBhbmVscyh2YWx1ZTogUXVlcnlMaXN0PEJzRG9ja1BhbmVsQ29tcG9uZW50Pikge1xuICAgIHRoaXMucGFuZWxzJC5uZXh0KHZhbHVlLnRvQXJyYXkoKSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBMYXlvdXRcbiAgbGF5b3V0JDogQmVoYXZpb3JTdWJqZWN0PEJzRG9ja0xheW91dD47XG4gIHB1YmxpYyBnZXQgbGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLmxheW91dCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBsYXlvdXQodmFsdWU6IEJzRG9ja0xheW91dCkge1xuICAgIHRoaXMubGF5b3V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBmbG9hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudFtdPihbXSk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2Zsb2F0aW5nJykgc2V0IGZsb2F0aW5nUGFuZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5mbG9hdGluZyQubmV4dCh2YWx1ZS50b0FycmF5KCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1hYnNvbHV0ZScpXG4gIHBvc2l0aW9uQWJzb2x1dGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20nKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0JylcbiAgcG9zaXRpb25QeCA9IDA7XG5cbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZmxvYXRpbmckLnZhbHVlLmZvckVhY2gocGFuZWwgPT4gcGFuZWwuZGlzcG9zZU92ZXJsYXkoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIobGF5b3V0JCB8IGFzeW5jKSBhcyBsYXlvdXRcIj5cbiAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwibGF5b3V0LnJvb3RQYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lIG9mIGxheW91dC5mbG9hdGluZ1BhbmVzXCI+XG4gICAgICAgIDxicy1kb2NrLXBhbmUtcmVuZGVyZXIgI2Zsb2F0aW5nICpuZ0lmPVwicGFuZS5wYW5lXCIgW2xheW91dF09XCJwYW5lXCI+PC9icy1kb2NrLXBhbmUtcmVuZGVyZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjwhLS0gPGJzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYW5lbCBvZiAocGFuZWxzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWw+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwYW5lbC5wb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2JzLXNwbGl0LXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9icy1zcGxpdHRlcj4gLS0+XG4iXX0=
@@ -7,15 +7,18 @@ import { BsContentPane } from '../panes/content-pane';
7
7
  import { BsDocumentHost } from '../panes/document-host-pane';
8
8
  import { BsTabGroupPane } from '../panes/tab-group-pane';
9
9
  import { BsFloatingPane } from '../panes/floating-pane';
10
+ import { Overlay } from '@angular/cdk/overlay';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@angular/cdk/portal";
13
- import * as i3 from "@mintplayer/ng-bootstrap/instance-of";
14
- import * as i4 from "@mintplayer/ng-bootstrap/splitter";
15
- import * as i5 from "@mintplayer/ng-bootstrap/tab-control";
16
- import * as i6 from "@mintplayer/ng-bootstrap/resizable";
12
+ import * as i1 from "@angular/cdk/overlay";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@angular/cdk/portal";
15
+ import * as i4 from "@mintplayer/ng-bootstrap/instance-of";
16
+ import * as i5 from "@mintplayer/ng-bootstrap/splitter";
17
+ import * as i6 from "@mintplayer/ng-bootstrap/tab-control";
18
+ import * as i7 from "@mintplayer/ng-bootstrap/resizable";
17
19
  export class BsDockPaneRendererComponent {
18
- constructor(element) {
20
+ constructor(overlay, element) {
21
+ this.overlay = overlay;
19
22
  this.paneTypes = EPaneType;
20
23
  this.BsDocumentHostType = BsDocumentHost;
21
24
  this.BsTabGroupType = BsTabGroupPane;
@@ -24,38 +27,34 @@ export class BsDockPaneRendererComponent {
24
27
  this.BsFloatingPaneType = BsFloatingPane;
25
28
  //#region Layout
26
29
  this.layout$ = new BehaviorSubject(null);
27
- // this.layoutType$ = this.layout$.pipe<EPaneType | null>(map((layout) => {
28
- // if (layout === null) {
29
- // return null;
30
- // } else if (layout instanceof BsDocumentHost) {
31
- // return EPaneType.documentHost;
32
- // } else if (layout instanceof BsSplitPane) {
33
- // return EPaneType.splitPane;
34
- // } else if (layout instanceof BsContentPane) {
35
- // return EPaneType.contentPane;
36
- // } else if (layout instanceof BsTabGroupPane) {
37
- // return EPaneType.tabGroupPane;
38
- // } else {
39
- // return null;
40
- // // throw 'unknown pane type';
41
- // }
42
- // }));
43
30
  this.portal = new DomPortal(element);
44
31
  }
45
32
  get layout() {
46
33
  return this.layout$.value;
47
34
  }
48
35
  set layout(value) {
49
- console.log('set layout', value);
50
36
  this.layout$.next(value);
51
37
  }
38
+ moveToOverlay() {
39
+ if (!this.overlayRef && !this.portal.isAttached) {
40
+ this.overlayRef = this.overlay.create({});
41
+ this.portal.attach(this.overlayRef);
42
+ }
43
+ }
44
+ disposeOverlay() {
45
+ if (this.overlayRef) {
46
+ this.portal.detach();
47
+ this.overlayRef.dispose();
48
+ this.overlayRef = undefined;
49
+ }
50
+ }
52
51
  }
53
- BsDockPaneRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPaneRendererComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
54
- BsDockPaneRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: { layout: "layout" }, ngImport: i0, template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let content\">\n <bs-resizable *ngIf=\"content.pane\">\n <bs-dock-pane-renderer [layout]=\"content.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i3.BsInstanceOfDirective, selector: "[bsInstanceof]", inputs: ["bsInstanceof"] }, { kind: "directive", type: i3.BsInstanceofCaseDirective, selector: "[bsInstanceofCase]", inputs: ["bsInstanceofCase"] }, { kind: "directive", type: i3.BsInstanceOfDefaultDirective, selector: "[bsInstanceofDefault]" }, { kind: "component", type: i4.BsSplitterComponent, selector: "bs-splitter", inputs: ["orientation"] }, { kind: "component", type: i4.BsSplitPanelComponent, selector: "bs-split-panel" }, { kind: "component", type: i5.BsTabControlComponent, selector: "bs-tab-control", inputs: ["border", "restrictDragging", "selectFirstTab", "tabsPosition", "allowDragDrop"] }, { kind: "component", type: i5.BsTabPageComponent, selector: "bs-tab-page", inputs: ["disabled"] }, { kind: "directive", type: i5.BsTabPageHeaderDirective, selector: "[bsTabPageHeader]" }, { kind: "component", type: i6.BsResizableComponent, selector: "bs-resizable", inputs: ["positioning"] }, { kind: "component", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPaneRendererComponent, decorators: [{
52
+ BsDockPaneRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPaneRendererComponent, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
53
+ BsDockPaneRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: { layout: "layout" }, ngImport: i0, template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.BsInstanceOfDirective, selector: "[bsInstanceof]", inputs: ["bsInstanceof"] }, { kind: "directive", type: i4.BsInstanceofCaseDirective, selector: "[bsInstanceofCase]", inputs: ["bsInstanceofCase"] }, { kind: "directive", type: i4.BsInstanceOfDefaultDirective, selector: "[bsInstanceofDefault]" }, { kind: "component", type: i5.BsSplitterComponent, selector: "bs-splitter", inputs: ["orientation"] }, { kind: "component", type: i5.BsSplitPanelComponent, selector: "bs-split-panel" }, { kind: "component", type: i6.BsTabControlComponent, selector: "bs-tab-control", inputs: ["border", "restrictDragging", "selectFirstTab", "tabsPosition", "allowDragDrop"] }, { kind: "component", type: i6.BsTabPageComponent, selector: "bs-tab-page", inputs: ["disabled"] }, { kind: "directive", type: i6.BsTabPageHeaderDirective, selector: "[bsTabPageHeader]" }, { kind: "component", type: i7.BsResizableComponent, selector: "bs-resizable", inputs: ["positioning", "presetPosition"] }, { kind: "component", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPaneRendererComponent, decorators: [{
56
55
  type: Component,
57
- args: [{ selector: 'bs-dock-pane-renderer', template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let content\">\n <bs-resizable *ngIf=\"content.pane\">\n <bs-dock-pane-renderer [layout]=\"content.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"] }]
58
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { layout: [{
56
+ args: [{ selector: 'bs-dock-pane-renderer', template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"] }]
57
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }]; }, propDecorators: { layout: [{
59
58
  type: Input
60
59
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvZG9jay9zcmMvZG9jay1wYW5lLXJlbmRlcmVyL2RvY2stcGFuZS1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFPeEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUFZLE9BQW1CO1FBc0IvQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsY0FBYyxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsV0FBVyxDQUFDO1FBQzdCLHNCQUFpQixHQUFHLGFBQWEsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxjQUFjLENBQUM7UUFFN0MsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUE3QnJELDJFQUEyRTtRQUMzRSwyQkFBMkI7UUFDM0IsbUJBQW1CO1FBQ25CLG1EQUFtRDtRQUNuRCxxQ0FBcUM7UUFDckMsZ0RBQWdEO1FBQ2hELGtDQUFrQztRQUNsQyxrREFBa0Q7UUFDbEQsb0NBQW9DO1FBQ3BDLG1EQUFtRDtRQUNuRCxxQ0FBcUM7UUFDckMsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixvQ0FBb0M7UUFDcEMsTUFBTTtRQUNOLE9BQU87UUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFhRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFvQixNQUFNLENBQUMsS0FBd0I7UUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7d0hBdkNVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDJGQ2hCeEMsMmlEQTZCZSxvL0NEYkYsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCO2lHQXdDYixNQUFNO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZSB9IGZyb20gJy4uL3BhbmVzL2RvY2stcGFuZSc7XG5pbXBvcnQgeyBFUGFuZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9wYW5lLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCc1NwbGl0UGFuZSB9IGZyb20gJy4uL3BhbmVzL3NwbGl0LXBhbmUnO1xuaW1wb3J0IHsgQnNDb250ZW50UGFuZSB9IGZyb20gJy4uL3BhbmVzL2NvbnRlbnQtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY3VtZW50SG9zdCB9IGZyb20gJy4uL3BhbmVzL2RvY3VtZW50LWhvc3QtcGFuZSc7XG5pbXBvcnQgeyBCc1RhYkdyb3VwUGFuZSB9IGZyb20gJy4uL3BhbmVzL3RhYi1ncm91cC1wYW5lJztcbmltcG9ydCB7IEJzRmxvYXRpbmdQYW5lIH0gZnJvbSAnLi4vcGFuZXMvZmxvYXRpbmctcGFuZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWRvY2stcGFuZS1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc0RvY2tQYW5lUmVuZGVyZXJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAvLyB0aGlzLmxheW91dFR5cGUkID0gdGhpcy5sYXlvdXQkLnBpcGU8RVBhbmVUeXBlIHwgbnVsbD4obWFwKChsYXlvdXQpID0+IHtcbiAgICAvLyAgIGlmIChsYXlvdXQgPT09IG51bGwpIHtcbiAgICAvLyAgICAgcmV0dXJuIG51bGw7XG4gICAgLy8gICB9IGVsc2UgaWYgKGxheW91dCBpbnN0YW5jZW9mIEJzRG9jdW1lbnRIb3N0KSB7XG4gICAgLy8gICAgIHJldHVybiBFUGFuZVR5cGUuZG9jdW1lbnRIb3N0O1xuICAgIC8vICAgfSBlbHNlIGlmIChsYXlvdXQgaW5zdGFuY2VvZiBCc1NwbGl0UGFuZSkge1xuICAgIC8vICAgICByZXR1cm4gRVBhbmVUeXBlLnNwbGl0UGFuZTtcbiAgICAvLyAgIH0gZWxzZSBpZiAobGF5b3V0IGluc3RhbmNlb2YgQnNDb250ZW50UGFuZSkge1xuICAgIC8vICAgICByZXR1cm4gRVBhbmVUeXBlLmNvbnRlbnRQYW5lO1xuICAgIC8vICAgfSBlbHNlIGlmIChsYXlvdXQgaW5zdGFuY2VvZiBCc1RhYkdyb3VwUGFuZSkge1xuICAgIC8vICAgICByZXR1cm4gRVBhbmVUeXBlLnRhYkdyb3VwUGFuZTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIHJldHVybiBudWxsO1xuICAgIC8vICAgICAvLyB0aHJvdyAndW5rbm93biBwYW5lIHR5cGUnO1xuICAgIC8vICAgfVxuICAgIC8vIH0pKTtcbiAgICB0aGlzLnBvcnRhbCA9IG5ldyBEb21Qb3J0YWwoZWxlbWVudCk7XG4gIH1cblxuICBwb3J0YWw6IERvbVBvcnRhbDtcblxuICBwYW5lVHlwZXMgPSBFUGFuZVR5cGU7XG4gIHJlYWRvbmx5IEJzRG9jdW1lbnRIb3N0VHlwZSA9IEJzRG9jdW1lbnRIb3N0O1xuICByZWFkb25seSBCc1RhYkdyb3VwVHlwZSA9IEJzVGFiR3JvdXBQYW5lO1xuICByZWFkb25seSBCc1NwbGl0dGVyVHlwZSA9IEJzU3BsaXRQYW5lO1xuICByZWFkb25seSBCc0NvbnRlbnRQYW5lVHlwZSA9IEJzQ29udGVudFBhbmU7XG4gIHJlYWRvbmx5IEJzRmxvYXRpbmdQYW5lVHlwZSA9IEJzRmxvYXRpbmdQYW5lO1xuXG4gIC8vI3JlZ2lvbiBMYXlvdXRcbiAgbGF5b3V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNEb2NrUGFuZSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgZ2V0IGxheW91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGF5b3V0KHZhbHVlOiBCc0RvY2tQYW5lIHwgbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKCdzZXQgbGF5b3V0JywgdmFsdWUpO1xuICAgIHRoaXMubGF5b3V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyBsYXlvdXRUeXBlJDogT2JzZXJ2YWJsZTxFUGFuZVR5cGUgfCBudWxsPjtcbn1cbiIsIjwhLS0gPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAtLT5cbjxuZy1jb250YWluZXIgW2JzSW5zdGFuY2VvZl09XCJsYXlvdXQkIHwgYXN5bmNcIj5cbiAgICA8ZGl2ICpic0luc3RhbmNlb2ZDYXNlPVwiQnNEb2N1bWVudEhvc3RUeXBlOyBsZXQgZG9jdW1lbnRIb3N0XCIgZGF0YS1oZWxsbz5cbiAgICAgICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cImRvY3VtZW50SG9zdFwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgIDwvZGl2PlxuICAgIDxicy10YWItY29udHJvbCAqYnNJbnN0YW5jZW9mQ2FzZT1cIkJzVGFiR3JvdXBUeXBlOyBsZXQgdGFiR3JvdXBcIiBbYWxsb3dEcmFnRHJvcF09XCJmYWxzZVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGgtMTAwIGRvY2stdGFic1wiPlxuICAgICAgICA8YnMtdGFiLXBhZ2UgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJHcm91cC5wYW5lc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqYnNUYWJQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi5kb2NrUGFuZWwuaGVhZGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cInRhYlwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgICAgICA8L2JzLXRhYi1wYWdlPlxuICAgIDwvYnMtdGFiLWNvbnRyb2w+XG4gICAgPGJzLXNwbGl0dGVyICpic0luc3RhbmNlb2ZDYXNlPVwiQnNTcGxpdHRlclR5cGU7IGxldCBzcGxpdHRlclwiIFtvcmllbnRhdGlvbl09XCJzcGxpdHRlci5vcmllbnRhdGlvblwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWwgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHNwbGl0dGVyLnBhbmVzXCI+XG4gICAgICAgICAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwicGFuZWxcIj48L2JzLWRvY2stcGFuZS1yZW5kZXJlcj5cbiAgICAgICAgPC9icy1zcGxpdC1wYW5lbD5cbiAgICA8L2JzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250YWluZXIgKmJzSW5zdGFuY2VvZkNhc2U9XCJCc0NvbnRlbnRQYW5lVHlwZTsgbGV0IGNvbnRlbnRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiY29udGVudC5kb2NrUGFuZWwuY29udGVudFBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqYnNJbnN0YW5jZW9mQ2FzZT1cIkJzRmxvYXRpbmdQYW5lVHlwZTsgbGV0IGNvbnRlbnRcIj5cbiAgICAgICAgPGJzLXJlc2l6YWJsZSAqbmdJZj1cImNvbnRlbnQucGFuZVwiPlxuICAgICAgICAgICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cImNvbnRlbnQucGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgICAgICA8L2JzLXJlc2l6YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpic0luc3RhbmNlb2ZEZWZhdWx0PlxuICAgICAgICBObyBtYXRjaFxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvZG9jay9zcmMvZG9jay1wYW5lLXJlbmRlcmVyL2RvY2stcGFuZS1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZS1yZW5kZXJlci9kb2NrLXBhbmUtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztBQU8zRCxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQW9CLE9BQWdCLEVBQUUsT0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQU1wQyxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsY0FBYyxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsV0FBVyxDQUFDO1FBQzdCLHNCQUFpQixHQUFHLGFBQWEsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxjQUFjLENBQUM7UUFFN0MsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFickQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBYUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBb0IsTUFBTSxDQUFDLEtBQXdCO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFJTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7d0hBdkNVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDJGQ2pCeEMsOHVEQTZCZSxzZ0REWkYsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCO3VIQXdCYixNQUFNO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzRG9ja1BhbmUgfSBmcm9tICcuLi9wYW5lcy9kb2NrLXBhbmUnO1xuaW1wb3J0IHsgRVBhbmVUeXBlIH0gZnJvbSAnLi4vZW51bXMvcGFuZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQnNTcGxpdFBhbmUgfSBmcm9tICcuLi9wYW5lcy9zcGxpdC1wYW5lJztcbmltcG9ydCB7IEJzQ29udGVudFBhbmUgfSBmcm9tICcuLi9wYW5lcy9jb250ZW50LXBhbmUnO1xuaW1wb3J0IHsgQnNEb2N1bWVudEhvc3QgfSBmcm9tICcuLi9wYW5lcy9kb2N1bWVudC1ob3N0LXBhbmUnO1xuaW1wb3J0IHsgQnNUYWJHcm91cFBhbmUgfSBmcm9tICcuLi9wYW5lcy90YWItZ3JvdXAtcGFuZSc7XG5pbXBvcnQgeyBCc0Zsb2F0aW5nUGFuZSB9IGZyb20gJy4uL3BhbmVzL2Zsb2F0aW5nLXBhbmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jay1wYW5lLXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2stcGFuZS1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY2stcGFuZS1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja1BhbmVSZW5kZXJlckNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5wb3J0YWwgPSBuZXcgRG9tUG9ydGFsKGVsZW1lbnQpO1xuICB9XG5cbiAgcG9ydGFsOiBEb21Qb3J0YWw7XG5cbiAgcGFuZVR5cGVzID0gRVBhbmVUeXBlO1xuICByZWFkb25seSBCc0RvY3VtZW50SG9zdFR5cGUgPSBCc0RvY3VtZW50SG9zdDtcbiAgcmVhZG9ubHkgQnNUYWJHcm91cFR5cGUgPSBCc1RhYkdyb3VwUGFuZTtcbiAgcmVhZG9ubHkgQnNTcGxpdHRlclR5cGUgPSBCc1NwbGl0UGFuZTtcbiAgcmVhZG9ubHkgQnNDb250ZW50UGFuZVR5cGUgPSBCc0NvbnRlbnRQYW5lO1xuICByZWFkb25seSBCc0Zsb2F0aW5nUGFuZVR5cGUgPSBCc0Zsb2F0aW5nUGFuZTtcblxuICAvLyNyZWdpb24gTGF5b3V0XG4gIGxheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzRG9ja1BhbmUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGdldCBsYXlvdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0JC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGxheW91dCh2YWx1ZTogQnNEb2NrUGFuZSB8IG51bGwpIHtcbiAgICB0aGlzLmxheW91dCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgcHVibGljIG1vdmVUb092ZXJsYXkoKSB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYgJiYgIXRoaXMucG9ydGFsLmlzQXR0YWNoZWQpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe30pO1xuICAgICAgdGhpcy5wb3J0YWwuYXR0YWNoKHRoaXMub3ZlcmxheVJlZik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc3Bvc2VPdmVybGF5KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMucG9ydGFsLmRldGFjaCgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAtLT5cbjxuZy1jb250YWluZXIgW2JzSW5zdGFuY2VvZl09XCJsYXlvdXQkIHwgYXN5bmNcIj5cbiAgICA8ZGl2ICpic0luc3RhbmNlb2ZDYXNlPVwiQnNEb2N1bWVudEhvc3RUeXBlOyBsZXQgZG9jdW1lbnRIb3N0XCIgZGF0YS1oZWxsbz5cbiAgICAgICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cImRvY3VtZW50SG9zdFwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgIDwvZGl2PlxuICAgIDxicy10YWItY29udHJvbCAqYnNJbnN0YW5jZW9mQ2FzZT1cIkJzVGFiR3JvdXBUeXBlOyBsZXQgdGFiR3JvdXBcIiBbYWxsb3dEcmFnRHJvcF09XCJmYWxzZVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGgtMTAwIGRvY2stdGFic1wiPlxuICAgICAgICA8YnMtdGFiLXBhZ2UgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJHcm91cC5wYW5lc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqYnNUYWJQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi5kb2NrUGFuZWwuaGVhZGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGJzLWRvY2stcGFuZS1yZW5kZXJlciBbbGF5b3V0XT1cInRhYlwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgICAgICA8L2JzLXRhYi1wYWdlPlxuICAgIDwvYnMtdGFiLWNvbnRyb2w+XG4gICAgPGJzLXNwbGl0dGVyICpic0luc3RhbmNlb2ZDYXNlPVwiQnNTcGxpdHRlclR5cGU7IGxldCBzcGxpdHRlclwiIFtvcmllbnRhdGlvbl09XCJzcGxpdHRlci5vcmllbnRhdGlvblwiPlxuICAgICAgICA8YnMtc3BsaXQtcGFuZWwgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHNwbGl0dGVyLnBhbmVzXCI+XG4gICAgICAgICAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwicGFuZWxcIj48L2JzLWRvY2stcGFuZS1yZW5kZXJlcj5cbiAgICAgICAgPC9icy1zcGxpdC1wYW5lbD5cbiAgICA8L2JzLXNwbGl0dGVyPlxuICAgIDxuZy1jb250YWluZXIgKmJzSW5zdGFuY2VvZkNhc2U9XCJCc0NvbnRlbnRQYW5lVHlwZTsgbGV0IGNvbnRlbnRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiY29udGVudC5kb2NrUGFuZWwuY29udGVudFBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqYnNJbnN0YW5jZW9mQ2FzZT1cIkJzRmxvYXRpbmdQYW5lVHlwZTsgbGV0IGZsb2F0aW5nXCI+XG4gICAgICAgIDxicy1yZXNpemFibGUgKm5nSWY9XCJmbG9hdGluZy5wYW5lXCIgW3Bvc2l0aW9uaW5nXT1cIidhYnNvbHV0ZSdcIiBbcHJlc2V0UG9zaXRpb25dPVwieyBsZWZ0OiBmbG9hdGluZy5sb2NhdGlvbj8ueCA/PyAwLCB0b3A6IGZsb2F0aW5nLmxvY2F0aW9uPy55ID8/IDAsIHdpZHRoOiBmbG9hdGluZy5zaXplPy53aWR0aCA/PyAyMDAsIGhlaWdodDogZmxvYXRpbmcuc2l6ZT8uaGVpZ2h0ID8/IDEwMCB9XCI+XG4gICAgICAgICAgICA8YnMtZG9jay1wYW5lLXJlbmRlcmVyIFtsYXlvdXRdPVwiZmxvYXRpbmcucGFuZVwiPjwvYnMtZG9jay1wYW5lLXJlbmRlcmVyPlxuICAgICAgICA8L2JzLXJlc2l6YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpic0luc3RhbmNlb2ZEZWZhdWx0PlxuICAgICAgICBObyBtYXRjaFxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
@@ -4,20 +4,18 @@ import * as i0 from "@angular/core";
4
4
  export class BsDockPanelComponent {
5
5
  constructor() {
6
6
  this.panelId = '';
7
- // this.contentPortal = new DomPortal(this.element.nativeElement);
8
7
  }
9
8
  ngAfterViewInit() {
10
- // console.log('attach dockpanel', this.element.nativeElement);
11
9
  this.headerPortal = new DomPortal(this.headerElement.nativeElement);
12
10
  this.contentPortal = new DomPortal(this.contentElement.nativeElement);
13
11
  }
14
12
  }
15
- BsDockPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- BsDockPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsDockPanelComponent, selector: "bs-dock-panel", inputs: { panelId: "panelId" }, viewQueries: [{ propertyName: "headerElement", first: true, predicate: ["headerElement"], descendants: true }, { propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true }], ngImport: i0, template: "<!-- <bs-split-panel> -->\n<div #headerElement class=\"dock-header\">\n <ng-content select=\"bs-dock-panel-header\"></ng-content>\n</div>\n<div #contentElement>\n <ng-content></ng-content>\n</div>\n<!-- </bs-split-panel> -->", styles: [".dock-header{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPanelComponent, decorators: [{
13
+ BsDockPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ BsDockPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPanelComponent, selector: "bs-dock-panel", inputs: { panelId: "panelId" }, viewQueries: [{ propertyName: "headerElement", first: true, predicate: ["headerElement"], descendants: true }, { propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true }], ngImport: i0, template: "<!-- <bs-split-panel> -->\n<div #headerElement class=\"dock-header\">\n <ng-content select=\"bs-dock-panel-header\"></ng-content>\n</div>\n<div #contentElement>\n <ng-content></ng-content>\n</div>\n<!-- </bs-split-panel> -->", styles: [".dock-header{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelComponent, decorators: [{
18
16
  type: Component,
19
17
  args: [{ selector: 'bs-dock-panel', template: "<!-- <bs-split-panel> -->\n<div #headerElement class=\"dock-header\">\n <ng-content select=\"bs-dock-panel-header\"></ng-content>\n</div>\n<div #contentElement>\n <ng-content></ng-content>\n</div>\n<!-- </bs-split-panel> -->", styles: [".dock-header{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] }]
20
- }], ctorParameters: function () { return []; }, propDecorators: { headerElement: [{
18
+ }], propDecorators: { headerElement: [{
21
19
  type: ViewChild,
22
20
  args: ['headerElement']
23
21
  }], contentElement: [{
@@ -26,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
26
24
  }], panelId: [{
27
25
  type: Input
28
26
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7UUFRUyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBUHBCLGtFQUFrRTtJQUNwRSxDQUFDO0lBUUQsZUFBZTtRQUNiLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O2lIQWZVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdTQ1JqQyx3T0FPMEI7MkZEQ2Isb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7MEVBU0csYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNHLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUdsQixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21Qb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kb2NrLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY2stcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLXBhbmVsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEb2NrUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gdGhpcy5jb250ZW50UG9ydGFsID0gbmV3IERvbVBvcnRhbCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdoZWFkZXJFbGVtZW50JykgaGVhZGVyRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjb250ZW50RWxlbWVudCcpIGNvbnRlbnRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlclBvcnRhbD86IERvbVBvcnRhbDtcbiAgY29udGVudFBvcnRhbD86IERvbVBvcnRhbDtcbiAgQElucHV0KCkgcGFuZWxJZCA9ICcnO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnYXR0YWNoIGRvY2twYW5lbCcsIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmhlYWRlclBvcnRhbCA9IG5ldyBEb21Qb3J0YWwodGhpcy5oZWFkZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuY29udGVudFBvcnRhbCA9IG5ldyBEb21Qb3J0YWwodGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgfVxufVxuIiwiPCEtLSA8YnMtc3BsaXQtcGFuZWw+IC0tPlxuPGRpdiAjaGVhZGVyRWxlbWVudCBjbGFzcz1cImRvY2staGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYnMtZG9jay1wYW5lbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgI2NvbnRlbnRFbGVtZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPCEtLSA8L2JzLXNwbGl0LXBhbmVsPiAtLT4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFpQixTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDOztBQVFySCxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBV1csWUFBTyxHQUFHLEVBQUUsQ0FBQztLQU12QjtJQUpDLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O2lIQVhVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdTQ1RqQyx3T0FPMEI7MkZERWIsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7OEJBTUcsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNHLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUdsQixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21Qb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSW5qZWN0LCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNUYWJDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwL3RhYi1jb250cm9sJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jay1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jay1wYW5lbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja1BhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnaGVhZGVyRWxlbWVudCcpIGhlYWRlckVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY29udGVudEVsZW1lbnQnKSBjb250ZW50RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBoZWFkZXJQb3J0YWw/OiBEb21Qb3J0YWw7XG4gIGNvbnRlbnRQb3J0YWw/OiBEb21Qb3J0YWw7XG4gIEBJbnB1dCgpIHBhbmVsSWQgPSAnJztcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5oZWFkZXJQb3J0YWwgPSBuZXcgRG9tUG9ydGFsKHRoaXMuaGVhZGVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmNvbnRlbnRQb3J0YWwgPSBuZXcgRG9tUG9ydGFsKHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cbn1cbiIsIjwhLS0gPGJzLXNwbGl0LXBhbmVsPiAtLT5cbjxkaXYgI2hlYWRlckVsZW1lbnQgY2xhc3M9XCJkb2NrLWhlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJzLWRvY2stcGFuZWwtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2ICNjb250ZW50RWxlbWVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjwhLS0gPC9icy1zcGxpdC1wYW5lbD4gLS0+Il19
@@ -1,58 +1,154 @@
1
- import { Overlay } from '@angular/cdk/overlay';
2
- import { Component, HostBinding, HostListener } from '@angular/core';
1
+ import { Component, ElementRef, HostBinding, HostListener } from '@angular/core';
2
+ import { take } from 'rxjs';
3
3
  import { BsDockPanelComponent } from '../dock-panel/dock-panel.component';
4
4
  import { BsDockComponent } from '../dock/dock.component';
5
- import { BsTabGroupPane } from '../panes/tab-group-pane';
5
+ import { BsSplitPane } from '../panes/split-pane';
6
6
  import { BsContentPane } from '../panes/content-pane';
7
7
  import { BsFloatingPane } from '../panes/floating-pane';
8
+ import { BsTabGroupPane } from '../panes/tab-group-pane';
9
+ import { BsDocumentHost } from '../panes/document-host-pane';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/cdk/overlay";
10
- import * as i2 from "../dock-panel/dock-panel.component";
11
- import * as i3 from "../dock/dock.component";
11
+ import * as i1 from "../dock-panel/dock-panel.component";
12
+ import * as i2 from "../dock/dock.component";
12
13
  export class BsDockPanelHeaderComponent {
13
- constructor(overlay, dockPanel, dock) {
14
- this.overlay = overlay;
14
+ constructor(dockPanel, dock, element) {
15
15
  this.dockPanel = dockPanel;
16
16
  this.dock = dock;
17
- this.isDragging = false;
17
+ this.element = element;
18
+ this.isMouseDown = false;
18
19
  this.isLayoutDetached = false;
19
20
  this.dBlock = true;
20
- this.overlayRef = this.overlay.create({
21
- positionStrategy: this.overlay.position().global()
22
- });
23
21
  }
24
22
  onMouseDown(ev) {
25
23
  ev.preventDefault();
26
- this.isDragging = true;
24
+ this.isMouseDown = true;
27
25
  }
28
26
  onMouseMove(ev) {
29
- if (this.isDragging) {
27
+ if (this.isMouseDown) {
30
28
  if (!this.isLayoutDetached) {
31
29
  this.isLayoutDetached = true;
32
- this.dock.layout$.subscribe((layout) => {
33
- layout.floatingPanes.push(new BsFloatingPane({
34
- pane: new BsTabGroupPane({
35
- panes: [
36
- new BsContentPane({
37
- dockPanel: this.dockPanel
38
- })
39
- ]
40
- })
41
- }));
30
+ this.dock.layout$.pipe(take(1)).subscribe((layout) => {
31
+ let element = this.element.nativeElement;
32
+ let tree = [];
33
+ do {
34
+ tree.push(element);
35
+ element = element.parentElement;
36
+ } while (element);
37
+ const tabControls = tree.filter(el => el.tagName.toUpperCase() === 'BS-TAB-CONTROL');
38
+ if (tabControls.length > 0) {
39
+ const coords = {
40
+ width: tabControls[0].clientWidth,
41
+ height: tabControls[0].clientHeight,
42
+ left: ev.clientX - ev.offsetX,
43
+ top: ev.clientY - ev.offsetY,
44
+ };
45
+ this.dockPanel.headerPortal?.isAttached && this.dockPanel.headerPortal?.detach();
46
+ this.dockPanel.contentPortal?.isAttached && this.dockPanel.contentPortal?.detach();
47
+ this.removeFromPane(layout.rootPane, this.dockPanel);
48
+ const floatingPane = new BsFloatingPane({
49
+ pane: new BsTabGroupPane({
50
+ panes: [
51
+ new BsContentPane({
52
+ dockPanel: this.dockPanel
53
+ })
54
+ ]
55
+ }),
56
+ size: {
57
+ width: coords.width,
58
+ height: coords.height,
59
+ },
60
+ location: {
61
+ x: coords.left,
62
+ y: coords.top,
63
+ }
64
+ });
65
+ this.dragOperation = {
66
+ offsetX: ev.offsetX,
67
+ offsetY: ev.offsetY,
68
+ floatingPane
69
+ };
70
+ layout.floatingPanes.push(floatingPane);
71
+ this.dock.layout$.next(layout);
72
+ }
42
73
  });
43
74
  }
75
+ else if (this.dragOperation) {
76
+ if (this.dragOperation.floatingPane.location) {
77
+ this.dragOperation.floatingPane.location.x = ev.clientX - this.dragOperation.offsetX;
78
+ this.dragOperation.floatingPane.location.y = ev.clientY - this.dragOperation.offsetY;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ removeFromPane(host, panel /*, parents: BsDockPane[] */) {
84
+ if (host instanceof BsContentPane) {
85
+ return { paneRemoved: false, hostIsEmpty: false };
86
+ }
87
+ else if (host instanceof BsDocumentHost) {
88
+ // Actually documentHost should never be removed
89
+ if (!host.rootPane) {
90
+ return { paneRemoved: false, hostIsEmpty: true };
91
+ }
92
+ const result = this.removeFromPane(host.rootPane, panel);
93
+ return { paneRemoved: result.paneRemoved, hostIsEmpty: result.hostIsEmpty };
94
+ }
95
+ else if (host instanceof BsTabGroupPane) {
96
+ const matching = host.panes.filter(p => p.dockPanel === panel);
97
+ if (matching.length > 0) {
98
+ host.panes.splice(host.panes.findIndex(p => p.dockPanel === panel), 1);
99
+ return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
100
+ }
101
+ else {
102
+ // ATM. all panes are ContentPanes anyway.
103
+ // So unless you'd want to have splitters inside the tabs,
104
+ // This code will not be hit.
105
+ // const result = host.panes
106
+ // .map(parentPane => this.removeFromPane(parentPane, panel))
107
+ // .filter(r => r.paneRemoved);
108
+ //
109
+ // if (result.length > 0) {
110
+ // return { paneRemoved: true, hostIsEmpty: }
111
+ // }
112
+ return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
113
+ }
114
+ }
115
+ else if (host instanceof BsSplitPane) {
116
+ const matching = host.panes
117
+ .filter(p => p instanceof BsContentPane)
118
+ .map(p => p)
119
+ .filter(p => p.dockPanel === panel);
120
+ if (matching.length > 0) {
121
+ host.panes.splice(host.panes.findIndex(p => (p instanceof BsContentPane) && matching.includes(p)), 1);
122
+ // TODO: Remove splitter if only 1 pane left?
123
+ return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
124
+ }
125
+ else {
126
+ for (let splitPane of host.panes) {
127
+ const result = this.removeFromPane(splitPane, panel);
128
+ if (result.paneRemoved && result.hostIsEmpty) {
129
+ // splitPane is empty now, so we can remove it from this splitter
130
+ host.panes.splice(host.panes.indexOf(splitPane), 1);
131
+ return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };
132
+ }
133
+ }
134
+ }
135
+ return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };
136
+ }
137
+ else {
138
+ throw 'unknown host type';
44
139
  }
45
140
  }
46
141
  onMouseUp(ev) {
47
- this.isDragging = false;
142
+ this.isMouseDown = false;
143
+ this.dragOperation = undefined;
48
144
  }
49
145
  }
50
- BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token: i1.Overlay }, { token: i2.BsDockPanelComponent }, { token: i3.BsDockComponent }], target: i0.ɵɵFactoryTarget.Component });
51
- BsDockPanelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsDockPanelHeaderComponent, selector: "bs-dock-panel-header", host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.d-block": "this.dBlock" } }, ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockPanelHeaderComponent, decorators: [{
146
+ BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token: i1.BsDockPanelComponent }, { token: i2.BsDockComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
147
+ BsDockPanelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPanelHeaderComponent, selector: "bs-dock-panel-header", host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.d-block": "this.dBlock" } }, ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, decorators: [{
53
149
  type: Component,
54
150
  args: [{ selector: 'bs-dock-panel-header', template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] }]
55
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i2.BsDockPanelComponent }, { type: i3.BsDockComponent }]; }, propDecorators: { onMouseDown: [{
151
+ }], ctorParameters: function () { return [{ type: i1.BsDockPanelComponent }, { type: i2.BsDockComponent }, { type: i0.ElementRef }]; }, propDecorators: { onMouseDown: [{
56
152
  type: HostListener,
57
153
  args: ['mousedown', ['$event']]
58
154
  }], onMouseMove: [{
@@ -65,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
65
161
  type: HostBinding,
66
162
  args: ['class.d-block']
67
163
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9kb2NrL3NyYy9kb2NrLXBhbmVsLWhlYWRlci9kb2NrLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwtaGVhZGVyL2RvY2stcGFuZWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFPeEQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixPQUFnQixFQUFVLFNBQStCLEVBQVUsSUFBcUI7UUFBeEYsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFNNUcsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUE2QkssV0FBTSxHQUFHLElBQUksQ0FBQztRQXBDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRTtTQUNuRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBS3NDLFdBQVcsQ0FBQyxFQUFjO1FBQy9ELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRStDLFdBQVcsQ0FBQyxFQUFjO1FBQ3hFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUM7d0JBQzNDLElBQUksRUFBRSxJQUFJLGNBQWMsQ0FBQzs0QkFDdkIsS0FBSyxFQUFFO2dDQUNMLElBQUksYUFBYSxDQUFDO29DQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUNBQzFCLENBQUM7NkJBQ0g7eUJBQ0YsQ0FBQztxQkFDSCxDQUFDLENBQUMsQ0FBQTtnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRTZDLFNBQVMsQ0FBQyxFQUFTO1FBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7O3VIQXBDVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwrUENidkMsMkJBQXlCOzJGRGFaLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxzQkFBc0I7K0pBY08sV0FBVztzQkFBakQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS1csV0FBVztzQkFBMUQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtQkEsU0FBUztzQkFBdEQsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJZCxNQUFNO3NCQUFuQyxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc0RvY2tQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL2RvY2stcGFuZWwvZG9jay1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNEb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jay9kb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc1RhYkdyb3VwUGFuZSB9IGZyb20gJy4uL3BhbmVzL3RhYi1ncm91cC1wYW5lJztcbmltcG9ydCB7IEJzQ29udGVudFBhbmUgfSBmcm9tICcuLi9wYW5lcy9jb250ZW50LXBhbmUnO1xuaW1wb3J0IHsgQnNGbG9hdGluZ1BhbmUgfSBmcm9tICcuLi9wYW5lcy9mbG9hdGluZy1wYW5lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtZG9jay1wYW5lbC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jay1wYW5lbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2NrLXBhbmVsLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzRG9ja1BhbmVsSGVhZGVyQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIGRvY2tQYW5lbDogQnNEb2NrUGFuZWxDb21wb25lbnQsIHByaXZhdGUgZG9jazogQnNEb2NrQ29tcG9uZW50KSB7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKVxuICAgIH0pO1xuICB9XG5cbiAgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBpc0xheW91dERldGFjaGVkID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2VEb3duKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vtb3ZlJywgWyckZXZlbnQnXSkgb25Nb3VzZU1vdmUoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICBpZiAoIXRoaXMuaXNMYXlvdXREZXRhY2hlZCkge1xuICAgICAgICB0aGlzLmlzTGF5b3V0RGV0YWNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRvY2subGF5b3V0JC5zdWJzY3JpYmUoKGxheW91dCkgPT4ge1xuICAgICAgICAgIGxheW91dC5mbG9hdGluZ1BhbmVzLnB1c2gobmV3IEJzRmxvYXRpbmdQYW5lKHtcbiAgICAgICAgICAgIHBhbmU6IG5ldyBCc1RhYkdyb3VwUGFuZSh7XG4gICAgICAgICAgICAgIHBhbmVzOiBbXG4gICAgICAgICAgICAgICAgbmV3IEJzQ29udGVudFBhbmUoe1xuICAgICAgICAgICAgICAgICAgZG9ja1BhbmVsOiB0aGlzLmRvY2tQYW5lbFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pIFxuICAgICAgICAgIH0pKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSkgb25Nb3VzZVVwKGV2OiBFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kLWJsb2NrJykgZEJsb2NrID0gdHJ1ZTtcbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1wYW5lbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9kb2NrL3NyYy9kb2NrLXBhbmVsLWhlYWRlci9kb2NrLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2RvY2stcGFuZWwtaGVhZGVyL2RvY2stcGFuZWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFTN0QsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixTQUErQixFQUFVLElBQXFCLEVBQVUsT0FBZ0M7UUFBeEcsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBRTVILGdCQUFXLEdB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dUhBbEpVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLCtQQ25CdkMsMkJBQXlCOzJGRG1CWiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usc0JBQXNCO2tLQVVPLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtXLFdBQVc7c0JBQTFELFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0lBLFNBQVM7c0JBQXRELFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS2QsTUFBTTtzQkFBbkMsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9wdGlvbmFsLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1RhYkNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAvdGFiLWNvbnRyb2wnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kb2NrLXBhbmVsL2RvY2stcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJzRG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL2RvY2svZG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNEb2NrUGFuZSB9IGZyb20gJy4uL3BhbmVzL2RvY2stcGFuZSc7XG5pbXBvcnQgeyBCc1NwbGl0UGFuZSB9IGZyb20gJy4uL3BhbmVzL3NwbGl0LXBhbmUnO1xuaW1wb3J0IHsgQnNDb250ZW50UGFuZSB9IGZyb20gJy4uL3BhbmVzL2NvbnRlbnQtcGFuZSc7XG5pbXBvcnQgeyBCc0Zsb2F0aW5nUGFuZSB9IGZyb20gJy4uL3BhbmVzL2Zsb2F0aW5nLXBhbmUnO1xuaW1wb3J0IHsgQnNUYWJHcm91cFBhbmUgfSBmcm9tICcuLi9wYW5lcy90YWItZ3JvdXAtcGFuZSc7XG5pbXBvcnQgeyBCc0RvY3VtZW50SG9zdCB9IGZyb20gJy4uL3BhbmVzL2RvY3VtZW50LWhvc3QtcGFuZSc7XG5pbXBvcnQgeyBSZW1vdmVGcm9tUGFuZVJlc3VsdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVtb3ZlLWZyb20tcGFuZS1yZXN1bHQnO1xuaW1wb3J0IHsgRHJhZ09wZXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHJhZy1vcGVyYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1kb2NrLXBhbmVsLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2NrLXBhbmVsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY2stcGFuZWwtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNEb2NrUGFuZWxIZWFkZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvY2tQYW5lbDogQnNEb2NrUGFuZWxDb21wb25lbnQsIHByaXZhdGUgZG9jazogQnNEb2NrQ29tcG9uZW50LCBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gIGlzTW91c2VEb3duID0gZmFsc2U7XG4gIGRyYWdPcGVyYXRpb24/OiBEcmFnT3BlcmF0aW9uO1xuICBpc0xheW91dERldGFjaGVkID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2VEb3duKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzTW91c2VEb3duID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pIG9uTW91c2VNb3ZlKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNNb3VzZURvd24pIHtcbiAgICAgIGlmICghdGhpcy5pc0xheW91dERldGFjaGVkKSB7XG4gICAgICAgIHRoaXMuaXNMYXlvdXREZXRhY2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZG9jay5sYXlvdXQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsYXlvdXQpID0+IHtcblxuICAgICAgICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICBsZXQgdHJlZTogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRyZWUucHVzaChlbGVtZW50ISk7XG4gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudCEucGFyZW50RWxlbWVudDtcbiAgICAgICAgICB9IHdoaWxlIChlbGVtZW50KTtcblxuICAgICAgICAgIGNvbnN0IHRhYkNvbnRyb2xzID0gdHJlZS5maWx0ZXIoZWwgPT4gZWwudGFnTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnQlMtVEFCLUNPTlRST0wnKTtcbiAgICAgICAgICBpZiAodGFiQ29udHJvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICAgICAgICB3aWR0aDogdGFiQ29udHJvbHNbMF0uY2xpZW50V2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodDogdGFiQ29udHJvbHNbMF0uY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgICBsZWZ0OiBldi5jbGllbnRYIC0gZXYub2Zmc2V0WCxcbiAgICAgICAgICAgICAgdG9wOiBldi5jbGllbnRZIC0gZXYub2Zmc2V0WSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZG9ja1BhbmVsLmhlYWRlclBvcnRhbD8uaXNBdHRhY2hlZCAmJiB0aGlzLmRvY2tQYW5lbC5oZWFkZXJQb3J0YWw/LmRldGFjaCgpO1xuICAgICAgICAgICAgdGhpcy5kb2NrUGFuZWwuY29udGVudFBvcnRhbD8uaXNBdHRhY2hlZCAmJiB0aGlzLmRvY2tQYW5lbC5jb250ZW50UG9ydGFsPy5kZXRhY2goKTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRnJvbVBhbmUobGF5b3V0LnJvb3RQYW5lLCB0aGlzLmRvY2tQYW5lbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZsb2F0aW5nUGFuZSA9IG5ldyBCc0Zsb2F0aW5nUGFuZSh7XG4gICAgICAgICAgICAgIHBhbmU6IG5ldyBCc1RhYkdyb3VwUGFuZSh7XG4gICAgICAgICAgICAgICAgcGFuZXM6IFtcbiAgICAgICAgICAgICAgICAgIG5ldyBCc0NvbnRlbnRQYW5lKHtcbiAgICAgICAgICAgICAgICAgICAgZG9ja1BhbmVsOiB0aGlzLmRvY2tQYW5lbFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNvb3Jkcy53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNvb3Jkcy5oZWlnaHQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgeDogY29vcmRzLmxlZnQsXG4gICAgICAgICAgICAgICAgeTogY29vcmRzLnRvcCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuZHJhZ09wZXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgb2Zmc2V0WDogZXYub2Zmc2V0WCxcbiAgICAgICAgICAgICAgb2Zmc2V0WTogZXYub2Zmc2V0WSxcbiAgICAgICAgICAgICAgZmxvYXRpbmdQYW5lXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsYXlvdXQuZmxvYXRpbmdQYW5lcy5wdXNoKGZsb2F0aW5nUGFuZSk7XG4gICAgICAgICAgICB0aGlzLmRvY2subGF5b3V0JC5uZXh0KGxheW91dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kcmFnT3BlcmF0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdPcGVyYXRpb24uZmxvYXRpbmdQYW5lLmxvY2F0aW9uKSB7XG4gICAgICAgICAgdGhpcy5kcmFnT3BlcmF0aW9uLmZsb2F0aW5nUGFuZS5sb2NhdGlvbi54ID0gZXYuY2xpZW50WCAtIHRoaXMuZHJhZ09wZXJhdGlvbi5vZmZzZXRYO1xuICAgICAgICAgIHRoaXMuZHJhZ09wZXJhdGlvbi5mbG9hdGluZ1BhbmUubG9jYXRpb24ueSA9IGV2LmNsaWVudFkgLSB0aGlzLmRyYWdPcGVyYXRpb24ub2Zmc2V0WTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUZyb21QYW5lKGhvc3Q6IEJzRG9ja1BhbmUsIHBhbmVsOiBCc0RvY2tQYW5lbENvbXBvbmVudCAvKiwgcGFyZW50czogQnNEb2NrUGFuZVtdICovKTogUmVtb3ZlRnJvbVBhbmVSZXN1bHQge1xuICAgIGlmIChob3N0IGluc3RhbmNlb2YgQnNDb250ZW50UGFuZSkge1xuICAgICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IGZhbHNlLCBob3N0SXNFbXB0eTogZmFsc2UgfTtcbiAgICB9IGVsc2UgaWYgKGhvc3QgaW5zdGFuY2VvZiBCc0RvY3VtZW50SG9zdCkge1xuICAgICAgLy8gQWN0dWFsbHkgZG9jdW1lbnRIb3N0IHNob3VsZCBuZXZlciBiZSByZW1vdmVkXG5cbiAgICAgIGlmICghaG9zdC5yb290UGFuZSkge1xuICAgICAgICByZXR1cm4geyBwYW5lUmVtb3ZlZDogZmFsc2UsIGhvc3RJc0VtcHR5OiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucmVtb3ZlRnJvbVBhbmUoaG9zdC5yb290UGFuZSwgcGFuZWwpO1xuICAgICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IHJlc3VsdC5wYW5lUmVtb3ZlZCwgaG9zdElzRW1wdHk6IHJlc3VsdC5ob3N0SXNFbXB0eSB9O1xuXG4gICAgfSBlbHNlIGlmIChob3N0IGluc3RhbmNlb2YgQnNUYWJHcm91cFBhbmUpIHtcblxuXG5cbiAgICAgIGNvbnN0IG1hdGNoaW5nID0gaG9zdC5wYW5lcy5maWx0ZXIocCA9PiBwLmRvY2tQYW5lbCA9PT0gcGFuZWwpO1xuICAgICAgaWYgKG1hdGNoaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaG9zdC5wYW5lcy5zcGxpY2UoaG9zdC5wYW5lcy5maW5kSW5kZXgocCA9PiBwLmRvY2tQYW5lbCA9PT0gcGFuZWwpLCAxKTtcbiAgICAgICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IHRydWUsIGhvc3RJc0VtcHR5OiBob3N0LnBhbmVzLmxlbmd0aCA9PT0gMCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQVRNLiBhbGwgcGFuZXMgYXJlIENvbnRlbnRQYW5lcyBhbnl3YXkuXG4gICAgICAgIC8vIFNvIHVubGVzcyB5b3UnZCB3YW50IHRvIGhhdmUgc3BsaXR0ZXJzIGluc2lkZSB0aGUgdGFicyxcbiAgICAgICAgLy8gVGhpcyBjb2RlIHdpbGwgbm90IGJlIGhpdC5cblxuICAgICAgICAvLyBjb25zdCByZXN1bHQgPSBob3N0LnBhbmVzXG4gICAgICAgIC8vICAgLm1hcChwYXJlbnRQYW5lID0+IHRoaXMucmVtb3ZlRnJvbVBhbmUocGFyZW50UGFuZSwgcGFuZWwpKVxuICAgICAgICAvLyAgIC5maWx0ZXIociA9PiByLnBhbmVSZW1vdmVkKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IHRydWUsIGhvc3RJc0VtcHR5OiB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IGZhbHNlLCBob3N0SXNFbXB0eTogaG9zdC5wYW5lcy5sZW5ndGggPT09IDAgfTtcbiAgICAgIH1cblxuXG5cblxuICAgIH0gZWxzZSBpZiAoaG9zdCBpbnN0YW5jZW9mIEJzU3BsaXRQYW5lKSB7XG4gICAgICBjb25zdCBtYXRjaGluZyA9IGhvc3QucGFuZXNcbiAgICAgICAgLmZpbHRlcihwID0+IHAgaW5zdGFuY2VvZiBCc0NvbnRlbnRQYW5lKVxuICAgICAgICAubWFwKHAgPT4gPEJzQ29udGVudFBhbmU+cClcbiAgICAgICAgLmZpbHRlcihwID0+IHAuZG9ja1BhbmVsID09PSBwYW5lbCk7XG4gICAgICBcbiAgICAgIGlmIChtYXRjaGluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGhvc3QucGFuZXMuc3BsaWNlKGhvc3QucGFuZXMuZmluZEluZGV4KHAgPT4gKHAgaW5zdGFuY2VvZiBCc0NvbnRlbnRQYW5lKSAmJiBtYXRjaGluZy5pbmNsdWRlcyhwKSksIDEpO1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBzcGxpdHRlciBpZiBvbmx5IDEgcGFuZSBsZWZ0P1xuICAgICAgICByZXR1cm4geyBwYW5lUmVtb3ZlZDogdHJ1ZSwgaG9zdElzRW1wdHk6IGhvc3QucGFuZXMubGVuZ3RoID09PSAwIH07XG4gICAgICB9IGVsc2Uge1xuXG5cbiAgICAgICAgZm9yIChsZXQgc3BsaXRQYW5lIG9mIGhvc3QucGFuZXMpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnJlbW92ZUZyb21QYW5lKHNwbGl0UGFuZSwgcGFuZWwpO1xuICAgICAgICAgIGlmIChyZXN1bHQucGFuZVJlbW92ZWQgJiYgcmVzdWx0Lmhvc3RJc0VtcHR5KSB7XG4gICAgICAgICAgICAvLyBzcGxpdFBhbmUgaXMgZW1wdHkgbm93LCBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGZyb20gdGhpcyBzcGxpdHRlclxuICAgICAgICAgICAgaG9zdC5wYW5lcy5zcGxpY2UoaG9zdC5wYW5lcy5pbmRleE9mKHNwbGl0UGFuZSksIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcGFuZVJlbW92ZWQ6IHRydWUsIGhvc3RJc0VtcHR5OiBob3N0LnBhbmVzLmxlbmd0aCA9PT0gMCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyBwYW5lUmVtb3ZlZDogZmFsc2UsIGhvc3RJc0VtcHR5OiBob3N0LnBhbmVzLmxlbmd0aCA9PT0gMCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyAndW5rbm93biBob3N0IHR5cGUnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKSBvbk1vdXNlVXAoZXY6IEV2ZW50KSB7XG4gICAgdGhpcy5pc01vdXNlRG93biA9IGZhbHNlO1xuICAgIHRoaXMuZHJhZ09wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZC1ibG9jaycpIGRCbG9jayA9IHRydWU7XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+Il19
@@ -13,8 +13,8 @@ import { BsDockPaneRendererComponent } from './dock-pane-renderer/dock-pane-rend
13
13
  import * as i0 from "@angular/core";
14
14
  export class BsDockModule {
15
15
  }
16
- BsDockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- BsDockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsDockModule, declarations: [BsDockComponent,
16
+ BsDockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ BsDockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsDockModule, declarations: [BsDockComponent,
18
18
  BsDockPanelComponent,
19
19
  BsDockPanelHeaderComponent,
20
20
  BsDockPaneRendererComponent], imports: [CommonModule,
@@ -27,14 +27,14 @@ BsDockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
27
27
  BsDockPanelComponent,
28
28
  BsDockPanelHeaderComponent,
29
29
  BsDockPaneRendererComponent] });
30
- BsDockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockModule, imports: [CommonModule,
30
+ BsDockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockModule, imports: [CommonModule,
31
31
  PortalModule,
32
32
  BsCardModule,
33
33
  BsInstanceOfModule,
34
34
  BsSplitterModule,
35
35
  BsTabControlModule,
36
36
  BsResizableModule] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsDockModule, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockModule, decorators: [{
38
38
  type: NgModule,
39
39
  args: [{
40
40
  declarations: [
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1vcGVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2ludGVyZmFjZXMvZHJhZy1vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJzRmxvYXRpbmdQYW5lIH0gZnJvbSBcIi4uL3BhbmVzL2Zsb2F0aW5nLXBhbmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEcmFnT3BlcmF0aW9uIHtcbiAgICBvZmZzZXRYOiBudW1iZXI7XG4gICAgb2Zmc2V0WTogbnVtYmVyO1xuICAgIGZsb2F0aW5nUGFuZTogQnNGbG9hdGluZ1BhbmVcbn0iXX0=
@@ -1,4 +1,6 @@
1
1
  export * from './dock-layout';
2
2
  export * from './point';
3
3
  export * from './size';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvY2stbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaXplJzsiXX0=
4
+ export * from './remove-from-pane-result';
5
+ export * from './drag-operation';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb2NrLWxheW91dCc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZS1mcm9tLXBhbmUtcmVzdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1vcGVyYXRpb24nOyJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWZyb20tcGFuZS1yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2RvY2svc3JjL2ludGVyZmFjZXMvcmVtb3ZlLWZyb20tcGFuZS1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlRnJvbVBhbmVSZXN1bHQge1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIEJzRG9ja1BhbmUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgaG9zdC4gKi9cbiAgICBwYW5lUmVtb3ZlZDogYm9vbGVhbjtcblxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGhvc3QgaXMgZW1wdHkgbm93LCBhbmQgc2hvdWxkIGFsc28gYmUgcmVtb3ZlZC4gKi9cbiAgICBob3N0SXNFbXB0eTogYm9vbGVhbjtcbn0iXX0=