@mintplayer/ng-bootstrap 15.23.1 → 15.23.3

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 (382) hide show
  1. package/dock/src/dock-panel/dock-panel.component.d.ts +0 -1
  2. package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +9 -2
  3. package/dock/src/interfaces/drag-operation.d.ts +6 -0
  4. package/dock/src/interfaces/index.d.ts +2 -0
  5. package/dock/src/interfaces/remove-from-pane-result.d.ts +6 -0
  6. package/dock/src/panes/document-host-pane.d.ts +2 -1
  7. package/esm2020/accordion/src/accordion/accordion.component.mjs +3 -3
  8. package/esm2020/accordion/src/accordion-tab/accordion-tab.component.mjs +3 -3
  9. package/esm2020/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +3 -3
  10. package/esm2020/accordion/src/accordion.module.mjs +4 -4
  11. package/esm2020/alert/src/alert/alert.component.mjs +3 -3
  12. package/esm2020/alert/src/alert-close/alert-close.component.mjs +3 -3
  13. package/esm2020/alert/src/alert.module.mjs +4 -4
  14. package/esm2020/badge/src/badge.component.mjs +3 -3
  15. package/esm2020/badge/src/badge.module.mjs +4 -4
  16. package/esm2020/breadcrumb/src/breadcrumb/breadcrumb.component.mjs +3 -3
  17. package/esm2020/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  18. package/esm2020/breadcrumb/src/breadcrumb.module.mjs +4 -4
  19. package/esm2020/button-group/src/button-group/button-group.component.mjs +3 -3
  20. package/esm2020/button-group/src/button-group.module.mjs +4 -4
  21. package/esm2020/button-type/src/button-type/button-type.directive.mjs +3 -3
  22. package/esm2020/button-type/src/button-type/button-type.module.mjs +4 -4
  23. package/esm2020/calendar/src/calendar.component.mjs +3 -3
  24. package/esm2020/calendar/src/calendar.module.mjs +4 -4
  25. package/esm2020/calendar-month/src/pipes/month-name/month-name.module.mjs +4 -4
  26. package/esm2020/calendar-month/src/pipes/month-name/month-name.pipe.mjs +3 -3
  27. package/esm2020/calendar-month/src/pipes/weekday-name/weekday-name.module.mjs +4 -4
  28. package/esm2020/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +3 -3
  29. package/esm2020/calendar-month/src/service/calendar-month.service.mjs +3 -3
  30. package/esm2020/card/src/card/card.component.mjs +3 -3
  31. package/esm2020/card/src/card-header/card-header.component.mjs +3 -3
  32. package/esm2020/card/src/card.module.mjs +4 -4
  33. package/esm2020/carousel/src/carousel/carousel.component.mjs +3 -3
  34. package/esm2020/carousel/src/carousel-image/carousel-image.directive.mjs +3 -3
  35. package/esm2020/carousel/src/carousel.module.mjs +4 -4
  36. package/esm2020/close/src/close.component.mjs +3 -3
  37. package/esm2020/close/src/close.module.mjs +4 -4
  38. package/esm2020/code-snippet/src/code-snippet.component.mjs +3 -3
  39. package/esm2020/code-snippet/src/code-snippet.module.mjs +4 -4
  40. package/esm2020/context-menu/src/context-menu.directive.mjs +3 -3
  41. package/esm2020/context-menu/src/context-menu.module.mjs +4 -4
  42. package/esm2020/copy/src/copy.directive.mjs +3 -3
  43. package/esm2020/copy/src/copy.module.mjs +4 -4
  44. package/esm2020/datatable/src/datatable/datatable.component.mjs +3 -3
  45. package/esm2020/datatable/src/datatable-column/datatable-column.directive.mjs +3 -3
  46. package/esm2020/datatable/src/datatable.module.mjs +4 -4
  47. package/esm2020/datatable/src/row-template/row-template.directive.mjs +3 -3
  48. package/esm2020/datepicker/src/datepicker.component.mjs +3 -3
  49. package/esm2020/datepicker/src/datepicker.module.mjs +4 -4
  50. package/esm2020/dock/src/dock/dock.component.mjs +5 -6
  51. package/esm2020/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +5 -22
  52. package/esm2020/dock/src/dock-panel/dock-panel.component.mjs +5 -7
  53. package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +124 -22
  54. package/esm2020/dock/src/dock.module.mjs +4 -4
  55. package/esm2020/dock/src/interfaces/drag-operation.mjs +2 -0
  56. package/esm2020/dock/src/interfaces/index.mjs +3 -1
  57. package/esm2020/dock/src/interfaces/remove-from-pane-result.mjs +2 -0
  58. package/esm2020/dock/src/panes/document-host-pane.mjs +1 -1
  59. package/esm2020/dropdown/src/dropdown/dropdown.directive.mjs +3 -3
  60. package/esm2020/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +3 -3
  61. package/esm2020/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  62. package/esm2020/dropdown/src/dropdown.module.mjs +4 -4
  63. package/esm2020/dropdown-divider/src/dropdown-divider.directive.mjs +3 -3
  64. package/esm2020/dropdown-divider/src/dropdown-divider.module.mjs +4 -4
  65. package/esm2020/dropdown-menu/src/dropdown-item/dropdown-item.component.mjs +3 -3
  66. package/esm2020/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +3 -3
  67. package/esm2020/dropdown-menu/src/dropdown-menu.module.mjs +4 -4
  68. package/esm2020/enhanced-paste/src/directive/enhanced-paste.directive.mjs +3 -3
  69. package/esm2020/enhanced-paste/src/enhanced-paste.module.mjs +4 -4
  70. package/esm2020/enum/src/service/enum.service.mjs +3 -3
  71. package/esm2020/file-upload/src/component/file-upload.component.mjs +3 -3
  72. package/esm2020/file-upload/src/directive/file-upload-template.directive.mjs +3 -3
  73. package/esm2020/file-upload/src/file-upload.module.mjs +4 -4
  74. package/esm2020/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +3 -3
  75. package/esm2020/floating-labels/src/floating-labels/floating-label/floating-label.component.mjs +3 -3
  76. package/esm2020/floating-labels/src/floating-labels/floating-labels.module.mjs +4 -4
  77. package/esm2020/for/src/for.directive.mjs +3 -3
  78. package/esm2020/for/src/for.module.mjs +4 -4
  79. package/esm2020/form/src/form/form.component.mjs +3 -3
  80. package/esm2020/form/src/form-control/form-control.directive.mjs +3 -3
  81. package/esm2020/form/src/form-group/form-group.directive.mjs +3 -3
  82. package/esm2020/form/src/form.module.mjs +4 -4
  83. package/esm2020/grid/src/component/grid.component.mjs +3 -3
  84. package/esm2020/grid/src/directives/col-form-label/col-form-label.directive.mjs +3 -3
  85. package/esm2020/grid/src/directives/column/column.directive.mjs +3 -3
  86. package/esm2020/grid/src/directives/row/row.directive.mjs +3 -3
  87. package/esm2020/grid/src/grid.module.mjs +4 -4
  88. package/esm2020/has-overlay/src/has-overlay/has-overlay.component.mjs +3 -3
  89. package/esm2020/has-overlay/src/has-overlay/has-overlay.module.mjs +4 -4
  90. package/esm2020/icon/src/icon.component.mjs +3 -3
  91. package/esm2020/icon/src/icon.module.mjs +4 -4
  92. package/esm2020/input-group/src/input-group/input-group.component.mjs +3 -3
  93. package/esm2020/input-group/src/input-group.module.mjs +4 -4
  94. package/esm2020/instance-of/src/directives/instanceof-case.directive.mjs +3 -3
  95. package/esm2020/instance-of/src/directives/instanceof-default.directive.mjs +3 -3
  96. package/esm2020/instance-of/src/directives/instanceof.directive.mjs +3 -3
  97. package/esm2020/instance-of/src/instance-of.module.mjs +4 -4
  98. package/esm2020/instance-of/src/pipes/instance-of.pipe.mjs +3 -3
  99. package/esm2020/lazy-loading/src/lazy-load/lazy-load.directive.mjs +3 -3
  100. package/esm2020/lazy-loading/src/lazy-loading.module.mjs +4 -4
  101. package/esm2020/let/directive/let.directive.mjs +3 -3
  102. package/esm2020/let/let.module.mjs +4 -4
  103. package/esm2020/lib/pipes/font-color/font-color.module.mjs +4 -4
  104. package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +3 -3
  105. package/esm2020/lib/pipes/in-list/in-list.module.mjs +4 -4
  106. package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +3 -3
  107. package/esm2020/lib/pipes/uc-first/uc-first.module.mjs +4 -4
  108. package/esm2020/lib/pipes/uc-first/uc-first.pipe.mjs +3 -3
  109. package/esm2020/list-group/src/list-group/list-group.component.mjs +3 -3
  110. package/esm2020/list-group/src/list-group-item/list-group-item.component.mjs +3 -3
  111. package/esm2020/list-group/src/list-group.module.mjs +4 -4
  112. package/esm2020/markdown/src/bold/bold.pipe.mjs +3 -3
  113. package/esm2020/markdown/src/italic/italic.pipe.mjs +3 -3
  114. package/esm2020/markdown/src/markdown.module.mjs +4 -4
  115. package/esm2020/markdown/src/strikethrough/strikethrough.pipe.mjs +3 -3
  116. package/esm2020/markdown/src/underline/underline.pipe.mjs +3 -3
  117. package/esm2020/modal/src/components/modal/modal.component.mjs +3 -3
  118. package/esm2020/modal/src/components/modal-host/modal-host.component.mjs +3 -3
  119. package/esm2020/modal/src/directives/modal/modal.directive.mjs +3 -3
  120. package/esm2020/modal/src/directives/modal-body/modal-body.directive.mjs +3 -3
  121. package/esm2020/modal/src/directives/modal-close/modal-close.directive.mjs +3 -3
  122. package/esm2020/modal/src/directives/modal-footer/modal-footer.directive.mjs +3 -3
  123. package/esm2020/modal/src/directives/modal-header/modal-header.directive.mjs +3 -3
  124. package/esm2020/modal/src/modal.module.mjs +4 -4
  125. package/esm2020/multiselect/src/component/multiselect.component.mjs +3 -3
  126. package/esm2020/multiselect/src/directives/button-template/button-template.directive.mjs +3 -3
  127. package/esm2020/multiselect/src/directives/footer-template/footer-template.directive.mjs +3 -3
  128. package/esm2020/multiselect/src/directives/header-template/header-template.directive.mjs +3 -3
  129. package/esm2020/multiselect/src/multiselect.module.mjs +4 -4
  130. package/esm2020/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  131. package/esm2020/navbar/src/expand-button/expand-button.directive.mjs +3 -3
  132. package/esm2020/navbar/src/nav-link/nav-link.directive.mjs +3 -3
  133. package/esm2020/navbar/src/navbar/navbar.component.mjs +3 -3
  134. package/esm2020/navbar/src/navbar-brand/navbar-brand.component.mjs +3 -3
  135. package/esm2020/navbar/src/navbar-content/navbar-content.directive.mjs +3 -3
  136. package/esm2020/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +3 -3
  137. package/esm2020/navbar/src/navbar-item/navbar-item.component.mjs +3 -3
  138. package/esm2020/navbar/src/navbar-nav/navbar-nav.component.mjs +3 -3
  139. package/esm2020/navbar/src/navbar-toggler/navbar-toggler.component.mjs +3 -3
  140. package/esm2020/navbar/src/navbar.module.mjs +4 -4
  141. package/esm2020/navigation-lock/src/directive/navigation-lock.directive.mjs +3 -3
  142. package/esm2020/navigation-lock/src/guard/navigation-lock.guard.mjs +3 -3
  143. package/esm2020/navigation-lock/src/navigation-lock.module.mjs +4 -4
  144. package/esm2020/no-noscript/src/no-noscript/no-noscript.directive.mjs +3 -3
  145. package/esm2020/no-noscript/src/no-noscript.module.mjs +4 -4
  146. package/esm2020/offcanvas/src/components/offcanvas/offcanvas.component.mjs +3 -3
  147. package/esm2020/offcanvas/src/components/offcanvas-body/offcanvas-body.component.mjs +3 -3
  148. package/esm2020/offcanvas/src/components/offcanvas-header/offcanvas-header.component.mjs +3 -3
  149. package/esm2020/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +3 -3
  150. package/esm2020/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +3 -3
  151. package/esm2020/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +3 -3
  152. package/esm2020/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +3 -3
  153. package/esm2020/offcanvas/src/offcanvas.module.mjs +4 -4
  154. package/esm2020/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +3 -3
  155. package/esm2020/ordinal-number/src/ordinal-number.module.mjs +4 -4
  156. package/esm2020/pagination/src/component/pagination/pagination.component.mjs +3 -3
  157. package/esm2020/pagination/src/pagination.module.mjs +4 -4
  158. package/esm2020/placeholder/src/placeholder/placeholder.component.mjs +3 -3
  159. package/esm2020/placeholder/src/placeholder-field/placeholder-field.directive.mjs +3 -3
  160. package/esm2020/placeholder/src/placeholder.module.mjs +4 -4
  161. package/esm2020/popover/src/component/popover.component.mjs +3 -3
  162. package/esm2020/popover/src/directives/popover/popover.directive.mjs +3 -3
  163. package/esm2020/popover/src/directives/popover-body/popover-body.directive.mjs +3 -3
  164. package/esm2020/popover/src/directives/popover-header/popover-header.directive.mjs +3 -3
  165. package/esm2020/popover/src/popover.module.mjs +4 -4
  166. package/esm2020/progress-bar/src/progress/progress.component.mjs +3 -3
  167. package/esm2020/progress-bar/src/progress-bar/progress-bar.component.mjs +3 -3
  168. package/esm2020/progress-bar/src/progress-bar.module.mjs +4 -4
  169. package/esm2020/range/src/component/range.component.mjs +3 -3
  170. package/esm2020/range/src/range.module.mjs +4 -4
  171. package/esm2020/range/src/value-accessor/range-value-accessor.mjs +3 -3
  172. package/esm2020/rating/src/component/rating.component.mjs +3 -3
  173. package/esm2020/rating/src/rating.module.mjs +4 -4
  174. package/esm2020/resizable/src/index.mjs +2 -1
  175. package/esm2020/resizable/src/interfaces/index.mjs +2 -1
  176. package/esm2020/resizable/src/interfaces/preset-position.mjs +2 -0
  177. package/esm2020/resizable/src/interfaces/resize-action.mjs +1 -1
  178. package/esm2020/resizable/src/resizable/resizable.component.mjs +63 -10
  179. package/esm2020/resizable/src/resizable.module.mjs +4 -4
  180. package/esm2020/resizable/src/resize-glyph/resize-glyph.directive.mjs +67 -21
  181. package/esm2020/resizable/src/types/index.mjs +2 -0
  182. package/esm2020/resizable/src/types/positioning.mjs +2 -0
  183. package/esm2020/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +3 -3
  184. package/esm2020/scheduler/src/components/scheduler/scheduler.component.mjs +3 -3
  185. package/esm2020/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.mjs +3 -3
  186. package/esm2020/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.mjs +3 -3
  187. package/esm2020/scheduler/src/pipes/date-offset/date-offset.pipe.mjs +3 -3
  188. package/esm2020/scheduler/src/pipes/day-of-week/day-of-week.pipe.mjs +3 -3
  189. package/esm2020/scheduler/src/scheduler.module.mjs +4 -4
  190. package/esm2020/scheduler/src/services/timeline/timeline.service.mjs +3 -3
  191. package/esm2020/scrollspy/src/component/scrollspy.component.mjs +3 -3
  192. package/esm2020/scrollspy/src/directives/scrollspy.directive.mjs +3 -3
  193. package/esm2020/scrollspy/src/scrollspy.module.mjs +4 -4
  194. package/esm2020/scrollspy/src/services/scroll-offset/scroll-offset.service.mjs +3 -3
  195. package/esm2020/select/src/component/select.component.mjs +3 -3
  196. package/esm2020/select/src/select.module.mjs +4 -4
  197. package/esm2020/select/src/value-accessors/select-value-accessor.mjs +6 -6
  198. package/esm2020/select2/src/component/select2.component.mjs +3 -3
  199. package/esm2020/select2/src/directive/item-template.directive.mjs +3 -3
  200. package/esm2020/select2/src/select2.module.mjs +4 -4
  201. package/esm2020/snackbar/src/component/snackbar.component.mjs +3 -3
  202. package/esm2020/snackbar/src/directives/snackbar-close/snackbar-close.directive.mjs +3 -3
  203. package/esm2020/snackbar/src/service/snackbar.service.mjs +3 -3
  204. package/esm2020/snackbar/src/snackbar.module.mjs +4 -4
  205. package/esm2020/spinner/src/spinner.component.mjs +3 -3
  206. package/esm2020/spinner/src/spinner.module.mjs +4 -4
  207. package/esm2020/splitter/src/element-at/element-at.pipe.mjs +3 -3
  208. package/esm2020/splitter/src/split-panel/split-panel.component.mjs +3 -3
  209. package/esm2020/splitter/src/splitter/splitter.component.mjs +3 -3
  210. package/esm2020/splitter/src/splitter.module.mjs +4 -4
  211. package/esm2020/tab-control/src/tab-control/tab-control.component.mjs +12 -7
  212. package/esm2020/tab-control/src/tab-control.module.mjs +4 -4
  213. package/esm2020/tab-control/src/tab-page/tab-page.component.mjs +3 -3
  214. package/esm2020/tab-control/src/tab-page-header/tab-page-header.directive.mjs +3 -3
  215. package/esm2020/table/src/component/table.component.mjs +3 -3
  216. package/esm2020/table/src/table.module.mjs +4 -4
  217. package/esm2020/timepicker/src/timepicker.component.mjs +3 -3
  218. package/esm2020/timepicker/src/timepicker.module.mjs +4 -4
  219. package/esm2020/toast/src/components/toast/toast.component.mjs +3 -3
  220. package/esm2020/toast/src/components/toast-body/toast-body.component.mjs +3 -3
  221. package/esm2020/toast/src/components/toast-container/toast-container.component.mjs +3 -3
  222. package/esm2020/toast/src/components/toast-header/toast-header.component.mjs +3 -3
  223. package/esm2020/toast/src/directives/toast-close/toast-close.directive.mjs +3 -3
  224. package/esm2020/toast/src/pipes/add-properties.pipe.mjs +3 -3
  225. package/esm2020/toast/src/services/toast/toast.service.mjs +3 -3
  226. package/esm2020/toast/src/toast.module.mjs +4 -4
  227. package/esm2020/toggle-button/src/component/toggle-button.component.mjs +3 -3
  228. package/esm2020/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +3 -3
  229. package/esm2020/toggle-button/src/toggle-button.module.mjs +4 -4
  230. package/esm2020/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +3 -3
  231. package/esm2020/tooltip/src/component/tooltip.component.mjs +3 -3
  232. package/esm2020/tooltip/src/directive/tooltip.directive.mjs +3 -3
  233. package/esm2020/tooltip/src/tooltip.module.mjs +4 -4
  234. package/esm2020/typeahead/src/typeahead.component.mjs +3 -3
  235. package/esm2020/typeahead/src/typeahead.module.mjs +4 -4
  236. package/esm2020/user-agent/src/directive/user-agent.directive.mjs +3 -3
  237. package/esm2020/user-agent/src/user-agent.module.mjs +4 -4
  238. package/fesm2015/mintplayer-ng-bootstrap-accordion.mjs +13 -13
  239. package/fesm2015/mintplayer-ng-bootstrap-alert.mjs +10 -10
  240. package/fesm2015/mintplayer-ng-bootstrap-badge.mjs +7 -7
  241. package/fesm2015/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  242. package/fesm2015/mintplayer-ng-bootstrap-button-group.mjs +7 -7
  243. package/fesm2015/mintplayer-ng-bootstrap-button-type.mjs +7 -7
  244. package/fesm2015/mintplayer-ng-bootstrap-calendar-month.mjs +17 -17
  245. package/fesm2015/mintplayer-ng-bootstrap-calendar.mjs +7 -7
  246. package/fesm2015/mintplayer-ng-bootstrap-card.mjs +10 -10
  247. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs +10 -10
  248. package/fesm2015/mintplayer-ng-bootstrap-close.mjs +7 -7
  249. package/fesm2015/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  250. package/fesm2015/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  251. package/fesm2015/mintplayer-ng-bootstrap-copy.mjs +7 -7
  252. package/fesm2015/mintplayer-ng-bootstrap-datatable.mjs +13 -13
  253. package/fesm2015/mintplayer-ng-bootstrap-datepicker.mjs +7 -7
  254. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +136 -56
  255. package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  256. package/fesm2015/mintplayer-ng-bootstrap-dropdown-divider.mjs +7 -7
  257. package/fesm2015/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  258. package/fesm2015/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
  259. package/fesm2015/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  260. package/fesm2015/mintplayer-ng-bootstrap-enum.mjs +3 -3
  261. package/fesm2015/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
  262. package/fesm2015/mintplayer-ng-bootstrap-floating-labels.mjs +7 -7
  263. package/fesm2015/mintplayer-ng-bootstrap-for.mjs +7 -7
  264. package/fesm2015/mintplayer-ng-bootstrap-form.mjs +13 -13
  265. package/fesm2015/mintplayer-ng-bootstrap-grid.mjs +16 -16
  266. package/fesm2015/mintplayer-ng-bootstrap-has-overlay.mjs +7 -7
  267. package/fesm2015/mintplayer-ng-bootstrap-icon.mjs +7 -7
  268. package/fesm2015/mintplayer-ng-bootstrap-input-group.mjs +7 -7
  269. package/fesm2015/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  270. package/fesm2015/mintplayer-ng-bootstrap-lazy-loading.mjs +7 -7
  271. package/fesm2015/mintplayer-ng-bootstrap-let.mjs +7 -7
  272. package/fesm2015/mintplayer-ng-bootstrap-list-group.mjs +10 -10
  273. package/fesm2015/mintplayer-ng-bootstrap-markdown.mjs +16 -16
  274. package/fesm2015/mintplayer-ng-bootstrap-modal.mjs +25 -25
  275. package/fesm2015/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
  276. package/fesm2015/mintplayer-ng-bootstrap-navbar.mjs +34 -34
  277. package/fesm2015/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
  278. package/fesm2015/mintplayer-ng-bootstrap-no-noscript.mjs +7 -7
  279. package/fesm2015/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
  280. package/fesm2015/mintplayer-ng-bootstrap-ordinal-number.mjs +7 -7
  281. package/fesm2015/mintplayer-ng-bootstrap-pagination.mjs +7 -7
  282. package/fesm2015/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
  283. package/fesm2015/mintplayer-ng-bootstrap-popover.mjs +16 -16
  284. package/fesm2015/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
  285. package/fesm2015/mintplayer-ng-bootstrap-range.mjs +10 -10
  286. package/fesm2015/mintplayer-ng-bootstrap-rating.mjs +7 -7
  287. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs +131 -32
  288. package/fesm2015/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  289. package/fesm2015/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
  290. package/fesm2015/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
  291. package/fesm2015/mintplayer-ng-bootstrap-select.mjs +13 -13
  292. package/fesm2015/mintplayer-ng-bootstrap-select2.mjs +10 -10
  293. package/fesm2015/mintplayer-ng-bootstrap-snackbar.mjs +13 -13
  294. package/fesm2015/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  295. package/fesm2015/mintplayer-ng-bootstrap-splitter.mjs +13 -13
  296. package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs +21 -16
  297. package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  298. package/fesm2015/mintplayer-ng-bootstrap-table.mjs +7 -7
  299. package/fesm2015/mintplayer-ng-bootstrap-timepicker.mjs +7 -7
  300. package/fesm2015/mintplayer-ng-bootstrap-toast.mjs +25 -25
  301. package/fesm2015/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
  302. package/fesm2015/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  303. package/fesm2015/mintplayer-ng-bootstrap-typeahead.mjs +7 -7
  304. package/fesm2015/mintplayer-ng-bootstrap-user-agent.mjs +7 -7
  305. package/fesm2015/mintplayer-ng-bootstrap.mjs +21 -21
  306. package/fesm2020/mintplayer-ng-bootstrap-accordion.mjs +13 -13
  307. package/fesm2020/mintplayer-ng-bootstrap-alert.mjs +10 -10
  308. package/fesm2020/mintplayer-ng-bootstrap-badge.mjs +7 -7
  309. package/fesm2020/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  310. package/fesm2020/mintplayer-ng-bootstrap-button-group.mjs +7 -7
  311. package/fesm2020/mintplayer-ng-bootstrap-button-type.mjs +7 -7
  312. package/fesm2020/mintplayer-ng-bootstrap-calendar-month.mjs +17 -17
  313. package/fesm2020/mintplayer-ng-bootstrap-calendar.mjs +7 -7
  314. package/fesm2020/mintplayer-ng-bootstrap-card.mjs +10 -10
  315. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs +10 -10
  316. package/fesm2020/mintplayer-ng-bootstrap-close.mjs +7 -7
  317. package/fesm2020/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  318. package/fesm2020/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  319. package/fesm2020/mintplayer-ng-bootstrap-copy.mjs +7 -7
  320. package/fesm2020/mintplayer-ng-bootstrap-datatable.mjs +13 -13
  321. package/fesm2020/mintplayer-ng-bootstrap-datepicker.mjs +7 -7
  322. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +135 -56
  323. package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  324. package/fesm2020/mintplayer-ng-bootstrap-dropdown-divider.mjs +7 -7
  325. package/fesm2020/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  326. package/fesm2020/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
  327. package/fesm2020/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  328. package/fesm2020/mintplayer-ng-bootstrap-enum.mjs +3 -3
  329. package/fesm2020/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
  330. package/fesm2020/mintplayer-ng-bootstrap-floating-labels.mjs +7 -7
  331. package/fesm2020/mintplayer-ng-bootstrap-for.mjs +7 -7
  332. package/fesm2020/mintplayer-ng-bootstrap-form.mjs +13 -13
  333. package/fesm2020/mintplayer-ng-bootstrap-grid.mjs +16 -16
  334. package/fesm2020/mintplayer-ng-bootstrap-has-overlay.mjs +7 -7
  335. package/fesm2020/mintplayer-ng-bootstrap-icon.mjs +7 -7
  336. package/fesm2020/mintplayer-ng-bootstrap-input-group.mjs +7 -7
  337. package/fesm2020/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  338. package/fesm2020/mintplayer-ng-bootstrap-lazy-loading.mjs +7 -7
  339. package/fesm2020/mintplayer-ng-bootstrap-let.mjs +7 -7
  340. package/fesm2020/mintplayer-ng-bootstrap-list-group.mjs +10 -10
  341. package/fesm2020/mintplayer-ng-bootstrap-markdown.mjs +16 -16
  342. package/fesm2020/mintplayer-ng-bootstrap-modal.mjs +25 -25
  343. package/fesm2020/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
  344. package/fesm2020/mintplayer-ng-bootstrap-navbar.mjs +34 -34
  345. package/fesm2020/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
  346. package/fesm2020/mintplayer-ng-bootstrap-no-noscript.mjs +7 -7
  347. package/fesm2020/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
  348. package/fesm2020/mintplayer-ng-bootstrap-ordinal-number.mjs +7 -7
  349. package/fesm2020/mintplayer-ng-bootstrap-pagination.mjs +7 -7
  350. package/fesm2020/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
  351. package/fesm2020/mintplayer-ng-bootstrap-popover.mjs +16 -16
  352. package/fesm2020/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
  353. package/fesm2020/mintplayer-ng-bootstrap-range.mjs +10 -10
  354. package/fesm2020/mintplayer-ng-bootstrap-rating.mjs +7 -7
  355. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs +131 -32
  356. package/fesm2020/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  357. package/fesm2020/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
  358. package/fesm2020/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
  359. package/fesm2020/mintplayer-ng-bootstrap-select.mjs +13 -13
  360. package/fesm2020/mintplayer-ng-bootstrap-select2.mjs +10 -10
  361. package/fesm2020/mintplayer-ng-bootstrap-snackbar.mjs +13 -13
  362. package/fesm2020/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  363. package/fesm2020/mintplayer-ng-bootstrap-splitter.mjs +13 -13
  364. package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs +21 -16
  365. package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  366. package/fesm2020/mintplayer-ng-bootstrap-table.mjs +7 -7
  367. package/fesm2020/mintplayer-ng-bootstrap-timepicker.mjs +7 -7
  368. package/fesm2020/mintplayer-ng-bootstrap-toast.mjs +25 -25
  369. package/fesm2020/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
  370. package/fesm2020/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  371. package/fesm2020/mintplayer-ng-bootstrap-typeahead.mjs +7 -7
  372. package/fesm2020/mintplayer-ng-bootstrap-user-agent.mjs +7 -7
  373. package/fesm2020/mintplayer-ng-bootstrap.mjs +21 -21
  374. package/package.json +3 -2
  375. package/resizable/src/index.d.ts +1 -0
  376. package/resizable/src/interfaces/index.d.ts +1 -0
  377. package/resizable/src/interfaces/preset-position.d.ts +6 -0
  378. package/resizable/src/interfaces/resize-action.d.ts +4 -2
  379. package/resizable/src/resizable/resizable.component.d.ts +18 -3
  380. package/resizable/src/resize-glyph/resize-glyph.directive.d.ts +1 -2
  381. package/resizable/src/types/index.d.ts +1 -0
  382. package/resizable/src/types/positioning.d.ts +1 -0
