@mintplayer/ng-bootstrap 18.1.1 → 18.2.1
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.
- package/async-host-binding/index.d.ts +1 -0
- package/async-host-binding/src/bind-event.plugin.d.ts +1 -0
- package/async-host-binding/src/index.d.ts +1 -0
- package/async-host-binding/src/provide-async-host-bindings.d.ts +1 -0
- package/button-type/index.d.ts +1 -0
- package/button-type/src/button-type/button-type.directive.d.ts +1 -0
- package/button-type/src/index.d.ts +1 -0
- package/calendar-month/index.d.ts +1 -0
- package/calendar-month/src/index.d.ts +1 -0
- package/calendar-month/src/interfaces/date-day-of-month.d.ts +1 -0
- package/calendar-month/src/interfaces/first-and-last-date.d.ts +1 -0
- package/calendar-month/src/interfaces/index.d.ts +1 -0
- package/calendar-month/src/interfaces/week.d.ts +1 -0
- package/calendar-month/src/interfaces/weekday.d.ts +1 -0
- package/calendar-month/src/pipes/index.d.ts +1 -0
- package/calendar-month/src/pipes/month-name/month-name.pipe.d.ts +1 -0
- package/calendar-month/src/pipes/weekday-name/weekday-name.pipe.d.ts +1 -0
- package/calendar-month/src/service/calendar-month.service.d.ts +1 -0
- package/carousel/src/carousel.module.d.ts +3 -4
- package/color-picker/color-picker.module.d.ts +1 -2
- package/context-menu/index.d.ts +1 -0
- package/context-menu/src/context-menu.directive.d.ts +1 -0
- package/context-menu/src/context-menu.module.d.ts +1 -0
- package/context-menu/src/index.d.ts +1 -0
- package/copy/index.d.ts +1 -0
- package/copy/src/copy.directive.d.ts +1 -0
- package/copy/src/index.d.ts +1 -0
- package/dropdown/index.d.ts +1 -0
- package/dropdown/src/dropdown/dropdown.directive.d.ts +1 -0
- package/dropdown/src/dropdown-menu/dropdown-menu.directive.d.ts +1 -0
- package/dropdown/src/dropdown-toggle/dropdown-toggle.directive.d.ts +1 -0
- package/dropdown/src/dropdown.module.d.ts +1 -0
- package/dropdown/src/index.d.ts +1 -0
- package/dropdown-divider/index.d.ts +1 -0
- package/dropdown-divider/src/dropdown-divider.directive.d.ts +1 -0
- package/dropdown-divider/src/index.d.ts +1 -0
- package/enhanced-paste/index.d.ts +1 -0
- package/enhanced-paste/src/directive/enhanced-paste.directive.d.ts +1 -0
- package/enhanced-paste/src/index.d.ts +1 -0
- package/enhanced-paste/src/interfaces/number-overflow.d.ts +1 -0
- package/enum/index.d.ts +1 -0
- package/enum/src/index.d.ts +1 -0
- package/enum/src/interfaces/enum-item.d.ts +1 -0
- package/enum/src/interfaces/index.d.ts +1 -0
- package/enum/src/service/enum.service.d.ts +1 -0
- package/esm2022/accordion/src/accordion/accordion.component.mjs +3 -3
- package/esm2022/accordion/src/accordion-tab/accordion-tab.component.mjs +3 -3
- package/esm2022/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +3 -3
- package/esm2022/accordion/src/accordion.module.mjs +4 -4
- package/esm2022/alert/src/alert/alert.component.mjs +3 -3
- package/esm2022/alert/src/alert-close/alert-close.component.mjs +3 -3
- package/esm2022/alert/src/alert.module.mjs +4 -4
- package/esm2022/badge/src/badge.component.mjs +3 -3
- package/esm2022/breadcrumb/src/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/breadcrumb/src/breadcrumb.module.mjs +4 -4
- package/esm2022/button-group/src/button-group/button-group.component.mjs +3 -3
- package/esm2022/button-type/src/button-type/button-type.directive.mjs +3 -3
- package/esm2022/calendar/src/calendar.component.mjs +5 -6
- package/esm2022/calendar-month/src/pipes/month-name/month-name.pipe.mjs +3 -3
- package/esm2022/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +3 -3
- package/esm2022/calendar-month/src/service/calendar-month.service.mjs +3 -3
- package/esm2022/card/src/card/card.component.mjs +3 -3
- package/esm2022/card/src/card-header/card-header.component.mjs +3 -3
- package/esm2022/card/src/card.module.mjs +4 -4
- package/esm2022/carousel/src/carousel/carousel.component.mjs +7 -8
- package/esm2022/carousel/src/carousel-image/carousel-image.directive.mjs +3 -3
- package/esm2022/carousel/src/carousel-img/carousel-img.directive.mjs +3 -3
- package/esm2022/carousel/src/carousel.module.mjs +5 -8
- package/esm2022/close/src/close.component.mjs +3 -3
- package/esm2022/code-snippet/src/code-snippet.component.mjs +3 -3
- package/esm2022/color-picker/color-picker.module.mjs +6 -9
- package/esm2022/color-picker/components/alpha-strip/alpha-strip.component.mjs +3 -3
- package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +9 -10
- package/esm2022/color-picker/components/color-wheel/color-wheel.component.mjs +3 -3
- package/esm2022/color-picker/components/luminosity-strip/luminosity-strip.component.mjs +3 -3
- package/esm2022/color-picker/components/slider/slider.component.mjs +9 -9
- package/esm2022/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.mjs +3 -3
- package/esm2022/container/src/container/container.component.mjs +3 -3
- package/esm2022/context-menu/src/context-menu.directive.mjs +3 -3
- package/esm2022/context-menu/src/context-menu.module.mjs +4 -4
- package/esm2022/copy/src/copy.directive.mjs +3 -3
- package/esm2022/datatable/src/datatable/datatable.component.mjs +3 -3
- package/esm2022/datatable/src/datatable-column/datatable-column.directive.mjs +3 -3
- package/esm2022/datatable/src/datatable.module.mjs +4 -4
- package/esm2022/datatable/src/row-template/row-template.directive.mjs +3 -3
- package/esm2022/datepicker/src/datepicker.component.mjs +3 -3
- package/esm2022/dock/src/dock/dock.component.mjs +3 -3
- package/esm2022/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +3 -3
- package/esm2022/dock/src/dock-panel/dock-panel.component.mjs +3 -3
- package/esm2022/dock/src/dock-panel-header/dock-panel-header.component.mjs +3 -3
- package/esm2022/dock/src/dock.module.mjs +4 -4
- package/esm2022/dock/src/services/dock/dock.service.mjs +3 -3
- package/esm2022/dropdown/src/dropdown/dropdown.directive.mjs +3 -3
- package/esm2022/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +3 -3
- package/esm2022/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
- package/esm2022/dropdown/src/dropdown.module.mjs +4 -4
- package/esm2022/dropdown-divider/src/dropdown-divider.directive.mjs +3 -3
- package/esm2022/dropdown-menu/src/dropdown-item/dropdown-item.component.mjs +3 -3
- package/esm2022/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +3 -3
- package/esm2022/dropdown-menu/src/dropdown-menu.module.mjs +4 -4
- package/esm2022/enhanced-paste/src/directive/enhanced-paste.directive.mjs +3 -3
- package/esm2022/enum/src/service/enum.service.mjs +3 -3
- package/esm2022/file-upload/src/component/file-upload.component.mjs +3 -3
- package/esm2022/file-upload/src/directive/file-upload-template.directive.mjs +3 -3
- package/esm2022/file-upload/src/file-upload.module.mjs +4 -4
- package/esm2022/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +3 -3
- package/esm2022/floating-labels/src/floating-label/floating-label.component.mjs +3 -3
- package/esm2022/font-color/src/font-color.pipe.mjs +3 -3
- package/esm2022/for/src/for.directive.mjs +3 -3
- package/esm2022/form/src/form/form.component.mjs +3 -3
- package/esm2022/form/src/form-control/form-control.directive.mjs +3 -3
- package/esm2022/form/src/form-group/form-group.directive.mjs +3 -3
- package/esm2022/form/src/form.module.mjs +4 -4
- package/esm2022/grid/src/component/grid.component.mjs +3 -3
- package/esm2022/grid/src/directives/col-form-label/col-form-label.directive.mjs +3 -3
- package/esm2022/grid/src/directives/column/column.directive.mjs +6 -6
- package/esm2022/grid/src/directives/row/row.directive.mjs +3 -3
- package/esm2022/grid/src/grid.module.mjs +4 -4
- package/esm2022/has-overlay/src/has-overlay/has-overlay.component.mjs +3 -3
- package/esm2022/has-property/src/has-property.pipe.mjs +3 -3
- package/esm2022/in-list/src/in-list.pipe.mjs +3 -3
- package/esm2022/input-group/src/input-group/input-group.component.mjs +3 -3
- package/esm2022/instance-of/src/directives/instanceof-case.directive.mjs +3 -3
- package/esm2022/instance-of/src/directives/instanceof-default.directive.mjs +3 -3
- package/esm2022/instance-of/src/directives/instanceof.directive.mjs +3 -3
- package/esm2022/instance-of/src/instance-of.module.mjs +4 -4
- package/esm2022/instance-of/src/pipes/instance-of.pipe.mjs +3 -3
- package/esm2022/let/directive/let.directive.mjs +3 -3
- package/esm2022/linify/src/linify.pipe.mjs +3 -3
- package/esm2022/list-group/src/list-group/list-group.component.mjs +3 -3
- package/esm2022/list-group/src/list-group-item/list-group-item.component.mjs +3 -3
- package/esm2022/list-group/src/list-group.module.mjs +4 -4
- package/esm2022/markdown/src/bold/bold.pipe.mjs +3 -3
- package/esm2022/markdown/src/italic/italic.pipe.mjs +3 -3
- package/esm2022/markdown/src/strikethrough/strikethrough.pipe.mjs +3 -3
- package/esm2022/markdown/src/underline/underline.pipe.mjs +3 -3
- package/esm2022/marquee/src/marquee/marquee.component.mjs +3 -3
- package/esm2022/modal/src/components/modal/modal.component.mjs +3 -3
- package/esm2022/modal/src/components/modal-host/modal-host.component.mjs +3 -3
- package/esm2022/modal/src/directives/modal/modal.directive.mjs +3 -3
- package/esm2022/modal/src/directives/modal-body/modal-body.directive.mjs +3 -3
- package/esm2022/modal/src/directives/modal-close/modal-close.directive.mjs +3 -3
- package/esm2022/modal/src/directives/modal-footer/modal-footer.directive.mjs +3 -3
- package/esm2022/modal/src/directives/modal-header/modal-header.directive.mjs +3 -3
- package/esm2022/modal/src/modal.module.mjs +4 -4
- package/esm2022/multiselect/src/component/multiselect.component.mjs +3 -3
- package/esm2022/multiselect/src/directives/button-template/button-template.directive.mjs +3 -3
- package/esm2022/multiselect/src/directives/footer-template/footer-template.directive.mjs +3 -3
- package/esm2022/multiselect/src/directives/header-template/header-template.directive.mjs +3 -3
- package/esm2022/multiselect/src/multiselect.module.mjs +4 -4
- package/esm2022/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
- package/esm2022/navbar/src/expand-button/expand-button.directive.mjs +3 -3
- package/esm2022/navbar/src/nav-link/nav-link.directive.mjs +3 -3
- package/esm2022/navbar/src/navbar/navbar.component.mjs +3 -3
- package/esm2022/navbar/src/navbar-brand/navbar-brand.component.mjs +3 -3
- package/esm2022/navbar/src/navbar-content/navbar-content.directive.mjs +3 -3
- package/esm2022/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +3 -3
- package/esm2022/navbar/src/navbar-item/navbar-item.component.mjs +3 -3
- package/esm2022/navbar/src/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2022/navbar/src/navbar.module.mjs +4 -4
- package/esm2022/navbar-toggler/src/navbar-toggler/navbar-toggler.component.mjs +3 -3
- package/esm2022/navigation-lock/src/directive/navigation-lock.directive.mjs +3 -3
- package/esm2022/navigation-lock/src/guard/navigation-lock.guard.mjs +3 -3
- package/esm2022/navigation-lock/src/navigation-lock.module.mjs +4 -4
- package/esm2022/no-noscript/src/no-noscript/no-noscript.directive.mjs +3 -3
- package/esm2022/offcanvas/src/components/offcanvas/offcanvas.component.mjs +3 -3
- package/esm2022/offcanvas/src/components/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2022/offcanvas/src/components/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2022/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +3 -3
- package/esm2022/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +3 -3
- package/esm2022/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +3 -3
- package/esm2022/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +3 -3
- package/esm2022/offcanvas/src/offcanvas.module.mjs +4 -4
- package/esm2022/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +3 -3
- package/esm2022/pagination/src/component/pagination/pagination.component.mjs +3 -3
- package/esm2022/parallax/index.mjs +2 -0
- package/esm2022/parallax/mintplayer-ng-bootstrap-parallax.mjs +5 -0
- package/esm2022/parallax/src/parallax.component.mjs +20 -0
- package/esm2022/placeholder/src/placeholder/placeholder.component.mjs +3 -3
- package/esm2022/placeholder/src/placeholder-field/placeholder-field.directive.mjs +3 -3
- package/esm2022/placeholder/src/placeholder.module.mjs +4 -4
- package/esm2022/playlist-toggler/src/playlist-toggler/playlist-toggler.component.mjs +3 -3
- package/esm2022/popover/src/component/popover.component.mjs +3 -3
- package/esm2022/popover/src/directives/popover/popover.directive.mjs +3 -3
- package/esm2022/popover/src/directives/popover-body/popover-body.directive.mjs +3 -3
- package/esm2022/popover/src/directives/popover-header/popover-header.directive.mjs +3 -3
- package/esm2022/popover/src/popover.module.mjs +4 -4
- package/esm2022/progress-bar/src/progress/progress.component.mjs +3 -3
- package/esm2022/progress-bar/src/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/progress-bar/src/progress-bar.module.mjs +4 -4
- package/esm2022/range/src/component/range.component.mjs +3 -3
- package/esm2022/range/src/range.module.mjs +4 -4
- package/esm2022/range/src/value-accessor/range-value-accessor.mjs +3 -3
- package/esm2022/rating/src/component/rating.component.mjs +3 -3
- package/esm2022/resizable/src/resizable/resizable.component.mjs +3 -3
- package/esm2022/resizable/src/resizable.module.mjs +4 -4
- package/esm2022/resizable/src/resize-glyph/resize-glyph.directive.mjs +3 -3
- package/esm2022/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +3 -3
- package/esm2022/scheduler/src/components/scheduler/scheduler.component.mjs +3 -3
- package/esm2022/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.mjs +3 -3
- package/esm2022/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.mjs +3 -3
- package/esm2022/scheduler/src/pipes/date-offset/date-offset.pipe.mjs +3 -3
- package/esm2022/scheduler/src/pipes/day-of-week/day-of-week.pipe.mjs +3 -3
- package/esm2022/scheduler/src/scheduler.module.mjs +4 -4
- package/esm2022/scheduler/src/services/timeline/timeline.service.mjs +3 -3
- package/esm2022/scrollspy/src/component/scrollspy.component.mjs +3 -3
- package/esm2022/scrollspy/src/directives/scrollspy.directive.mjs +3 -3
- package/esm2022/scrollspy/src/scrollspy.module.mjs +4 -4
- package/esm2022/scrollspy/src/services/scroll-offset/scroll-offset.service.mjs +3 -3
- package/esm2022/searchbox/src/directives/enter-search-term.directive.mjs +3 -3
- package/esm2022/searchbox/src/directives/no-results.directive.mjs +3 -3
- package/esm2022/searchbox/src/directives/suggestion.directive.mjs +3 -3
- package/esm2022/searchbox/src/searchbox/searchbox.component.mjs +10 -11
- package/esm2022/searchbox/src/searchbox.module.mjs +5 -8
- package/esm2022/select/src/component/select.component.mjs +3 -3
- package/esm2022/select/src/select.module.mjs +4 -4
- package/esm2022/select/src/value-accessors/select-value-accessor.mjs +6 -6
- package/esm2022/select2/src/component/select2.component.mjs +3 -3
- package/esm2022/select2/src/directive/item-template/item-template.directive.mjs +3 -3
- package/esm2022/select2/src/directive/suggestion-template/suggestion-template.directive.mjs +3 -3
- package/esm2022/select2/src/select2.module.mjs +4 -4
- package/esm2022/shell/src/shell/shell.component.mjs +3 -3
- package/esm2022/shell/src/shell-sidebar/shell-sidebar.directive.mjs +3 -3
- package/esm2022/shell/src/shell.module.mjs +4 -4
- package/esm2022/signature-pad/src/component/signature-pad.component.mjs +3 -3
- package/esm2022/slugify/src/slugify.pipe.mjs +3 -3
- package/esm2022/spinner/src/spinner.component.mjs +3 -3
- package/esm2022/split-string/src/split-string.pipe.mjs +3 -3
- package/esm2022/splitter/src/element-at/element-at.pipe.mjs +3 -3
- package/esm2022/splitter/src/split-panel/split-panel.component.mjs +3 -3
- package/esm2022/splitter/src/splitter/splitter.component.mjs +8 -9
- package/esm2022/splitter/src/splitter.module.mjs +6 -7
- package/esm2022/sticky-footer/src/sticky-footer/sticky-footer.component.mjs +3 -3
- package/esm2022/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.mjs +3 -3
- package/esm2022/sticky-footer/src/sticky-footer.module.mjs +4 -4
- package/esm2022/tab-control/src/tab-control/tab-control.component.mjs +7 -8
- package/esm2022/tab-control/src/tab-control.module.mjs +5 -8
- package/esm2022/tab-control/src/tab-page/tab-page.component.mjs +3 -3
- package/esm2022/tab-control/src/tab-page-header/tab-page-header.directive.mjs +3 -3
- package/esm2022/table/src/component/table.component.mjs +3 -3
- package/esm2022/timepicker/src/timepicker.component.mjs +3 -3
- package/esm2022/toast/src/components/toast/toast.component.mjs +3 -3
- package/esm2022/toast/src/components/toast-body/toast-body.component.mjs +3 -3
- package/esm2022/toast/src/components/toast-container/toast-container.component.mjs +3 -3
- package/esm2022/toast/src/components/toast-header/toast-header.component.mjs +3 -3
- package/esm2022/toast/src/directives/toast-close/toast-close.directive.mjs +3 -3
- package/esm2022/toast/src/pipes/add-properties.pipe.mjs +3 -3
- package/esm2022/toast/src/services/toast/toast.service.mjs +3 -3
- package/esm2022/toast/src/toast.module.mjs +4 -4
- package/esm2022/toggle-button/src/component/toggle-button.component.mjs +3 -3
- package/esm2022/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +3 -3
- package/esm2022/toggle-button/src/toggle-button.module.mjs +4 -4
- package/esm2022/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +3 -3
- package/esm2022/tooltip/src/component/tooltip.component.mjs +3 -3
- package/esm2022/tooltip/src/directive/tooltip.directive.mjs +3 -3
- package/esm2022/tooltip/src/tooltip.module.mjs +4 -4
- package/esm2022/treeview/src/treeview/treeview.component.mjs +3 -3
- package/esm2022/treeview/src/treeview-item/treeview-item.component.mjs +3 -3
- package/esm2022/treeview/src/treeview.module.mjs +4 -4
- package/esm2022/trust-html/src/trust-html.pipe.mjs +3 -3
- package/esm2022/typeahead/src/typeahead.component.mjs +3 -3
- package/esm2022/uc-first/src/uc-first.pipe.mjs +3 -3
- package/esm2022/user-agent/src/directive/user-agent.directive.mjs +3 -3
- package/esm2022/word-count/src/word-count.pipe.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +4 -5
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-card.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +16 -20
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +30 -34
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +19 -19
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-for.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-form.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +19 -19
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -12
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +31 -31
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +27 -0
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +22 -26
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +17 -19
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +15 -19
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
- package/font-color/index.d.ts +1 -0
- package/font-color/src/font-color.pipe.d.ts +1 -0
- package/for/index.d.ts +1 -0
- package/for/src/for.directive.d.ts +1 -0
- package/for/src/index.d.ts +1 -0
- package/has-id/index.d.ts +1 -0
- package/has-id/src/has-id.d.ts +1 -0
- package/has-property/index.d.ts +1 -0
- package/has-property/src/has-property.pipe.d.ts +1 -0
- package/has-property/src/index.d.ts +1 -0
- package/in-list/index.d.ts +1 -0
- package/in-list/src/in-list.pipe.d.ts +1 -0
- package/index.d.ts +1 -0
- package/instance-of/index.d.ts +1 -0
- package/instance-of/src/directives/index.d.ts +1 -0
- package/instance-of/src/directives/instanceof-case.directive.d.ts +1 -0
- package/instance-of/src/directives/instanceof-default.directive.d.ts +1 -0
- package/instance-of/src/directives/instanceof.directive.d.ts +1 -0
- package/instance-of/src/directives/switch-view.d.ts +1 -0
- package/instance-of/src/index.d.ts +1 -0
- package/instance-of/src/instance-of.module.d.ts +1 -0
- package/instance-of/src/interfaces/index.d.ts +1 -0
- package/instance-of/src/interfaces/instance-of-context.d.ts +1 -0
- package/instance-of/src/pipes/index.d.ts +1 -0
- package/instance-of/src/pipes/instance-of.pipe.d.ts +1 -0
- package/instance-of/src/types/abstract.type.d.ts +1 -0
- package/instance-of/src/types/index.d.ts +1 -0
- package/let/directive/let.directive.d.ts +1 -0
- package/let/index.d.ts +1 -0
- package/let/interfaces/index.d.ts +1 -0
- package/let/interfaces/let-context.d.ts +1 -0
- package/lib/enums/color.enum.d.ts +1 -0
- package/lib/enums/index.d.ts +1 -0
- package/lib/providers/development.provider.d.ts +1 -0
- package/lib/providers/index.d.ts +1 -0
- package/lib/types/breakpoint.d.ts +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/position.d.ts +1 -0
- package/lib/types/size.d.ts +1 -0
- package/linify/index.d.ts +1 -0
- package/linify/src/linify.pipe.d.ts +1 -0
- package/markdown/index.d.ts +1 -0
- package/markdown/src/bold/bold.pipe.d.ts +1 -0
- package/markdown/src/italic/italic.pipe.d.ts +1 -0
- package/markdown/src/strikethrough/strikethrough.pipe.d.ts +1 -0
- package/markdown/src/underline/underline.pipe.d.ts +1 -0
- package/navigation-lock/index.d.ts +1 -0
- package/navigation-lock/src/directive/navigation-lock.directive.d.ts +1 -0
- package/navigation-lock/src/guard/navigation-lock.guard.d.ts +1 -0
- package/navigation-lock/src/index.d.ts +1 -0
- package/navigation-lock/src/interface/has-navigation-lock.d.ts +1 -0
- package/navigation-lock/src/navigation-lock.module.d.ts +1 -0
- package/no-noscript/index.d.ts +1 -0
- package/no-noscript/src/index.d.ts +1 -0
- package/no-noscript/src/no-noscript/no-noscript.directive.d.ts +1 -0
- package/ordinal-number/index.d.ts +1 -0
- package/ordinal-number/src/index.d.ts +1 -0
- package/ordinal-number/src/ordinal-number/ordinal-number.pipe.d.ts +1 -0
- package/package.json +7 -1
- package/parallax/index.d.ts +1 -0
- package/parallax/src/parallax.component.d.ts +8 -0
- package/searchbox/src/searchbox.module.d.ts +6 -7
- package/slugify/index.d.ts +1 -0
- package/slugify/src/slugify.pipe.d.ts +1 -0
- package/split-string/index.d.ts +1 -0
- package/split-string/src/split-string.pipe.d.ts +1 -0
- package/splitter/src/splitter.module.d.ts +2 -3
- package/tab-control/src/tab-control.module.d.ts +2 -3
- package/trust-html/index.d.ts +1 -0
- package/trust-html/src/trust-html.pipe.d.ts +1 -0
- package/uc-first/index.d.ts +1 -0
- package/uc-first/src/uc-first.pipe.d.ts +1 -0
- package/user-agent/index.d.ts +1 -0
- package/user-agent/src/directive/index.d.ts +1 -0
- package/user-agent/src/directive/user-agent.directive.d.ts +1 -0
- package/user-agent/src/index.d.ts +1 -0
- package/user-agent/src/interfaces/index.d.ts +1 -0
- package/user-agent/src/interfaces/user-agent.d.ts +1 -0
- package/user-agent/src/types/index.d.ts +1 -0
- package/user-agent/src/types/operating-system.type.d.ts +1 -0
- package/user-agent/src/types/webbrowser.type.d.ts +1 -0
- package/word-count/index.d.ts +1 -0
- package/word-count/src/word-count.pipe.d.ts +1 -0
|
@@ -74,10 +74,10 @@ class BsTimelineService {
|
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
78
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsTimelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
78
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsTimelineService, providedIn: 'root' }); }
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsTimelineService, decorators: [{
|
|
81
81
|
type: Injectable,
|
|
82
82
|
args: [{
|
|
83
83
|
providedIn: 'root'
|
|
@@ -149,10 +149,10 @@ class ResourceGroupPresenterComponent {
|
|
|
149
149
|
toggleExpanded() {
|
|
150
150
|
this.isExpanded$.next(!this.isExpanded$.value);
|
|
151
151
|
}
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResourceGroupPresenterComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: { level: "level", resourceGroup: "resourceGroup", timeSlots: "timeSlots", isExpanded: "isExpanded" }, ngImport: i0, template: "@if (data$ | async; as data) {\n\n <!-- Data is a resource group -->\n @if (data.resourceGroup) {\n <!-- Header -->\n @if (timeSlots$ | async; as timeSlots) {\n <tr class=\"p-0 cursor-pointer\" [title]=\"data.resourceGroup.description\">\n @if (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 @if (isExpanded$ | async) {\n <span [innerHTML]=\"chevronDown\" [style.padding-left.px]=\"level * 20\"></span>\n } @else {\n <span [innerHTML]=\"chevronRight\" [style.padding-left.px]=\"level * 20\"></span>\n }\n {{ data.resourceGroup.description }}\n </span>\n </td>\n }\n </tr>\n }\n\n <!-- Subgroups or resources -->\n @if (isExpanded$ | async) {\n @if (timeSlots$ | async; as timeSlots) {\n @for (child of data.resourceGroup.children; track child) {\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n }\n }\n }\n }\n\n <!-- Data is a resource -->\n @if (data.resource) {\n <tr 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 @for (slots of (timeSlots$ | async); track $index) {\n @for (slot of slots.slots; track slot) {\n <td class=\"bg-white border-1\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n }\n }\n </tr>\n }\n}", styles: [":host{display:contents}tr{border-bottom-width:1px}tr:not(.bordered) td span.position-sticky{left:0;right:0}\n"], dependencies: [{ kind: "component", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
154
154
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ResourceGroupPresenterComponent, decorators: [{
|
|
156
156
|
type: Component,
|
|
157
157
|
args: [{ selector: 'bs-resource-group-presenter', template: "@if (data$ | async; as data) {\n\n <!-- Data is a resource group -->\n @if (data.resourceGroup) {\n <!-- Header -->\n @if (timeSlots$ | async; as timeSlots) {\n <tr class=\"p-0 cursor-pointer\" [title]=\"data.resourceGroup.description\">\n @if (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 @if (isExpanded$ | async) {\n <span [innerHTML]=\"chevronDown\" [style.padding-left.px]=\"level * 20\"></span>\n } @else {\n <span [innerHTML]=\"chevronRight\" [style.padding-left.px]=\"level * 20\"></span>\n }\n {{ data.resourceGroup.description }}\n </span>\n </td>\n }\n </tr>\n }\n\n <!-- Subgroups or resources -->\n @if (isExpanded$ | async) {\n @if (timeSlots$ | async; as timeSlots) {\n @for (child of data.resourceGroup.children; track child) {\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n }\n }\n }\n }\n\n <!-- Data is a resource -->\n @if (data.resource) {\n <tr 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 @for (slots of (timeSlots$ | async); track $index) {\n @for (slot of slots.slots; track slot) {\n <td class=\"bg-white border-1\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n }\n }\n </tr>\n }\n}", styles: [":host{display:contents}tr{border-bottom-width:1px}tr:not(.bordered) td span.position-sticky{left:0;right:0}\n"] }]
|
|
158
158
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { level: [{
|
|
@@ -169,10 +169,10 @@ class BsSecondsTimespanPipe {
|
|
|
169
169
|
transform(value) {
|
|
170
170
|
return (value.end.getTime() - value.start.getTime()) / 1000;
|
|
171
171
|
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
173
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0
|
|
172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTimespanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
173
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTimespanPipe, name: "bsSecondsTimespan" }); }
|
|
174
174
|
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTimespanPipe, decorators: [{
|
|
176
176
|
type: Pipe,
|
|
177
177
|
args: [{
|
|
178
178
|
name: 'bsSecondsTimespan'
|
|
@@ -187,10 +187,10 @@ class BsSecondsTodayOffsetPipe {
|
|
|
187
187
|
today.setSeconds(0);
|
|
188
188
|
return (value.start.getTime() - today.getTime()) / 1000;
|
|
189
189
|
}
|
|
190
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
191
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0
|
|
190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTodayOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
191
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" }); }
|
|
192
192
|
}
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSecondsTodayOffsetPipe, decorators: [{
|
|
194
194
|
type: Pipe,
|
|
195
195
|
args: [{
|
|
196
196
|
name: 'bsSecondsTodayOffset'
|
|
@@ -207,10 +207,10 @@ class DayOfWeekPipe {
|
|
|
207
207
|
return dayOfWeek;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
211
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DayOfWeekPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
211
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: DayOfWeekPipe, name: "dayOfWeek" }); }
|
|
212
212
|
}
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DayOfWeekPipe, decorators: [{
|
|
214
214
|
type: Pipe,
|
|
215
215
|
args: [{
|
|
216
216
|
name: 'dayOfWeek'
|
|
@@ -706,10 +706,10 @@ class BsSchedulerComponent {
|
|
|
706
706
|
}
|
|
707
707
|
}
|
|
708
708
|
}
|
|
709
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
710
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", 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: "@switch (mode$ | async) {\n @case (modes.week) {\n <div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\">\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 <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n @for (day of (shownDays$ | async); track day) {\n <div class=\"flex-grow-1 calendar-head-cell\">\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 }\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n @if (timeSlots$ | async; as row) {\n <div class=\"position-relative\">\n @if (weekOptions$ | async; as weekOptions) {\n <!-- Timeslots -->\n @for (timeslots of row; track timeslots; let i = $index) {\n <div 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 @for (slot of timeslots.slots; track slot.start; let j = $index) {\n <div class=\"calendar-cell flex-grow-1\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n }\n </div>\n }\n \n <!-- Events -->\n @if (timeSlotDuration$ | async; as timeSlotDuration) {\n @if (timelinedEventPartsForThisWeek$ | async; as partData) {\n @for (eventPart of partData.parts; track eventPart) {\n <div 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 @if (eventPart.part.start === eventPart.part.event?.start) {\n <div class=\"event-resize top\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n }\n <div class=\"event-border\"></div>\n @if (eventPart.part.event) {\n <div class=\"event-wrapper\"\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 }\n @if (eventPart.part.end === eventPart.part.event?.end) {\n <div class=\"event-resize bottom\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n }\n </div>\n </div>\n }\n }\n @if (previewEventPartsForThisWeek$ | async; as previewPartData) {\n @for (eventPart of previewPartData; track eventPart) {\n <div 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 }\n }\n }\n }\n </div>\n }\n </div>\n </div>\n }\n @case (modes.timeline) {\n <div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\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 <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n @if (timeSlots$ | async; as timeSlots) {\n <tr>\n <td></td>\n @for (day of timeSlots; track day) {\n <td [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 }\n </tr>\n <tr>\n <td></td>\n @if (timelineOptions$ | async; as timelineOptions) {\n @for (day of timeSlots; track day) {\n @for (slot of day.slots; track slot) {\n <td>\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 }\n }\n }\n </tr>\n @for (group of (resources$ | async); track group) {\n <bs-resource-group-presenter [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n }\n }\n </table>\n </div>\n </div>\n }\n}", 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:#000;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: "component", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: BsSecondsTimespanPipe, name: "bsSecondsTimespan" }, { kind: "pipe", type: BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" }, { kind: "pipe", type: DayOfWeekPipe, name: "dayOfWeek" }] }); }
|
|
709
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.BsCalendarMonthService }, { token: BsTimelineService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
710
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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: "@switch (mode$ | async) {\n @case (modes.week) {\n <div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\">\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 <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n @for (day of (shownDays$ | async); track day) {\n <div class=\"flex-grow-1 calendar-head-cell\">\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 }\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n @if (timeSlots$ | async; as row) {\n <div class=\"position-relative\">\n @if (weekOptions$ | async; as weekOptions) {\n <!-- Timeslots -->\n @for (timeslots of row; track timeslots; let i = $index) {\n <div 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 @for (slot of timeslots.slots; track slot.start; let j = $index) {\n <div class=\"calendar-cell flex-grow-1\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n }\n </div>\n }\n \n <!-- Events -->\n @if (timeSlotDuration$ | async; as timeSlotDuration) {\n @if (timelinedEventPartsForThisWeek$ | async; as partData) {\n @for (eventPart of partData.parts; track eventPart) {\n <div 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 @if (eventPart.part.start === eventPart.part.event?.start) {\n <div class=\"event-resize top\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n }\n <div class=\"event-border\"></div>\n @if (eventPart.part.event) {\n <div class=\"event-wrapper\"\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 }\n @if (eventPart.part.end === eventPart.part.event?.end) {\n <div class=\"event-resize bottom\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n }\n </div>\n </div>\n }\n }\n @if (previewEventPartsForThisWeek$ | async; as previewPartData) {\n @for (eventPart of previewPartData; track eventPart) {\n <div 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 }\n }\n }\n }\n </div>\n }\n </div>\n </div>\n }\n @case (modes.timeline) {\n <div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\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 <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n @if (timeSlots$ | async; as timeSlots) {\n <tr>\n <td></td>\n @for (day of timeSlots; track day) {\n <td [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 }\n </tr>\n <tr>\n <td></td>\n @if (timelineOptions$ | async; as timelineOptions) {\n @for (day of timeSlots; track day) {\n @for (slot of day.slots; track slot) {\n <td>\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 }\n }\n }\n </tr>\n @for (group of (resources$ | async); track group) {\n <bs-resource-group-presenter [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n }\n }\n </table>\n </div>\n </div>\n }\n}", 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:#000;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: "component", type: ResourceGroupPresenterComponent, selector: "bs-resource-group-presenter", inputs: ["level", "resourceGroup", "timeSlots", "isExpanded"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: BsSecondsTimespanPipe, name: "bsSecondsTimespan" }, { kind: "pipe", type: BsSecondsTodayOffsetPipe, name: "bsSecondsTodayOffset" }, { kind: "pipe", type: DayOfWeekPipe, name: "dayOfWeek" }] }); }
|
|
711
711
|
}
|
|
712
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerComponent, decorators: [{
|
|
713
713
|
type: Component,
|
|
714
714
|
args: [{ selector: 'bs-scheduler', template: "@switch (mode$ | async) {\n @case (modes.week) {\n <div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\">\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 <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n @for (day of (shownDays$ | async); track day) {\n <div class=\"flex-grow-1 calendar-head-cell\">\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 }\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n @if (timeSlots$ | async; as row) {\n <div class=\"position-relative\">\n @if (weekOptions$ | async; as weekOptions) {\n <!-- Timeslots -->\n @for (timeslots of row; track timeslots; let i = $index) {\n <div 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 @for (slot of timeslots.slots; track slot.start; let j = $index) {\n <div class=\"calendar-cell flex-grow-1\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n }\n </div>\n }\n \n <!-- Events -->\n @if (timeSlotDuration$ | async; as timeSlotDuration) {\n @if (timelinedEventPartsForThisWeek$ | async; as partData) {\n @for (eventPart of partData.parts; track eventPart) {\n <div 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 @if (eventPart.part.start === eventPart.part.event?.start) {\n <div class=\"event-resize top\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n }\n <div class=\"event-border\"></div>\n @if (eventPart.part.event) {\n <div class=\"event-wrapper\"\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 }\n @if (eventPart.part.end === eventPart.part.event?.end) {\n <div class=\"event-resize bottom\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n }\n </div>\n </div>\n }\n }\n @if (previewEventPartsForThisWeek$ | async; as previewPartData) {\n @for (eventPart of previewPartData; track eventPart) {\n <div 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 }\n }\n }\n }\n </div>\n }\n </div>\n </div>\n }\n @case (modes.timeline) {\n <div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\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 <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n @if (timeSlots$ | async; as timeSlots) {\n <tr>\n <td></td>\n @for (day of timeSlots; track day) {\n <td [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 }\n </tr>\n <tr>\n <td></td>\n @if (timelineOptions$ | async; as timelineOptions) {\n @for (day of timeSlots; track day) {\n @for (slot of day.slots; track slot) {\n <td>\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 }\n }\n }\n </tr>\n @for (group of (resources$ | async); track group) {\n <bs-resource-group-presenter [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n }\n }\n </table>\n </div>\n </div>\n }\n}", 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:#000;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"] }]
|
|
715
715
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.BsCalendarMonthService }, { type: BsTimelineService }], propDecorators: { timeSlotElements: [{
|
|
@@ -759,10 +759,10 @@ class DateOffsetPipe {
|
|
|
759
759
|
today.setSeconds(0);
|
|
760
760
|
return (value.start.getTime() - today.getTime()) / 1000;
|
|
761
761
|
}
|
|
762
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
763
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0
|
|
762
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
763
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: DateOffsetPipe, name: "dateOffset" }); }
|
|
764
764
|
}
|
|
765
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateOffsetPipe, decorators: [{
|
|
766
766
|
type: Pipe,
|
|
767
767
|
args: [{
|
|
768
768
|
name: 'dateOffset'
|
|
@@ -770,17 +770,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
770
770
|
}] });
|
|
771
771
|
|
|
772
772
|
class BsSchedulerModule {
|
|
773
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
774
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
|
773
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
774
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerModule, declarations: [BsSchedulerComponent,
|
|
775
775
|
BsSecondsTimespanPipe,
|
|
776
776
|
BsSecondsTodayOffsetPipe,
|
|
777
777
|
DateOffsetPipe,
|
|
778
778
|
DayOfWeekPipe,
|
|
779
779
|
ResourceGroupPresenterComponent], imports: [CommonModule], exports: [BsSchedulerComponent,
|
|
780
780
|
ResourceGroupPresenterComponent] }); }
|
|
781
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
|
781
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerModule, imports: [CommonModule] }); }
|
|
782
782
|
}
|
|
783
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
783
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSchedulerModule, decorators: [{
|
|
784
784
|
type: NgModule,
|
|
785
785
|
args: [{
|
|
786
786
|
declarations: [
|
|
@@ -20,10 +20,10 @@ class BsScrollOffsetService {
|
|
|
20
20
|
return this.routerConfig.scrollOffset();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollOffsetService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{
|
|
29
29
|
providedIn: 'root'
|
|
@@ -37,10 +37,10 @@ class BsScrollspyDirective {
|
|
|
37
37
|
constructor(element) {
|
|
38
38
|
this.element = element;
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsScrollspyDirective, selector: "[bsScrollspy]", ngImport: i0 }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyDirective, decorators: [{
|
|
44
44
|
type: Directive,
|
|
45
45
|
args: [{
|
|
46
46
|
selector: '[bsScrollspy]'
|
|
@@ -105,10 +105,10 @@ class BsScrollspyComponent {
|
|
|
105
105
|
window.scrollTo({ top: y, behavior: 'smooth' });
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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 @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'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 }\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"] }); }
|
|
110
110
|
}
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyComponent, decorators: [{
|
|
112
112
|
type: Component,
|
|
113
113
|
args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'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 }\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"] }]
|
|
114
114
|
}], ctorParameters: () => [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
|
|
@@ -126,13 +126,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
126
126
|
}] } });
|
|
127
127
|
|
|
128
128
|
class BsScrollspyModule {
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
130
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
130
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
|
|
131
131
|
BsScrollspyDirective], exports: [BsScrollspyComponent,
|
|
132
132
|
BsScrollspyDirective] }); }
|
|
133
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
|
133
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyModule }); }
|
|
134
134
|
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsScrollspyModule, decorators: [{
|
|
136
136
|
type: NgModule,
|
|
137
137
|
args: [{
|
|
138
138
|
declarations: [
|
|
@@ -4,19 +4,17 @@ import * as i3 from '@angular/forms';
|
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import * as i4 from '@angular/common';
|
|
6
6
|
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
7
|
-
import * as i6 from '@mintplayer/ng-bootstrap/let';
|
|
8
|
-
import { BsLetDirective } from '@mintplayer/ng-bootstrap/let';
|
|
9
7
|
import * as i5 from '@mintplayer/ng-focus-on-load';
|
|
10
8
|
import { FocusOnLoadDirective } from '@mintplayer/ng-focus-on-load';
|
|
11
|
-
import * as
|
|
9
|
+
import * as i6 from '@mintplayer/ng-bootstrap/dropdown';
|
|
12
10
|
import { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';
|
|
13
|
-
import * as
|
|
11
|
+
import * as i10 from '@mintplayer/ng-bootstrap/progress-bar';
|
|
14
12
|
import { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';
|
|
15
|
-
import * as
|
|
13
|
+
import * as i8 from '@mintplayer/ng-bootstrap/dropdown-menu';
|
|
16
14
|
import { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';
|
|
17
|
-
import * as
|
|
15
|
+
import * as i9 from '@mintplayer/ng-bootstrap/button-type';
|
|
18
16
|
import { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';
|
|
19
|
-
import * as
|
|
17
|
+
import * as i7 from '@mintplayer/ng-bootstrap/has-overlay';
|
|
20
18
|
import { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';
|
|
21
19
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
22
20
|
import { Color } from '@mintplayer/ng-bootstrap';
|
|
@@ -97,12 +95,12 @@ class BsSearchboxComponent {
|
|
|
97
95
|
this.isOpen = false;
|
|
98
96
|
this.searchterm = '';
|
|
99
97
|
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxComponent, deps: [{ token: i1.BsFormComponent, optional: true }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: BsSearchboxComponent, selector: "bs-searchbox", inputs: { isOpen: "isOpen", suggestions: "suggestions", selectedItem: "selectedItem", searchterm: "searchterm" }, outputs: { selectedItemChange: "selectedItemChange", provideSuggestions: "provideSuggestions" }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n @let isBusy = isBusy$ | async;\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.FocusOnLoadDirective, selector: "*[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: i7.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "component", type: i8.BsDropdownMenuComponent, selector: "bs-dropdown-menu", inputs: ["maxHeight"] }, { kind: "component", type: i8.BsDropdownItemComponent, selector: "bs-dropdown-item", inputs: ["isSelected", "disabled"] }, { kind: "directive", type: i9.BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }, { kind: "component", type: i10.BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "component", type: i10.BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
102
100
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxComponent, decorators: [{
|
|
104
102
|
type: Component,
|
|
105
|
-
args: [{ selector: 'bs-searchbox', template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n
|
|
103
|
+
args: [{ selector: 'bs-searchbox', template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n @let isBusy = isBusy$ | async;\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"] }]
|
|
106
104
|
}], ctorParameters: () => [{ type: i1.BsFormComponent, decorators: [{
|
|
107
105
|
type: Optional
|
|
108
106
|
}] }, { type: i2.DomSanitizer }], propDecorators: { textbox: [{
|
|
@@ -126,10 +124,10 @@ class BsEnterSearchTermTemplateDirective {
|
|
|
126
124
|
constructor(searchbox, template) {
|
|
127
125
|
searchbox.enterSearchtermTemplate = template;
|
|
128
126
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
130
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
127
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsEnterSearchTermTemplateDirective, deps: [{ token: BsSearchboxComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
128
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsEnterSearchTermTemplateDirective, selector: "[bsEnterSearchTermTemplate]", ngImport: i0 }); }
|
|
131
129
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsEnterSearchTermTemplateDirective, decorators: [{
|
|
133
131
|
type: Directive,
|
|
134
132
|
args: [{
|
|
135
133
|
selector: '[bsEnterSearchTermTemplate]',
|
|
@@ -147,10 +145,10 @@ class BsSuggestionTemplateDirective {
|
|
|
147
145
|
set bsSuggestionTemplateOf(value) {
|
|
148
146
|
this.searchbox.suggestions = value;
|
|
149
147
|
}
|
|
150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
151
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSuggestionTemplateDirective, deps: [{ token: BsSearchboxComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
149
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsSuggestionTemplateDirective, selector: "[bsSuggestionTemplate]", inputs: { bsSuggestionTemplateOf: "bsSuggestionTemplateOf" }, ngImport: i0 }); }
|
|
152
150
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSuggestionTemplateDirective, decorators: [{
|
|
154
152
|
type: Directive,
|
|
155
153
|
args: [{
|
|
156
154
|
selector: '[bsSuggestionTemplate]',
|
|
@@ -169,10 +167,10 @@ class BsNoResultsTemplateDirective {
|
|
|
169
167
|
constructor(searchbox, template) {
|
|
170
168
|
searchbox.noResultsTemplate = template;
|
|
171
169
|
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
173
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsNoResultsTemplateDirective, deps: [{ token: BsSearchboxComponent }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
171
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsNoResultsTemplateDirective, selector: "[bsNoResultsTemplate]", ngImport: i0 }); }
|
|
174
172
|
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsNoResultsTemplateDirective, decorators: [{
|
|
176
174
|
type: Directive,
|
|
177
175
|
args: [{
|
|
178
176
|
selector: '[bsNoResultsTemplate]',
|
|
@@ -180,15 +178,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
180
178
|
}], ctorParameters: () => [{ type: BsSearchboxComponent }, { type: i0.TemplateRef }] });
|
|
181
179
|
|
|
182
180
|
class BsSearchboxModule {
|
|
183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
|
184
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
|
181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
182
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxModule, declarations: [BsSearchboxComponent,
|
|
185
183
|
BsEnterSearchTermTemplateDirective,
|
|
186
184
|
BsSuggestionTemplateDirective,
|
|
187
185
|
BsNoResultsTemplateDirective], imports: [FormsModule,
|
|
188
186
|
AsyncPipe,
|
|
189
187
|
NgTemplateOutlet,
|
|
190
188
|
FocusOnLoadDirective,
|
|
191
|
-
BsLetDirective,
|
|
192
189
|
BsDropdownModule,
|
|
193
190
|
BsDropdownMenuModule,
|
|
194
191
|
BsButtonTypeDirective,
|
|
@@ -197,13 +194,13 @@ class BsSearchboxModule {
|
|
|
197
194
|
BsEnterSearchTermTemplateDirective,
|
|
198
195
|
BsSuggestionTemplateDirective,
|
|
199
196
|
BsNoResultsTemplateDirective] }); }
|
|
200
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
|
197
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxModule, imports: [FormsModule,
|
|
201
198
|
BsDropdownModule,
|
|
202
199
|
BsDropdownMenuModule,
|
|
203
200
|
BsProgressBarModule,
|
|
204
201
|
BsHasOverlayComponent] }); }
|
|
205
202
|
}
|
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSearchboxModule, decorators: [{
|
|
207
204
|
type: NgModule,
|
|
208
205
|
args: [{
|
|
209
206
|
declarations: [
|
|
@@ -217,7 +214,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
217
214
|
AsyncPipe,
|
|
218
215
|
NgTemplateOutlet,
|
|
219
216
|
FocusOnLoadDirective,
|
|
220
|
-
BsLetDirective,
|
|
221
217
|
BsDropdownModule,
|
|
222
218
|
BsDropdownMenuModule,
|
|
223
219
|
BsButtonTypeDirective,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-searchbox.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.html","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/enter-search-term.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/suggestion.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/no-results.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox.module.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/mintplayer-ng-bootstrap-searchbox.ts"],"sourcesContent":["/// <reference types=\"../types\" />\n\nimport { Component, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject, debounceTime } from 'rxjs';\nimport { BsSuggestionTemplateContext } from '../directives';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-searchbox',\n templateUrl: './searchbox.component.html',\n styleUrls: ['./searchbox.component.scss'],\n})\nexport class BsSearchboxComponent<T extends HasId<U>, U> {\n constructor(@Optional() bsForm: BsFormComponent, sanitizer: DomSanitizer) {\n if (!bsForm) {\n throw '<bs-searchbox> must be inside a <bs-form>';\n }\n\n this.searchterm$.pipe(debounceTime(200), takeUntilDestroyed()).subscribe((searchterm) => {\n if (searchterm === '') {\n this.suggestions = [];\n } else {\n this.isBusy$.next(true);\n this.provideSuggestions.emit(searchterm);\n }\n });\n \n import('bootstrap-icons/icons/caret-up-fill.svg').then((icon) => {\n this.caretUpFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/caret-down-fill.svg').then((icon) => {\n this.caretDownFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n caretUpFill?: SafeHtml;\n caretDownFill?: SafeHtml;\n colors = Color;\n isBusy$ = new BehaviorSubject<boolean>(false);\n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n \n //#region isOpen\n private _isOpen = false;\n public get isOpen() {\n return this._isOpen;\n }\n @Input() public set isOpen(value: boolean) {\n const changed = (this._isOpen !== value);\n this._isOpen = value;\n if (changed && value) {\n setTimeout(() => this.textbox.nativeElement.setSelectionRange(0, -1), 20);\n }\n }\n //#endregion\n\n //#region suggestions\n private _suggestions: T[] = [];\n public get suggestions() {\n return this._suggestions;\n }\n @Input() public set suggestions(value: T[]) {\n this._suggestions = value;\n this.isBusy$.next(false);\n }\n //#endregion\n\n //#region selectedItem\n private _selectedItem?: T;\n public get selectedItem() {\n return this._selectedItem;\n }\n @Input() public set selectedItem(value: T | undefined) {\n this._selectedItem = value;\n this.selectedItemChange.emit(value);\n };\n @Output() selectedItemChange = new EventEmitter<T | undefined>();\n //#endregion\n\n //#region searchterm\n searchterm$ = new BehaviorSubject<string>('');\n public get searchterm() {\n return this.searchterm$.value;\n }\n @Input() public set searchterm(value: string) {\n this.searchterm$.next(value);\n }\n //#endregion\n\n suggestionTemplate?: TemplateRef<BsSuggestionTemplateContext<T, U>>;\n enterSearchtermTemplate?: TemplateRef<T>;\n noResultsTemplate?: TemplateRef<T>;\n @Output() provideSuggestions = new EventEmitter<string>();\n\n onSearchtermChange(searchterm: string) {\n this.searchterm$.next(searchterm);\n }\n\n onSuggestionClicked(suggestion: T) {\n this.selectedItem = suggestion;\n this.isOpen = false;\n this.searchterm = '';\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsEnterSearchTermTemplate]',\n})\nexport class BsEnterSearchTermTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.enterSearchtermTemplate = template;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<TData extends HasId<U>, U> {\n constructor(private searchbox: BsSearchboxComponent<TData, U>, template: TemplateRef<BsSuggestionTemplateContext<TData, U>>) {\n searchbox.suggestionTemplate = template;\n }\n \n public static ngTemplateContextGuard<TData extends HasId<U>, U>(\n dir: BsSuggestionTemplateDirective<TData, U>,\n ctx: any\n ): ctx is BsSuggestionTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: TData[]) {\n this.searchbox.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<TData extends HasId<U>, U> {\n public $implicit: TData = null!;\n public searchbox: BsSearchboxComponent<TData, U> = null!;\n}","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsNoResultsTemplate]',\n})\nexport class BsNoResultsTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.noResultsTemplate = template;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncPipe, CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { BsLetDirective } from '@mintplayer/ng-bootstrap/let';\nimport { FocusOnLoadDirective } from '@mintplayer/ng-focus-on-load';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSearchboxComponent } from './searchbox/searchbox.component';\nimport { BsEnterSearchTermTemplateDirective } from './directives/enter-search-term.directive';\nimport { BsSuggestionTemplateDirective } from './directives/suggestion.directive';\nimport { BsNoResultsTemplateDirective } from './directives/no-results.directive';\n\n@NgModule({\n declarations: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n imports: [\n FormsModule,\n AsyncPipe,\n NgTemplateOutlet,\n FocusOnLoadDirective,\n BsLetDirective,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsButtonTypeDirective,\n BsProgressBarModule,\n BsHasOverlayComponent,\n ],\n exports: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n})\nexport class BsSearchboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSearchboxComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-searchbox.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.html","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/enter-search-term.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/suggestion.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/no-results.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox.module.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/mintplayer-ng-bootstrap-searchbox.ts"],"sourcesContent":["/// <reference types=\"../types\" />\n\nimport { Component, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject, debounceTime } from 'rxjs';\nimport { BsSuggestionTemplateContext } from '../directives';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-searchbox',\n templateUrl: './searchbox.component.html',\n styleUrls: ['./searchbox.component.scss'],\n})\nexport class BsSearchboxComponent<T extends HasId<U>, U> {\n constructor(@Optional() bsForm: BsFormComponent, sanitizer: DomSanitizer) {\n if (!bsForm) {\n throw '<bs-searchbox> must be inside a <bs-form>';\n }\n\n this.searchterm$.pipe(debounceTime(200), takeUntilDestroyed()).subscribe((searchterm) => {\n if (searchterm === '') {\n this.suggestions = [];\n } else {\n this.isBusy$.next(true);\n this.provideSuggestions.emit(searchterm);\n }\n });\n \n import('bootstrap-icons/icons/caret-up-fill.svg').then((icon) => {\n this.caretUpFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/caret-down-fill.svg').then((icon) => {\n this.caretDownFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n caretUpFill?: SafeHtml;\n caretDownFill?: SafeHtml;\n colors = Color;\n isBusy$ = new BehaviorSubject<boolean>(false);\n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n \n //#region isOpen\n private _isOpen = false;\n public get isOpen() {\n return this._isOpen;\n }\n @Input() public set isOpen(value: boolean) {\n const changed = (this._isOpen !== value);\n this._isOpen = value;\n if (changed && value) {\n setTimeout(() => this.textbox.nativeElement.setSelectionRange(0, -1), 20);\n }\n }\n //#endregion\n\n //#region suggestions\n private _suggestions: T[] = [];\n public get suggestions() {\n return this._suggestions;\n }\n @Input() public set suggestions(value: T[]) {\n this._suggestions = value;\n this.isBusy$.next(false);\n }\n //#endregion\n\n //#region selectedItem\n private _selectedItem?: T;\n public get selectedItem() {\n return this._selectedItem;\n }\n @Input() public set selectedItem(value: T | undefined) {\n this._selectedItem = value;\n this.selectedItemChange.emit(value);\n };\n @Output() selectedItemChange = new EventEmitter<T | undefined>();\n //#endregion\n\n //#region searchterm\n searchterm$ = new BehaviorSubject<string>('');\n public get searchterm() {\n return this.searchterm$.value;\n }\n @Input() public set searchterm(value: string) {\n this.searchterm$.next(value);\n }\n //#endregion\n\n suggestionTemplate?: TemplateRef<BsSuggestionTemplateContext<T, U>>;\n enterSearchtermTemplate?: TemplateRef<T>;\n noResultsTemplate?: TemplateRef<T>;\n @Output() provideSuggestions = new EventEmitter<string>();\n\n onSearchtermChange(searchterm: string) {\n this.searchterm$.next(searchterm);\n }\n\n onSuggestionClicked(suggestion: T) {\n this.selectedItem = suggestion;\n this.isOpen = false;\n this.searchterm = '';\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n @let isBusy = isBusy$ | async;\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsEnterSearchTermTemplate]',\n})\nexport class BsEnterSearchTermTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.enterSearchtermTemplate = template;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<TData extends HasId<U>, U> {\n constructor(private searchbox: BsSearchboxComponent<TData, U>, template: TemplateRef<BsSuggestionTemplateContext<TData, U>>) {\n searchbox.suggestionTemplate = template;\n }\n \n public static ngTemplateContextGuard<TData extends HasId<U>, U>(\n dir: BsSuggestionTemplateDirective<TData, U>,\n ctx: any\n ): ctx is BsSuggestionTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: TData[]) {\n this.searchbox.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<TData extends HasId<U>, U> {\n public $implicit: TData = null!;\n public searchbox: BsSearchboxComponent<TData, U> = null!;\n}","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsNoResultsTemplate]',\n})\nexport class BsNoResultsTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.noResultsTemplate = template;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { FocusOnLoadDirective } from '@mintplayer/ng-focus-on-load';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSearchboxComponent } from './searchbox/searchbox.component';\nimport { BsEnterSearchTermTemplateDirective } from './directives/enter-search-term.directive';\nimport { BsSuggestionTemplateDirective } from './directives/suggestion.directive';\nimport { BsNoResultsTemplateDirective } from './directives/no-results.directive';\n\n@NgModule({\n declarations: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n imports: [\n FormsModule,\n AsyncPipe,\n NgTemplateOutlet,\n FocusOnLoadDirective,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsButtonTypeDirective,\n BsProgressBarModule,\n BsHasOverlayComponent,\n ],\n exports: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n})\nexport class BsSearchboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSearchboxComponent"],"mappings":"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"}
|