@@ -5,12 +5,12 @@ import { BsResizeGlyphDirective } from './resize-glyph/resize-glyph.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  export class BsResizableModule {
7
7
  }
8
- BsResizableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- BsResizableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsResizableModule, declarations: [BsResizableComponent,
8
+ BsResizableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ BsResizableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsResizableModule, declarations: [BsResizableComponent,
10
10
  BsResizeGlyphDirective], imports: [CommonModule], exports: [BsResizableComponent,
11
11
  BsResizeGlyphDirective] });
12
- BsResizableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizableModule, imports: [CommonModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizableModule, decorators: [{
12
+ BsResizableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsResizableModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsResizableModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [
@@ -35,13 +35,15 @@ export class BsResizeGlyphDirective {
35
35
  this.onPointerUp();
36
36
  }
37
37
  onPointerDown() {
38
- let action = {};
38
+ let action = {
39
+ positioning: this.resizable.positioning
40
+ };
39
41
  const rect = this.resizable.element.nativeElement.getBoundingClientRect();
40
42
  const styles = window.getComputedStyle(this.resizable.element.nativeElement);
41
- const marginLeft = parseFloat(styles.marginLeft.slice(0, -2));
42
- const marginRight = parseFloat(styles.marginRight.slice(0, -2));
43
- const marginTop = parseFloat(styles.marginTop.slice(0, -2));
44
- const marginBottom = parseFloat(styles.marginBottom.slice(0, -2));
43
+ const marginLeft = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));
44
+ const marginRight = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));
45
+ const marginTop = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));
46
+ const marginBottom = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));
45
47
  if (this.positions?.includes('start')) {
46
48
  action = {
47
49
  ...action,
@@ -88,39 +90,83 @@ export class BsResizeGlyphDirective {
88
90
  }
89
91
  this.resizable.resizeAction = action;
90
92
  this.activeClass = true;
91
- console.log('resize', action);
92
93
  }
93
94
  onPointerMove(ev) {
94
95
  if (this.resizable.resizeAction && !this.isBusy) {
95
96
  ev.preventDefault();
96
97
  this.isBusy = true;
97
98
  const rct = this.resizable.element.nativeElement.getBoundingClientRect();
98
- // console.log('position', ev);
99
99
  if (this.resizable.resizeAction.start && this.positions?.includes('end')) {
100
100
  // Right glyph
101
- const initalMargin = this.resizable.marginRight ?? 0;
102
101
  const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;
103
- this.resizable.marginRight = initalMargin - (x - rct.right);
102
+ switch (this.resizable.positioning) {
103
+ case 'inline':
104
+ {
105
+ const initalMargin = this.resizable.marginRight ?? 0;
106
+ this.resizable.marginRight = initalMargin - (x - rct.right);
107
+ }
108
+ break;
109
+ case 'absolute':
110
+ {
111
+ this.resizable.width = x - rct.left;
112
+ }
113
+ break;
114
+ }
104
115
  }
105
116
  else if (this.resizable.resizeAction.end && this.positions?.includes('start')) {
106
117
  // Left glyph
107
- const initalMargin = this.resizable.marginLeft ?? 0;
108
118
  const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;
109
- this.resizable.marginLeft = initalMargin + x - rct.left;
119
+ switch (this.resizable.positioning) {
120
+ case 'inline':
121
+ {
122
+ const initalMargin = this.resizable.marginLeft ?? 0;
123
+ this.resizable.marginLeft = initalMargin + x - rct.left;
124
+ }
125
+ break;
126
+ case 'absolute':
127
+ {
128
+ this.resizable.left = x;
129
+ this.resizable.width = this.resizable.resizeAction.end.edge - x;
130
+ }
131
+ break;
132
+ }
110
133
  }
111
134
  if (this.resizable.resizeAction.top && this.positions?.includes('bottom')) {
112
135
  // Bottom glyph
113
- const initalMargin = this.resizable.marginBottom ?? 0;
114
136
  const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;
115
- this.resizable.height = y - rct.top;
116
- this.resizable.marginBottom = initalMargin - (y - rct.bottom);
137
+ switch (this.resizable.positioning) {
138
+ case 'inline':
139
+ {
140
+ const initalMargin = this.resizable.marginBottom ?? 0;
141
+ this.resizable.height = y - rct.top;
142
+ this.resizable.marginBottom = initalMargin - (y - rct.bottom);
143
+ }
144
+ break;
145
+ case 'absolute':
146
+ {
147
+ this.resizable.height = y - rct.top;
148
+ }
149
+ break;
150
+ }
117
151
  }
118
152
  else if (this.resizable.resizeAction.bottom && this.positions?.includes('top')) {
119
153
  // Top glyph
120
- const initalMargin = this.resizable.marginTop ?? 0;
121
154
  const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;
122
- this.resizable.height = rct.bottom - y;
123
- this.resizable.marginTop = initalMargin + y - rct.top;
155
+ switch (this.resizable.positioning) {
156
+ case 'inline':
157
+ {
158
+ const initalMargin = this.resizable.marginTop ?? 0;
159
+ this.resizable.height = rct.bottom - y;
160
+ this.resizable.marginTop = initalMargin + y - rct.top;
161
+ }
162
+ break;
163
+ case 'absolute':
164
+ {
165
+ this.resizable.top = y;
166
+ this.resizable.height = this.resizable.resizeAction.bottom.edge - y;
167
+ }
168
+ break;
169
+ }
124
170
  }
125
171
  this.isBusy = false;
126
172
  }
@@ -130,9 +176,9 @@ export class BsResizeGlyphDirective {
130
176
  this.activeClass = false;
131
177
  }
132
178
  }
133
- BsResizeGlyphDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizeGlyphDirective, deps: [{ token: RESIZABLE }], target: i0.ɵɵFactoryTarget.Directive });
134
- BsResizeGlyphDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: { bsResizeGlyph: "bsResizeGlyph" }, host: { listeners: { "mousedown": "onMouseDown($event)", "touchstart": "onTouchStart($event)", "document:mousemove": "onMouseMove($event)", "touchmove": "onTouchMove($event)", "document:mouseup": "onMouseUp($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "this.positions", "class.glyph": "this.glyphClass", "class.active": "this.activeClass" } }, ngImport: i0 });
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizeGlyphDirective, decorators: [{
179
+ BsResizeGlyphDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsResizeGlyphDirective, deps: [{ token: RESIZABLE }], target: i0.ɵɵFactoryTarget.Directive });
180
+ BsResizeGlyphDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: { bsResizeGlyph: "bsResizeGlyph" }, host: { listeners: { "mousedown": "onMouseDown($event)", "touchstart": "onTouchStart($event)", "document:mousemove": "onMouseMove($event)", "touchmove": "onTouchMove($event)", "document:mouseup": "onMouseUp($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "this.positions", "class.glyph": "this.glyphClass", "class.active": "this.activeClass" } }, ngImport: i0 });
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsResizeGlyphDirective, decorators: [{
136
182
  type: Directive,
137
183
  args: [{
138
184
  selector: '[bsResizeGlyph]'
@@ -170,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
170
216
  type: HostListener,
171
217
  args: ['touchend', ['$event']]
172
218
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWdseXBoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmVzaXphYmxlL3NyYy9yZXNpemUtZ2x5cGgvcmVzaXplLWdseXBoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFLMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUs1RCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQStCLFNBQWM7UUFJdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUE4RnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFuR3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFNRCxJQUFhLGFBQWEsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVzQyxXQUFXLENBQUMsRUFBYztRQUMvRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFdUMsWUFBWSxDQUFDLEVBQWM7UUFDakUsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRStDLFdBQVcsQ0FBQyxFQUFjO1FBQ3hFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRXNDLFdBQVcsQ0FBQyxFQUFjO1FBQy9ELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25JO0lBQ0gsQ0FBQztJQUU2QyxTQUFTLENBQUMsRUFBUztRQUMvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVxQyxVQUFVLENBQUMsRUFBUztRQUN4RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLE1BQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3RSxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sR0FBRztnQkFDUCxHQUFHLE1BQU07Z0JBQ1QsR0FBRyxFQUFFO29CQUNILElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNoQixNQUFNLEVBQUUsV0FBVztvQkFDbkIsVUFBVSxFQUFFLFVBQVU7aUJBQ3ZCO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQyxNQUFNLEdBQUc7Z0JBQ1AsR0FBRyxNQUFNO2dCQUNULEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNoQixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsVUFBVSxFQUFFLFdBQVc7aUJBQ3hCO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQyxNQUFNLEdBQUc7Z0JBQ1AsR0FBRyxNQUFNO2dCQUNULE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDakIsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLFVBQVUsRUFBRSxTQUFTO2lCQUN0QjthQUNGLENBQUM7U0FDSDtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxHQUFHO2dCQUNQLEdBQUcsTUFBTTtnQkFDVCxHQUFHLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHO29CQUNkLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDakIsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLFVBQVUsRUFBRSxZQUFZO2lCQUN6QjthQUNGLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsYUFBYSxDQUFDLEVBQWU7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0MsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3pFLCtCQUErQjtZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEUsY0FBYztnQkFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDL0UsYUFBYTtnQkFDYixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQ3pEO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3pFLGVBQWU7Z0JBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQy9EO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoRixZQUFZO2dCQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDOzttSEE5SVUsc0JBQXNCLGtCQUdiLFNBQVM7dUdBSGxCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzswQkFJYyxNQUFNOzJCQUFDLFNBQVM7NENBSVAsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUNRLFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYTtnQkFDRyxXQUFXO3NCQUF2QyxXQUFXO3VCQUFDLGNBQWM7Z0JBRWQsYUFBYTtzQkFBekIsS0FBSztnQkFJaUMsV0FBVztzQkFBakQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0csWUFBWTtzQkFBbkQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS1UsV0FBVztzQkFBMUQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJUCxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNUyxTQUFTO3NCQUF0RCxZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlOLFVBQVU7c0JBQS9DLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBmb3J3YXJkUmVmLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHR5cGUgeyBCc1Jlc2l6YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2l6ZUFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVzaXplLWFjdGlvbic7XG5pbXBvcnQgeyBQb2ludGVyRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnRlci1kYXRhJztcbmltcG9ydCB7IFJFU0laQUJMRSB9IGZyb20gJy4uL3Byb3ZpZGVycy9yZXNpemFibGUucHJvdmlkZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNSZXNpemVHbHlwaF0nXG59KVxuZXhwb3J0IGNsYXNzIEJzUmVzaXplR2x5cGhEaXJlY3RpdmUge1xuXG4gIHJlc2l6YWJsZTogQnNSZXNpemFibGVDb21wb25lbnRcbiAgY29uc3RydWN0b3IoQEluamVjdChSRVNJWkFCTEUpIHJlc2l6YWJsZTogYW55KSB7XG4gICAgdGhpcy5yZXNpemFibGUgPSByZXNpemFibGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcG9zaXRpb25zID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZ2x5cGgnKSBnbHlwaENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKSBhY3RpdmVDbGFzcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBic1Jlc2l6ZUdseXBoKHZhbHVlOiBQb3NpdGlvbltdKSB7XG4gICAgdGhpcy5wb3NpdGlvbnMgPSB2YWx1ZS5qb2luKCcgJyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKSBvbk1vdXNlRG93bihldjogTW91c2VFdmVudCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblBvaW50ZXJEb3duKClcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbJyRldmVudCddKSBvblRvdWNoU3RhcnQoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMub25Qb2ludGVyRG93bigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vtb3ZlJywgWyckZXZlbnQnXSkgb25Nb3VzZU1vdmUoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm9uUG9pbnRlck1vdmUoeyBjbGllbnRYOiBldi5jbGllbnRYLCBjbGllbnRZOiBldi5jbGllbnRZLCBwcmV2ZW50RGVmYXVsdDogKCkgPT4gZXYucHJldmVudERlZmF1bHQoKSB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pIG9uVG91Y2hNb3ZlKGV2OiBUb3VjaEV2ZW50KSB7XG4gICAgaWYgKGV2LnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlck1vdmUoeyBjbGllbnRYOiBldi50b3VjaGVzWzBdLmNsaWVudFgsIGNsaWVudFk6IGV2LnRvdWNoZXNbMF0uY2xpZW50WSwgcHJldmVudERlZmF1bHQ6ICgpID0+IGV2LnByZXZlbnREZWZhdWx0KCkgfSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pIG9uTW91c2VVcChldjogRXZlbnQpIHtcbiAgICB0aGlzLm9uUG9pbnRlclVwKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pIG9uVG91Y2hFbmQoZXY6IEV2ZW50KSB7XG4gICAgdGhpcy5vblBvaW50ZXJVcCgpO1xuICB9XG5cbiAgb25Qb2ludGVyRG93bigpIHtcbiAgICBsZXQgYWN0aW9uOiBSZXNpemVBY3Rpb24gPSB7fTtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5yZXNpemFibGUuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVzaXphYmxlLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luTGVmdC5zbGljZSgwLCAtMikpO1xuICAgIGNvbnN0IG1hcmdpblJpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luUmlnaHQuc2xpY2UoMCwgLTIpKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5Ub3Auc2xpY2UoMCwgLTIpKTtcbiAgICBjb25zdCBtYXJnaW5Cb3R0b20gPSBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5Cb3R0b20uc2xpY2UoMCwgLTIpKTtcblxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3N0YXJ0JykpIHtcbiAgICAgIGFjdGlvbiA9IHtcbiAgICAgICAgLi4uYWN0aW9uLFxuICAgICAgICBlbmQ6IHtcbiAgICAgICAgICBlZGdlOiByZWN0LnJpZ2h0LFxuICAgICAgICAgIHNpemU6IHJlY3Qud2lkdGgsXG4gICAgICAgICAgbWFyZ2luOiBtYXJnaW5SaWdodCxcbiAgICAgICAgICBkcmFnTWFyZ2luOiBtYXJnaW5MZWZ0XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdlbmQnKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgZWRnZTogcmVjdC5sZWZ0LFxuICAgICAgICAgIHNpemU6IHJlY3Qud2lkdGgsXG4gICAgICAgICAgbWFyZ2luOiBtYXJnaW5MZWZ0LFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpblJpZ2h0XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCd0b3AnKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGJvdHRvbToge1xuICAgICAgICAgIGVkZ2U6IHJlY3QuYm90dG9tLFxuICAgICAgICAgIHNpemU6IHJlY3QuaGVpZ2h0LFxuICAgICAgICAgIG1hcmdpbjogbWFyZ2luQm90dG9tLFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpblRvcFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnYm90dG9tJykpIHtcbiAgICAgIGFjdGlvbiA9IHtcbiAgICAgICAgLi4uYWN0aW9uLFxuICAgICAgICB0b3A6IHtcbiAgICAgICAgICBlZGdlOiByZWN0LnRvcCxcbiAgICAgICAgICBzaXplOiByZWN0LmhlaWdodCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpblRvcCxcbiAgICAgICAgICBkcmFnTWFyZ2luOiBtYXJnaW5Cb3R0b21cbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uID0gYWN0aW9uO1xuICAgIHRoaXMuYWN0aXZlQ2xhc3MgPSB0cnVlO1xuICAgIGNvbnNvbGUubG9nKCdyZXNpemUnLCBhY3Rpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0J1c3kgPSBmYWxzZTtcbiAgb25Qb2ludGVyTW92ZShldjogUG9pbnRlckRhdGEpIHtcbiAgICBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uICYmICF0aGlzLmlzQnVzeSkge1xuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHJjdCA9IHRoaXMucmVzaXphYmxlLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdwb3NpdGlvbicsIGV2KTtcbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24uc3RhcnQgJiYgdGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdlbmQnKSkge1xuICAgICAgICAvLyBSaWdodCBnbHlwaFxuICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5SaWdodCA/PyAwO1xuICAgICAgICBjb25zdCB4ID0gKGV2LmNsaWVudFggPCByY3QubGVmdCArIDEwKSA/IHJjdC5sZWZ0ICsgMTAgOiBldi5jbGllbnRYO1xuICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5SaWdodCA9IGluaXRhbE1hcmdpbiAtICh4IC0gcmN0LnJpZ2h0KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3N0YXJ0JykpIHtcbiAgICAgICAgLy8gTGVmdCBnbHlwaFxuICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID8/IDA7XG4gICAgICAgIGNvbnN0IHggPSAoZXYuY2xpZW50WCA+IHJjdC5yaWdodCAtIDEwKSA/IHJjdC5yaWdodCAtIDEwIDogZXYuY2xpZW50WDtcbiAgICAgICAgdGhpcy5yZXNpemFibGUubWFyZ2luTGVmdCA9IGluaXRhbE1hcmdpbiArIHggLSByY3QubGVmdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi50b3AgJiYgdGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdib3R0b20nKSkge1xuICAgICAgICAvLyBCb3R0b20gZ2x5cGhcbiAgICAgICAgY29uc3QgaW5pdGFsTWFyZ2luID0gdGhpcy5yZXNpemFibGUubWFyZ2luQm90dG9tID8/IDA7XG4gICAgICAgIGNvbnN0IHkgPSAoZXYuY2xpZW50WSA8IHJjdC50b3AgKyAxMCkgPyByY3QudG9wICsgMTAgOiBldi5jbGllbnRZO1xuICAgICAgICB0aGlzLnJlc2l6YWJsZS5oZWlnaHQgPSB5IC0gcmN0LnRvcDtcbiAgICAgICAgdGhpcy5yZXNpemFibGUubWFyZ2luQm90dG9tID0gaW5pdGFsTWFyZ2luIC0gKHkgLSByY3QuYm90dG9tKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmJvdHRvbSAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICAgIC8vIFRvcCBnbHlwaFxuICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5Ub3AgPz8gMDtcbiAgICAgICAgY29uc3QgeSA9IChldi5jbGllbnRZID4gcmN0LmJvdHRvbSAtIDEwKSA/IHJjdC5ib3R0b20gLSAxMCA6IGV2LmNsaWVudFk7XG4gICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHJjdC5ib3R0b20gLSB5O1xuICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5Ub3AgPSBpbml0YWxNYXJnaW4gKyB5IC0gcmN0LnRvcDtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIFxuICBvblBvaW50ZXJVcCgpIHtcbiAgICB0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5hY3RpdmVDbGFzcyA9IGZhbHNlO1xuICB9XG59XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWdseXBoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvcmVzaXphYmxlL3NyYy9yZXNpemUtZ2x5cGgvcmVzaXplLWdseXBoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFLMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUs1RCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQStCLFNBQWM7UUFJdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUErRnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFwR3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFNRCxJQUFhLGFBQWEsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVzQyxXQUFXLENBQUMsRUFBYztRQUMvRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFdUMsWUFBWSxDQUFDLEVBQWM7UUFDakUsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRStDLFdBQVcsQ0FBQyxFQUFjO1FBQ3hFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUs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Q0Y7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7O21IQTdLVSxzQkFBc0Isa0JBSWIsU0FBUzt1R0FKbEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQUtjLE1BQU07MkJBQUMsU0FBUzs0Q0FJUCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ1EsVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNHLFdBQVc7c0JBQXZDLFdBQVc7dUJBQUMsY0FBYztnQkFFZCxhQUFhO3NCQUF6QixLQUFLO2dCQUlpQyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLRyxZQUFZO3NCQUFuRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLVSxXQUFXO3NCQUExRCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlQLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1TLFNBQVM7c0JBQXRELFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSU4sVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgdHlwZSB7IEJzUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXplQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXNpemUtYWN0aW9uJztcbmltcG9ydCB7IFBvaW50ZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludGVyLWRhdGEnO1xuaW1wb3J0IHsgUkVTSVpBQkxFIH0gZnJvbSAnLi4vcHJvdmlkZXJzL3Jlc2l6YWJsZS5wcm92aWRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1Jlc2l6ZUdseXBoXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNSZXNpemVHbHlwaERpcmVjdGl2ZSB7XG5cbiAgLy8gQ2FuJ3QgdXNlIHR5cGVkIERJIGJlY2F1c2Ugb2YgdGhlIGBpbXBvcnQgdHlwZWBcbiAgcHJpdmF0ZSByZXNpemFibGU6IEJzUmVzaXphYmxlQ29tcG9uZW50O1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KFJFU0laQUJMRSkgcmVzaXphYmxlOiBhbnkpIHtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IHJlc2l6YWJsZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwb3NpdGlvbnMgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5nbHlwaCcpIGdseXBoQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpIGFjdGl2ZUNsYXNzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGJzUmVzaXplR2x5cGgodmFsdWU6IFBvc2l0aW9uW10pIHtcbiAgICB0aGlzLnBvc2l0aW9ucyA9IHZhbHVlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2VEb3duKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uUG9pbnRlckRvd24oKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pIG9uVG91Y2hTdGFydChldjogVG91Y2hFdmVudCkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblBvaW50ZXJEb3duKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKSBvbk1vdXNlTW92ZShldjogTW91c2VFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LmNsaWVudFgsIGNsaWVudFk6IGV2LmNsaWVudFksIHByZXZlbnREZWZhdWx0OiAoKSA9PiBldi5wcmV2ZW50RGVmYXVsdCgpIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSkgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoZXYudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyTW92ZSh7IGNsaWVudFg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCwgY2xpZW50WTogZXYudG91Y2hlc1swXS5jbGllbnRZLCBwcmV2ZW50RGVmYXVsdDogKCkgPT4gZXYucHJldmVudERlZmF1bHQoKSB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSkgb25Nb3VzZVVwKGV2OiBFdmVudCkge1xuICAgIHRoaXMub25Qb2ludGVyVXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSkgb25Ub3VjaEVuZChldjogRXZlbnQpIHtcbiAgICB0aGlzLm9uUG9pbnRlclVwKCk7XG4gIH1cblxuICBvblBvaW50ZXJEb3duKCkge1xuICAgIGxldCBhY3Rpb246IFJlc2l6ZUFjdGlvbiA9IHtcbiAgICAgIHBvc2l0aW9uaW5nOiB0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZ1xuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IHRoaXMucmVzaXphYmxlLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlc2l6YWJsZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9ICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZyA9PT0gJ2Fic29sdXRlJykgPyB1bmRlZmluZWQgOiBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5MZWZ0LnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luUmlnaHQgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luUmlnaHQuc2xpY2UoMCwgLTIpKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcgPT09ICdhYnNvbHV0ZScpID8gdW5kZWZpbmVkIDogcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wLnNsaWNlKDAsIC0yKSk7XG4gICAgY29uc3QgbWFyZ2luQm90dG9tID0gKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nID09PSAnYWJzb2x1dGUnKSA/IHVuZGVmaW5lZCA6IHBhcnNlRmxvYXQoc3R5bGVzLm1hcmdpbkJvdHRvbS5zbGljZSgwLCAtMikpO1xuXG4gICAgaWYgKHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnc3RhcnQnKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGVuZDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QucmlnaHQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpblJpZ2h0LFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkxlZnRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBlZGdlOiByZWN0LmxlZnQsXG4gICAgICAgICAgc2l6ZTogcmVjdC53aWR0aCxcbiAgICAgICAgICBtYXJnaW46IG1hcmdpbkxlZnQsXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luUmlnaHRcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgYm90dG9tOiB7XG4gICAgICAgICAgZWRnZTogcmVjdC5ib3R0b20sXG4gICAgICAgICAgc2l6ZTogcmVjdC5oZWlnaHQsXG4gICAgICAgICAgbWFyZ2luOiBtYXJnaW5Cb3R0b20sXG4gICAgICAgICAgZHJhZ01hcmdpbjogbWFyZ2luVG9wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5wb3NpdGlvbnM/LmluY2x1ZGVzKCdib3R0b20nKSkge1xuICAgICAgYWN0aW9uID0ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIHRvcDoge1xuICAgICAgICAgIGVkZ2U6IHJlY3QudG9wLFxuICAgICAgICAgIHNpemU6IHJlY3QuaGVpZ2h0LFxuICAgICAgICAgIG1hcmdpbjogbWFyZ2luVG9wLFxuICAgICAgICAgIGRyYWdNYXJnaW46IG1hcmdpbkJvdHRvbVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gPSBhY3Rpb247XG4gICAgdGhpcy5hY3RpdmVDbGFzcyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzQnVzeSA9IGZhbHNlO1xuICBvblBvaW50ZXJNb3ZlKGV2OiBQb2ludGVyRGF0YSkge1xuICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24gJiYgIXRoaXMuaXNCdXN5KSB7XG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgY29uc3QgcmN0ID0gdGhpcy5yZXNpemFibGUuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5zdGFydCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ2VuZCcpKSB7XG4gICAgICAgIC8vIFJpZ2h0IGdseXBoXG4gICAgICAgIGNvbnN0IHggPSAoZXYuY2xpZW50WCA8IHJjdC5sZWZ0ICsgMTApID8gcmN0LmxlZnQgKyAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5SaWdodCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUubWFyZ2luUmlnaHQgPSBpbml0YWxNYXJnaW4gLSAoeCAtIHJjdC5yaWdodCk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0geCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZCAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3N0YXJ0JykpIHtcbiAgICAgICAgLy8gTGVmdCBnbHlwaFxuICAgICAgICBjb25zdCB4ID0gKGV2LmNsaWVudFggPiByY3QucmlnaHQgLSAxMCkgPyByY3QucmlnaHQgLSAxMCA6IGV2LmNsaWVudFg7XG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemFibGUucG9zaXRpb25pbmcpIHtcbiAgICAgICAgICBjYXNlICdpbmxpbmUnOiB7XG4gICAgICAgICAgICBjb25zdCBpbml0YWxNYXJnaW4gPSB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5MZWZ0ID0gaW5pdGFsTWFyZ2luICsgeCAtIHJjdC5sZWZ0O1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYWJzb2x1dGUnOiB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5sZWZ0ID0geDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLndpZHRoID0gdGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmVuZC5lZGdlIC0geDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZS5yZXNpemVBY3Rpb24udG9wICYmIHRoaXMucG9zaXRpb25zPy5pbmNsdWRlcygnYm90dG9tJykpIHtcbiAgICAgICAgLy8gQm90dG9tIGdseXBoXG4gICAgICAgIGNvbnN0IHkgPSAoZXYuY2xpZW50WSA8IHJjdC50b3AgKyAxMCkgPyByY3QudG9wICsgMTAgOiBldi5jbGllbnRZO1xuICAgICAgICBzd2l0Y2ggKHRoaXMucmVzaXphYmxlLnBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgY2FzZSAnaW5saW5lJzoge1xuICAgICAgICAgICAgY29uc3QgaW5pdGFsTWFyZ2luID0gdGhpcy5yZXNpemFibGUubWFyZ2luQm90dG9tID8/IDA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5oZWlnaHQgPSB5IC0gcmN0LnRvcDtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLm1hcmdpbkJvdHRvbSA9IGluaXRhbE1hcmdpbiAtICh5IC0gcmN0LmJvdHRvbSk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHkgLSByY3QudG9wO1xuICAgICAgICAgIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemFibGUucmVzaXplQWN0aW9uLmJvdHRvbSAmJiB0aGlzLnBvc2l0aW9ucz8uaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICAgIC8vIFRvcCBnbHlwaFxuICAgICAgICBjb25zdCB5ID0gKGV2LmNsaWVudFkgPiByY3QuYm90dG9tIC0gMTApID8gcmN0LmJvdHRvbSAtIDEwIDogZXYuY2xpZW50WTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlc2l6YWJsZS5wb3NpdGlvbmluZykge1xuICAgICAgICAgIGNhc2UgJ2lubGluZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRhbE1hcmdpbiA9IHRoaXMucmVzaXphYmxlLm1hcmdpblRvcCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUuaGVpZ2h0ID0gcmN0LmJvdHRvbSAtIHk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6YWJsZS5tYXJnaW5Ub3AgPSBpbml0YWxNYXJnaW4gKyB5IC0gcmN0LnRvcDtcbiAgICAgICAgICB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2Fic29sdXRlJzoge1xuICAgICAgICAgICAgdGhpcy5yZXNpemFibGUudG9wID0geTtcbiAgICAgICAgICAgIHRoaXMucmVzaXphYmxlLmhlaWdodCA9IHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbi5ib3R0b20uZWRnZSAtIHk7XG4gICAgICAgICAgfSBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgXG4gIG9uUG9pbnRlclVwKCkge1xuICAgIHRoaXMucmVzaXphYmxlLnJlc2l6ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFjdGl2ZUNsYXNzID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './positioning';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3Jlc2l6YWJsZS9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Bvc2l0aW9uaW5nJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3Jlc2l6YWJsZS9zcmMvdHlwZXMvcG9zaXRpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJlc2l6YWJsZVBvc2l0aW9uaW5nID0gJ2Fic29sdXRlJyB8ICdpbmxpbmUnOyJdfQ==
@@ -68,9 +68,9 @@ export class ResourceGroupPresenterComponent {
68
68
  this.destroyed$.next(true);
69
69
  }
70
70
  }
71
- ResourceGroupPresenterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: ResourceGroupPresenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
- ResourceGroupPresenterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: { level: "level", resourceGroup: "resourceGroup", timeSlots: "timeSlots", isExpanded: "isExpanded" }, ngImport: i0, template: "<ng-container *ngIf=\"(data$ | async) as data\">\n\n <!-- Data is a resource group -->\n <ng-container *ngIf=\"data.resourceGroup\">\n <!-- Header -->\n <tr class=\"p-0 cursor-pointer\" *ngIf=\"(timeSlots$ | async) as timeSlots\" [title]=\"data.resourceGroup.description\">\n <ng-container *ngIf=\"(colSpan$ | async) as colspan\">\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n <bs-icon [icon]=\"'chevron-down'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"isExpanded$ | async\"></bs-icon>\n <bs-icon [icon]=\"'chevron-right'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"(isExpanded$ | async) === false\"></bs-icon>\n {{ data.resourceGroup.description }}\n </span>\n </td>\n </ng-container>\n </tr>\n\n <!-- Subgroups or resources -->\n <ng-container *ngIf=\"isExpanded$ | async\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <ng-container *ngFor=\"let child of data.resourceGroup.children\">\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- Data is a resource -->\n <tr *ngIf=\"data.resource\" class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n <ng-container *ngFor=\"let slots of (timeSlots$ | async)\">\n <td class=\"bg-white border-1\" *ngFor=\"let slot of slots.slots\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n </ng-container>\n </tr>\n</ng-container>", styles: [":host{display:contents}tr{border-bottom-width:1px}tr:not(.bordered) td span.position-sticky{left:0;right:0}\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.BsIconComponent, selector: "bs-icon", inputs: ["icon"] }, { kind: "component", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: ResourceGroupPresenterComponent, decorators: [{
71
+ ResourceGroupPresenterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ResourceGroupPresenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
+ ResourceGroupPresenterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: { level: "level", resourceGroup: "resourceGroup", timeSlots: "timeSlots", isExpanded: "isExpanded" }, ngImport: i0, template: "<ng-container *ngIf=\"(data$ | async) as data\">\n\n <!-- Data is a resource group -->\n <ng-container *ngIf=\"data.resourceGroup\">\n <!-- Header -->\n <tr class=\"p-0 cursor-pointer\" *ngIf=\"(timeSlots$ | async) as timeSlots\" [title]=\"data.resourceGroup.description\">\n <ng-container *ngIf=\"(colSpan$ | async) as colspan\">\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n <bs-icon [icon]=\"'chevron-down'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"isExpanded$ | async\"></bs-icon>\n <bs-icon [icon]=\"'chevron-right'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"(isExpanded$ | async) === false\"></bs-icon>\n {{ data.resourceGroup.description }}\n </span>\n </td>\n </ng-container>\n </tr>\n\n <!-- Subgroups or resources -->\n <ng-container *ngIf=\"isExpanded$ | async\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <ng-container *ngFor=\"let child of data.resourceGroup.children\">\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- Data is a resource -->\n <tr *ngIf=\"data.resource\" class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n <ng-container *ngFor=\"let slots of (timeSlots$ | async)\">\n <td class=\"bg-white border-1\" *ngFor=\"let slot of slots.slots\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n </ng-container>\n </tr>\n</ng-container>", styles: [":host{display:contents}tr{border-bottom-width:1px}tr:not(.bordered) td span.position-sticky{left:0;right:0}\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.BsIconComponent, selector: "bs-icon", inputs: ["icon"] }, { kind: "component", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ResourceGroupPresenterComponent, decorators: [{
74
74
  type: Component,
75
75
  args: [{ selector: 'bs-resource-group-presenter', template: "<ng-container *ngIf=\"(data$ | async) as data\">\n\n <!-- Data is a resource group -->\n <ng-container *ngIf=\"data.resourceGroup\">\n <!-- Header -->\n <tr class=\"p-0 cursor-pointer\" *ngIf=\"(timeSlots$ | async) as timeSlots\" [title]=\"data.resourceGroup.description\">\n <ng-container *ngIf=\"(colSpan$ | async) as colspan\">\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n <bs-icon [icon]=\"'chevron-down'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"isExpanded$ | async\"></bs-icon>\n <bs-icon [icon]=\"'chevron-right'\" [style.padding-left.px]=\"level * 20\" *ngIf=\"(isExpanded$ | async) === false\"></bs-icon>\n {{ data.resourceGroup.description }}\n </span>\n </td>\n </ng-container>\n </tr>\n\n <!-- Subgroups or resources -->\n <ng-container *ngIf=\"isExpanded$ | async\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <ng-container *ngFor=\"let child of data.resourceGroup.children\">\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- Data is a resource -->\n <tr *ngIf=\"data.resource\" class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n <ng-container *ngFor=\"let slots of (timeSlots$ | async)\">\n <td class=\"bg-white border-1\" *ngFor=\"let slot of slots.slots\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n </ng-container>\n </tr>\n</ng-container>", styles: [":host{display:contents}tr{border-bottom-width:1px}tr:not(.bordered) td span.position-sticky{left:0;right:0}\n"] }]
76
76
  }], ctorParameters: function () { return []; }, propDecorators: { level: [{
@@ -505,9 +505,9 @@ export class BsSchedulerComponent {
505
505
  this.destroyed$.next(true);
506
506
  }
507
507
  }
508
- BsSchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerComponent, deps: [{ token: i1.BsCalendarMonthService }, { token: i2.BsTimelineService }], target: i0.ɵɵFactoryTarget.Component });
509
- BsSchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsSchedulerComponent, selector: "bs-scheduler", inputs: { mode: "mode", weekOptions: "weekOptions", timelineOptions: "timelineOptions", maxInnerHeight: "maxInnerHeight", resources: "resources" }, outputs: { modeChange: "modeChange", weekOptionsChange: "weekOptionsChange", timelineOptionsChange: "timelineOptionsChange" }, host: { listeners: { "document:mousemove": "onMousemove($event)", "document:mouseup": "onMouseUp($event)" } }, viewQueries: [{ propertyName: "timeSlotElements", predicate: ["slot"], descendants: true }], ngImport: i0, template: "<div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\"\n *ngIf=\"(mode$ | async) === modes.week\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n <div class=\"flex-grow-1 calendar-head-cell\" *ngFor=\"let day of (shownDays$ | async)\">\n <span class=\"d-block col-form-label text-center text-nowrap\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n <div class=\"position-relative\" *ngIf=\"(timeSlots$ | async) as row\">\n <ng-container *ngIf=\"(weekOptions$ | async) as weekOptions\">\n <!-- Timeslots -->\n <div *ngFor=\"let timeslots of row; let i = index\" class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n <div class=\"calendar-cell flex-grow-1\" *ngFor=\"let slot of timeslots.slots; let j = index\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n </div>\n\n <!-- Events -->\n <ng-container *ngIf=\"(timeSlotDuration$ | async) as timeSlotDuration\">\n <ng-container *ngIf=\"(timelinedEventPartsForThisWeek$ | async) as partData\">\n <div *ngFor=\"let eventPart of partData.parts\" class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n\n <div class=\"event-resize top\"\n *ngIf=\"eventPart.part.start === eventPart.part.event?.start\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n <div class=\"event-border\"></div>\n <div class=\"event-wrapper\" *ngIf=\"eventPart.part.event\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n <div class=\"event-resize bottom\"\n *ngIf=\"eventPart.part.end === eventPart.part.event?.end\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(previewEventPartsForThisWeek$ | async) as previewPartData\">\n <div *ngFor=\"let eventPart of previewPartData\" class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\" *ngIf=\"(mode$ | async) === modes.timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <div class=\"flex-grow-1 h3 py-2 mb-0 text-center\">{{ currentWeekOrMonth$ | async | date: 'MMMM yyyy' }}</div>\n <button class=\"btn flex-start\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <tr>\n <td></td>\n <td *ngFor=\"let day of timeSlots\" [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n </tr>\n <tr>\n <td></td>\n <ng-container *ngIf=\"(timelineOptions$ | async) as timelineOptions\">\n <ng-container *ngFor=\"let day of timeSlots\">\n <td *ngFor=\"let slot of day.slots\">\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n <bs-resource-group-presenter *ngFor=\"let group of (resources$ | async)\" [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n </ng-container>\n </table>\n </div>\n</div>", styles: [":host{display:block;border:1px solid #333;border-top-right-radius:10px;border-top-left-radius:10px;overflow:hidden}.calendar-head{background:#F7F7F7;color:#007aff}.tabel .calendar-head{flex:0 0 auto}.tabel .calendar-body{display:block;flex:1 1 auto}.week-schedule .calendar-head>div{padding-right:18px}.week-schedule .calendar-body{overflow-y:scroll;overflow-x:hidden}.week-schedule .calendar-body .calendar-cell{border-right:1px solid #DEE2E6;border-bottom:1px solid #DEE2E6;cursor:default}.week-schedule .calendar-body .calendar-cell.hover{border-top-width:3px}.week-schedule .calendar-left{width:90px}.week-schedule .event{z-index:5;width:calc((100% - 90px) / 7);height:100px;overflow:hidden;position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none}.week-schedule .event.preview{background:#666;opacity:.6}.week-schedule .event .event-border{background:black;top:0;left:0;bottom:3px;width:3px;position:absolute;z-index:10;opacity:.3}.week-schedule .event .event-inner{position:relative;inset:0 5px 5px 0;cursor:move;pointer-events:all;overflow:hidden}.week-schedule .event .event-inner .event-wrapper{width:calc(100% - 2px);margin:1px auto 1px 0;height:calc(100% - 3px)}.week-schedule .event .event-inner .event-wrapper .event-bg{opacity:.5;height:100%;transition:opacity .15s ease-in-out}.week-schedule .event .event-inner .event-wrapper .event-label{position:absolute;top:0;font-size:12px;font-weight:600;padding:4px}.week-schedule .event .event-inner .event-resize{position:absolute;cursor:ns-resize;height:4px;left:0;right:0;z-index:400}.week-schedule .event .event-inner .event-resize.top{top:0}.week-schedule .event .event-inner .event-resize.bottom{bottom:0}.week-schedule .event .event-inner .event-resize:hover{background:#DDD}.week-schedule .event .event-inner.hover .event-bg{opacity:.7!important}@media (max-width: 767px){.week-schedule.tabel .calendar-head .calendar-head-cell{text-orientation:sideways;writing-mode:vertical-rl}}.timeline.tabel{flex-flow:column}.timeline .calendar-body .tabel{background-color:#f7f7f7}.timeline .calendar-body .tabel tr:first-child td{background-color:#fff;border:1px solid #000}.timeline .calendar-body .tabel tr:first-child td:first-child{min-width:10rem}.timeline .calendar-body .tabel tr:first-child span.day-label{left:0;right:0}.timeline .calendar-body .tabel tr:nth-child(2) td{border-width:1px;border-color:inherit}.timeline .calendar-body .tabel>:not(:first-child){border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.BsIconComponent, selector: "bs-icon", inputs: ["icon"] }, { kind: "component", type: i5.ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i6.BsSecondsTimespanPipe, name: "bsSecondsTimespan" }, { kind: "pipe", type: i7.BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" }, { kind: "pipe", type: i8.DayOfWeekPipe, name: "dayOfWeek" }] });
510
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerComponent, decorators: [{
508
+ BsSchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerComponent, deps: [{ token: i1.BsCalendarMonthService }, { token: i2.BsTimelineService }], target: i0.ɵɵFactoryTarget.Component });
509
+ BsSchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsSchedulerComponent, selector: "bs-scheduler", inputs: { mode: "mode", weekOptions: "weekOptions", timelineOptions: "timelineOptions", maxInnerHeight: "maxInnerHeight", resources: "resources" }, outputs: { modeChange: "modeChange", weekOptionsChange: "weekOptionsChange", timelineOptionsChange: "timelineOptionsChange" }, host: { listeners: { "document:mousemove": "onMousemove($event)", "document:mouseup": "onMouseUp($event)" } }, viewQueries: [{ propertyName: "timeSlotElements", predicate: ["slot"], descendants: true }], ngImport: i0, template: "<div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\"\n *ngIf=\"(mode$ | async) === modes.week\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n <div class=\"flex-grow-1 calendar-head-cell\" *ngFor=\"let day of (shownDays$ | async)\">\n <span class=\"d-block col-form-label text-center text-nowrap\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n <div class=\"position-relative\" *ngIf=\"(timeSlots$ | async) as row\">\n <ng-container *ngIf=\"(weekOptions$ | async) as weekOptions\">\n <!-- Timeslots -->\n <div *ngFor=\"let timeslots of row; let i = index\" class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n <div class=\"calendar-cell flex-grow-1\" *ngFor=\"let slot of timeslots.slots; let j = index\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n </div>\n\n <!-- Events -->\n <ng-container *ngIf=\"(timeSlotDuration$ | async) as timeSlotDuration\">\n <ng-container *ngIf=\"(timelinedEventPartsForThisWeek$ | async) as partData\">\n <div *ngFor=\"let eventPart of partData.parts\" class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n\n <div class=\"event-resize top\"\n *ngIf=\"eventPart.part.start === eventPart.part.event?.start\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n <div class=\"event-border\"></div>\n <div class=\"event-wrapper\" *ngIf=\"eventPart.part.event\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n <div class=\"event-resize bottom\"\n *ngIf=\"eventPart.part.end === eventPart.part.event?.end\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(previewEventPartsForThisWeek$ | async) as previewPartData\">\n <div *ngFor=\"let eventPart of previewPartData\" class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\" *ngIf=\"(mode$ | async) === modes.timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <div class=\"flex-grow-1 h3 py-2 mb-0 text-center\">{{ currentWeekOrMonth$ | async | date: 'MMMM yyyy' }}</div>\n <button class=\"btn flex-start\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <tr>\n <td></td>\n <td *ngFor=\"let day of timeSlots\" [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n </tr>\n <tr>\n <td></td>\n <ng-container *ngIf=\"(timelineOptions$ | async) as timelineOptions\">\n <ng-container *ngFor=\"let day of timeSlots\">\n <td *ngFor=\"let slot of day.slots\">\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n <bs-resource-group-presenter *ngFor=\"let group of (resources$ | async)\" [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n </ng-container>\n </table>\n </div>\n</div>", styles: [":host{display:block;border:1px solid #333;border-top-right-radius:10px;border-top-left-radius:10px;overflow:hidden}.calendar-head{background:#F7F7F7;color:#007aff}.tabel .calendar-head{flex:0 0 auto}.tabel .calendar-body{display:block;flex:1 1 auto}.week-schedule .calendar-head>div{padding-right:18px}.week-schedule .calendar-body{overflow-y:scroll;overflow-x:hidden}.week-schedule .calendar-body .calendar-cell{border-right:1px solid #DEE2E6;border-bottom:1px solid #DEE2E6;cursor:default}.week-schedule .calendar-body .calendar-cell.hover{border-top-width:3px}.week-schedule .calendar-left{width:90px}.week-schedule .event{z-index:5;width:calc((100% - 90px) / 7);height:100px;overflow:hidden;position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none}.week-schedule .event.preview{background:#666;opacity:.6}.week-schedule .event .event-border{background:black;top:0;left:0;bottom:3px;width:3px;position:absolute;z-index:10;opacity:.3}.week-schedule .event .event-inner{position:relative;inset:0 5px 5px 0;cursor:move;pointer-events:all;overflow:hidden}.week-schedule .event .event-inner .event-wrapper{width:calc(100% - 2px);margin:1px auto 1px 0;height:calc(100% - 3px)}.week-schedule .event .event-inner .event-wrapper .event-bg{opacity:.5;height:100%;transition:opacity .15s ease-in-out}.week-schedule .event .event-inner .event-wrapper .event-label{position:absolute;top:0;font-size:12px;font-weight:600;padding:4px}.week-schedule .event .event-inner .event-resize{position:absolute;cursor:ns-resize;height:4px;left:0;right:0;z-index:400}.week-schedule .event .event-inner .event-resize.top{top:0}.week-schedule .event .event-inner .event-resize.bottom{bottom:0}.week-schedule .event .event-inner .event-resize:hover{background:#DDD}.week-schedule .event .event-inner.hover .event-bg{opacity:.7!important}@media (max-width: 767px){.week-schedule.tabel .calendar-head .calendar-head-cell{text-orientation:sideways;writing-mode:vertical-rl}}.timeline.tabel{flex-flow:column}.timeline .calendar-body .tabel{background-color:#f7f7f7}.timeline .calendar-body .tabel tr:first-child td{background-color:#fff;border:1px solid #000}.timeline .calendar-body .tabel tr:first-child td:first-child{min-width:10rem}.timeline .calendar-body .tabel tr:first-child span.day-label{left:0;right:0}.timeline .calendar-body .tabel tr:nth-child(2) td{border-width:1px;border-color:inherit}.timeline .calendar-body .tabel>:not(:first-child){border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.BsIconComponent, selector: "bs-icon", inputs: ["icon"] }, { kind: "component", type: i5.ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i6.BsSecondsTimespanPipe, name: "bsSecondsTimespan" }, { kind: "pipe", type: i7.BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" }, { kind: "pipe", type: i8.DayOfWeekPipe, name: "dayOfWeek" }] });
510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerComponent, decorators: [{
511
511
  type: Component,
512
512
  args: [{ selector: 'bs-scheduler', template: "<div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\"\n *ngIf=\"(mode$ | async) === modes.week\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n <div class=\"flex-grow-1 calendar-head-cell\" *ngFor=\"let day of (shownDays$ | async)\">\n <span class=\"d-block col-form-label text-center text-nowrap\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n <div class=\"position-relative\" *ngIf=\"(timeSlots$ | async) as row\">\n <ng-container *ngIf=\"(weekOptions$ | async) as weekOptions\">\n <!-- Timeslots -->\n <div *ngFor=\"let timeslots of row; let i = index\" class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n <div class=\"calendar-cell flex-grow-1\" *ngFor=\"let slot of timeslots.slots; let j = index\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n </div>\n\n <!-- Events -->\n <ng-container *ngIf=\"(timeSlotDuration$ | async) as timeSlotDuration\">\n <ng-container *ngIf=\"(timelinedEventPartsForThisWeek$ | async) as partData\">\n <div *ngFor=\"let eventPart of partData.parts\" class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n\n <div class=\"event-resize top\"\n *ngIf=\"eventPart.part.start === eventPart.part.event?.start\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n <div class=\"event-border\"></div>\n <div class=\"event-wrapper\" *ngIf=\"eventPart.part.event\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n <div class=\"event-resize bottom\"\n *ngIf=\"eventPart.part.end === eventPart.part.event?.end\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(previewEventPartsForThisWeek$ | async) as previewPartData\">\n <div *ngFor=\"let eventPart of previewPartData\" class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\" *ngIf=\"(mode$ | async) === modes.timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-left'\" class=\"px-0\"></bs-icon>\n </button>\n <div class=\"flex-grow-1 h3 py-2 mb-0 text-center\">{{ currentWeekOrMonth$ | async | date: 'MMMM yyyy' }}</div>\n <button class=\"btn flex-start\" (click)=\"onNextWeekOrMonth()\">\n <bs-icon [icon]=\"'chevron-right'\" class=\"px-0\"></bs-icon>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <tr>\n <td></td>\n <td *ngFor=\"let day of timeSlots\" [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n </tr>\n <tr>\n <td></td>\n <ng-container *ngIf=\"(timelineOptions$ | async) as timelineOptions\">\n <ng-container *ngFor=\"let day of timeSlots\">\n <td *ngFor=\"let slot of day.slots\">\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n <bs-resource-group-presenter *ngFor=\"let group of (resources$ | async)\" [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n </ng-container>\n </table>\n </div>\n</div>", styles: [":host{display:block;border:1px solid #333;border-top-right-radius:10px;border-top-left-radius:10px;overflow:hidden}.calendar-head{background:#F7F7F7;color:#007aff}.tabel .calendar-head{flex:0 0 auto}.tabel .calendar-body{display:block;flex:1 1 auto}.week-schedule .calendar-head>div{padding-right:18px}.week-schedule .calendar-body{overflow-y:scroll;overflow-x:hidden}.week-schedule .calendar-body .calendar-cell{border-right:1px solid #DEE2E6;border-bottom:1px solid #DEE2E6;cursor:default}.week-schedule .calendar-body .calendar-cell.hover{border-top-width:3px}.week-schedule .calendar-left{width:90px}.week-schedule .event{z-index:5;width:calc((100% - 90px) / 7);height:100px;overflow:hidden;position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none}.week-schedule .event.preview{background:#666;opacity:.6}.week-schedule .event .event-border{background:black;top:0;left:0;bottom:3px;width:3px;position:absolute;z-index:10;opacity:.3}.week-schedule .event .event-inner{position:relative;inset:0 5px 5px 0;cursor:move;pointer-events:all;overflow:hidden}.week-schedule .event .event-inner .event-wrapper{width:calc(100% - 2px);margin:1px auto 1px 0;height:calc(100% - 3px)}.week-schedule .event .event-inner .event-wrapper .event-bg{opacity:.5;height:100%;transition:opacity .15s ease-in-out}.week-schedule .event .event-inner .event-wrapper .event-label{position:absolute;top:0;font-size:12px;font-weight:600;padding:4px}.week-schedule .event .event-inner .event-resize{position:absolute;cursor:ns-resize;height:4px;left:0;right:0;z-index:400}.week-schedule .event .event-inner .event-resize.top{top:0}.week-schedule .event .event-inner .event-resize.bottom{bottom:0}.week-schedule .event .event-inner .event-resize:hover{background:#DDD}.week-schedule .event .event-inner.hover .event-bg{opacity:.7!important}@media (max-width: 767px){.week-schedule.tabel .calendar-head .calendar-head-cell{text-orientation:sideways;writing-mode:vertical-rl}}.timeline.tabel{flex-flow:column}.timeline .calendar-body .tabel{background-color:#f7f7f7}.timeline .calendar-body .tabel tr:first-child td{background-color:#fff;border:1px solid #000}.timeline .calendar-body .tabel tr:first-child td:first-child{min-width:10rem}.timeline .calendar-body .tabel tr:first-child span.day-label{left:0;right:0}.timeline .calendar-body .tabel tr:nth-child(2) td{border-width:1px;border-color:inherit}.timeline .calendar-body .tabel>:not(:first-child){border-top:none!important}\n"] }]
513
513
  }], ctorParameters: function () { return [{ type: i1.BsCalendarMonthService }, { type: i2.BsTimelineService }]; }, propDecorators: { timeSlotElements: [{
@@ -5,9 +5,9 @@ export class BsSecondsTimespanPipe {
5
5
  return (value.end.getTime() - value.start.getTime()) / 1000;
6
6
  }
7
7
  }
8
- BsSecondsTimespanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTimespanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- BsSecondsTimespanPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTimespanPipe, name: "bsSecondsTimespan" });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTimespanPipe, decorators: [{
8
+ BsSecondsTimespanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTimespanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ BsSecondsTimespanPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTimespanPipe, name: "bsSecondsTimespan" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTimespanPipe, decorators: [{
11
11
  type: Pipe,
12
12
  args: [{
13
13
  name: 'bsSecondsTimespan'
@@ -9,9 +9,9 @@ export class BsSecondsTodayOffsetPipe {
9
9
  return (value.start.getTime() - today.getTime()) / 1000;
10
10
  }
11
11
  }
12
- BsSecondsTodayOffsetPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTodayOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
- BsSecondsTodayOffsetPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSecondsTodayOffsetPipe, decorators: [{
12
+ BsSecondsTodayOffsetPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTodayOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
+ BsSecondsTodayOffsetPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSecondsTodayOffsetPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'bsSecondsTodayOffset'
@@ -9,9 +9,9 @@ export class DateOffsetPipe {
9
9
  return (value.start.getTime() - today.getTime()) / 1000;
10
10
  }
11
11
  }
12
- DateOffsetPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DateOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
- DateOffsetPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: DateOffsetPipe, name: "dateOffset" });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DateOffsetPipe, decorators: [{
12
+ DateOffsetPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DateOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
+ DateOffsetPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DateOffsetPipe, name: "dateOffset" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DateOffsetPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'dateOffset'
@@ -11,9 +11,9 @@ export class DayOfWeekPipe {
11
11
  }
12
12
  }
13
13
  }
14
- DayOfWeekPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DayOfWeekPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
- DayOfWeekPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: DayOfWeekPipe, name: "dayOfWeek" });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: DayOfWeekPipe, decorators: [{
14
+ DayOfWeekPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DayOfWeekPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ DayOfWeekPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DayOfWeekPipe, name: "dayOfWeek" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DayOfWeekPipe, decorators: [{
17
17
  type: Pipe,
18
18
  args: [{
19
19
  name: 'dayOfWeek'
@@ -10,8 +10,8 @@ import { ResourceGroupPresenterComponent } from './components/resource-group-pre
10
10
  import * as i0 from "@angular/core";
11
11
  export class BsSchedulerModule {
12
12
  }
13
- BsSchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- BsSchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerModule, declarations: [BsSchedulerComponent,
13
+ BsSchedulerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ BsSchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerModule, declarations: [BsSchedulerComponent,
15
15
  BsSecondsTimespanPipe,
16
16
  BsSecondsTodayOffsetPipe,
17
17
  DateOffsetPipe,
@@ -19,9 +19,9 @@ BsSchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
19
19
  ResourceGroupPresenterComponent], imports: [CommonModule,
20
20
  BsIconModule], exports: [BsSchedulerComponent,
21
21
  ResourceGroupPresenterComponent] });
22
- BsSchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerModule, imports: [CommonModule,
22
+ BsSchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerModule, imports: [CommonModule,
23
23
  BsIconModule] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsSchedulerModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsSchedulerModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  declarations: [
@@ -54,9 +54,9 @@ export class BsTimelineService {
54
54
  }
55
55
  }
56
56
  }
57
- BsTimelineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsTimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
58
- BsTimelineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsTimelineService, providedIn: 'root' });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsTimelineService, decorators: [{
57
+ BsTimelineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsTimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
58
+ BsTimelineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsTimelineService, providedIn: 'root' });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsTimelineService, decorators: [{
60
60
  type: Injectable,
61
61
  args: [{
62
62
  providedIn: 'root'
@@ -69,9 +69,9 @@ export class BsScrollspyComponent {
69
69
  }
70
70
  }
71
71
  }
72
- BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
73
- BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyComponent, decorators: [{
72
+ BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
73
+ BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
77
77
  }], ctorParameters: function () { return [{ type: i1.BsScrollOffsetService }, { type: undefined, decorators: [{
@@ -5,9 +5,9 @@ export class BsScrollspyDirective {
5
5
  this.element = element;
6
6
  }
7
7
  }
8
- BsScrollspyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- BsScrollspyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: BsScrollspyDirective, selector: "[bsScrollspy]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyDirective, decorators: [{
8
+ BsScrollspyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ BsScrollspyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BsScrollspyDirective, selector: "[bsScrollspy]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[bsScrollspy]'
@@ -5,12 +5,12 @@ import { BsScrollspyDirective } from './directives/scrollspy.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  export class BsScrollspyModule {
7
7
  }
8
- BsScrollspyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- BsScrollspyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
8
+ BsScrollspyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ BsScrollspyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
10
10
  BsScrollspyDirective], imports: [CommonModule], exports: [BsScrollspyComponent,
11
11
  BsScrollspyDirective] });
12
- BsScrollspyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyModule, imports: [CommonModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollspyModule, decorators: [{
12
+ BsScrollspyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollspyModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [
@@ -17,9 +17,9 @@ export class BsScrollOffsetService {
17
17
  }
18
18
  }
19
19
  }
20
- BsScrollOffsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
21
- BsScrollOffsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsScrollOffsetService, decorators: [{
20
+ BsScrollOffsetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ BsScrollOffsetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsScrollOffsetService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{
25
25
  providedIn: 'root'