@mintplayer/ng-bootstrap 13.3.11 → 13.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2020/lib/components/accordion/accordion/accordion.component.mjs +4 -23
  2. package/esm2020/lib/components/accordion/accordion-tab/accordion-tab.component.mjs +35 -4
  3. package/esm2020/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.mjs +2 -7
  4. package/esm2020/lib/components/accordion/accordion.module.mjs +15 -5
  5. package/esm2020/lib/components/accordion/from-overlay/from-overlay.directive.mjs +61 -0
  6. package/esm2020/lib/components/accordion/from-overlay-id/from-overlay-id.directive.mjs +45 -0
  7. package/esm2020/lib/components/accordion/index.mjs +3 -1
  8. package/esm2020/lib/components/modal/component/modal/modal.component.mjs +1 -1
  9. package/esm2020/lib/components/modal/component/modal-content/modal-content.component.mjs +17 -5
  10. package/esm2020/lib/components/modal/service/modal.service.mjs +3 -2
  11. package/fesm2015/mintplayer-ng-bootstrap.mjs +160 -40
  12. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  13. package/fesm2020/mintplayer-ng-bootstrap.mjs +160 -40
  14. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  15. package/lib/components/accordion/accordion/accordion.component.d.ts +4 -7
  16. package/lib/components/accordion/accordion-tab/accordion-tab.component.d.ts +7 -2
  17. package/lib/components/accordion/accordion.module.d.ts +4 -2
  18. package/lib/components/accordion/from-overlay/from-overlay.directive.d.ts +20 -0
  19. package/lib/components/accordion/from-overlay-id/from-overlay-id.directive.d.ts +16 -0
  20. package/lib/components/accordion/index.d.ts +2 -0
  21. package/lib/components/modal/component/modal-content/modal-content.component.d.ts +2 -0
  22. package/lib/components/modal/service/modal.service.d.ts +1 -1
  23. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab/accordion-tab.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab/accordion-tab.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion/accordion.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion/accordion.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/enums/color.enum.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/enums/position.enum.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert/alert.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert/alert.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert-close/alert-close.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert-close/alert-close.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/services/calendar-month/calendar-month.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/uc-first/uc-first.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/month-name/month-name.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/month-name/month-name.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/uc-first/uc-first.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/weekday-name/weekday-name.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/weekday-name/weekday-name.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card/card.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card/card.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card-header/card-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/providers/snackbar-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/component/snackbar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/component/snackbar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/snackbar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/service/snackbar.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/copy/copy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/copy/copy.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/context-menu/context-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/context-menu/context-menu.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable-column/datatable-column.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable-settings.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination/pagination.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination/pagination.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable/datatable.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable/datatable.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/row-template/row-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown/dropdown.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress/progress.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress/progress.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar/progress-bar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar/progress-bar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/for/for.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/for/for.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/format-bytes/format-bytes.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/file-upload.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/enums/scheduler-mode.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/enums/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/services/timeline/timeline.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/resource-group-presenter/resource-group-presenter.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/resource-group-presenter/resource-group-presenter.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/day-of-week/day-of-week.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/constants/available-scales.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/date-offset/date-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/scheduler.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group-item/list-group-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group-item/list-group-item.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group/list-group.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group/list-group.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal/modal.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal/modal.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/providers/modal-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal-content/modal-content.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal-content/modal-content.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-header/modal-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-body/modal-body.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-footer/modal-footer.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/modal.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/service/modal.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/multiselect.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar/navbar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar/navbar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-nav/navbar-nav.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-nav/navbar-nav.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-item/navbar-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-item/navbar-item.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/nav-link/nav-link.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-content/navbar-content.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-brand/navbar-brand.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-brand/navbar-brand.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/expand-button/expand-button.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-toggler/navbar-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-toggler/navbar-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-header/offcanvas-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-header/offcanvas-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-body/offcanvas-body.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-body/offcanvas-body.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/providers/offcanvas-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas/offcanvas.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas/offcanvas.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/directives/offcanvas-close/offcanvas-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/offcanvas.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/services/offcanvas/offcanvas.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/scrollspy.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/in-list/in-list.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/directive/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/in-list/in-list.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/directives/enhanced-paste/enhanced-paste.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/directives/enhanced-paste/enhanced-paste.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/providers/tooltip-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/component/tooltip.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/component/tooltip.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/directive/tooltip.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/tooltip.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/font-color/font-color.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/font-color/font-color.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/mintplayer-ng-bootstrap.ts"],"sourcesContent":["import { Component, ContentChildren, forwardRef, QueryList } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab',\n templateUrl: './accordion-tab.component.html',\n styleUrls: ['./accordion-tab.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsAccordionTabComponent {\n\n accordion: BsAccordionComponent;\n @ContentChildren(forwardRef(() => BsAccordionComponent)) childAccordions!: QueryList<BsAccordionComponent>;\n constructor(accordion: BsAccordionComponent) {\n this.accordion = accordion;\n }\n}\n","<div class=\"card\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown] *ngIf=\"accordion.activeTab === this\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class BsAccordionComponent {\n\n @ContentChildren(BsAccordionTabComponent) tabPages!: BsAccordionTabComponent[];\n \n //#region ActiveTab\n @Output() public activeTabChange = new EventEmitter<BsAccordionTabComponent | null>();\n private _activeTab: BsAccordionTabComponent | null = null;\n public get activeTab() {\n return this._activeTab;\n }\n @Input() public set activeTab(value: BsAccordionTabComponent | null) {\n this._activeTab = value;\n this.tabPages.filter((tab) => tab !== value).forEach((tab) => {\n console.log('children', tab.childAccordions);\n tab.childAccordions.forEach((acc) => {\n acc.activeTab = null;\n });\n });\n this.activeTabChange.emit(value);\n }\n //#endregion\n \n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab-header',\n templateUrl: './accordion-tab-header.component.html',\n styleUrls: ['./accordion-tab-header.component.scss']\n})\nexport class BsAccordionTabHeaderComponent {\n\n constructor(private accordionTab: BsAccordionTabComponent, private accordion: BsAccordionComponent) {\n }\n\n headerClicked(event: MouseEvent) {\n event.preventDefault();\n if (this.accordion.activeTab === this.accordionTab) {\n this.accordion.activeTab = null;\n } else {\n this.accordion.activeTab = this.accordionTab;\n }\n }\n}\n","<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsAccordionComponent } from './accordion/accordion.component';\nimport { BsAccordionTabComponent } from './accordion-tab/accordion-tab.component';\nimport { BsAccordionTabHeaderComponent } from './accordion-tab-header/accordion-tab-header.component';\n\n@NgModule({\n declarations: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ]\n})\nexport class BsAccordionModule { }\n","export enum Color {\n primary,\n secondary,\n success,\n danger,\n warning,\n info,\n light,\n dark,\n body,\n white,\n transparent\n}","export enum Position {\n top,\n left,\n bottom,\n right\n}","import { Component, Input } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '../../../enums';\n\n@Component({\n selector: 'bs-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n animations: [ FadeInOutAnimation ]\n})\nexport class BsAlertComponent {\n\n @Input() public type: Color = Color.primary;\n colors = Color;\n\n isVisible = true;\n}\n","<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component } from '@angular/core';\nimport { BsAlertComponent } from '../alert/alert.component';\n\n@Component({\n selector: 'bs-alert-close',\n templateUrl: './alert-close.component.html',\n styleUrls: ['./alert-close.component.scss']\n})\nexport class BsAlertCloseComponent {\n\n constructor(private alert: BsAlertComponent) {\n }\n\n closeAlert() {\n this.alert.isVisible = false;\n }\n \n}\n","<button class=\"btn float-end\" (click)=\"closeAlert()\">\n <span class=\"text-dark\">×</span>\n</button>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsAlertComponent } from './alert/alert.component';\nimport { BsAlertCloseComponent } from './alert-close/alert-close.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsAlertComponent,\n BsAlertCloseComponent\n ],\n exports: [\n BsAlertComponent,\n BsAlertCloseComponent\n ]\n})\nexport class BsAlertModule {}\n","import { Injectable } from '@angular/core';\nimport { FirstAndLastDate } from '../../interfaces/first-and-last-date';\nimport { Week } from '../../interfaces/week';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsCalendarMonthService {\n\n public getWeeks(month: Date) {\n const firstAndLast = this.getFirstAndLastDayOfMonth(month);\n const firstOfMonth = this.getMondayBefore(firstAndLast.first);\n const lastOfMonth = this.getSundayAfter(firstAndLast.last);\n const days = this.dateDiff(firstOfMonth, lastOfMonth) + 1;\n const firstDayOffset = (firstAndLast.first.getDay() + 7 - 1) % 7;\n const allDays = this.generateList(days).map(d => d - firstDayOffset).map(d => {\n const wrongDate = new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d);\n const correctDate = new Date(wrongDate.getFullYear(), wrongDate.getMonth(), wrongDate.getDate());\n return {\n date: correctDate,\n dayOfMonth: correctDate.getDate(),\n isInMonth: (correctDate.getFullYear() === month.getFullYear()) && (correctDate.getMonth() === month.getMonth())\n };\n });\n const weeks = this.chunk(allDays, 7);\n const weeksMapped = weeks.map<Week>((w, i) => ({\n number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), w.find(d => d.isInMonth)?.dayOfMonth)),\n days: w\n }));\n return weeksMapped;\n }\n \n generateList(count: number) {\n return [...Array(count).keys()];\n }\n\n dayOfWeekMondayBased(date: Date) {\n const d = date.getDay() - 1;\n if (d < 0) {\n return 6;\n } else {\n return d;\n }\n }\n\n weekOfYear(date: Date) {\n const dateClone = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n dateClone.setUTCDate(dateClone.getUTCDate() + 4 - (dateClone.getUTCDay() || 7));\n const yearStart = new Date(Date.UTC(dateClone.getUTCFullYear(), 0, 1));\n const utcDiff = this.toUTC(dateClone) - this.toUTC(yearStart);\n return Math.ceil((utcDiff / (1000 * 60 * 60 * 24) + 1) / 7);\n }\n\n getFirstAndLastDayOfMonth(date: Date) {\n const first = new Date(date.getFullYear(), date.getMonth(), 1);\n const last = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return <FirstAndLastDate>{ first, last };\n }\n\n dateDiff(date1: Date, date2: Date) {\n const utc1 = this.toUTC(date1);\n const utc2 = this.toUTC(date2);\n const msPerDay = 1000 * 60 * 60 * 24;\n return Math.floor((utc2 - utc1) / msPerDay);\n }\n\n dayOfYear(date: Date) {\n const start = new Date(date.getFullYear(), 0, 0);\n return this.dateDiff(start, date);\n }\n\n toUTC(date: Date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n chunk<T>(items: T[], size: number) {\n const result: T[][] = [];\n for (let i = 0; i < items.length; i += size) {\n result.push(items.slice(i, i + size));\n }\n return result;\n }\n\n getMondayBefore(date: Date) {\n const day = date.getDay(), diff = date.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\n const monday = new Date(date);\n monday.setDate(diff);\n return monday;\n }\n\n getSundayAfter(date: Date) {\n const day = date.getDay();\n const sunday = new Date(date);\n if (day !== 0) {\n const diff = date.getDate() + 7 - day;\n sunday.setDate(diff);\n }\n return sunday;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucFirst'\n})\nexport class UcFirstPipe implements PipeTransform {\n\n transform(value: string, ...args: any[]) {\n return value[0].toUpperCase() + value.slice(1);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monthName'\n})\nexport class MonthNamePipe implements PipeTransform {\n\n transform(date: Date | null, ...args: any[]) {\n if (date) {\n return date.toLocaleString(\"default\", { month: 'long' });\n } else {\n return '';\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { DateDayOfMonth } from '../../interfaces/date-day-of-month';\nimport { Week } from '../../interfaces/week';\nimport { WeekDay } from '../../interfaces/weekday';\nimport { BsCalendarMonthService } from '../../services/calendar-month/calendar-month.service';\n\n@Component({\n selector: 'bs-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n})\nexport class BsCalendarComponent implements OnDestroy {\n constructor(private calendarMonthService: BsCalendarMonthService) {\n this.weeks$ = this.currentMonth$\n .pipe(map((month) => this.calendarMonthService.getWeeks(month)))\n .pipe(takeUntil(this.destroyed$));\n this.shownDays$ = this.weeks$\n .pipe(filter((weeks) => weeks.length > 1))\n .pipe(map((weeks) => weeks[1].days))\n .pipe(\n map((days) => {\n const firstDay = days[0];\n if (firstDay) {\n return days.map((d) => {\n const date = new Date(\n firstDay.date.getFullYear(),\n firstDay.date.getMonth(),\n d?.dayOfMonth\n );\n return <WeekDay>{\n short: date.toLocaleString('default', { weekday: 'short' }),\n long: date.toLocaleString('default', { weekday: 'long' })\n };\n });\n } else {\n return [];\n }\n })\n );\n this.selectedDate$.pipe(takeUntil(this.destroyed$)).subscribe((date) => {\n this.selectedDateChange.emit(date);\n });\n this.currentMonth$.pipe(takeUntil(this.destroyed$)).subscribe((month) => {\n this.currentMonthChange.emit(month);\n });\n }\n\n private destroyed$ = new Subject();\n weeks$: Observable<Week[]>;\n shownDays$: Observable<WeekDay[]>;\n\n //#region CurrentMonth\n currentMonth$ = new BehaviorSubject<Date>(new Date());\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this.currentMonth$.value;\n }\n @Input() set currentMonth(value: Date) {\n this.currentMonth$.next(value);\n }\n //#endregion\n //#region SelectedDate\n selectedDate$ = new BehaviorSubject<Date>(new Date());\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this.selectedDate$.value;\n }\n @Input() set selectedDate(value: Date) {\n this.selectedDate$.next(value);\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n previousMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() - 1, 1)\n );\n });\n\n return false;\n }\n\n nextMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() + 1, 1)\n );\n });\n\n return false;\n }\n\n isSameDate(date1: Date | null, date2: Date | null) {\n if (date1 === null && date2 === null) return true;\n if (date1 === null || date2 === null) return false;\n\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n goto(day: DateDayOfMonth | null) {\n if (day) {\n this.selectedDate$.next(day.date);\n }\n }\n}\n","<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of shownDays$ | async\" [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.days\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\" [class.text-muted]=\"!day.isInMonth\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonthNamePipe } from './month-name.pipe';\n\n@NgModule({\n declarations: [\n MonthNamePipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MonthNamePipe\n ]\n})\nexport class BsMonthNamePipeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UcFirstPipe } from './uc-first.pipe';\n\n@NgModule({\n declarations: [\n UcFirstPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n UcFirstPipe\n ]\n})\nexport class BsUcFirstPipeModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'weekdayName'\n})\nexport class WeekdayNamePipe implements PipeTransform {\n\n transform(date: Date, ...args: any[]): unknown {\n return date.toLocaleString(\"default\", { weekday: 'short' });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WeekdayNamePipe } from './weekday-name.pipe';\n\n\n\n@NgModule({\n declarations: [\n WeekdayNamePipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n WeekdayNamePipe\n ]\n})\nexport class BsWeekdayNameModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCalendarComponent } from './calendar.component';\nimport { BsMonthNamePipeModule } from '../../pipes/month-name/month-name.module';\nimport { BsUcFirstPipeModule } from '../../pipes/uc-first/uc-first.module';\nimport { BsWeekdayNameModule } from '../../pipes/weekday-name/weekday-name.module';\n\n@NgModule({\n declarations: [\n BsCalendarComponent\n ],\n imports: [\n CommonModule,\n BsUcFirstPipeModule,\n BsMonthNamePipeModule,\n BsWeekdayNameModule\n ],\n exports: [\n BsCalendarComponent\n ]\n})\nexport class BsCalendarModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class BsCardComponent {\n}\n","<div class=\"card\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss']\n})\nexport class BsCardHeaderComponent {\n}\n","<div class=\"card-header\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCardComponent } from './card/card.component';\nimport { BsCardHeaderComponent } from './card-header/card-header.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsCardComponent,\n BsCardHeaderComponent\n ],\n exports: [\n BsCardComponent,\n BsCardHeaderComponent\n ]\n})\nexport class BsCardModule {}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>) {\n this.itemTemplate = this.templateRef;\n }\n}\n","import { AfterContentInit, Component, ContentChildren, HostBinding, Input, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation, CarouselSlideAnimation } from '@mintplayer/ng-animations';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation, CarouselSlideAnimation]\n})\nexport class BsCarouselComponent implements OnDestroy, AfterContentInit {\n\n constructor() {\n this.currentImageIndex$ = this.currentImageCounter$\n .pipe(map((counter) => {\n const l = this.images.length;\n return ((counter % l) + l) % l;\n }))\n .pipe(takeUntil(this.destroyed$));\n this.currentImage$ = this.currentImageIndex$\n .pipe(map((index) => this.images.get(index)?.itemTemplate ?? null))\n .pipe(takeUntil(this.destroyed$));\n }\n\n @HostBinding('@.disabled') public animationsDisabled = false;\n @Input() public indicators = true;\n @ContentChildren(BsCarouselImageDirective) images!: QueryList<BsCarouselImageDirective>;\n \n private _animation: 'fade' | 'slide' = 'slide';\n\n destroyed$ = new Subject();\n currentImageCounter$ = new BehaviorSubject<number>(-1);\n currentImageIndex$: Observable<number>;\n currentImage$: Observable<TemplateRef<any> | null>;\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n ngAfterContentInit() {\n if (this.images.length > 0) {\n this.currentImageCounter$.next(0);\n } else {\n this.currentImageCounter$.next(-1);\n }\n }\n \n //#region Animation\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => {\n this.animationsDisabled = false;\n }, 20);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n previousImage() {\n this.currentImageCounter$\n .pipe(take(1))\n .subscribe((currentImageCounter) => {\n this.currentImageCounter$.next(currentImageCounter - 1);\n });\n }\n\n nextImage() {\n this.currentImageCounter$\n .pipe(take(1))\n .subscribe((currentImageCounter) => {\n this.currentImageCounter$.next(currentImageCounter + 1);\n });\n }\n\n setCurrentImage(index: number) {\n const currentValue = this.currentImageCounter$.value;\n const l = this.images.length;\n const counterMod = ((currentValue % l) + l) % l;\n const newValue = currentValue - counterMod + index;\n this.currentImageCounter$.next(newValue);\n }\n\n}\n","<div class=\"carousel slide\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ]\n})\nexport class BsCarouselModule { }\n","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const SNACKBAR_CONTENT = new InjectionToken<TemplateRef<any>>('SnackbarContent');","import { AnimationEvent } from '@angular/animations';\nimport { Component, EventEmitter, HostBinding, Inject, TemplateRef } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { SnackbarAnimationMeta } from '../interfaces/snackbar-animation-meta';\nimport { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';\n\n@Component({\n selector: 'bs-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsSnackbarComponent {\n\n constructor(@Inject(SNACKBAR_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n }\n \n @HostBinding('class.d-block') displayBlock = true;\n @HostBinding('class.w-100') width100 = true;\n content: TemplateRef<any>;\n\n private instance: SnackbarAnimationMeta | null = null;\n\n //#region Monitor @slideUpDown hooks\n animationState = '';\n animationStateChanged = new EventEmitter<AnimationEvent>();\n onAnimationChanged(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n //#endregion\n\n}\n","<div [@slideUpDown]=\"animationState\"\n (@slideUpDown.start)=\"onAnimationChanged($event)\"\n (@slideUpDown.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>","import { Directive, HostListener, Input } from '@angular/core';\nimport { BsSnackbarService } from '../../service/snackbar.service';\nimport { BsSnackbarComponent } from '../../component/snackbar.component';\n\n@Directive({\n selector: '[bsSnackbarClose]'\n})\nexport class BsSnackbarCloseDirective {\n constructor(private snackbarService: BsSnackbarService) { }\n\n @Input() public bsSnackbarClose!: BsSnackbarComponent;\n\n @HostListener('click') onClick() {\n this.snackbarService.hide(this.bsSnackbarClose);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsSnackbarComponent } from './component/snackbar.component';\nimport { BsSnackbarCloseDirective } from './directives/snackbar-close/snackbar-close.directive';\n\n@NgModule({\n declarations: [\n BsSnackbarComponent,\n BsSnackbarCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsSnackbarComponent,\n BsSnackbarCloseDirective\n ]\n})\nexport class BsSnackbarModule { }\n","import { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\nimport { filter, take } from 'rxjs';\nimport { BsSnackbarModule } from '../snackbar.module';\nimport { BsSnackbarComponent } from '../component/snackbar.component';\nimport { SnackbarAnimationMeta } from '../interfaces/snackbar-animation-meta';\nimport { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';\n\n@Injectable({\n providedIn: BsSnackbarModule\n})\nexport class BsSnackbarService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n ) { }\n\n public show(template: TemplateRef<any>) {\n const injector = Injector.create({\n providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsSnackbarComponent, null, injector);\n\n const overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0'),\n width: '100%'\n });\n\n const componentInstance = overlayRef.attach<BsSnackbarComponent>(portal);\n \n componentInstance.instance['instance'] = <SnackbarAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n\n return componentInstance.instance;\n }\n\n public hide(snackbar: BsSnackbarComponent) {\n snackbar.animationStateChanged.pipe(\n filter(ev => ev.phaseName === 'done' && ev.toState === 'void'),\n take(1)\n ).subscribe(() => {\n snackbar['instance']?.overlay.dispose()\n });\n\n snackbar.animationState = 'void';\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, EventEmitter, HostListener, Inject, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[bsCopy]',\n})\nexport class BsCopyDirective {\n private doc: Document;\n constructor(@Inject(DOCUMENT) doc: any) {\n this.doc = doc;\n }\n\n @Input() public bsCopy: string | null = null;\n @Output() public bsCopied = new EventEmitter<string>();\n\n @HostListener('click', ['$event']) click(event: MouseEvent) {\n event.preventDefault();\n const listener = (e: ClipboardEvent) => {\n if (!!this.bsCopy && !!window) {\n const clipboard = e.clipboardData || <DataTransfer | null>(<any>window)['clipboardData'] || null;\n if (clipboard) {\n clipboard.setData('text', this.bsCopy?.toString());\n e.preventDefault();\n this.bsCopied.emit(this.bsCopy);\n }\n }\n };\n this.doc.addEventListener('copy', listener, false);\n this.doc.execCommand('copy');\n this.doc.removeEventListener('copy', listener, false);\n }\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BsSnackbarService } from '../snackbar/service/snackbar.service';\n\n@Component({\n selector: 'bs-code-snippet',\n templateUrl: './code-snippet.component.html',\n styleUrls: ['./code-snippet.component.scss']\n})\nexport class BsCodeSnippetComponent {\n\n constructor(private snackbarService: BsSnackbarService) {\n }\n \n @Input() public htmlToCopy = '';\n @ViewChild('copiedTemplate') copiedTemplate!: TemplateRef<any>;\n\n copiedHtml() {\n const snackbar = this.snackbarService.show(this.copiedTemplate);\n setTimeout(() => this.snackbarService.hide(snackbar), 3000);\n }\n\n}\n","<div class=\"position-relative\">\n <button #copyBtn [bsCopy]=\"htmlToCopy\" (bsCopied)=\"copiedHtml()\" class=\"btn btn-link rounded-0 text-light position-absolute copy-btn\">\n Copy html\n </button>\n <pre class=\"white-space-normal\">\n <code class=\"d-block white-space-pre\" [highlight]=\"htmlToCopy\"></code>\n </pre>\n <ng-template #copiedTemplate>\n <div class=\"p-3\">Copied!</div>\n </ng-template>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCopyDirective } from './copy.directive';\n\n@NgModule({\n declarations: [\n BsCopyDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsCopyDirective\n ]\n})\nexport class BsCopyModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HighlightModule } from 'ngx-highlightjs';\nimport { BsCodeSnippetComponent } from './code-snippet.component';\nimport { BsCopyModule } from '../copy/copy.module';\n\n@NgModule({\n declarations: [\n BsCodeSnippetComponent\n ],\n imports: [\n CommonModule,\n BsCopyModule,\n HighlightModule\n ],\n exports: [\n BsCodeSnippetComponent\n ]\n})\nexport class BsCodeSnippetModule { }\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Host, HostListener, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[bsContextMenu]'\n})\nexport class BsContextMenuDirective {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n private viewContainerRef: ViewContainerRef,\n @Host() @SkipSelf() private element: ElementRef\n ) {\n this.element.nativeElement.oncontextmenu = (ev: MouseEvent) => {\n ev.preventDefault();\n this.checkAndCloseExisting(ev);\n\n const target = {\n getBoundingClientRect: () => {\n console.log('getBoundingClientRect', {\n clientX: ev.clientX,\n clientY: ev.clientY,\n scrollY: window.scrollY,\n });\n return ({\n width: 0,\n height: 0,\n top: ev.clientY + window.scrollY,\n left: ev.clientX,\n bottom: ev.clientY + window.scrollY,\n right: ev.clientX,\n });\n },\n };\n const element = new ElementRef(target);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(element)\n .withPositions([\n { originX: \"end\", originY: \"top\", overlayX: \"start\", overlayY: \"top\" },\n { originX: \"end\", originY: \"bottom\", overlayX: \"start\", overlayY: \"bottom\" },\n { originX: \"start\", originY: \"top\", overlayX: \"end\", overlayY: \"top\" },\n { originX: \"start\", originY: \"bottom\", overlayX: \"end\", overlayY: \"bottom\" },\n ])\n });\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n view.rootNodes.forEach(node => node.classList.add('position-static'));\n };\n }\n\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n @HostListener('document:click', ['$event']) clickAnywhere(ev: MouseEvent) {\n this.checkAndCloseExisting(ev);\n }\n \n \n @HostListener('window:blur') private onBlur() {\n this.close();\n }\n\n private close() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private checkAndCloseExisting(ev: MouseEvent) {\n if (this.overlayRef && !this.overlayRef.overlayElement.contains(<any>ev.target)) {\n this.close();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsContextMenuDirective } from './context-menu.directive';\n\n@NgModule({\n declarations: [\n BsContextMenuDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsContextMenuDirective\n ]\n})\nexport class BsContextMenuModule { }\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { DatatableColumnMetadata } from './datatable-column-metadata';\n\n@Directive({\n selector: '[bsDatatableColumn]'\n})\nexport class BsDatatableColumnDirective {\n\n constructor(templateRef: TemplateRef<any>) {\n this.templateRef = templateRef;\n }\n\n templateRef: TemplateRef<any>;\n @Input() public bsDatatableColumn: DatatableColumnMetadata = { name: '', sortable: true };\n\n}\n","import { PaginationRequest } from \"@mintplayer/ng-pagination\";\n\nexport class DatatableSettings {\n constructor(data?: Partial<DatatableSettings>) {\n Object.assign(this, data);\n\n if (data && data.perPage) {\n this.perPage = data.perPage;\n } else {\n // Set default value\n this.perPage = {\n values: [10, 20, 50],\n selected: 20\n };\n }\n \n if (data && data.page) {\n this.page = data.page;\n } else {\n // Set default value\n this.page = {\n values: [1],\n selected: 1\n };\n }\n }\n\n public sortProperty = '';\n public sortDirection: 'ascending' | 'descending' = 'ascending';\n public perPage: { values: number[], selected: number };\n public page: { values: number[], selected: number };\n\n public toPagination() {\n const res = <PaginationRequest>{\n sortProperty: this.sortProperty,\n sortDirection: this.sortDirection,\n perPage: this.perPage.selected,\n page: this.page.selected\n };\n return res;\n }\n}","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { PageWithSelection } from '../../../interfaces/page-with-selection';\n\n@Component({\n selector: 'bs-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n})\nexport class BsPaginationComponent implements OnDestroy {\n constructor() {\n this.destroyed$ = new Subject();\n\n this.visibleNumberOfNumberBoxes$ = combineLatest([\n this.numberOfBoxes$,\n this.pageNumbers$,\n this.showArrows$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([numberOfBoxes, pageNumbers, showArrows]) => {\n if (numberOfBoxes <= 0) {\n return pageNumbers.length;\n } else if (!showArrows) {\n return Math.min(numberOfBoxes, pageNumbers.length);\n } else if (numberOfBoxes <= 2) {\n return Math.min(1, pageNumbers.length);\n } else {\n return Math.min(numberOfBoxes - 2, pageNumbers.length);\n }\n })\n );\n\n this.shownPageNumbers$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n this.visibleNumberOfNumberBoxes$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {\n let startIndex = 0;\n\n const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);\n if (pageNumbers.indexOf(selectedPageNumber) < half) {\n startIndex = 0;\n } else if (\n pageNumbers.indexOf(selectedPageNumber) >=\n pageNumbers.length - half\n ) {\n startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;\n } else {\n startIndex = pageNumbers.indexOf(selectedPageNumber) - half;\n }\n\n return [...Array(visibleNumberOfNumberBoxes).keys()]\n .map((p) => p + startIndex)\n .map((p) =><PageWithSelection>{\n page: pageNumbers[p],\n selected: pageNumbers[p] === selectedPageNumber,\n });\n })\n );\n\n this.isFirstPage$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber]) => {\n return pageNumbers.indexOf(selectedPageNumber) === 0;\n })\n );\n\n this.isLastPage$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber]) => {\n return (pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1);\n })\n );\n\n this.selectedPageNumber$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((selectedPageNumber) => {\n this.selectedPageNumberChange.emit(selectedPageNumber);\n });\n }\n\n /** All page numbers. */\n pageNumbers$ = new BehaviorSubject<number[]>([]);\n /** Page numbers to be displayed to the user. */\n shownPageNumbers$: Observable<PageWithSelection[]>;\n /** Selected number. */\n selectedPageNumber$ = new BehaviorSubject<number>(1);\n /** Number of boxes. */\n numberOfBoxes$ = new BehaviorSubject<number>(0);\n /** Display previous/next arrows. */\n showArrows$ = new BehaviorSubject<boolean>(true);\n\n /** Indicates if first value is selected. */\n isFirstPage$ = new Observable<boolean>();\n /** Indicates if last value is selected. */\n isLastPage$ = new Observable<boolean>();\n /** The number of boxes (excluding arrows) that's being shown on the pagination component. */\n visibleNumberOfNumberBoxes$ = new Observable<number>();\n /** Monitor OnDestroyed hook. */\n private destroyed$: Subject<any>;\n\n private _selectedPageNumber = 0;\n private _numberOfBoxes = 0;\n private _pageNumbers: number[] = [];\n private _showArrows = true;\n\n //#region SelectedPageNumber\n @Output() public selectedPageNumberChange = new EventEmitter<number>();\n @Input() set selectedPageNumber(value: number) {\n this._selectedPageNumber = value;\n this.selectedPageNumber$.next(value);\n }\n get selectedPageNumber() {\n return this._selectedPageNumber;\n }\n //#endregion\n\n //#region NumberOfBoxes\n @Input() set numberOfBoxes(value: number) {\n this._numberOfBoxes = value;\n this.numberOfBoxes$.next(value);\n }\n get numberOfBoxes() {\n return this._numberOfBoxes;\n }\n //#endregion\n\n //#region PageNumbers\n @Input() set pageNumbers(value: number[]) {\n this._pageNumbers = value;\n this.pageNumbers$.next(value);\n }\n get pageNumbers() {\n return this._pageNumbers;\n }\n //#endregion\n\n //#region ShowArrows\n @Input() set showArrows(value: boolean) {\n this._showArrows = value;\n this.showArrows$.next(value);\n }\n get showArrows() {\n return this._showArrows;\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n onSelectPage(event: MouseEvent, page: number) {\n this.selectedPageNumber$.next(page);\n return false;\n }\n\n onPrevious() {\n this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);\n return false;\n }\n\n onNext() {\n this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);\n return false;\n }\n}\n","<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isFirstPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async)\" class=\"page-item\"\n [ngClass]=\"{ 'active': pageNumber.selected }\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isLastPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>","import { Component, ContentChildren, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PaginationResponse } from '@mintplayer/ng-pagination';\nimport { BsDatatableColumnDirective } from '../datatable-column/datatable-column.directive';\nimport { DatatableSettings } from '../datatable-settings';\n\n@Component({\n selector: 'bs-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss']\n})\nexport class BsDatatableComponent {\n\n constructor() {\n this.settings = new DatatableSettings();\n this.settings.sortProperty = '';\n this.settings.sortDirection = 'ascending';\n this.settings.perPage = { values: [10, 20, 50], selected: 20 };\n this.settings.page = { values: [1], selected: 1 };\n }\n\n @ContentChildren(BsDatatableColumnDirective) columns: BsDatatableColumnDirective[] = [];\n @Input() settings: DatatableSettings;\n @Input() data?: PaginationResponse<any>;\n rowTemplate?: TemplateRef<any>;\n @Output() reloadData: EventEmitter<any> = new EventEmitter();\n\n columnHeaderClicked(column: BsDatatableColumnDirective) {\n if (column.bsDatatableColumn.sortable) {\n if (this.settings.sortProperty !== column.bsDatatableColumn.name) {\n this.settings.sortProperty = column.bsDatatableColumn.name;\n this.settings.sortDirection = 'ascending';\n } else if (this.settings.sortDirection === 'descending') {\n this.settings.sortDirection = 'ascending';\n } else {\n this.settings.sortDirection = 'descending';\n }\n this.reloadData.emit();\n }\n }\n\n}\n","<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsDatatableComponent } from '../datatable/datatable.component';\n\n@Directive({\n selector: '[bsRowTemplate]'\n})\nexport class BsRowTemplateDirective {\n\n constructor(private datatableComponent: BsDatatableComponent, templateRef: TemplateRef<any>) {\n this.datatableComponent.rowTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsPaginationComponent } from './pagination/pagination.component';\n\n\n\n@NgModule({\n declarations: [\n BsPaginationComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsPaginationComponent\n ]\n})\nexport class BsPaginationModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDatatableComponent } from './datatable/datatable.component';\nimport { BsRowTemplateDirective } from './row-template/row-template.directive';\nimport { BsPaginationModule } from '../pagination/pagination.module';\nimport { BsDatatableColumnDirective } from './datatable-column/datatable-column.directive';\n\n@NgModule({\n declarations: [\n BsDatatableComponent,\n BsRowTemplateDirective,\n BsDatatableColumnDirective\n ],\n imports: [\n CommonModule,\n BsPaginationModule\n ],\n exports: [\n BsDatatableComponent,\n BsRowTemplateDirective,\n BsDatatableColumnDirective\n ]\n})\nexport class BsDatatableModule { }\n","import { Directive, ElementRef, forwardRef, HostBinding, HostListener, Inject, NgZone, PLATFORM_ID, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ClickOutsideDirective } from '@mintplayer/ng-click-outside';\nimport { Subject, take, takeUntil } from 'rxjs';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownMenu]'\n})\nexport class BsDropdownMenuDirective extends ClickOutsideDirective {\n constructor(\n @Inject(forwardRef(() => BsDropdownDirective)) private dropdown: BsDropdownDirective,\n private viewContainerRef: ViewContainerRef,\n private templateRef: TemplateRef<any>,\n private overlay: Overlay,\n\n elementRef: ElementRef<any>,\n zone: NgZone,\n @Inject(PLATFORM_ID) platformId: any\n ) {\n super(elementRef, zone, platformId);\n\n this.dropdown.isOpen$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isOpen) => {\n if (isOpen) {\n this.wait = true;\n setTimeout(() => this.wait = false, 100);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.dropdown.hasBackdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)\n .withPositions([\n // element: BottomLeft - dropdown: TopLeft\n { originX: \"start\", originY: \"bottom\", overlayX: \"start\", overlayY: \"top\", offsetY: 0 },\n // element: TopLeft - dropdown: BottomLeft\n { originX: \"start\", originY: \"top\", overlayX: \"start\", overlayY: \"bottom\", offsetY: 0 },\n ]),\n });\n\n if (this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {\n this.overlayRef.backdropClick().subscribe(() => {\n this.dropdown.isOpen = false;\n });\n }\n \n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n \n if (this.dropdown.sameDropdownWidth) {\n const width = this.dropdown.elementRef.nativeElement.offsetWidth;\n view.rootNodes[0].style.width = width + 'px';\n }\n } else {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n });\n }\n\n private wait = false;\n private destroyed$ = new Subject();\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n @HostBinding('class.show') get show() { return this.dropdown.isOpen; }\n @HostListener('clickOutside', ['$event']) clickedOutside(ev: MouseEvent) {\n if (!this.wait) {\n if (!this.overlayRef?.overlayElement.contains(<any>ev.target)) {\n this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {\n if (isOpen && !this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {\n this.dropdown.isOpen = false;\n }\n });\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { take } from 'rxjs';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownToggle]'\n})\nexport class BsDropdownToggleDirective {\n\n constructor(\n private dropdown: BsDropdownDirective,\n toggleButton: ElementRef) {\n this.toggleButton = toggleButton;\n }\n\n toggleButton: ElementRef;\n\n\n @HostListener('click')\n onClick() {\n this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {\n this.dropdown.isOpen$.next(!isOpen);\n });\n }\n}\n","import { ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BsDropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from '../dropdown-toggle/dropdown-toggle.directive';\n\n@Directive({\n selector: '[bsDropdown]'\n})\nexport class BsDropdownDirective {\n\n constructor(elementRef: ElementRef<any>) {\n this.elementRef = elementRef;\n }\n\n isOpen$ = new BehaviorSubject<boolean>(false);\n\n elementRef: ElementRef<any>;\n @ContentChild(BsDropdownMenuDirective, {static: false}) menu!: BsDropdownMenuDirective;\n @ContentChild(BsDropdownToggleDirective, {static: false}) toggle: BsDropdownToggleDirective | null = null;\n \n @Input() public hasBackdrop = false;\n @Input() public sameWidth = false;\n @Input() public closeOnClickOutside = false;\n @Input() public sameDropdownWidth = false;\n\n //#region IsOpen\n public get isOpen() {\n return this.isOpen$.value;\n }\n @Output() public isOpenChange = new EventEmitter<boolean>();\n @Input() public set isOpen(value: boolean) {\n if (this.isOpen$.value !== value) {\n this.isOpen$.next(value);\n this.isOpenChange.emit(value);\n }\n }\n //#endregion\n\n @HostListener('window:blur') private onBlur() {\n this.isOpen = false;\n }\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bs-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss']\n})\nexport class BsDatepickerComponent {\n\n //#region SelectedDate\n _selectedDate = new Date();\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this._selectedDate;\n }\n @Input() set selectedDate(value: Date) {\n this._selectedDate = value;\n this.selectedDateChange.emit(value);\n }\n //#endregion\n\n //#region CurrentMonth\n _currentMonth = new Date();\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this._currentMonth;\n }\n @Input() set currentMonth(value: Date) {\n this._currentMonth = value;\n this.currentMonthChange.emit(value);\n }\n //#endregion\n\n}\n","<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ClickOutsideModule } from '@mintplayer/ng-click-outside';\nimport { BsDropdownDirective } from './dropdown/dropdown.directive';\nimport { BsDropdownMenuDirective } from './dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';\n\n\n\n@NgModule({\n declarations: [\n BsDropdownDirective,\n BsDropdownToggleDirective,\n BsDropdownMenuDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ClickOutsideModule\n ],\n exports: [\n BsDropdownDirective,\n BsDropdownToggleDirective,\n BsDropdownMenuDirective\n ]\n})\nexport class BsDropdownModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDatepickerComponent } from './datepicker.component';\nimport { BsCalendarModule } from '../calendar/calendar.module';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\n\n\n\n@NgModule({\n declarations: [\n BsDatepickerComponent\n ],\n imports: [\n CommonModule,\n BsCalendarModule,\n BsDropdownModule\n ],\n exports: [\n BsDatepickerComponent\n ]\n})\nexport class BsDatepickerModule { }\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.scss']\n})\nexport class BsProgressComponent {\n @HostBinding('class.progress') private progressClass = true;\n @Input() @HostBinding('style.height.px') public height: number | null = null;\n @Input() public isIndeterminate = false;\n}\n","<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>","import { Component, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Color } from '../../../enums/color.enum';\nimport { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss']\n})\nexport class BsProgressBarComponent implements OnDestroy {\n\n constructor() {\n this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])\n .pipe(map(([minimum, maximum, value]) => {\n return (value - minimum) / (maximum - minimum) * 100;\n }));\n this.width$ = this.percentage$\n .pipe(map((width) => {\n return String(width) + '%';\n }));\n this.colorClass$ = this.color$\n .pipe(map((color) => {\n const name = Color[color];\n return `bg-${name}`;\n }));\n\n this.colorClass$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((color) => {\n this.colorClass = color;\n });\n this.width$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((width) => {\n this.widthStyle = width;\n });\n this.value$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueNow = value;\n });\n this.minimum$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueMin = value;\n });\n this.maximum$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueMax = value;\n });\n }\n\n destroyed$ = new Subject()\n minimum$ = new BehaviorSubject<number>(0);\n maximum$ = new BehaviorSubject<number>(100);\n value$ = new BehaviorSubject<number>(50);\n percentage$: Observable<number>;\n width$: Observable<string>;\n color$ = new BehaviorSubject<Color>(Color.primary);\n colorClass$: Observable<string>;\n\n @Input() public set minimum(value: number) {\n this.minimum$.next(value);\n }\n @Input() public set maximum(value: number) {\n this.maximum$.next(value);\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n }\n @Input() public set color(value: Color) {\n this.color$.next(value);\n }\n @Input() @HostBinding('class.progress-bar-striped') public striped = false;\n @Input() @HostBinding('class.progress-bar-animated') public animated = false;\n\n @HostBinding('class.progress-bar') progressBar = true;\n @HostBinding('class') colorClass = 'bg-primary';\n @HostBinding('style.width') widthStyle = '0';\n @HostBinding('attr.role') role = 'progressbar';\n @HostBinding('attr.aria-valuenow') valueNow = 50;\n @HostBinding('attr.aria-valuemin') valueMin = 0;\n @HostBinding('attr.aria-valuemax') valueMax = 100;\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[bsFor]'\n})\nexport class BsForDirective {\n\n @HostBinding('class.cursor-default') defaultCursor = true;\n\n @Input() bsFor: any;\n @HostListener('click') onMouseClick() {\n if (!('tagName' in this.bsFor)) {\n this.bsFor.focus();\n } else if (this.bsFor.tagName.toLowerCase() !== 'input') {\n this.bsFor.focus();\n } else if (this.bsFor.type.toLowerCase() === 'file') {\n this.bsFor.click();\n } else {\n this.bsFor.focus();\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes'\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, EventEmitter, HostListener, Input, Output, TemplateRef } from '@angular/core';\nimport { FileUpload } from '../file-upload';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss']\n})\nexport class BsFileUploadComponent {\n\n @Input() public dropFilesCaption = 'Drop your files here';\n @Input() public browseFilesCaption = 'Browse for files';\n @Input() public placeholder = 'Drop files to upload';\n\n isDraggingFile = false;\n fileTemplate?: TemplateRef<FileUpload>;\n @Input() public files: FileUpload[] = [];\n @Output() public filesDropped = new EventEmitter<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n \n this.processDroppedFiles(files);\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n \n if (event.dataTransfer) {\n this.isDraggingFile = true;\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map(f => <FileUpload>{ file: f, progress: 0 });\n \n this.files.push(...newFiles);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<ul class=\"list-group files-list\">\n <li class=\"list-group-item\" *ngFor=\"let upload of files\">\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </li>\n</ul>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\n\n@Directive({\n selector: '[bsFileUploadTemplate]'\n})\nexport class BsFileUploadTemplateDirective {\n\n constructor(fileUploadComponent: BsFileUploadComponent, templateRef: TemplateRef<any>) {\n fileUploadComponent.fileTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsForDirective } from './for.directive';\n\n@NgModule({\n declarations: [\n BsForDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsForDirective\n ]\n})\nexport class BsForModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsProgressComponent } from './progress/progress.component';\nimport { BsProgressBarComponent } from './progress-bar/progress-bar.component';\n\n\n\n@NgModule({\n declarations: [\n BsProgressBarComponent,\n BsProgressComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsProgressBarComponent,\n BsProgressComponent\n ]\n})\nexport class BsProgressBarModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsFormatBytesPipe } from './format-bytes.pipe';\n\n@NgModule({\n declarations: [\n BsFormatBytesPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsFormatBytesPipe\n ]\n})\nexport class BsFormatBytesModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsForModule } from '../for/for.module';\nimport { BsProgressBarModule } from '../progress-bar';\nimport { BsFormatBytesModule } from '../../pipes/format-bytes/format-bytes.module';\nimport { BsFileUploadComponent } from './component/file-upload.component';\nimport { BsFileUploadTemplateDirective } from './directive/file-upload-template.directive';\n\n@NgModule({\n declarations: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective\n ],\n imports: [\n CommonModule,\n BsForModule,\n BsFormatBytesModule,\n BsProgressBarModule\n ],\n exports: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective\n ]\n})\nexport class BsFileUploadModule { }\n","export enum ESchedulerMode {\n week,\n timeline\n}","export enum EDragOperation {\n none,\n createEvent,\n resizeEvent,\n moveEvent,\n}","import { Injectable } from '@angular/core';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimelineTrack } from '../../interfaces/timeline-track';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsTimelineService {\n\n public splitInParts(event: SchedulerEvent | PreviewEvent) {\n let startTime = event.start;\n const result: SchedulerEventPart[] = [];\n const eventOrNull = 'color' in event ? event : null;\n while (!this.dateEquals(startTime, event.end)) {\n const end = new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate() + 1, 0, 0, 0);\n result.push({ start: startTime, end: end, event: eventOrNull });\n startTime = end;\n }\n if (startTime != event.end) {\n result.push({ start: startTime, end: event.end, event: eventOrNull });\n }\n\n return <SchedulerEventWithParts>{ event: event, parts: result };\n }\n \n private dateEquals(date1: Date, date2: Date) {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n public getTimeline(events: SchedulerEvent[]) {\n const timestamps = this.getTimestamps(events);\n const tracks: TimelineTrack[] = [];\n\n timestamps.forEach((timestamp, tIndex) => {\n const starting = events.filter((e) => e.start === timestamp);\n // const ending = events.filter((e) => e.end === timestamp);\n\n starting.forEach((startedEvent, eIndex) => {\n const freeTracks = tracks.filter(t => this.trackIsFreeAt(t, startedEvent));\n if (freeTracks.length === 0) {\n tracks.push({ index: tracks.length, events: [startedEvent] });\n } else {\n freeTracks[0].events.push(startedEvent);\n }\n });\n });\n\n return tracks;\n }\n\n private getTimestamps(events: SchedulerEvent[]) {\n const allTimestamps = events.map(e => [e.start, e.end])\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n \n return allTimestamps\n .filter((t, i) => allTimestamps.indexOf(t) === i)\n .sort((t1, t2) => <any>t1 - <any>t2);\n }\n\n private trackIsFreeAt(track: TimelineTrack, event: SchedulerEvent) {\n if (track.events.every((ev) => (ev.end <= event.start) || (event.end <= ev.start))) {\n return true;\n } else {\n return false;\n }\n }\n\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { Resource, ResourceGroup } from '../../interfaces';\nimport { ResourceOrGroup } from '../../interfaces/resource-or-group';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { TimeSlot } from '../../interfaces/time-slot';\n\n@Component({\n selector: 'bs-resource-group-presenter',\n templateUrl: './resource-group-presenter.component.html',\n styleUrls: ['./resource-group-presenter.component.scss'],\n \n})\nexport class ResourceGroupPresenterComponent implements OnDestroy {\n \n constructor() {\n this.data$ = this.resourceOrGroup$\n .pipe(map((resourceOrGroup) => {\n if (!resourceOrGroup) {\n return null;\n } else if ('children' in resourceOrGroup) {\n return <ResourceOrGroup>{\n resource: null,\n resourceGroup: resourceOrGroup\n };\n } else {\n return <ResourceOrGroup>{\n resource: resourceOrGroup,\n resourceGroup: null\n };\n }\n }))\n .pipe(filter((resourceOrGroup) => !!resourceOrGroup))\n .pipe(map((resourceOrGroup) => <ResourceOrGroup>resourceOrGroup));\n\n this.colSpan$ = this.timeSlots$\n .pipe(map(timeSlots => timeSlots\n .map(timeslot => timeslot.slots.length)\n .reduce((sum, current) => sum + current, 0)\n ));\n }\n\n @Input() level = 0;\n resourceOrGroup$ = new BehaviorSubject<Resource | ResourceGroup | null>(null);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n isExpanded$ = new BehaviorSubject<boolean>(false);\n data$: Observable<ResourceOrGroup>;\n colSpan$: Observable<number>;\n destroyed$ = new Subject();\n\n //#region resourceOrGroup\n public get resourceOrGroup() {\n return this.resourceOrGroup$.value;\n }\n @Input() public set resourceGroup(value: Resource | ResourceGroup | null) {\n this.resourceOrGroup$.next(value);\n }\n //#endregion\n\n //#region timeSlots\n public get timeSlots() {\n return this.timeSlots$.value;\n }\n @Input() public set timeSlots(value: SchedulerStampWithSlots[]) {\n this.timeSlots$.next(value);\n }\n //#endregion\n\n //#region isExpanded\n public get isExpanded() {\n return this.isExpanded$.value;\n }\n @Input() public set isExpanded(value: boolean) {\n this.isExpanded$.next(value);\n }\n //#endregion\n\n toggleExpanded() {\n this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {\n this.isExpanded$.next(!isExpanded);\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","<ng-container *ngIf=\"(data$ | async) as data\">\n\n <!-- Data is a resource group -->\n <ng-container *ngIf=\"data.resourceGroup\">\n <!-- Header -->\n <tr class=\"p-0 cursor-pointer\" *ngIf=\"(timeSlots$ | async) as timeSlots\" [title]=\"data.resourceGroup.description\">\n <ng-container *ngIf=\"(colSpan$ | async) as colspan\">\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n <i class=\"bi bi-chevron-down\" [style.padding-left.px]=\"level * 20\" *ngIf=\"isExpanded$ | async\"></i>\n <i class=\"bi bi-chevron-right\" [style.padding-left.px]=\"level * 20\" *ngIf=\"(isExpanded$ | async) === false\"></i>\n {{ data.resourceGroup.description }}\n </span>\n </td>\n </ng-container>\n </tr>\n\n <!-- Subgroups or resources -->\n <ng-container *ngIf=\"isExpanded$ | async\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <ng-container *ngFor=\"let child of data.resourceGroup.children\">\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- Data is a resource -->\n <tr *ngIf=\"data.resource\" class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n <ng-container *ngFor=\"let slots of (timeSlots$ | async)\">\n <td class=\"bg-white border-1\" *ngFor=\"let slot of slots.slots\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n </ng-container>\n </tr>\n</ng-container>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTodayOffset'\n})\nexport class BsSecondsTodayOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTimespan'\n})\nexport class BsSecondsTimespanPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n return (value.end.getTime() - value.start.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dayOfWeek'\n})\nexport class DayOfWeekPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const dayOfWeek = value.start.getDay();\n if (dayOfWeek === 0) {\n return 7;\n } else {\n return dayOfWeek;\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { ESchedulerMode } from '../../enums/scheduler-mode';\nimport { BsCalendarMonthService } from '../../../../services/calendar-month/calendar-month.service';\nimport { EDragOperation } from '../../enums/drag-operation';\nimport { DragOperation } from '../../interfaces/drag-operation';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimeSlot } from '../../interfaces/time-slot';\nimport { BsTimelineService } from '../../services/timeline/timeline.service';\nimport { ResourceGroup } from '../../interfaces/resource-group';\nimport { Resource } from '../../interfaces';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { WeekOptions } from '../../interfaces/week-options';\nimport { TimelineOptions } from '../../interfaces/timeline-options';\n\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n})\nexport class BsSchedulerComponent implements OnDestroy {\n constructor(private calendarMonthService: BsCalendarMonthService, private timelineService: BsTimelineService) {\n const monday = this.calendarMonthService.getMondayBefore(new Date());\n this.currentWeekOrMonth$ = new BehaviorSubject<Date>(monday);\n\n this.shownDays$ = combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentDay, mode]) => {\n currentDay.setHours(0);\n currentDay.setMinutes(0);\n currentDay.setSeconds(0);\n currentDay.setMilliseconds(0);\n switch (mode) {\n case ESchedulerMode.week: {\n return Array.from(Array(7).keys()).map((x) => this.addDays(currentDay, x));\n }\n case ESchedulerMode.timeline: {\n const firstDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), 1);\n const daysOfMonth = new Date(currentDay.getFullYear(), currentDay.getMonth() + 1, 0).getDate();\n return Array.from(Array(daysOfMonth).keys()).map((x) => this.addDays(firstDay, x));\n }\n }\n })\n );\n\n this.daysOfWeekWithTimestamps$ = this.shownDays$\n .pipe(map((shownDays) => ({ start: shownDays[0].getTime(), end: shownDays[shownDays.length - 1].getTime() + 24 * 60 * 60 * 1000 })));\n \n this.events$ = this.resources$\n .pipe(map((resourcesOrGroups) => resourcesOrGroups.map(resOrGroup => this.getResourcesForGroup(resOrGroup))))\n .pipe(map(jaggedResources => jaggedResources.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n .pipe(map(resources => resources.map(res => res.events)))\n .pipe(map(jaggedEvents => jaggedEvents.reduce((flat, toFlatten) => flat.concat(toFlatten), [])));\n\n // groups.reduce((flat, toFlatten) => flat.concat(toFlatten.children), [])\n this.eventParts$ = this.events$.pipe(\n map((events) => events.map((ev) => this.timelineService.splitInParts(ev)))\n );\n\n this.eventPartsForThisWeek$ = combineLatest([\n this.daysOfWeekWithTimestamps$,\n this.eventParts$\n .pipe(map(eventParts => eventParts.map(evp => evp.parts)))\n .pipe(map(jaggedParts => jaggedParts.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n ])\n .pipe(map(([startAndEnd, eventParts]) => {\n return eventParts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n }));\n\n this.previewEventParts$ = this.previewEvent$.pipe(\n map((event) => {\n if (event) {\n return this.timelineService.splitInParts(event)\n } else {\n return null;\n }\n })\n );\n this.previewEventPartsForThisWeek$ = combineLatest([this.daysOfWeekWithTimestamps$, this.previewEventParts$])\n .pipe(map(([startAndEnd, previewEventParts]) => {\n if (previewEventParts) {\n return previewEventParts.parts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n } else {\n return [];\n }\n }));\n\n this.timelinedEventPartsForThisWeek$ = this.eventPartsForThisWeek$\n .pipe(map(eventParts => {\n // We'll only use the events for this week\n const events = eventParts.map(ep => ep.event)\n .filter((e, i, list) => list.indexOf(e) === i)\n .filter((e) => !!e)\n .map((e) => <SchedulerEvent>e);\n const timeline = this.timelineService.getTimeline(events);\n\n const result = timeline.map(track => track.events.map(ev => ({ event: ev, index: track.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), [])\n .map((evi) => eventParts.filter(p => p.event === evi.event).map(p => ({ part: p, index: evi.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n\n return {\n total: timeline.length,\n parts: result\n };\n }));\n\n combineLatest([this.mode$, this.shownDays$, this.timeSlotDuration$])\n .pipe(filter(([mode, shownDays, duration]) => mode !== null))\n .pipe(map(([mode, shownDays, duration]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n const timeSlotsPerDay = Math.floor((60 * 60 * 24) / duration);\n return Array.from(Array(timeSlotsPerDay).keys()).map((index) => {\n const timeslotForMonday = this.createTimeslot(shownDays[0], index, duration);\n\n return <SchedulerStampWithSlots>{\n slots: shownDays.map((day) => {\n const start = new Date(day);\n start.setHours(timeslotForMonday.start.getHours());\n start.setMinutes(timeslotForMonday.start.getMinutes());\n start.setSeconds(timeslotForMonday.start.getSeconds());\n start.setMilliseconds(timeslotForMonday.start.getMilliseconds());\n \n const end = new Date(day);\n end.setHours(timeslotForMonday.end.getHours());\n end.setMinutes(timeslotForMonday.end.getMinutes());\n end.setSeconds(timeslotForMonday.end.getSeconds());\n end.setMilliseconds(timeslotForMonday.end.getMilliseconds());\n end.setDate(end.getDate() + timeslotForMonday.end.getDate() - timeslotForMonday.start.getDate());\n \n return <TimeSlot>{ start, end };\n }),\n stamp: timeslotForMonday.start\n };\n });\n }\n case ESchedulerMode.timeline: {\n const totalTimeslots = (24 * 60 * 60) / duration;\n return shownDays.map((day) => {\n return <SchedulerStampWithSlots>{\n slots: Array.from(Array(totalTimeslots).keys())\n .map((index) => {\n return this.createTimeslot(day, index, duration);\n }),\n stamp: day\n } \n });\n }\n default: {\n throw 'Unknown value for Mode: ' + mode;\n }\n }\n }))\n .subscribe((timeslots) => {\n // For performance reasons, we're not using an observable here, but persist the timeslots in a BehaviorSubject.\n this.timeSlots$.next(timeslots);\n });\n \n this.weekOptions$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((weekOptions) => {\n this.weekOptionsChange.emit(weekOptions);\n });\n this.timelineOptions$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((timelineOptions) => {\n this.timelineOptionsChange.emit(timelineOptions);\n });\n\n // combineLatest([this.mode$, this.scale$])\n // .pipe(filter(([mode, scale]) => mode === ESchedulerMode.timeline))\n\n }\n\n resources$ = new BehaviorSubject<(Resource | ResourceGroup)[]>([]);\n events$: Observable<SchedulerEvent[]>;\n eventParts$: Observable<SchedulerEventWithParts[]>;\n eventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n timelinedEventPartsForThisWeek$: Observable<{ total: number, parts: { part: SchedulerEventPart, index: number}[] }>;\n weekOptions$ = new BehaviorSubject<WeekOptions>({ unitHeight: 30 });\n timelineOptions$ = new BehaviorSubject<TimelineOptions>({ unitWidth: 50 });\n \n previewEvent$ = new BehaviorSubject<PreviewEvent | null>(null);\n previewEventParts$: Observable<SchedulerEventWithParts | null>;\n previewEventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n \n currentWeekOrMonth$: BehaviorSubject<Date>;\n shownDays$: Observable<Date[]>;\n daysOfWeekWithTimestamps$: Observable<{start: number, end: number}>;\n timeSlotDuration$ = new BehaviorSubject<number>(1800);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n mouseState$ = new BehaviorSubject<boolean>(false);\n hoveredTimeSlot$ = new BehaviorSubject<TimeSlot | null>(null);\n hoveredEvent$ = new BehaviorSubject<SchedulerEvent | null>(null);\n destroyed$ = new Subject();\n\n @ViewChildren('slot') timeSlotElements!: QueryList<ElementRef<HTMLDivElement>>;\n\n createTimeslot(date: Date, index: number, duration: number) {\n const timeSlotStart = new Date(date);\n timeSlotStart.setTime(+timeSlotStart.getTime() + index * duration * 1000);\n const timeSlotEnd = new Date(timeSlotStart);\n timeSlotEnd.setTime(+timeSlotEnd.getTime() + duration * 1000);\n\n return <TimeSlot>{ start: timeSlotStart, end: timeSlotEnd };\n }\n\n getResourcesForGroup(resourceOrGroup: Resource | ResourceGroup) : Resource[] {\n if ('children' in resourceOrGroup) {\n return resourceOrGroup.children\n .map((child) => this.getResourcesForGroup(child))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n } else {\n return [resourceOrGroup];\n }\n }\n\n //#region Mode\n modes = ESchedulerMode;\n mode$ = new BehaviorSubject<ESchedulerMode>(ESchedulerMode.week);\n @Output() public modeChange = new EventEmitter<ESchedulerMode>();\n public get mode() {\n return this.mode$.value;\n }\n @Input() public set mode(value: ESchedulerMode) {\n this.mode$.next(value);\n }\n //#endregion\n // //#region Scale\n // scale$ = new BehaviorSubject<SchedulerScale>(availableScales[4]);\n // @Output() public scaleChange = new EventEmitter<SchedulerScale>();\n // public get scale() {\n // return this.scale$.value;\n // }\n // @Input() public set scale(value: SchedulerScale) {\n // this.scale$.next(value);\n // }\n // //#endregion\n //#region WeekOptions\n @Output() public weekOptionsChange = new EventEmitter<WeekOptions>();\n public get weekOptions() {\n return this.weekOptions$.value;\n }\n @Input() public set weekOptions(value: WeekOptions) {\n this.weekOptions$.next(value);\n }\n //#endregion\n //#region TimelineOptions\n @Output() public timelineOptionsChange = new EventEmitter<TimelineOptions>();\n public get timelineOptions() {\n return this.timelineOptions$.value;\n }\n @Input() public set timelineOptions(value: TimelineOptions) {\n this.timelineOptions$.next(value);\n }\n //#endregion\n //#region maxInnerHeight\n @Input() public maxInnerHeight: number | null = null;\n //#endregion\n //#region Resources\n public get resources() {\n return this.resources$.value;\n }\n @Input() public set resources(value: (Resource | ResourceGroup)[]) {\n this.resources$.next(value);\n }\n //#endregion\n\n private addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n onPreviousWeekOrMonth() {\n this.onChangeWeekOrMonth(false);\n }\n\n onNextWeekOrMonth() {\n this.onChangeWeekOrMonth(true);\n }\n\n private onChangeWeekOrMonth(next: boolean) {\n combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentWeekOrMonth, mode]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n return this.addDays(currentWeekOrMonth, (next ? 7 : -7));\n }\n case ESchedulerMode.timeline: {\n return new Date(currentWeekOrMonth.getFullYear(), currentWeekOrMonth.getMonth() + (next ? 1 : -1), 1);\n }\n }\n }), take(1))\n .subscribe((w) => this.currentWeekOrMonth$.next(w));\n }\n\n onHoverEvent(ev: SchedulerEvent | null) {\n console.log('hovered', ev);\n this.hoveredEvent$.next(ev);\n }\n\n onLeaveEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(null);\n }\n\n operation: DragOperation | null = null;\n dragStartTimeslot: TimeSlot | null = null;\n onCreateEvent(ev: MouseEvent, slot: TimeSlot) {\n ev.preventDefault();\n this.mouseState$.next(true);\n this.dragStartTimeslot = slot;\n this.operation = {\n operation: EDragOperation.createEvent,\n event: {\n start: slot.start,\n end: slot.end,\n color: '#F00',\n description: 'Test event',\n },\n meta: null,\n };\n this.previewEvent$.next({ start: slot.start, end: slot.end });\n }\n\n randomColor() {\n const brightness = 128;\n return '#' + this.randomChannel(brightness) + this.randomChannel(brightness) + this.randomChannel(brightness);\n }\n randomChannel(brightness: number){\n const r = 255-brightness;\n const n = 0|((Math.random() * r) + brightness);\n const s = n.toString(16);\n return (s.length==1) ? '0'+s : s;\n }\n\n onStartDragEvent(eventPart: SchedulerEventPart, ev: MouseEvent) {\n ev.preventDefault();\n this.hoveredTimeSlot$.pipe(take(1)).subscribe((hoveredTimeSlot) => {\n if (eventPart.event) {\n this.dragStartTimeslot = hoveredTimeSlot;\n this.operation = {\n operation: EDragOperation.moveEvent,\n event: eventPart.event,\n meta: null,\n };\n this.previewEvent$.next({ start: eventPart.event.start, end: eventPart.event.end });\n }\n });\n }\n\n onStartResizeEvent(event: SchedulerEvent | null, position: 'top' | 'bottom') {\n if (event) {\n switch (position) {\n case 'top': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n case 'bottom': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n }\n }\n }\n\n //#region hoveredTimeslot$\n private getHoveredTimeslot(ev: MouseEvent, timeSlots: SchedulerStampWithSlots[]) {\n const hoveredSlots = this.timeSlotElements.filter((el) => {\n const rct = el.nativeElement.getBoundingClientRect();\n if (rct.left <= ev.x && ev.x <= rct.right && rct.top <= ev.y && ev.y <= rct.bottom) {\n return true;\n } else {\n return false;\n }\n });\n\n if (!hoveredSlots || hoveredSlots.length === 0) {\n return null;\n }\n\n const slotElement = hoveredSlots[0].nativeElement;\n\n const strRow = slotElement.getAttribute('data-row');\n if (!strRow) {\n return null;\n }\n const row = parseInt(strRow);\n\n const strColumn = slotElement.getAttribute('data-column');\n if (!strColumn) {\n return null;\n }\n const column = parseInt(strColumn);\n\n const slot = timeSlots[row].slots[column];\n return slot;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove(ev: MouseEvent) {\n this.timeSlots$.pipe(take(1)).subscribe((timeSlots) => {\n const hovered = this.getHoveredTimeslot(ev, timeSlots);\n this.hoveredTimeSlot$.next(hovered);\n\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n if (this.operation.event && this.dragStartTimeslot && hovered && (this.operation.event.end.getTime() != hovered.end.getTime())) {\n if (this.dragStartTimeslot.start.getTime() === hovered.start.getTime()) {\n // 1 slot\n } else if (this.dragStartTimeslot.start.getTime() < hovered.start.getTime()) {\n // Drag down\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = this.dragStartTimeslot.start;\n ev.end = hovered.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n } else if (this.dragStartTimeslot.start.getTime() > hovered.start.getTime()) {\n // Drag up\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = hovered.start;\n ev.end = this.dragStartTimeslot.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n }\n } break;\n case EDragOperation.moveEvent: {\n if (hovered && this.dragStartTimeslot) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n const result = <PreviewEvent>{\n start: new Date(ev.start.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime()),\n end: new Date(ev.end.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime())\n };\n \n this.dragStartTimeslot = hovered;\n\n return result;\n } else {\n return ev;\n }\n }))\n .pipe(take(1))\n .subscribe(ev => this.previewEvent$.next(ev));\n }\n } break;\n case EDragOperation.resizeEvent: {\n if (hovered) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(map((ev) => {\n if (ev && this.operation && this.operation.event) {\n if (this.operation.meta.position === 'top') {\n ev.start = hovered.start;\n ev.end = this.operation.event.end;\n } else if (this.operation.meta.position === 'bottom') {\n ev.start = this.operation.event.start;\n ev.end = hovered.end;\n }\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n } break;\n }\n }\n\n });\n }\n //#endregion\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n combineLatest([this.previewEvent$])\n .pipe(take(1))\n .subscribe(([previewEvent]) => {\n if (previewEvent) {\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next([\n ...this.resources$.value,\n <Resource>{\n description: 'New resource group',\n events: [{\n start: previewEvent.start,\n end: previewEvent.end,\n color: this.randomColor(),\n description: 'New event'\n }]\n }\n ]);\n this.previewEvent$.next(null);\n }\n });\n } break;\n case EDragOperation.moveEvent:\n case EDragOperation.resizeEvent: {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(take(1))\n .subscribe((previewEvent) => {\n if (this.operation && this.operation.event && previewEvent) {\n this.operation.event.start = previewEvent.start;\n this.operation.event.end = previewEvent.end;\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next(this.resources$.value);\n this.previewEvent$.next(null);\n }\n });\n } break;\n }\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","<div class=\"table d-flex w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\"\n *ngIf=\"(mode$ | async) === modes.week\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <i class=\"bi-chevron-left px-0\"></i>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <i class=\"bi-chevron-right px-0\"></i>\n </button>\n </div>\n <div class=\"flex-grow-1 calendar-head-cell\" *ngFor=\"let day of (shownDays$ | async)\">\n <span class=\"d-block col-form-label text-center\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n <div class=\"position-relative\" *ngIf=\"(timeSlots$ | async) as row\">\n <ng-container *ngIf=\"(weekOptions$ | async) as weekOptions\">\n <!-- Timeslots -->\n <div *ngFor=\"let timeslots of row; let i = index\" class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n <div class=\"calendar-cell flex-grow-1\" *ngFor=\"let slot of timeslots.slots; let j = index\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n </div>\n\n <!-- Events -->\n <ng-container *ngIf=\"(timeSlotDuration$ | async) as timeSlotDuration\">\n <ng-container *ngIf=\"(timelinedEventPartsForThisWeek$ | async) as partData\">\n <div *ngFor=\"let eventPart of partData.parts\" class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n\n <div class=\"event-resize top\"\n *ngIf=\"eventPart.part.start === eventPart.part.event?.start\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n <div class=\"event-border\"></div>\n <div class=\"event-wrapper\" *ngIf=\"eventPart.part.event\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n <div class=\"event-resize bottom\"\n *ngIf=\"eventPart.part.end === eventPart.part.event?.end\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(previewEventPartsForThisWeek$ | async) as previewPartData\">\n <div *ngFor=\"let eventPart of previewPartData\" class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<div class=\"table d-flex w-100 overflow-y-auto mb-0 bg-white timeline\" *ngIf=\"(mode$ | async) === modes.timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <i class=\"bi-chevron-left px-0\"></i>\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 <i class=\"bi-chevron-right px-0\"></i>\n </button>\n </div>\n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <tr>\n <td></td>\n <td *ngFor=\"let day of timeSlots\" [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n </tr>\n <tr>\n <td></td>\n <ng-container *ngIf=\"(timelineOptions$ | async) as timelineOptions\">\n <ng-container *ngFor=\"let day of timeSlots\">\n <td *ngFor=\"let slot of day.slots\">\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n <bs-resource-group-presenter *ngFor=\"let group of (resources$ | async)\" [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n </ng-container>\n </table>\n </div>\n</div>","import { SchedulerScale } from \"../interfaces/scheduler-schale\";\n\nexport const availableScales: SchedulerScale[] = [\n { time: 60, pixels: 60, markerSize: 900 }, // 60s / 60px = 1 s/px = 1 min / 60 px\n { time: 120, pixels: 60, markerSize: 900 }, // 120s / 60px = 2 s/px = 2 min / 60 px\n { time: 300, pixels: 60, markerSize: 900 }, // 180s / 60px = 3 s/px = 5 min / 60 px\n { time: 900, pixels: 60, markerSize: 900 }, // 360s / 60px = 6 s/px = 15 min / 60 px\n\n { time: 3600, pixels: 60, markerSize: 21600 }, // 600s / 60px = 10 s/px = 1 u / 60 px\n { time: 7200, pixels: 60, markerSize: 21600 }, // 1200s / 60px = 20 s/px\n { time: 10800, pixels: 60, markerSize: 21600 }, // 1800s / 60px = 30 s/px\n { time: 21600, pixels: 60, markerSize: 21600 }, // 3600s / 60px = 60 s/px\n\n { time: 86400, pixels: 60, markerSize: 604800 }, // 6000s / 60px = 100 s/px\n]","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dateOffset'\n})\nexport class DateOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSecondsTimespanPipe } from './pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe';\nimport { BsSecondsTodayOffsetPipe } from './pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe';\nimport { DateOffsetPipe } from './pipes/date-offset/date-offset.pipe';\nimport { DayOfWeekPipe } from './pipes/day-of-week/day-of-week.pipe';\nimport { BsSchedulerComponent } from './components/scheduler/scheduler.component';\nimport { ResourceGroupPresenterComponent } from './components/resource-group-presenter/resource-group-presenter.component';\n\n@NgModule({\n declarations: [\n BsSchedulerComponent,\n BsSecondsTimespanPipe,\n BsSecondsTodayOffsetPipe,\n DateOffsetPipe,\n DayOfWeekPipe,\n ResourceGroupPresenterComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsSchedulerComponent,\n ResourceGroupPresenterComponent\n ]\n})\nexport class BsSchedulerModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-list-group-item',\n templateUrl: './list-group-item.component.html',\n styleUrls: ['./list-group-item.component.scss']\n})\nexport class BsListGroupItemComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>","import { Component, ContentChildren, OnInit, QueryList } from '@angular/core';\nimport { BsListGroupItemComponent } from '../list-group-item/list-group-item.component';\n\n@Component({\n selector: 'bs-list-group',\n templateUrl: './list-group.component.html',\n styleUrls: ['./list-group.component.scss']\n})\nexport class BsListGroupComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n @ContentChildren(BsListGroupItemComponent) items!: QueryList<BsListGroupItemComponent>;\n\n}\n","<ul class=\"list-group mt-0\">\n <ng-content></ng-content>\n</ul>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsListGroupComponent } from './list-group/list-group.component';\nimport { BsListGroupItemComponent } from './list-group-item/list-group-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsListGroupComponent,\n BsListGroupItemComponent\n ],\n exports: [\n BsListGroupComponent,\n BsListGroupItemComponent\n ]\n})\nexport class BsListGroupModule {}\n","import { Component, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: 'bs-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class BsModalComponent {\n\n constructor() {}\n\n header!: TemplateRef<any>;\n body!: TemplateRef<any>;\n footer!: TemplateRef<any>;\n\n}\n","<div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <div class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n</div>","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const MODAL_CONTENT = new InjectionToken<TemplateRef<any>>('ModalContent');","import { AnimationEvent } from '@angular/animations';\nimport { Component, EventEmitter, Inject, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { ModalAnimationMeta } from '../../interfaces';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\n\n@Component({\n selector: 'bs-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsModalContentComponent {\n\n constructor(@Inject(MODAL_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n }\n content: TemplateRef<any>;\n \n private instance: ModalAnimationMeta | null = null;\n\n //#region Monitor @slideUpDown hooks\n animationState = '';\n animationStateChanged = new EventEmitter<AnimationEvent>();\n onAnimationChanged(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n //#endregion\n}\n","<div class=\"modal d-block\" tabindex=\"-1\"\n [@fadeInOut]=\"animationState\"\n (@fadeInOut.start)=\"onAnimationChanged($event)\"\n (@fadeInOut.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n\n</div>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalHeader]'\n})\nexport class BsModalHeaderDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.header = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalBody]'\n})\nexport class BsModalBodyDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.body = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalFooter]'\n})\nexport class BsModalFooterDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.footer = template;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsModalHeaderDirective } from './directives/modal-header/modal-header.directive';\nimport { BsModalBodyDirective } from './directives/modal-body/modal-body.directive';\nimport { BsModalFooterDirective } from './directives/modal-footer/modal-footer.directive';\nimport { BsModalContentComponent } from './component/modal-content/modal-content.component';\nimport { BsModalComponent } from '../modal/component/modal/modal.component';\n\n@NgModule({\n declarations: [\n BsModalHeaderDirective,\n BsModalBodyDirective,\n BsModalFooterDirective,\n BsModalComponent,\n BsModalContentComponent\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsModalHeaderDirective,\n BsModalBodyDirective,\n BsModalFooterDirective,\n BsModalComponent\n ]\n})\nexport class BsModalModule { }\n","import { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { filter, take } from 'rxjs';\nimport { BsModalModule } from '../modal.module';\nimport { BsModalContentComponent } from '../component/modal-content/modal-content.component';\nimport { ModalAnimationMeta } from '../interfaces';\nimport { MODAL_CONTENT } from '../providers/modal-content.provider';\n\n@Injectable({\n providedIn: BsModalModule\n})\nexport class BsModalService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver,\n ) { }\n\n public show(template: TemplateRef<any>) {\n const injector = Injector.create({\n providers: [{ provide: MODAL_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsModalContentComponent, null, injector, this.componentFactoryResolver);\n\n const overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),\n width: '100%',\n hasBackdrop: true\n });\n\n const componentInstance = overlayRef.attach<BsModalContentComponent>(portal);\n componentInstance.instance['instance'] = <ModalAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n\n return componentInstance.instance;\n }\n\n public hide(modal: BsModalContentComponent) {\n modal.animationStateChanged.pipe(\n filter(ev => ev.phaseName === 'done' && ev.toState === 'void'),\n take(1)\n ).subscribe(() => {\n modal['instance']?.overlay.dispose()\n });\n\n modal.animationState = 'void';\n }\n\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss']\n})\nexport class BsMultiselectComponent {\n\n headerTemplate!: TemplateRef<any>;\n footerTemplate!: TemplateRef<any>;\n buttonTemplate!: TemplateRef<any>;\n\n\n @Input() public items: any[] = [];\n @Input() public selectedItems: any[] = [];\n @ViewChild('defaultButtonTemplate') defaultButtonTemplate!: TemplateRef<any>;\n\n itemChange(item: any, event: Event) {\n if ((<any>event.target).checked) {\n this.selectedItems.push(item);\n } else {\n this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);\n }\n }\n \n}\n","<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]'\n})\nexport class BsHeaderTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.headerTemplate = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]'\n})\nexport class BsFooterTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.footerTemplate = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]'\n})\nexport class BsButtonTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.buttonTemplate = template;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\nimport { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';\nimport { BsMultiselectComponent } from './component/multiselect.component';\nimport { BsHeaderTemplateDirective } from './directives/header-template/header-template.directive';\nimport { BsFooterTemplateDirective } from './directives/footer-template/footer-template.directive';\nimport { BsButtonTemplateDirective } from './directives/button-template/button-template.directive';\n\n@NgModule({\n declarations: [\n BsMultiselectComponent,\n BsHeaderTemplateDirective,\n BsFooterTemplateDirective,\n BsButtonTemplateDirective\n ],\n imports: [\n CommonModule,\n BsDropdownModule,\n FocusOnLoadModule,\n ],\n exports: [\n BsMultiselectComponent,\n BsHeaderTemplateDirective,\n BsFooterTemplateDirective,\n BsButtonTemplateDirective\n ]\n})\nexport class BsMultiselectModule { }\n","import { Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BehaviorSubject, take } from 'rxjs';\n\n@Component({\n selector: 'bs-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n})\nexport class BsNavbarComponent {\n\n @ViewChild('nav') nav!: ElementRef;\n @Input() autoclose = true;\n\n expandButtonTemplate: TemplateRef<any> | null = null;\n \n isExpanded$ = new BehaviorSubject<boolean>(false);\n toggleExpanded() {\n this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {\n this.isExpanded$.next(!isExpanded);\n });\n }\n\n \n}\n","<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>","import { Component, HostListener, Input, OnDestroy } from '@angular/core';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { BehaviorSubject, combineLatest, debounceTime, filter, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-navbar-nav',\n templateUrl: './navbar-nav.component.html',\n styleUrls: ['./navbar-nav.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsNavbarNavComponent implements OnDestroy {\n\n constructor(bsNavbar: BsNavbarComponent) {\n this.bsNavbar = bsNavbar;\n this.showNavs$ = combineLatest([this.bsNavbar.isExpanded$, this.windowWidth$])\n .pipe(filter(([isExpanded, windowWidth]) => {\n return windowWidth !== null;\n }))\n .pipe(map(([isExpanded, windowWidth]) => {\n if (windowWidth === null) {\n throw 'windowWidth should not be null here';\n } else if (windowWidth >= 768) {\n return true;\n } else if (isExpanded) {\n return true;\n } else {\n return false;\n }\n }));\n\n this.windowWidth$\n .pipe(debounceTime(300), takeUntil(this.destroyed$))\n .subscribe(() => {\n this.isResizing$.next(false);\n });\n this.onWindowResize();\n }\n \n bsNavbar: BsNavbarComponent;\n collapse$ = new BehaviorSubject<boolean>(true);\n windowWidth$ = new BehaviorSubject<number | null>(null);\n showNavs$: Observable<boolean>;\n isResizing$ = new BehaviorSubject<boolean>(false);\n destroyed$ = new Subject();\n \n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n \n //#region collapse\n @Input() public set collapse(value: boolean) {\n this.collapse$.next(value);\n }\n public get collapse() {\n return this.collapse$.value;\n }\n //#endregion\n\n @HostListener('window:resize')\n onWindowResize() {\n this.isResizing$.next(true);\n if (typeof window !== 'undefined') {\n this.windowWidth$.next(window.innerWidth);\n }\n }\n}\n","<div class=\"navbar-collapse w-100 show\" [class.collapse]=\"collapse$ | async\" *ngIf=\"showNavs$ | async\" [@slideUpDown] [@.disabled]=\"isResizing$ | async\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>","import { AfterContentChecked, Component, ContentChildren, ElementRef, forwardRef, Optional, QueryList } from '@angular/core';\nimport { BsNavbarComponent } from '../../navbar/navbar/navbar.component';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Component({\n selector: 'bs-navbar-item',\n templateUrl: './navbar-item.component.html',\n styleUrls: ['./navbar-item.component.scss']\n})\nexport class BsNavbarItemComponent implements AfterContentChecked {\n\n constructor(private navbar: BsNavbarComponent, @Optional() parentDropdown: BsNavbarDropdownComponent, private element: ElementRef) {\n this.parentDropdown = parentDropdown;\n }\n\n parentDropdown: BsNavbarDropdownComponent;\n hasDropdown = false;\n anchorTag: HTMLAnchorElement | null = null;\n @ContentChildren(forwardRef(() => BsNavbarDropdownComponent)) dropdowns!: QueryList<BsNavbarDropdownComponent>;\n\n ngAfterContentChecked() {\n this.anchorTag = this.element.nativeElement.querySelector('li a');\n\n if (this.hasDropdown) {\n (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');\n\n if (this.anchorTag && !this.anchorTag.getAttribute('close-init-b')) {\n this.anchorTag.setAttribute('close-init-b', '1');\n this.anchorTag.addEventListener('click', (ev: MouseEvent) => {\n ev.preventDefault();\n // Normally there should be only one dropdown in this list\n this.dropdowns.forEach((dropdown) => {\n if (!(dropdown.isVisible = !dropdown.isVisible)) {\n dropdown.childDropdowns.forEach((child) => {\n child.isVisible = false;\n });\n }\n });\n return false;\n });\n }\n } else {\n\n // Close if this is a link\n if ((this.dropdowns.length === 0) && this.anchorTag && !this.anchorTag.getAttribute('close-init-a')) {\n this.anchorTag.setAttribute('close-init-a', '1');\n this.anchorTag.addEventListener('click', (ev: MouseEvent) => {\n let d = this.parentDropdown;\n while (d && d.autoclose) {\n d.isVisible = false;\n d = d.parentDropdown;\n }\n if (this.navbar.autoclose) {\n this.navbar.isExpanded$.next(false);\n }\n });\n }\n\n }\n }\n}\n","<li [class.nav-item]=\"parentDropdown === null\" [class.dropdown]=\"(dropdowns.length > 0) && (parentDropdown === null)\" [class.dropend]=\"(dropdowns.length > 0) && (parentDropdown !== null)\">\n <ng-content></ng-content>\n</li>","import { Component, ContentChildren, forwardRef, Host, Inject, Input, Optional, QueryList, SkipSelf } from '@angular/core';\nimport { BsNavbarItemComponent } from '../navbar-item/navbar-item.component';\n\n@Component({\n selector: 'bs-navbar-dropdown',\n templateUrl: './navbar-dropdown.component.html',\n styleUrls: ['./navbar-dropdown.component.scss']\n})\nexport class BsNavbarDropdownComponent {\n\n constructor(\n @SkipSelf() @Host() @Optional() parentDropdown: BsNavbarDropdownComponent,\n @Host() @Inject(forwardRef(() => BsNavbarItemComponent)) navbarItem: BsNavbarItemComponent\n ) {\n this.parentDropdown = parentDropdown;\n this.navbarItem = navbarItem;\n }\n\n @Input() public autoclose = true;\n isVisible = false;\n navbarItem: BsNavbarItemComponent;\n parentDropdown: BsNavbarDropdownComponent;\n\n get elementsToExclude() {\n return [this.navbarItem.anchorTag].filter((a) => a).map((a) => <HTMLElement>a);\n }\n\n @ContentChildren(forwardRef(() => BsNavbarDropdownComponent), { descendants: true }) childDropdowns!: QueryList<BsNavbarDropdownComponent>;\n}\n","<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>","import { AfterContentInit, Component, ContentChildren, Directive, ElementRef, forwardRef, Inject, Optional, QueryList } from '@angular/core';\nimport { BsNavbarItemComponent } from '../navbar-item/navbar-item.component';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Directive({\n // selector: 'bs-navbar-item > a[routerLink]',\n selector: 'bs-navbar-item',\n queries: {\n childDropdowns: new ContentChildren(BsNavbarDropdownComponent)\n }\n})\nexport class DropdownToggleDirective implements AfterContentInit {\n\n constructor(\n private elementRef: ElementRef<HTMLAnchorElement>,\n @Inject(forwardRef(() => BsNavbarItemComponent)) private bsNavbarItem: BsNavbarItemComponent,\n @Optional() @Inject(forwardRef(() => BsNavbarDropdownComponent)) parentDropdown: BsNavbarDropdownComponent\n ) {\n }\n\n childDropdowns!: QueryList<BsNavbarDropdownComponent>;\n\n ngAfterContentInit() {\n if (this.bsNavbarItem.dropdowns.length > 0) {\n this.bsNavbarItem.hasDropdown = true;\n }\n }\n}","import { Directive, ElementRef, forwardRef, Inject, Optional } from '@angular/core';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Directive({\n selector: 'bs-navbar-item > a[routerLink]'\n})\nexport class NavLinkDirective {\n\n constructor(\n private elementRef: ElementRef<HTMLAnchorElement>,\n @Optional() @Inject(forwardRef(() => BsNavbarDropdownComponent)) parentDropdown: BsNavbarDropdownComponent\n ) {\n if (parentDropdown == null) {\n this.elementRef.nativeElement.classList.add('nav-link');\n } else {\n this.elementRef.nativeElement.classList.add('dropdown-item');\n }\n }\n\n}","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, Inject, Input, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\n\n@Directive({\n selector: '[navbarContent]'\n})\nexport class NavbarContentDirective implements AfterViewInit, OnDestroy {\n\n constructor(private element: ElementRef, @Inject(PLATFORM_ID) private platformId: any) {\n combineLatest([this.viewInit$, this.navbar$])\n .pipe(filter(([viewInit, navbar]) => {\n return viewInit && !!navbar;\n }))\n .pipe(take(1))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([viewInit, navbar]) => {\n if (!isPlatformServer(platformId)) {\n // Initialize the ResizeObserver\n this.resizeObserver = new ResizeObserver((entries) => {\n const height = navbar\n ? navbar.nav.nativeElement.offsetHeight\n : entries[0].contentRect.height;\n\n this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';\n });\n\n // Monitor the size\n const px = getComputedStyle(this.element.nativeElement).getPropertyValue('padding-top');\n const pt = parseInt(px.replace(/px$/, ''));\n this.initialPadding = isNaN(pt) ? 0 : pt;\n if (this.resizeObserver && navbar) {\n this.resizeObserver.observe(navbar.nav.nativeElement);\n }\n }\n });\n\n this.destroyed$\n .pipe(filter(d => !!d))\n .subscribe(() => {\n this.resizeObserver?.unobserve(this.navbar$.value?.nav.nativeElement);\n });\n }\n\n private destroyed$ = new Subject();\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private navbar$ = new BehaviorSubject<BsNavbarComponent | null>(null);\n resizeObserver: ResizeObserver | null = null;\n initialPadding = 0;\n\n @Input('navbarContent') set navbar(value: BsNavbarComponent) {\n this.navbar$.next(value);\n }\n \n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-brand',\n templateUrl: './navbar-brand.component.html',\n styleUrls: ['./navbar-brand.component.scss']\n})\nexport class BsNavbarBrandComponent {\n @Input() public routerLink: any[] = [];\n @HostBinding('class.mx-auto') mxAuto = true;\n}\n","<a class=\"navbar-brand mx-auto mx-md-unset\" [routerLink]=\"routerLink\">\n <ng-content></ng-content>\n</a>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\n\n@Directive({\n selector: '[bsExpandButton]'\n})\nexport class BsExpandButtonDirective {\n\n constructor(navbar: BsNavbarComponent, templateRef: TemplateRef<any>) {\n navbar.expandButtonTemplate = templateRef;\n }\n\n}\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-toggler',\n templateUrl: './navbar-toggler.component.html',\n styleUrls: ['./navbar-toggler.component.scss'],\n})\nexport class BsNavbarTogglerComponent {\n //#region State\n _state: 'open' | 'closed' = 'closed';\n @Output() public stateChange = new EventEmitter<'open' | 'closed'>();\n public get state() {\n return this._state;\n }\n @Input() public set state(value: 'open' | 'closed') {\n this._state = value;\n this.stateChange.emit(this._state);\n }\n //#endregion\n\n @Input() public toggleOnClick = true;\n\n @HostListener('click', ['$event'])\n toggleState(ev: MouseEvent) {\n if (this.toggleOnClick) {\n switch (this._state) {\n case 'open':\n this.state = 'closed';\n break;\n default:\n this.state = 'open';\n break;\n }\n }\n }\n}\n","<div class=\"navbar-toggler float-left\" [ngClass]=\"state\">\n <div></div>\n <div></div>\n <div></div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { ClickOutsideModule } from '@mintplayer/ng-click-outside';\nimport { BsNavbarComponent } from './navbar/navbar.component';\nimport { BsNavbarNavComponent } from './navbar-nav/navbar-nav.component';\nimport { BsNavbarDropdownComponent } from './navbar-dropdown/navbar-dropdown.component';\nimport { BsNavbarItemComponent } from './navbar-item/navbar-item.component';\nimport { DropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';\nimport { NavLinkDirective } from './nav-link/nav-link.directive';\nimport { NavbarContentDirective } from './navbar-content/navbar-content.directive';\nimport { BsNavbarBrandComponent } from './navbar-brand/navbar-brand.component';\nimport { BsExpandButtonDirective } from './expand-button/expand-button.directive';\nimport { BsNavbarTogglerComponent } from './navbar-toggler/navbar-toggler.component';\n\n@NgModule({\n declarations: [\n BsNavbarComponent,\n BsNavbarNavComponent,\n BsNavbarDropdownComponent,\n BsNavbarItemComponent,\n\n DropdownToggleDirective,\n NavLinkDirective,\n NavbarContentDirective,\n BsNavbarBrandComponent,\n BsExpandButtonDirective,\n BsNavbarTogglerComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n ClickOutsideModule\n ],\n exports: [\n BsNavbarComponent,\n BsNavbarNavComponent,\n BsNavbarDropdownComponent,\n BsNavbarItemComponent,\n\n DropdownToggleDirective,\n NavLinkDirective,\n NavbarContentDirective,\n BsNavbarBrandComponent,\n BsExpandButtonDirective,\n BsNavbarTogglerComponent\n ]\n})\nexport class BsNavbarModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-header',\n templateUrl: './offcanvas-header.component.html',\n styleUrls: ['./offcanvas-header.component.scss']\n})\nexport class BsOffcanvasHeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"offcanvas-header\">\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-body',\n templateUrl: './offcanvas-body.component.html',\n styleUrls: ['./offcanvas-body.component.scss']\n})\nexport class BsOffcanvasBodyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"offcanvas-body small\">\n <ng-content></ng-content>\n</div>","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const OFFCANVAS_CONTENT = new InjectionToken<TemplateRef<any>>('OffcanvasContent');","import { Component, HostBinding, Inject, Input, TemplateRef } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { OffcanvasPosition } from '../../types/position';\nimport { OffcanvasAnimationMeta } from '../../interfaces';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\n\n@Component({\n selector: 'bs-offcanvas',\n templateUrl: './offcanvas.component.html',\n styleUrls: ['./offcanvas.component.scss'],\n})\nexport class BsOffcanvasComponent {\n\n constructor(@Inject(OFFCANVAS_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n this.offcanvasClass$ = this.position$\n .pipe(map((pos) => `offcanvas-${pos}`));\n this.offcanvasHeight100$ = this.position$\n .pipe(map((pos) => {\n switch (this.position) {\n case 'top':\n case 'bottom':\n return false;\n default:\n return true;\n }\n }));\n }\n\n @Input() public size: number | null = null;\n @HostBinding('class.d-block') displayBlock = true;\n @HostBinding('class.position-absolute') positionAbsolute = true;\n @HostBinding('class.w-100') width100 = true;\n\n content: TemplateRef<any>;\n private instance: OffcanvasAnimationMeta | null = null;\n \n show$ = new BehaviorSubject<boolean>(false);\n position$ = new BehaviorSubject<OffcanvasPosition>('bottom');\n offcanvasClass$: Observable<string>;\n offcanvasHeight100$: Observable<boolean>;\n\n //#region Position\n public set position(value: OffcanvasPosition) {\n this.position$.next(value);\n }\n public get position() {\n return this.position$.value;\n }\n //#endregion\n\n}\n","<div class=\"offcanvas overflow-hidden\" [class]=\"offcanvasClass$ | async\"\n [class.show]=\"show$ | async\"\n [class.h-100]=\"offcanvasHeight100$ | async\"\n [style.height.px]=\"size\"\n [class.oc-max-width]=\"['start', 'end'].includes(position)\"\n [class.oc-max-height]=\"['top', 'bottom'].includes(position)\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>","import { Directive, HostListener, Input } from '@angular/core';\nimport { BsOffcanvasComponent } from '../../components/offcanvas/offcanvas.component';\nimport { BsOffcanvasService } from '../../services/offcanvas/offcanvas.service';\n\n@Directive({\n selector: '[bsOffcanvasClose]'\n})\nexport class BsOffcanvasCloseDirective {\n constructor(private offcanvasService: BsOffcanvasService) { }\n\n @Input() public bsOffcanvasClose!: BsOffcanvasComponent;\n\n @HostListener('click') onClick() {\n this.offcanvasService.hide(this.bsOffcanvasClose);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsOffcanvasHeaderComponent } from './components/offcanvas-header/offcanvas-header.component';\nimport { BsOffcanvasBodyComponent } from './components/offcanvas-body/offcanvas-body.component';\nimport { BsOffcanvasComponent } from './components/offcanvas/offcanvas.component';\nimport { BsOffcanvasCloseDirective } from './directives/offcanvas-close/offcanvas-close.directive';\n\n\n\n@NgModule({\n declarations: [\n BsOffcanvasComponent,\n BsOffcanvasHeaderComponent,\n BsOffcanvasBodyComponent,\n BsOffcanvasCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsOffcanvasComponent,\n BsOffcanvasHeaderComponent,\n BsOffcanvasBodyComponent,\n BsOffcanvasCloseDirective\n ]\n})\nexport class BsOffcanvasModule { }\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\nimport { BsOffcanvasModule } from '../../offcanvas.module';\nimport { BsOffcanvasComponent } from '../../components/offcanvas/offcanvas.component';\nimport { OffcanvasAnimationMeta } from '../../interfaces/offcanvas-animation-meta';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\n\n@Injectable({\n providedIn: BsOffcanvasModule\n})\nexport class BsOffcanvasService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n ) { }\n\n public show(template: TemplateRef<any>, position: 'top' | 'bottom' | 'start' | 'end', hasBackdrop = false, backdropClick: ((offcanvas: BsOffcanvasComponent) => void) | null = null) {\n const injector = Injector.create({\n providers: [{ provide: OFFCANVAS_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsOffcanvasComponent, null, injector);\n \n const positioning = this.overlay.position().global();\n const config: OverlayConfig = {\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: positioning,\n hasBackdrop,\n };\n\n switch (position) {\n case 'bottom':\n positioning.centerHorizontally().bottom('0');\n config.width = '100%';\n break;\n case 'top':\n positioning.centerHorizontally().top('0');\n config.width = '100%';\n break;\n case 'start':\n positioning.centerVertically().left('0');\n config.height = '100%';\n break;\n case 'end':\n positioning.centerVertically().right('0');\n config.height = '100%';\n break;\n \n default:\n throw 'Invalid value for position';\n }\n\n const overlayRef = this.overlay.create(config);\n \n const componentInstance = overlayRef.attach<BsOffcanvasComponent>(portal);\n componentInstance.instance.position = position;\n setTimeout(() => componentInstance.instance.show$.next(true));\n \n componentInstance.instance['instance'] = <OffcanvasAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n\n if (hasBackdrop && backdropClick) {\n overlayRef.backdropClick().subscribe(() => backdropClick(componentInstance.instance));\n }\n\n return componentInstance.instance;\n }\n\n public hide(offcanvas: BsOffcanvasComponent) {\n offcanvas.show$.next(false);\n setTimeout(() => offcanvas['instance']?.overlay.dispose(), 300);\n }\n\n}\n","import { Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-rating',\n templateUrl: './rating.component.html',\n styleUrls: ['./rating.component.scss']\n})\nexport class BsRatingComponent implements OnDestroy {\n\n constructor() {\n this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])\n .pipe(map(([maximum, previewValue, value]) => {\n const v = previewValue ?? value;\n return [\n ...[...Array(v).keys()].map(i => true),\n ...[...Array(maximum - v).keys()].map(i => false)\n ];\n }));\n\n combineLatest([this.previewValue$, this.value$])\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([previewValue, value]) => {\n const v = previewValue ?? value;\n this.starsChange.emit(v);\n });\n }\n\n destroyed$ = new Subject();\n maximum$ = new BehaviorSubject<number>(5);\n value$ = new BehaviorSubject<number>(3);\n previewValue$ = new BehaviorSubject<number | null>(null);\n stars$: Observable<boolean[]>;\n\n //#region Maximum\n @Input() public set maximum(value: number) {\n this.maximum$.next(value);\n }\n //#endregion\n\n //#region Value\n @Output() public valueChange = new EventEmitter<number>();\n @Output() public starsChange = new EventEmitter<number>();\n public get value() {\n return this.value$.value;\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n this.valueChange.emit(value);\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n hoverValue(index: number) {\n this.previewValue$.next(index + 1);\n }\n selectValue(index: number) {\n this.value = index + 1;\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.previewValue$.next(null);\n }\n}\n","<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsRatingComponent } from './rating.component';\n\n\n\n@NgModule({\n declarations: [\n BsRatingComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsRatingComponent\n ]\n})\nexport class BsRatingModule { }\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]'\n})\nexport class BsScrollspyDirective {\n\n constructor(element: ElementRef) {\n this.element = element;\n }\n\n element: ElementRef;\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n constructor(\n @Inject(ROUTER_CONFIGURATION) private routerConfig: ExtraOptions\n ) { }\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Inject, NgZone, OnDestroy, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';\nimport { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss']\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n\n constructor(\n private scrollOffsetService: BsScrollOffsetService,\n @Inject(DOCUMENT) document: any,\n private zone: NgZone) {\n this.doc = <Document>document;\n combineLatest([this.viewInit$, this.contentInit$])\n .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n // this.setActiveDirective();\n this.scrollToCurrentInSpy();\n });\n }\n\n private destroyed$ = new Subject();\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private contentInit$ = new BehaviorSubject<boolean>(false);\n\n @ContentChildren(BsScrollspyDirective, { descendants: true }) directives!: QueryList<BsScrollspyDirective>;\n @ViewChildren('anchor') anchors!: QueryList<ElementRef<HTMLSpanElement>>;\n\n doc: Document;\n activeDirective: BsScrollspyDirective | null = null;\n\n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngAfterContentInit() {\n this.contentInit$.next(true);\n }\n \n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n \n @HostListener('window:scroll', ['$event'])\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (this.directives.length === 0) {\n this.activeDirective = null;\n } else if (dirs.length === 0) {\n this.activeDirective = this.directives.get(0) ?? null;\n } else {\n this.activeDirective = dirs[dirs.length - 1];\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective) {\n const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);\n const anchor = this.anchors.get(index);\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n \n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsScrollspyComponent } from './component/scrollspy.component';\nimport { BsScrollspyDirective } from './directives/scrollspy.directive';\n\n\n\n@NgModule({\n declarations: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ]\n})\nexport class BsScrollspyModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inList'\n})\nexport class BsInListPipe implements PipeTransform {\n\n transform(items: any[], parameter: number) {\n return items.some(item => item.id === parameter);\n }\n\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss']\n})\nexport class BsSelect2Component implements AfterViewInit {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<any[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n hostWidth$ = new BehaviorSubject<number>(200);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n @Input() searchterm = '';\n @Input() public suggestions: any[] = [];\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Input() selectedItems: any[] = [];\n @HostBinding('class.focus') isFocused = false;\n\n private charWidth = 10;\n searchWidth = 20;\n itemTemplate?: TemplateRef<any>;\n\n\n ngAfterViewInit() {\n this.onResize();\n }\n \n onProvideSuggestions(value: string) {\n this.searchWidth = this.charWidth * (this.searchterm.length + 2);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n onSuggestionClicked(suggestion: any) {\n this.searchterm = '';\n this.isOpen = false;\n\n const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.push(suggestion);\n } else {\n this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);\n }\n\n this.searchBox.nativeElement.focus();\n }\n onRemoveItem(item: any, event: MouseEvent) {\n event.stopPropagation();\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n this.focus();\n }\n\n @HostListener('window:resize')\n onResize() {\n if (typeof window !== 'undefined') {\n this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);\n }\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n \n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">×</span>\n {{ item.text }}\n </span>\n</ng-template>\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../component/select2.component';\n\n@Directive({\n selector: '[bsItemTemplate]'\n})\nexport class BsItemTemplateDirective {\n\n constructor(private select2component: BsSelect2Component, templateRef: TemplateRef<any>) {\n this.select2component.itemTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsInListPipe } from './in-list.pipe';\n\n@NgModule({\n declarations: [\n BsInListPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsInListPipe\n ]\n})\nexport class BsInListModule { }\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\nimport { BsItemTemplateDirective } from './directive/item-template.directive';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsInListModule } from '../../pipes/in-list/in-list.module';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsDropdownModule,\n BsInListModule\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective\n ]\n})\nexport class BsSelect2Module { }\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss']\n})\nexport class BsTabPageComponent {\n\n tabControl: BsTabControlComponent;\n constructor(tabControl: BsTabControlComponent) {\n this.tabControl = tabControl;\n }\n\n @Input() disabled = false;\n @ContentChild(TemplateRef) headerTemplate!: TemplateRef<any>;\n\n}\n","<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>","import { Component, ContentChildren, Input } from '@angular/core';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\n\n @ContentChildren(BsTabPageComponent) tabPages!: BsTabPageComponent[];\n @Input() public border = true;\n activeTab: BsTabPageComponent | null = null;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n}\n","<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<div class=\"tab-content\" [class.border]=\"border && activeTab\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { NumberOverflow } from '../../interfaces/number-overflow';\n\n@Directive({\n selector: 'input[type=\"number\"][bsEnhancedPaste]'\n})\nexport class EnhancedPasteDirective {\n\n constructor(private element: ElementRef<HTMLInputElement>, private model: NgModel) {\n }\n\n @Output() public numberOverflow = new EventEmitter<NumberOverflow>();\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n // Prevent the default paste event\n event.preventDefault();\n \n // Get data from clipboard\n const data = event.clipboardData || (<any>window).clipboardData;\n const contents = data.getData('text');\n\n // Get min and max from input\n const min = parseFloat(this.element.nativeElement.min);\n const max = parseFloat(this.element.nativeElement.max);\n\n const filtered = this.filterInput(contents, min, max);\n if (filtered) {\n this.numberOverflow.emit(filtered);\n if (filtered.boundaryValue) {\n // Update NgModel\n this.model.control.setValue(filtered?.boundaryValue, { emitEvent: false, onlySelf: true });\n }\n }\n\n }\n\n filterInput(value: any, min: number, max: number): NumberOverflow | null {\n const val = parseInt(value);\n if (isNaN(val)) {\n return { boundary: 'invalid' };\n } else if (val > max) {\n return { boundary: 'max', inputValue: val, boundaryValue: max };\n } else if (val < min) {\n return { boundary: 'min', inputValue: val, boundaryValue: min };\n } else {\n return null;\n }\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, NgZone, Output, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'bs-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: ['./timepicker.component.scss']\n})\nexport class BsTimepickerComponent {\n\n constructor(private ref: ChangeDetectorRef, private zone: NgZone, private renderer: Renderer2) {\n const today = new Date();\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n const interval = 900;\n this.presetTimestamps = Array.from(Array(24 * 60 * 60 / interval).keys())\n .map(i => {\n const clone = new Date(today);\n clone.setTime(clone.getTime() + i * interval * 1000);\n return clone;\n });\n }\n\n isOpen = false;\n presetTimestamps: Date[] = [];\n isFocused = false;\n\n selectAll(box: HTMLInputElement) {\n box.select();\n // box.setSelectionRange(0, box.value.length);\n this.isFocused = true;\n }\n\n setNumber(event: Event, max: number, nextInput: HTMLInputElement | null) {\n event.preventDefault();\n const input = <HTMLInputElement>event.target;\n const val = parseInt(input.value);\n if (isNaN(val)) {\n input.value = '00';\n } else {\n const result = Math.min(max, Math.abs(val));\n input.value = result.toString().padStart(2, '0');\n\n if (nextInput) {\n // const maxAllowedNumberOfDigits = input.max.length;\n if (result * 10 > parseInt(input.max)) {\n nextInput.focus();\n }\n }\n }\n }\n\n setTime(time: Date) {\n this.selectedTime = time;\n this.isOpen = false;\n }\n\n //#region SelectedTime\n private _selectedTime = new Date();\n @Output() public selectedTimeChange = new EventEmitter<Date>();\n public get selectedTime() {\n return this._selectedTime;\n }\n @Input() public set selectedTime(value: Date) {\n // this.hours = value.getHours();\n // this.minutes = value.getMinutes();\n this._selectedTime = value;\n this.selectedTimeChange.emit(this._selectedTime);\n }\n //#endregion\n\n //#region Hours\n // private _hours = 0;\n get hours() {\n // return this._hours;\n return this.selectedTime.getHours();\n }\n set hours(value: number) {\n // this._hours = value;\n const clone = new Date(this.selectedTime);\n clone.setHours(value);\n this.selectedTime = clone;\n }\n // hours = 0;\n //#endregion\n //#region Minutes\n // private _minutes = 0;\n get minutes() {\n // return this._minutes;\n return this.selectedTime.getMinutes();\n }\n set minutes(value: number) {\n // this._minutes = value;\n // this.selectedTime.setMinutes(value);\n const clone = new Date(this.selectedTime);\n clone.setMinutes(value);\n this.selectedTime = clone;\n }\n //#endregion\n\n timesEqual(time1: Date, time2: Date) {\n return (time1.getHours() === time2.getHours()) && (time1.getMinutes() === time2.getMinutes());\n }\n\n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\" [sameDropdownWidth]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [ngModel]=\"hours | number: '2.0'\" (ngModelChange)=\"hours = $event\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [ngModel]=\"minutes | number: '2.0'\" (ngModelChange)=\"minutes = $event\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-secondary\" (click)=\"isOpen = !isOpen\">\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item list-group-item-action\" [class.active]=\"timesEqual(selectedTime, timestamp)\" *ngFor=\"let timestamp of presetTimestamps\" (click)=\"setTime(timestamp)\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EnhancedPasteDirective } from './enhanced-paste.directive';\n\n@NgModule({\n declarations: [\n EnhancedPasteDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n EnhancedPasteDirective\n ]\n})\nexport class EnhancedPasteModule { }\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsTimepickerComponent } from './timepicker.component';\nimport { BsDropdownModule } from '../dropdown';\nimport { EnhancedPasteModule } from '../../directives/enhanced-paste/enhanced-paste.module';\n\n@NgModule({\n declarations: [\n BsTimepickerComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n EnhancedPasteModule,\n BsDropdownModule\n ],\n exports: [\n BsTimepickerComponent\n ]\n})\nexport class BsTimepickerModule { }\n","import { AfterViewInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ColorTransitionAnimation } from '@mintplayer/ng-animations';\n\n@Component({\n selector: 'bs-toggle-button',\n templateUrl: './toggle-button.component.html',\n styleUrls: ['./toggle-button.component.scss'],\n animations: [ ColorTransitionAnimation ]\n})\nexport class BsToggleButtonComponent implements AfterViewInit {\n\n disableAnimations = true;\n\n //#region isToggled\n _isToggled: boolean | null = false;\n @Output() public change = new EventEmitter<boolean | null>();\n @Output() public isToggledChange = new EventEmitter<boolean | null>();\n public get isToggled() {\n return this._isToggled;\n }\n @Input() public set isToggled(value: boolean | null) {\n this._isToggled = value;\n this.isToggledChange.emit(this._isToggled);\n }\n //#endregion\n\n //#region disabled\n @Input() public disabled = false;\n //#endregion\n\n onChange(event: Event) {\n const val = (<any>event.target).checked;\n this.isToggled = val;\n this.change.emit(val);\n }\n \n ngAfterViewInit() {\n this.disableAnimations = false;\n }\n\n}\n","<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsToggleButtonComponent } from './toggle-button.component';\n\n@NgModule({\n declarations: [\n BsToggleButtonComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsToggleButtonComponent\n ]\n})\nexport class BsToggleButtonModule { }\n","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TOOLTIP_CONTENT = new InjectionToken<TemplateRef<any>>('TooltipContent');","import { Component, Inject, Input, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Position } from '../../../enums/position.enum';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Component({\n selector: 'bs-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsTooltipComponent {\n constructor(@Inject(TOOLTIP_CONTENT) content: TemplateRef<any>) {\n this.template = content; \n }\n\n positions = Position;\n @Input() public position: Position = Position.bottom;\n template: TemplateRef<any>;\n\n\n}\n","<div [@fadeInOut] class=\"tooltip position-relative show\"\n [class.bs-tooltip-bottom]=\"position === positions.bottom\"\n [class.bs-tooltip-top]=\"position === positions.top\"\n [class.bs-tooltip-start]=\"position === positions.left\"\n [class.bs-tooltip-end]=\"position === positions.right\">\n <div class=\"tooltip-arrow\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Directive, ElementRef, Host, HostListener, Injector, Input, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Position } from '../../../enums/position.enum';\nimport { BsTooltipComponent } from '../component/tooltip.component';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Directive({\n selector: '*[bsTooltip]'\n})\nexport class BsTooltipDirective {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n componentFactoryResolver: ComponentFactoryResolver,\n private parentInjector: Injector,\n @Host() @SkipSelf() private parent: ElementRef\n ) {\n this.injector = Injector.create({\n providers: [{ provide: TOOLTIP_CONTENT, useValue: this.templateRef }],\n parent: this.parentInjector\n });\n this.portal = new ComponentPortal(BsTooltipComponent, null, this.injector, componentFactoryResolver);\n\n parent.nativeElement.onmouseenter = () => {\n this.showTooltip();\n };\n parent.nativeElement.onmouseleave = () => {\n this.hideTooltip();\n }\n }\n\n @Input() public bsTooltip: Position = Position.bottom;\n\n private injector: Injector;\n private portal: ComponentPortal<any>;\n private overlayRef: OverlayRef | null = null;\n\n @HostListener('window:blur') private onBlur() {\n this.hideTooltip();\n }\n\n showTooltip() {\n const positions: ConnectedPosition[] = [];\n switch (this.bsTooltip) {\n case Position.bottom: {\n positions.push({\n originX: \"center\",\n originY: \"bottom\", //<--\n overlayX: \"center\",\n overlayY: \"top\"\n });\n } break;\n case Position.top: {\n positions.push({\n originX: \"center\",\n originY: \"top\", //<--\n overlayX: \"center\",\n overlayY: \"bottom\"\n });\n } break;\n case Position.left: {\n positions.push({\n originX: \"start\", //<--\n originY: \"center\",\n overlayX: \"end\",\n overlayY: \"center\",\n });\n } break;\n case Position.right: {\n positions.push({\n originX: \"end\", //<--\n originY: \"center\",\n overlayX: \"start\",\n overlayY: \"center\"\n });\n } break;\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.parent)\n .withPositions(positions),\n });\n const component = this.overlayRef.attach<BsTooltipComponent>(this.portal);\n component.instance.position = this.bsTooltip;\n }\n\n hideTooltip() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsTooltipDirective } from './directive/tooltip.directive';\nimport { BsTooltipComponent } from './component/tooltip.component';\n\n@NgModule({\n declarations: [\n BsTooltipDirective,\n BsTooltipComponent\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsTooltipDirective\n ]\n})\nexport class BsTooltipModule { }\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { BehaviorSubject, map, Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'bs-typeahead',\n templateUrl: './typeahead.component.html',\n styleUrls: ['./typeahead.component.scss']\n})\nexport class BsTypeaheadComponent implements AfterViewInit {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<any[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n showNoSuggestions$: Observable<boolean>;\n hostWidth$ = new BehaviorSubject<number>(200);\n destroyed$ = new Subject();\n \n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n @Input() searchterm = '';\n @Input() public isLoadingText = 'Loading...';\n @Input() public noSuggestionsText = 'No suggestions found';\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Output() suggestionSelected = new EventEmitter<any>();\n @Output() searchtermChange = new EventEmitter<string>();\n @Output() submitted = new EventEmitter<string>();\n \n constructor() {\n this.showNoSuggestions$ = this.suggestions$\n .pipe(map(suggestions => suggestions.length === 0));\n }\n\n ngAfterViewInit() {\n this.onResize();\n }\n\n onProvideSuggestions(value: string) {\n this.searchtermChange.emit(value);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n\n @Input() public set suggestions(value: any[]) {\n this.isLoading$.next(false);\n this.suggestions$.next(value);\n }\n suggestionClicked(suggestion: any) {\n this.searchterm = suggestion.text;\n this.searchtermChange.emit(this.searchterm);\n\n this.isOpen = false;\n this.suggestionSelected.emit(suggestion);\n }\n\n onSubmit() {\n this.isOpen = false;\n this.submitted.emit(this.searchterm);\n }\n\n public focus() {\n this.textbox.nativeElement.focus();\n }\n\n @HostListener('window:resize')\n onResize() {\n if (typeof window !== 'undefined') {\n this.hostWidth$.next(this.textbox.nativeElement.offsetWidth);\n }\n }\n\n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsTypeaheadComponent } from './typeahead.component';\nimport { BsProgressBarModule } from '../progress-bar/progress-bar.module';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\n\n\n\n@NgModule({\n declarations: [\n BsTypeaheadComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsDropdownModule,\n BsProgressBarModule\n ],\n exports: [\n BsTypeaheadComponent\n ]\n})\nexport class BsTypeaheadModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFontColor'\n})\nexport class BsFontColorPipe implements PipeTransform {\n\n transform(color_hex: any): any {\n if (color_hex === undefined || color_hex === null || color_hex.length < 7 || typeof (color_hex) !== 'string') {\n return '#FFFFFF';\n }\n const R_HEX: string = color_hex.substr(1, 2);\n const G_HEX: string = color_hex.substr(3, 2);\n const B_HEX: string = color_hex.substr(5, 2);\n const R_DEC: number = parseInt(R_HEX, 16);\n const G_DEC: number = parseInt(G_HEX, 16);\n const B_DEC: number = parseInt(B_HEX, 16);\n const CONTRAST_HEX: string = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';\n return CONTRAST_HEX;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsFontColorPipe } from './font-color.pipe';\n\n\n\n@NgModule({\n declarations: [\n BsFontColorPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsFontColorPipe\n ]\n})\nexport class BsFontColorPipeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","takeUntil","take"],"mappings":";;;;;;;;;;;;;;;;;;;;MAUa,uBAAuB;IAIlC,YAAY,SAA+B;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;;oHANU,uBAAuB;wGAAvB,uBAAuB,2HAGA,oBAAoB,iCCbxD,qPAKM,qMDGQ,CAAC,oBAAoB,CAAC;2FAEvB,uBAAuB;kBANnC,SAAS;+BACE,kBAAkB,cAGhB,CAAC,oBAAoB,CAAC;wGAKuB,eAAe;sBAAvE,eAAe;uBAAC,UAAU,CAAC,MAAM,oBAAoB,CAAC;;;MEL5C,oBAAoB;IALjC;;QAUmB,oBAAe,GAAG,IAAI,YAAY,EAAkC,CAAC;QAC9E,eAAU,GAAmC,IAAI,CAAC;KAgB3D;IAfC,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAoB,SAAS,CAAC,KAAqC;QACjE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG;YACvD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7C,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG;gBAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;;iHAnBU,oBAAoB;qGAApB,oBAAoB,kKAEd,uBAAuB,6BCV1C,2BAAyB;2FDQZ,oBAAoB;kBALhC,SAAS;+BACE,cAAc;8BAMkB,QAAQ;sBAAjD,eAAe;uBAAC,uBAAuB;gBAGvB,eAAe;sBAA/B,MAAM;gBAKa,SAAS;sBAA5B,KAAK;;;METK,6BAA6B;IAExC,YAAoB,YAAqC,EAAU,SAA+B;QAA9E,iBAAY,GAAZ,YAAY,CAAyB;QAAU,cAAS,GAAT,SAAS,CAAsB;KACjG;IAED,aAAa,CAAC,KAAiB;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;SAC9C;KACF;;0HAZU,6BAA6B;8GAA7B,6BAA6B,+DCT1C,qHAEM;2FDOO,6BAA6B;kBALzC,SAAS;+BACE,yBAAyB;;;MEgBxB,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAb1B,oBAAoB;QACpB,uBAAuB;QACvB,6BAA6B,aAG7B,YAAY,aAGZ,oBAAoB;QACpB,uBAAuB;QACvB,6BAA6B;+GAGpB,iBAAiB,YATnB;YACP,YAAY;SACb;2FAOU,iBAAiB;kBAf7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;qBAC9B;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;qBAC9B;iBACF;;;ICpBW;AAAZ,WAAY,KAAK;IACb,uCAAO,CAAA;IACP,2CAAS,CAAA;IACT,uCAAO,CAAA;IACP,qCAAM,CAAA;IACN,uCAAO,CAAA;IACP,iCAAI,CAAA;IACJ,mCAAK,CAAA;IACL,iCAAI,CAAA;IACJ,iCAAI,CAAA;IACJ,mCAAK,CAAA;IACL,gDAAW,CAAA;AACf,CAAC,EAZW,KAAK,KAAL,KAAK;;ICAL;AAAZ,WAAY,QAAQ;IAChB,qCAAG,CAAA;IACH,uCAAI,CAAA;IACJ,2CAAM,CAAA;IACN,yCAAK,CAAA;AACT,CAAC,EALW,QAAQ,KAAR,QAAQ;;MCUP,gBAAgB;IAN7B;QAQkB,SAAI,GAAU,KAAK,CAAC,OAAO,CAAC;QAC5C,WAAM,GAAG,KAAK,CAAC;QAEf,cAAS,GAAG,IAAI,CAAC;KAClB;;6GANY,gBAAgB;iGAAhB,gBAAgB,0ECV7B,oMAIM,8QDIQ,CAAE,kBAAkB,CAAE;2FAEvB,gBAAgB;kBAN5B,SAAS;+BACE,UAAU,cAGR,CAAE,kBAAkB,CAAE;8BAIlB,IAAI;sBAAnB,KAAK;;;MEJK,qBAAqB;IAEhC,YAAoB,KAAuB;QAAvB,UAAK,GAAL,KAAK,CAAkB;KAC1C;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;KAC9B;;kHAPU,qBAAqB;sGAArB,qBAAqB,sDCRlC,mHAES;2FDMI,qBAAqB;kBALjC,SAAS;+BACE,gBAAgB;;;MEYf,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBARtB,gBAAgB;QAChB,qBAAqB,aAHb,YAAY,aAMpB,gBAAgB;QAChB,qBAAqB;2GAGZ,aAAa,YAVf,CAAC,YAAY,CAAC;2FAUZ,aAAa;kBAXzB,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,gBAAgB;wBAChB,qBAAqB;qBACtB;iBACF;;;MCRY,sBAAsB;IAE1B,QAAQ,CAAC,KAAW;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9H,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,WAAW,CAAC,OAAO,EAAE;gBACjC,SAAS,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;aAChH,CAAC;SACH,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,EAAE,CAAC;;YAAK,QAAC;gBAC7C,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,0CAAE,UAAU,CAAC,CAAC;gBAC9G,IAAI,EAAE,CAAC;aACR,EAAC;SAAA,CAAC,CAAC;QACJ,OAAO,WAAW,CAAC;KACpB;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACjC;IAED,oBAAoB,CAAC,IAAU;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,CAAC,CAAC;SACV;KACF;IAED,UAAU,CAAC,IAAU;QACnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1F,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7D;IAED,yBAAyB,CAAC,IAAU;QAClC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,OAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC1C;IAED,QAAQ,CAAC,KAAW,EAAE,KAAW;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC,CAAC;KAC7C;IAED,SAAS,CAAC,IAAU;QAClB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACnC;IAED,KAAK,CAAC,IAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACtE;IAED,KAAK,CAAI,KAAU,EAAE,IAAY;QAC/B,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;KACf;IAED,eAAe,CAAC,IAAU;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;KACf;IAED,cAAc,CAAC,IAAU;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;KACf;;mHA3FU,sBAAsB;uHAAtB,sBAAsB,cAFrB,MAAM;2FAEP,sBAAsB;kBAHlC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCDY,WAAW;IAEtB,SAAS,CAAC,KAAa,EAAE,GAAG,IAAW;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAChD;;wGAJU,WAAW;sGAAX,WAAW;2FAAX,WAAW;kBAHvB,IAAI;mBAAC;oBACJ,IAAI,EAAE,SAAS;iBAChB;;;MCCY,aAAa;IAExB,SAAS,CAAC,IAAiB,EAAE,GAAG,IAAW;QACzC,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1D;aAAM;YACL,OAAO,EAAE,CAAC;SACX;KACF;;0GARU,aAAa;wGAAb,aAAa;2FAAb,aAAa;kBAHzB,IAAI;mBAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB;;;MCQY,mBAAmB;IAC9B,YAAoB,oBAA4C;QAA5C,yBAAoB,GAApB,oBAAoB,CAAwB;QAmCxD,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;;QAKnC,kBAAa,GAAG,IAAI,eAAe,CAAO,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,uBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;;;QAS/D,kBAAa,GAAG,IAAI,eAAe,CAAO,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,uBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;QAlD7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;aAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM;aAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACzC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnC,IAAI,CACH,GAAG,CAAC,CAAC,IAAI;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChB,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAC3B,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EACxB,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,CACd,CAAC;oBACF,OAAgB;wBACd,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;wBAC3D,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;qBAC1D,CAAC;iBACH,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;SACF,CAAC,CACH,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI;YACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK;YAClE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC,CAAC,CAAC;KACJ;IASD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACjC;IACD,IAAa,YAAY,CAAC,KAAW;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAKD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACjC;IACD,IAAa,YAAY,CAAC,KAAW;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;;IAGD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;KACd;IAED,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;KACd;IAED,UAAU,CAAC,KAAkB,EAAE,KAAkB;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAEnD,QACE,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;YAC3C,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;YACrC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EACnC;KACH;IAED,IAAI,CAAC,GAA0B;QAC7B,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACnC;KACF;;gHApGU,mBAAmB;oGAAnB,mBAAmB,4NCZhC,2sCA+BQ;2FDnBK,mBAAmB;kBAL/B,SAAS;+BACE,aAAa;0GA8CN,kBAAkB;sBAAlC,MAAM;gBAIM,YAAY;sBAAxB,KAAK;gBAMW,kBAAkB;sBAAlC,MAAM;gBAIM,YAAY;sBAAxB,KAAK;;;MErDK,qBAAqB;;kHAArB,qBAAqB;mHAArB,qBAAqB,iBAT9B,aAAa,aAGb,YAAY,aAGZ,aAAa;mHAGJ,qBAAqB,YAPvB;YACP,YAAY;SACb;2FAKU,qBAAqB;kBAXjC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,aAAa;qBACd;iBACF;;;MCCY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAT5B,WAAW,aAGX,YAAY,aAGZ,WAAW;iHAGF,mBAAmB,YAPrB;YACP,YAAY;SACb;2FAKU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,WAAW;qBACZ;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,WAAW;qBACZ;iBACF;;;MCTY,eAAe;IAE1B,SAAS,CAAC,IAAU,EAAE,GAAG,IAAW;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7D;;4GAJU,eAAe;0GAAf,eAAe;2FAAf,eAAe;kBAH3B,IAAI;mBAAC;oBACJ,IAAI,EAAE,aAAa;iBACpB;;;MCaY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAT5B,eAAe,aAGf,YAAY,aAGZ,eAAe;iHAGN,mBAAmB,YAPrB;YACP,YAAY;SACb;2FAKU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,eAAe;qBAChB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,eAAe;qBAChB;iBACF;;;MCKY,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAZzB,mBAAmB,aAGnB,YAAY;QACZ,mBAAmB;QACnB,qBAAqB;QACrB,mBAAmB,aAGnB,mBAAmB;8GAGV,gBAAgB,YAVlB;YACP,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,mBAAmB;SACpB;2FAKU,gBAAgB;kBAd5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,mBAAmB;qBACpB;iBACF;;;MCbY,eAAe;;4GAAf,eAAe;gGAAf,eAAe,+CCP5B,sKAKM;2FDEO,eAAe;kBAL3B,SAAS;+BACE,SAAS;;;MEIR,qBAAqB;;kHAArB,qBAAqB;sGAArB,qBAAqB,sDCPlC,oEAEM;2FDKO,qBAAqB;kBALjC,SAAS;+BACE,gBAAgB;;;MEaf,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBARrB,eAAe;QACf,qBAAqB,aAHb,YAAY,aAMpB,eAAe;QACf,qBAAqB;0GAGZ,YAAY,YAVd,CAAC,YAAY,CAAC;2FAUZ,YAAY;kBAXxB,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE;wBACZ,eAAe;wBACf,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,eAAe;wBACf,qBAAqB;qBACtB;iBACF;;;MCVY,wBAAwB;IAInC,YAAoB,WAA6B;QAA7B,gBAAW,GAAX,WAAW,CAAkB;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;KACtC;;qHANU,wBAAwB;yGAAxB,wBAAwB;2FAAxB,wBAAwB;kBAHpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;;;MCQY,mBAAmB;IAE9B;QAYkC,uBAAkB,GAAG,KAAK,CAAC;QAC7C,eAAU,GAAG,IAAI,CAAC;QAG1B,eAAU,GAAqB,OAAO,CAAC;QAE/C,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,yBAAoB,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC,CAAC;QAlBrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB;aAChD,IAAI,CAACA,KAAG,CAAC,CAAC,OAAO;YAChB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC,CAAC,CAAC;aACF,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB;aACzC,IAAI,CAACD,KAAG,CAAC,CAAC,KAAK,mBAAK,OAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,YAAY,mCAAI,IAAI,CAAA,EAAA,CAAC,CAAC;aAClE,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;KACrC;IAaD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;KACF;;IAGD,IAAoB,SAAS,CAAC,KAAuB;QACnD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,UAAU,CAAC;YACT,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC,EAAE,EAAE,CAAC,CAAC;KACR;IACD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;;IAGD,aAAa;QACX,IAAI,CAAC,oBAAoB;aACtB,IAAI,CAACC,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,mBAAmB;YAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;SACzD,CAAC,CAAC;KACN;IAED,SAAS;QACP,IAAI,CAAC,oBAAoB;aACtB,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,mBAAmB;YAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;SACzD,CAAC,CAAC;KACN;IAED,eAAe,CAAC,KAAa;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1C;;gHAxEU,mBAAmB;oGAAnB,mBAAmB,2MAgBb,wBAAwB,6BC5B3C,gwDA+BM,4ZDrBQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;2FAE7C,mBAAmB;kBAN/B,SAAS;+BACE,aAAa,cAGX,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;0EAgBtB,kBAAkB;sBAAnD,WAAW;uBAAC,YAAY;gBACT,UAAU;sBAAzB,KAAK;gBACqC,MAAM;sBAAhD,eAAe;uBAAC,wBAAwB;gBAsBrB,SAAS;sBAA5B,KAAK;;;MEhCK,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAXzB,mBAAmB;QACnB,wBAAwB,aAGxB,YAAY,aAGZ,mBAAmB;QACnB,wBAAwB;8GAGf,gBAAgB,YARlB;YACP,YAAY;SACb;2FAMU,gBAAgB;kBAb5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,wBAAwB;qBACzB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,mBAAmB;wBACnB,wBAAwB;qBACzB;iBACF;;;ACfM,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAmB,iBAAiB,CAAC;;MCU1E,mBAAmB;IAE9B,YAAsC,OAAyB;QAIjC,iBAAY,GAAG,IAAI,CAAC;QACtB,aAAQ,GAAG,IAAI,CAAC;QAGpC,aAAQ,GAAiC,IAAI,CAAC;;QAGtD,mBAAc,GAAG,EAAE,CAAC;QACpB,0BAAqB,GAAG,IAAI,YAAY,EAAkB,CAAC;QAXzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAWD,kBAAkB,CAAC,KAAqB;QACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;;gHAjBU,mBAAmB,kBAEV,gBAAgB;oGAFzB,mBAAmB,mJCZhC,sQAKM,6NDKQ,CAAC,oBAAoB,CAAC;2FAEvB,mBAAmB;kBAN/B,SAAS;+BACE,aAAa,cAGX,CAAC,oBAAoB,CAAC;;;8BAIrB,MAAM;+BAAC,gBAAgB;;yBAIN,YAAY;sBAAzC,WAAW;uBAAC,eAAe;gBACA,QAAQ;sBAAnC,WAAW;uBAAC,aAAa;;;MEZf,wBAAwB;IACnC,YAAoB,eAAkC;QAAlC,oBAAe,GAAf,eAAe,CAAmB;KAAK;IAIpC,OAAO;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACjD;;qHAPU,wBAAwB;yGAAxB,wBAAwB;2FAAxB,wBAAwB;kBAHpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;iBAC9B;qGAIiB,eAAe;sBAA9B,KAAK;gBAEiB,OAAO;sBAA7B,YAAY;uBAAC,OAAO;;;MCQV,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAZzB,mBAAmB;QACnB,wBAAwB,aAGxB,YAAY;QACZ,aAAa,aAGb,mBAAmB;QACnB,wBAAwB;8GAGf,gBAAgB,YATlB;YACP,YAAY;YACZ,aAAa;SACd;2FAMU,gBAAgB;kBAd5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,wBAAwB;qBACzB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,mBAAmB;wBACnB,wBAAwB;qBACzB;iBACF;;;MCPY,iBAAiB;IAE5B,YACU,OAAgB,EAChB,cAAwB;QADxB,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAU;KAC7B;IAEE,IAAI,CAAC,QAA0B;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC9D,MAAM,EAAE,IAAI,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACtC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;YAC5C,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAsB,MAAM,CAAC,CAAC;QAEzE,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAA0B;YAC9D,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,OAAO,iBAAiB,CAAC,QAAQ,CAAC;KACnC;IAEM,IAAI,CAAC,QAA6B;QACvC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CACjC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAC9D,IAAI,CAAC,CAAC,CAAC,CACR,CAAC,SAAS,CAAC;;YACV,MAAA,QAAQ,CAAC,UAAU,CAAC,0CAAE,OAAO,CAAC,OAAO,EAAE,CAAA;SACxC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC;KAClC;;8GAxCU,iBAAiB;kHAAjB,iBAAiB,cAFhB,gBAAgB;2FAEjB,iBAAiB;kBAH7B,UAAU;mBAAC;oBACV,UAAU,EAAE,gBAAgB;iBAC7B;;;MCLY,eAAe;IAE1B,YAA8B,GAAQ;QAItB,WAAM,GAAkB,IAAI,CAAC;QAC5B,aAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;QAJrD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;KAChB;IAKkC,KAAK,CAAC,KAAiB;QACxD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,CAAiB;;YACjC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE;gBAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,IAA+B,MAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;gBACjG,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACjC;aACF;SACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KACvD;;4GAxBU,eAAe,kBAEN,QAAQ;gGAFjB,eAAe;2FAAf,eAAe;kBAH3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;iBACrB;;;8BAGc,MAAM;+BAAC,QAAQ;;yBAIZ,MAAM;sBAArB,KAAK;gBACW,QAAQ;sBAAxB,MAAM;gBAE4B,KAAK;sBAAvC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MCPtB,sBAAsB;IAEjC,YAAoB,eAAkC;QAAlC,oBAAe,GAAf,eAAe,CAAmB;QAGtC,eAAU,GAAG,EAAE,CAAC;KAF/B;IAKD,UAAU;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChE,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;KAC7D;;mHAXU,sBAAsB;uGAAtB,sBAAsB,+MCRnC,wcAUM;2FDFO,sBAAsB;kBALlC,SAAS;+BACE,iBAAiB;qGASX,UAAU;sBAAzB,KAAK;gBACuB,cAAc;sBAA1C,SAAS;uBAAC,gBAAgB;;;MEChB,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBATrB,eAAe,aAGf,YAAY,aAGZ,eAAe;0GAGN,YAAY,YAPd;YACP,YAAY;SACb;2FAKU,YAAY;kBAXxB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,eAAe;qBAChB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,eAAe;qBAChB;iBACF;;;MCKY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAX5B,sBAAsB,aAGtB,YAAY;QACZ,YAAY;QACZ,eAAe,aAGf,sBAAsB;iHAGb,mBAAmB,YATrB;YACP,YAAY;YACZ,YAAY;YACZ,eAAe;SAChB;2FAKU,mBAAmB;kBAb/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;qBACvB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,eAAe;qBAChB;oBACD,OAAO,EAAE;wBACP,sBAAsB;qBACvB;iBACF;;;MCXY,sBAAsB;IAEjC,YACU,OAAgB,EAChB,WAA6B,EAC7B,gBAAkC,EACd,OAAmB;QAHvC,YAAO,GAAP,OAAO,CAAS;QAChB,gBAAW,GAAX,WAAW,CAAkB;QAC7B,qBAAgB,GAAhB,gBAAgB,CAAkB;QACd,YAAO,GAAP,OAAO,CAAY;QA2CzC,eAAU,GAAsB,IAAI,CAAC;QACrC,mBAAc,GAA+B,IAAI,CAAC;QA1CxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,EAAc;YACxD,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG;gBACb,qBAAqB,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;wBACnC,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;oBACH,QAAS;wBACP,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,CAAC;wBACT,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;wBAChC,IAAI,EAAE,EAAE,CAAC,OAAO;wBAChB,MAAM,EAAE,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;wBACnC,KAAK,EAAE,EAAE,CAAC,OAAO;qBAClB,EAAE;iBACJ;aACF,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBAC1D,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;qBACxC,mBAAmB,CAAC,OAAO,CAAC;qBAC5B,aAAa,CAAC;oBACb,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;oBACtE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;oBAC5E,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;oBACtE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;iBAC7E,CAAC;aACH,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACvE,CAAC;KACH;IAK2C,aAAa,CAAC,EAAc;QACtE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;KAChC;IAGoC,MAAM;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAEO,KAAK;QACX,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;KACF;IAEO,qBAAqB,CAAC,EAAc;QAC1C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAM,EAAE,CAAC,MAAM,CAAC,EAAE;YAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;;mHAzEU,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;iBAC5B;;;8BAOI,IAAI;;8BAAI,QAAQ;;yBA8CyB,aAAa;sBAAxD,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAKL,MAAM;sBAA1C,YAAY;uBAAC,aAAa;;;MC/ChB,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAV5B,sBAAsB,aAGtB,YAAY;QACZ,aAAa,aAGb,sBAAsB;iHAGb,mBAAmB,YARrB;YACP,YAAY;YACZ,aAAa;SACd;2FAKU,mBAAmB;kBAZ/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;qBACvB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,sBAAsB;qBACvB;iBACF;;;MCVY,0BAA0B;IAErC,YAAY,WAA6B;QAKzB,sBAAiB,GAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAJxF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;;uHAJU,0BAA0B;2GAA1B,0BAA0B;2FAA1B,0BAA0B;kBAHtC,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;iBAChC;kGAQiB,iBAAiB;sBAAhC,KAAK;;;MCXK,iBAAiB;IAC1B,YAAY,IAAiC;QAwBtC,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAA+B,WAAW,CAAC;QAxB3D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC/B;aAAM;;YAEH,IAAI,CAAC,OAAO,GAAG;gBACX,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACpB,QAAQ,EAAE,EAAE;aACf,CAAC;SACL;QAED,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACzB;aAAM;;YAEH,IAAI,CAAC,IAAI,GAAG;gBACR,MAAM,EAAE,CAAC,CAAC,CAAC;gBACX,QAAQ,EAAE,CAAC;aACd,CAAC;SACL;KACJ;IAOM,YAAY;QACf,MAAM,GAAG,GAAsB;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC3B,CAAC;QACF,OAAO,GAAG,CAAC;KACd;;;MClBQ,qBAAqB;IAChC;;QAoFA,iBAAY,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;;QAIjD,wBAAmB,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;;QAErD,mBAAc,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;;QAEhD,gBAAW,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;;QAGjD,iBAAY,GAAG,IAAI,UAAU,EAAW,CAAC;;QAEzC,gBAAW,GAAG,IAAI,UAAU,EAAW,CAAC;;QAExC,gCAA2B,GAAG,IAAI,UAAU,EAAU,CAAC;QAI/C,wBAAmB,GAAG,CAAC,CAAC;QACxB,mBAAc,GAAG,CAAC,CAAC;QACnB,iBAAY,GAAa,EAAE,CAAC;QAC5B,gBAAW,GAAG,IAAI,CAAC;;QAGV,6BAAwB,GAAG,IAAI,YAAY,EAAU,CAAC;QA5GrE,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAEhC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAC;YAC/C,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,WAAW;SACjB,CAAC;aACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC;YAC3C,IAAI,aAAa,IAAI,CAAC,EAAE;gBACtB,OAAO,WAAW,CAAC,MAAM,CAAC;aAC3B;iBAAM,IAAI,CAAC,UAAU,EAAE;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;aACpD;iBAAM,IAAI,aAAa,IAAI,CAAC,EAAE;gBAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;aACxC;iBAAM;gBACL,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;aACxD;SACF,CAAC,CACH,CAAC;QAEJ,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACrC,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,2BAA2B;SACjC,CAAC;aACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,0BAA0B,CAAC;YAChE,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,0BAA0B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE;gBAClD,UAAU,GAAG,CAAC,CAAC;aAChB;iBAAM,IACL,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACvC,WAAW,CAAC,MAAM,GAAG,IAAI,EACzB;gBACA,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,0BAA0B,CAAC;aAC9D;iBAAM;gBACL,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;aAC7D;YAED,OAAO,CAAC,GAAG,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;iBACjD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,MAAuB;gBAC5B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,kBAAkB;aAChD,CAAA,CAAC,CAAC;SACN,CAAC,CACH,CAAC;QAEJ,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAChC,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,mBAAmB;SACzB,CAAC;aACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC;YACpC,OAAO,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACtD,CAAC,CACH,CAAC;QAEJ,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,mBAAmB;SACzB,CAAC;aACC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC;YACpC,QAAQ,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;SAC7E,CAAC,CACH,CAAC;QAEJ,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,kBAAkB;YAC5B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACxD,CAAC,CAAC;KACN;IA6BD,IAAa,kBAAkB,CAAC,KAAa;QAC3C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;;;IAID,IAAa,aAAa,CAAC,KAAa;QACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;;;IAID,IAAa,WAAW,CAAC,KAAe;QACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;;;IAID,IAAa,UAAU,CAAC,KAAc;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;;IAGD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,YAAY,CAAC,KAAiB,EAAE,IAAY;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;KACd;IAED,UAAU;QACR,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;KACd;IAED,MAAM;QACJ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;KACd;;kHAvKU,qBAAqB;sGAArB,qBAAqB,oQCtBlC,2lCAoBK;2FDEQ,qBAAqB;kBALjC,SAAS;+BACE,eAAe;0EAkHR,wBAAwB;sBAAxC,MAAM;gBACM,kBAAkB;sBAA9B,KAAK;gBAUO,aAAa;sBAAzB,KAAK;gBAUO,WAAW;sBAAvB,KAAK;gBAUO,UAAU;sBAAtB,KAAK;;;MEzJK,oBAAoB;IAE/B;QAQ6C,YAAO,GAAiC,EAAE,CAAC;QAI9E,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAX3D,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;KACnD;IAQD,mBAAmB,CAAC,MAAkC;QACpD,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAChE,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAC;aAC3C;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;gBACvD,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAC;aAC3C;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,YAAY,CAAC;aAC5C;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SACxB;KACF;;iHA5BU,oBAAoB;qGAApB,oBAAoB,mKAUd,0BAA0B,6BCpB7C,64DAiCM;2FDvBO,oBAAoB;kBALhC,SAAS;+BACE,cAAc;0EAcqB,OAAO;sBAAnD,eAAe;uBAAC,0BAA0B;gBAClC,QAAQ;sBAAhB,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBAEI,UAAU;sBAAnB,MAAM;;;MElBI,sBAAsB;IAEjC,YAAoB,kBAAwC,EAAE,WAA6B;QAAvE,uBAAkB,GAAlB,kBAAkB,CAAsB;QAC1D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAC;KACnD;;mHAJU,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;iBAC5B;;;MCYY,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAT3B,qBAAqB,aAGrB,YAAY,aAGZ,qBAAqB;gHAGZ,kBAAkB,YAPpB;YACP,YAAY;SACb;2FAKU,kBAAkB;kBAX9B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,qBAAqB;qBACtB;iBACF;;;MCOY,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAd1B,oBAAoB;QACpB,sBAAsB;QACtB,0BAA0B,aAG1B,YAAY;QACZ,kBAAkB,aAGlB,oBAAoB;QACpB,sBAAsB;QACtB,0BAA0B;+GAGjB,iBAAiB,YAVnB;YACP,YAAY;YACZ,kBAAkB;SACnB;2FAOU,iBAAiB;kBAhB7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,sBAAsB;wBACtB,0BAA0B;qBAC3B;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;qBACnB;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,sBAAsB;wBACtB,0BAA0B;qBAC3B;iBACF;;;MCZY,gCAAgC,qBAAqB;IAChE,YACyD,QAA6B,EAC5E,gBAAkC,EAClC,WAA6B,EAC7B,OAAgB,EAExB,UAA2B,EAC3B,IAAY,EACS,UAAe;QAEpC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QATmB,aAAQ,GAAR,QAAQ,CAAqB;QAC5E,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,gBAAW,GAAX,WAAW,CAAkB;QAC7B,YAAO,GAAP,OAAO,CAAS;QAmDlB,SAAI,GAAG,KAAK,CAAC;QACb,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,eAAU,GAAsB,IAAI,CAAC;QACrC,mBAAc,GAA+B,IAAI,CAAC;QA9CxD,IAAI,CAAC,QAAQ,CAAC,OAAO;aAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,MAAM;YAChB,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;gBAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBACpC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;oBACtC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;oBAC1D,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;yBACtC,mBAAmB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;yBACpG,aAAa,CAAC;;wBAEb,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;;wBAEvF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;qBACxF,CAAC;iBACL,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;oBAClE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;wBACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;qBAC9B,CAAC,CAAC;iBACJ;gBAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAClF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEzD,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;oBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;oBACjE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;iBAC9C;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;aACF;SACF,CAAC,CAAC;KACN;IAOD,IAA+B,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;IAC5B,cAAc,CAAC,EAAc;;QACrE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,EAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,CAAC,QAAQ,CAAM,EAAE,CAAC,MAAM,CAAC,CAAA,EAAE;gBAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;oBACnD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;wBAC7E,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;qBAC9B;iBACF,CAAC,CAAC;aACJ;SACF;KACF;;oHAxEU,uBAAuB,kBAExB,UAAU,CAAC,MAAM,mBAAmB,CAAC,iJAOrC,WAAW;wGATV,uBAAuB;2FAAvB,uBAAuB;kBAHnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;iBAC7B;;;8BAGI,MAAM;+BAAC,UAAU,CAAC,MAAM,mBAAmB,CAAC;;8BAO5C,MAAM;+BAAC,WAAW;;yBAoDU,IAAI;sBAAlC,WAAW;uBAAC,YAAY;gBACiB,cAAc;sBAAvD,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;;;MCjE7B,yBAAyB;IAEpC,YACU,QAA6B,EACrC,YAAwB;QADhB,aAAQ,GAAR,QAAQ,CAAqB;QAEnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;IAMH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;SACrC,CAAC,CAAC;KACJ;;sHAhBU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;gIAaC,OAAO;sBADN,YAAY;uBAAC,OAAO;;;MCVV,mBAAmB;IAE9B,YAAY,UAA2B;QAIvC,YAAO,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAIY,WAAM,GAAqC,IAAI,CAAC;QAE1F,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAAG,KAAK,CAAC;QAClB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,sBAAiB,GAAG,KAAK,CAAC;QAMzB,iBAAY,GAAG,IAAI,YAAY,EAAW,CAAC;QAlB1D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;IAcD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;IAED,IAAoB,MAAM,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;KACF;;IAGoC,MAAM;QACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;gHAhCU,mBAAmB;oGAAnB,mBAAmB,2VAShB,uBAAuB,yEACvB,yBAAyB;2FAV5B,mBAAmB;kBAH/B,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;iBACzB;iGAUyD,IAAI;sBAA3D,YAAY;uBAAC,uBAAuB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBACI,MAAM;sBAA/D,YAAY;uBAAC,yBAAyB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBAExC,WAAW;sBAA1B,KAAK;gBACU,SAAS;sBAAxB,KAAK;gBACU,mBAAmB;sBAAlC,KAAK;gBACU,iBAAiB;sBAAhC,KAAK;gBAMW,YAAY;sBAA5B,MAAM;gBACa,MAAM;sBAAzB,KAAK;gBAQ+B,MAAM;sBAA1C,YAAY;uBAAC,aAAa;;;MC/BhB,qBAAqB;IALlC;;QAQE,kBAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QACV,uBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;;;QAW/D,kBAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QACV,uBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;KAUhE;IArBC,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IACD,IAAa,YAAY,CAAC,KAAW;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAMD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IACD,IAAa,YAAY,CAAC,KAAW;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;;kHAvBU,qBAAqB;sGAArB,qBAAqB,8NCPlC,2TAKM;2FDEO,qBAAqB;kBALjC,SAAS;+BACE,eAAe;8BAQR,kBAAkB;sBAAlC,MAAM;gBAIM,YAAY;sBAAxB,KAAK;gBAQW,kBAAkB;sBAAlC,MAAM;gBAIM,YAAY;sBAAxB,KAAK;;;MEAK,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAfzB,mBAAmB;QACnB,yBAAyB;QACzB,uBAAuB,aAGvB,YAAY;QACZ,aAAa;QACb,kBAAkB,aAGlB,mBAAmB;QACnB,yBAAyB;QACzB,uBAAuB;8GAGd,gBAAgB,YAXlB;YACP,YAAY;YACZ,aAAa;YACb,kBAAkB;SACnB;2FAOU,gBAAgB;kBAjB5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,yBAAyB;wBACzB,uBAAuB;qBACxB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,kBAAkB;qBACnB;oBACD,OAAO,EAAE;wBACP,mBAAmB;wBACnB,yBAAyB;wBACzB,uBAAuB;qBACxB;iBACF;;;MCLY,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAX3B,qBAAqB,aAGrB,YAAY;QACZ,gBAAgB;QAChB,gBAAgB,aAGhB,qBAAqB;gHAGZ,kBAAkB,YATpB;YACP,YAAY;YACZ,gBAAgB;YAChB,gBAAgB;SACjB;2FAKU,kBAAkB;kBAb9B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,gBAAgB;qBACjB;oBACD,OAAO,EAAE;wBACP,qBAAqB;qBACtB;iBACF;;;MCbY,mBAAmB;IALhC;QAMyC,kBAAa,GAAG,IAAI,CAAC;QACZ,WAAM,GAAkB,IAAI,CAAC;QAC7D,oBAAe,GAAG,KAAK,CAAC;KACzC;;gHAJY,mBAAmB;oGAAnB,mBAAmB,yNCPhC,0LAC0H;2FDM7G,mBAAmB;kBAL/B,SAAS;+BACE,aAAa;8BAKgB,aAAa;sBAAnD,WAAW;uBAAC,gBAAgB;gBACmB,MAAM;sBAArD,KAAK;;sBAAI,WAAW;uBAAC,iBAAiB;gBACvB,eAAe;sBAA9B,KAAK;;;MEDK,sBAAsB;IAEjC;QA0CA,eAAU,GAAG,IAAI,OAAO,EAAE,CAAA;QAC1B,aAAQ,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;QAC1C,aAAQ,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAC5C,WAAM,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;QAGzC,WAAM,GAAG,IAAI,eAAe,CAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;QAeQ,YAAO,GAAG,KAAK,CAAC;QACf,aAAQ,GAAG,KAAK,CAAC;QAE1C,gBAAW,GAAG,IAAI,CAAC;QAChC,eAAU,GAAG,YAAY,CAAC;QACpB,eAAU,GAAG,GAAG,CAAC;QACnB,SAAI,GAAG,aAAa,CAAC;QACZ,aAAQ,GAAG,EAAE,CAAC;QACd,aAAQ,GAAG,CAAC,CAAC;QACb,aAAQ,GAAG,GAAG,CAAC;QAvEhD,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;SACtD,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW;aAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;YACd,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SAC5B,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM;aAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,MAAM,IAAI,EAAE,CAAC;SACrB,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,WAAW;aACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB,CAAC,CAAC;QACL,IAAI,CAAC,MAAM;aACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB,CAAC,CAAC;QACL,IAAI,CAAC,MAAM;aACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ;aACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ;aACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,KAAK;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB,CAAC,CAAC;KACN;IAWD,IAAoB,OAAO,CAAC,KAAa;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,IAAoB,OAAO,CAAC,KAAa;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,IAAoB,KAAK,CAAC,KAAa;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;IACD,IAAoB,KAAK,CAAC,KAAY;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;IAYD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;mHA9EU,sBAAsB;uGAAtB,sBAAsB,oiBCTnC,EAAA;2FDSa,sBAAsB;kBALlC,SAAS;+BACE,iBAAiB;0EAyDP,OAAO;sBAA1B,KAAK;gBAGc,OAAO;sBAA1B,KAAK;gBAGc,KAAK;sBAAxB,KAAK;gBAGc,KAAK;sBAAxB,KAAK;gBAGqD,OAAO;sBAAjE,KAAK;;sBAAI,WAAW;uBAAC,4BAA4B;gBACU,QAAQ;sBAAnE,KAAK;;sBAAI,WAAW;uBAAC,6BAA6B;gBAEhB,WAAW;sBAA7C,WAAW;uBAAC,oBAAoB;gBACX,UAAU;sBAA/B,WAAW;uBAAC,OAAO;gBACQ,UAAU;sBAArC,WAAW;uBAAC,aAAa;gBACA,IAAI;sBAA7B,WAAW;uBAAC,WAAW;gBACW,QAAQ;sBAA1C,WAAW;uBAAC,oBAAoB;gBACE,QAAQ;sBAA1C,WAAW;uBAAC,oBAAoB;gBACE,QAAQ;sBAA1C,WAAW;uBAAC,oBAAoB;;;ME9EtB,cAAc;IAH3B;QAKuC,kBAAa,GAAG,IAAI,CAAC;KAe3D;IAZwB,YAAY;QACjC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YACvD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;YACnD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACpB;KACF;;2GAfU,cAAc;+FAAd,cAAc;2FAAd,cAAc;kBAH1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,SAAS;iBACpB;8BAGsC,aAAa;sBAAjD,WAAW;uBAAC,sBAAsB;gBAE1B,KAAK;sBAAb,KAAK;gBACiB,YAAY;sBAAlC,YAAY;uBAAC,OAAO;;;MCLV,iBAAiB;IAE5B,SAAS,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1E;;8GAbU,iBAAiB;4GAAjB,iBAAiB;2FAAjB,iBAAiB;kBAH7B,IAAI;mBAAC;oBACJ,IAAI,EAAE,eAAe;iBACtB;;;MCIY,qBAAqB;IALlC;QAOkB,qBAAgB,GAAG,sBAAsB,CAAC;QAC1C,uBAAkB,GAAG,kBAAkB,CAAC;QACxC,gBAAW,GAAG,sBAAsB,CAAC;QAErD,mBAAc,GAAG,KAAK,CAAC;QAEP,UAAK,GAAiB,EAAE,CAAC;QACxB,iBAAY,GAAG,IAAI,YAAY,EAAgB,CAAC;KAkDlE;IAhDC,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAC1B,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO;QAEnC,MAAM,KAAK,GAAsB,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;IAGD,UAAU,CAAC,KAAgB;QACzB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;SAC3C;KACF;IAGD,WAAW,CAAC,KAAgB;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAGD,MAAM,CAAC,KAAgB;QACrB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;YAClD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACpD;KACF;IAEO,mBAAmB,CAAC,QAAkB;QAC5C,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;aAChD,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB,GAAG,CAAC,CAAC,KAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA,CAAC,CAAC;QAElD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClC;;kHA1DU,qBAAqB;sGAArB,qBAAqB,kWCRlC,q3CAuBc;2FDfD,qBAAqB;kBALjC,SAAS;+BACE,gBAAgB;8BAMV,gBAAgB;sBAA/B,KAAK;gBACU,kBAAkB;sBAAjC,KAAK;gBACU,WAAW;sBAA1B,KAAK;gBAIU,KAAK;sBAApB,KAAK;gBACW,YAAY;sBAA5B,MAAM;gBAcP,UAAU;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBAYpC,WAAW;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAQrC,MAAM;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;ME1CrB,6BAA6B;IAExC,YAAY,mBAA0C,EAAE,WAA6B;QACnF,mBAAmB,CAAC,YAAY,GAAG,WAAW,CAAC;KAChD;;0HAJU,6BAA6B;8GAA7B,6BAA6B;2FAA7B,6BAA6B;kBAHzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;iBACnC;;;MCUY,WAAW;;wGAAX,WAAW;yGAAX,WAAW,iBATpB,cAAc,aAGd,YAAY,aAGZ,cAAc;yGAGL,WAAW,YAPb;YACP,YAAY;SACb;2FAKU,WAAW;kBAXvB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,cAAc;qBACf;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,cAAc;qBACf;iBACF;;;MCMY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAX5B,sBAAsB;QACtB,mBAAmB,aAGnB,YAAY,aAGZ,sBAAsB;QACtB,mBAAmB;iHAGV,mBAAmB,YARrB;YACP,YAAY;SACb;2FAMU,mBAAmB;kBAb/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,sBAAsB;wBACtB,mBAAmB;qBACpB;iBACF;;;MCJY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAT5B,iBAAiB,aAGjB,YAAY,aAGZ,iBAAiB;iHAGR,mBAAmB,YAPrB;YACP,YAAY;SACb;2FAKU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,iBAAiB;qBAClB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,iBAAiB;qBAClB;iBACF;;;MCUY,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAd3B,qBAAqB;QACrB,6BAA6B,aAG7B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,mBAAmB,aAGnB,qBAAqB;QACrB,6BAA6B;gHAGpB,kBAAkB,YAXpB;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,mBAAmB;SACpB;2FAMU,kBAAkB;kBAhB9B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,6BAA6B;qBAC9B;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,qBAAqB;wBACrB,6BAA6B;qBAC9B;iBACF;;;ICvBW;AAAZ,WAAY,cAAc;IACtB,mDAAI,CAAA;IACJ,2DAAQ,CAAA;AACZ,CAAC,EAHW,cAAc,KAAd,cAAc;;ACA1B,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,mDAAI,CAAA;IACJ,iEAAW,CAAA;IACX,iEAAW,CAAA;IACX,6DAAS,CAAA;AACb,CAAC,EALW,cAAc,KAAd,cAAc;;MCUb,iBAAiB;IAErB,YAAY,CAAC,KAAoC;QACtD,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAChE,SAAS,GAAG,GAAG,CAAC;SACjB;QACD,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;SACvE;QAED,OAAgC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;KACjE;IAEO,UAAU,CAAC,KAAW,EAAE,KAAW;QACzC,QACE,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;YAC3C,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;YACrC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EACnC;KACH;IAEM,WAAW,CAAC,MAAwB;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;;YAG7D,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM;gBACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;iBAC/D;qBAAM;oBACL,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACzC;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;KACf;IAEO,aAAa,CAAC,MAAwB;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3D,OAAO,aAAa;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAChD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAU,EAAE,GAAQ,EAAE,CAAC,CAAC;KACxC;IAEO,aAAa,CAAC,KAAoB,EAAE,KAAqB;QAC/D,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YAClF,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,KAAK,CAAC;SACd;KACF;;8GA9DU,iBAAiB;kHAAjB,iBAAiB,cAFhB,MAAM;2FAEP,iBAAiB;kBAH7B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCIY,+BAA+B;IAE1C;QA2BS,UAAK,GAAG,CAAC,CAAC;QACnB,qBAAgB,GAAG,IAAI,eAAe,CAAkC,IAAI,CAAC,CAAC;QAC9E,eAAU,GAAG,IAAI,eAAe,CAA4B,EAAE,CAAC,CAAC;QAChE,gBAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAGlD,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAhCzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe;YACxB,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO,IAAI,CAAC;aACb;iBAAM,IAAI,UAAU,IAAI,eAAe,EAAE;gBACxC,OAAwB;oBACtB,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,eAAe;iBAC/B,CAAC;aACH;iBAAM;gBACL,OAAwB;oBACtB,QAAQ,EAAE,eAAe;oBACzB,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH;SACF,CAAC,CAAC;aACF,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;aACpD,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,KAAsB,eAAe,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;aAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS;aAC7B,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;aACtC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAC5C,CAAC,CAAC;KACN;;IAWD,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACpC;IACD,IAAoB,aAAa,CAAC,KAAsC;QACtE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;;;IAID,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9B;IACD,IAAoB,SAAS,CAAC,KAAgC;QAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;;IAID,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;IACD,IAAoB,UAAU,CAAC,KAAc;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;IAGD,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;YAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;4HAxEU,+BAA+B;gHAA/B,+BAA+B,iLCb5C,o/DAsCe,kJDzBF,+BAA+B;2FAA/B,+BAA+B;kBAN3C,SAAS;+BACE,6BAA6B;0EAkC9B,KAAK;sBAAb,KAAK;gBAYc,aAAa;sBAAhC,KAAK;gBASc,SAAS;sBAA5B,KAAK;gBASc,UAAU;sBAA7B,KAAK;;;MEjEK,wBAAwB;IAEnC,SAAS,CAAC,KAA0C;QAClD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;KACzD;;qHAPU,wBAAwB;mHAAxB,wBAAwB;2FAAxB,wBAAwB;kBAHpC,IAAI;mBAAC;oBACJ,IAAI,EAAE,sBAAsB;iBAC7B;;;MCCY,qBAAqB;IAEhC,SAAS,CAAC,KAA0C;QAClD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;KAC7D;;kHAJU,qBAAqB;gHAArB,qBAAqB;2FAArB,qBAAqB;kBAHjC,IAAI;mBAAC;oBACJ,IAAI,EAAE,mBAAmB;iBAC1B;;;MCCY,aAAa;IAExB,SAAS,CAAC,KAA0C;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,SAAS,KAAK,CAAC,EAAE;YACnB,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;KACF;;0GATU,aAAa;wGAAb,aAAa;2FAAb,aAAa;kBAHzB,IAAI;mBAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB;;;MCiBY,oBAAoB;IAC/B,YAAoB,oBAA4C,EAAU,eAAkC;QAAxF,yBAAoB,GAApB,oBAAoB,CAAwB;QAAU,oBAAe,GAAf,eAAe,CAAmB;QA6J5G,eAAU,GAAG,IAAI,eAAe,CAA+B,EAAE,CAAC,CAAC;QAKnE,iBAAY,GAAG,IAAI,eAAe,CAAc,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,qBAAgB,GAAG,IAAI,eAAe,CAAkB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3E,kBAAa,GAAG,IAAI,eAAe,CAAsB,IAAI,CAAC,CAAC;QAO/D,sBAAiB,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,CAAC;QACtD,eAAU,GAAG,IAAI,eAAe,CAA4B,EAAE,CAAC,CAAC;QAChE,gBAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAClD,qBAAgB,GAAG,IAAI,eAAe,CAAkB,IAAI,CAAC,CAAC;QAC9D,kBAAa,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC,CAAC;QACjE,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;;QAwB3B,UAAK,GAAG,cAAc,CAAC;QACvB,UAAK,GAAG,IAAI,eAAe,CAAiB,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,eAAU,GAAG,IAAI,YAAY,EAAkB,CAAC;;;;;;;;;;;;;QAmBhD,sBAAiB,GAAG,IAAI,YAAY,EAAe,CAAC;;;QASpD,0BAAqB,GAAG,IAAI,YAAY,EAAmB,CAAC;;;QAS7D,mBAAc,GAAkB,IAAI,CAAC;QAiDrD,cAAS,GAAyB,IAAI,CAAC;QACvC,sBAAiB,GAAoB,IAAI,CAAC;QAjSxC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,mBAAmB,GAAG,IAAI,eAAe,CAAO,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACpE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;YAC3B,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9B,QAAQ,IAAI;gBACV,KAAK,cAAc,CAAC,IAAI,EAAE;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC5E;gBACD,KAAK,cAAc,CAAC,QAAQ,EAAE;oBAC5B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC9E,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/F,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;iBACpF;aACF;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,UAAU;aAC7C,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;aAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5G,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACrG,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;aACxD,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;;QAGnG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAClC,GAAG,CAAC,CAAC,MAAM,KAAM,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5E,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,aAAa,CAAC;YAC1C,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,WAAW;iBACb,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;iBACzD,IAAI,CAAC,GAAG,CAAC,WAAW,IAAK,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAChG,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC;YAClC,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS;gBAChC,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,KAAK,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5G,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAC/C,GAAG,CAAC,CAAC,KAAK;YACR,IAAI,KAAK,EAAE;gBACT,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;aAChD;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF,CAAC,CACH,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC1G,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC;YACzC,IAAI,iBAAiB,EAAE;gBACrB,OAAO,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;oBAC7C,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,KAAK,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC5G,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;SACF,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,sBAAsB;aAC/D,IAAI,CAAC,GAAG,CAAC,UAAU;;YAElB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC;iBAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClB,GAAG,CAAC,CAAC,CAAC,KAAqB,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC9F,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;iBACvD,GAAG,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACrG,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAE3D,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,MAAM;aACd,CAAC;SACH,CAAC,CAAC,CAAC;QAEN,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACjE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;aAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;YACpC,QAAQ,IAAI;gBACV,KAAK,cAAc,CAAC,IAAI,EAAE;oBACxB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;oBAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;wBACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAE7E,OAAgC;4BAC9B,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG;gCACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC5B,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gCACnD,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gCACvD,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gCACvD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gCAEjE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC1B,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gCAC/C,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gCACnD,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gCACnD,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;gCAC7D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gCAEjG,OAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;6BACjC,CAAC;4BACF,KAAK,EAAE,iBAAiB,CAAC,KAAK;yBAC/B,CAAC;qBACH,CAAC,CAAC;iBACJ;gBACD,KAAK,cAAc,CAAC,QAAQ,EAAE;oBAC5B,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC;oBACjD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG;wBACvB,OAAgC;4BAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;iCAC5C,GAAG,CAAC,CAAC,KAAK;gCACT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;6BAClD,CAAC;4BACJ,KAAK,EAAE,GAAG;yBACX,CAAA;qBACF,CAAC,CAAC;iBACJ;gBACD,SAAS;oBACP,MAAM,0BAA0B,GAAG,IAAI,CAAC;iBACzC;aACF;SACF,CAAC,CAAC;aACF,SAAS,CAAC,CAAC,SAAS;;YAEnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY;aAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,WAAW;YACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C,CAAC,CAAC;QACL,IAAI,CAAC,gBAAgB;aAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,eAAe;YACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAClD,CAAC,CAAC;;;KAKN;IA0BD,cAAc,CAAC,IAAU,EAAE,KAAa,EAAE,QAAgB;QACxD,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;QAE9D,OAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;KAC7D;IAED,oBAAoB,CAAC,eAAyC;QAC5D,IAAI,UAAU,IAAI,eAAe,EAAE;YACjC,OAAO,eAAe,CAAC,QAAQ;iBAC5B,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;iBAChD,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO,CAAC,eAAe,CAAC,CAAC;SAC1B;KACF;IAMD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;KACzB;IACD,IAAoB,IAAI,CAAC,KAAqB;QAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;IAcD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KAChC;IACD,IAAoB,WAAW,CAAC,KAAkB;QAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAID,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACpC;IACD,IAAoB,eAAe,CAAC,KAAsB;QACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;;;IAMD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9B;IACD,IAAoB,SAAS,CAAC,KAAmC;QAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;IAGO,OAAO,CAAC,IAAU,EAAE,IAAY;QACtC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;KACf;IAED,qBAAqB;QACnB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACjC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;KAChC;IAEO,mBAAmB,CAAC,IAAa;QACvC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAClD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC;YACnC,QAAQ,IAAI;gBACV,KAAK,cAAc,CAAC,IAAI,EAAE;oBACxB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;iBAC1D;gBACD,KAAK,cAAc,CAAC,QAAQ,EAAE;oBAC5B,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACvG;aACF;SACF,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACX,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;IAED,YAAY,CAAC,EAAyB;QACpC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7B;IAED,YAAY,CAAC,EAAyB;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAID,aAAa,CAAC,EAAc,EAAE,IAAc;QAC1C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG;YACf,SAAS,EAAE,cAAc,CAAC,WAAW;YACrC,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,YAAY;aAC1B;YACD,IAAI,EAAE,IAAI;SACX,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC/D;IAED,WAAW;QACT,MAAM,UAAU,GAAG,GAAG,CAAC;QACvB,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAC/G;IACD,aAAa,CAAC,UAAkB;QAC9B,MAAM,CAAC,GAAG,GAAG,GAAC,UAAU,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC,MAAM,IAAE,CAAC,IAAI,GAAG,GAAC,CAAC,GAAG,CAAC,CAAC;KAClC;IAED,gBAAgB,CAAC,SAA6B,EAAE,EAAc;QAC5D,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,eAAe;YAC5D,IAAI,SAAS,CAAC,KAAK,EAAE;gBACnB,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;gBACzC,IAAI,CAAC,SAAS,GAAG;oBACf,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI,EAAE,IAAI;iBACX,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;aACrF;SACF,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,KAA4B,EAAE,QAA0B;QACzE,IAAI,KAAK,EAAE;YACT,QAAQ,QAAQ;gBACd,KAAK,KAAK;oBAAE;wBACV,IAAI,CAAC,SAAS,GAAG;4BACf,SAAS,EAAE,cAAc,CAAC,WAAW;4BACrC,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,EAAE,QAAQ,EAAE;yBACnB,CAAA;wBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;qBACjE;oBAAC,MAAM;gBACR,KAAK,QAAQ;oBAAE;wBACb,IAAI,CAAC,SAAS,GAAG;4BACf,SAAS,EAAE,cAAc,CAAC,WAAW;4BACrC,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,EAAE,QAAQ,EAAE;yBACnB,CAAA;wBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;qBACjE;oBAAC,MAAM;aACT;SACF;KACF;;IAGO,kBAAkB,CAAC,EAAc,EAAE,SAAoC;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE;YACnD,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACrD,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;gBAClF,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAElD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;KACb;IAGD,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS;oBAC9B,KAAK,cAAc,CAAC,WAAW;wBAAE;4BAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;gCAC9H,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;;iCAEvE;qCAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;;oCAE3E,IAAI,CAAC,aAAa;yCACf,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;yCACtD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;wCACX,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;4CAChC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;4CACxC,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;yCACtB;wCACD,OAAO,EAAE,CAAC;qCACX,CAAC,CAAC;yCACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yCACb,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iCACnD;qCAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;;oCAE3E,IAAI,CAAC,aAAa;yCACf,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;yCACtD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;wCACX,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;4CAChC,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;4CACzB,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;yCACrC;wCACD,OAAO,EAAE,CAAC;qCACX,CAAC,CAAC;yCACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yCACb,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iCACnD;6BACF;yBACF;wBAAC,MAAM;oBACR,KAAK,cAAc,CAAC,SAAS;wBAAE;4BAC7B,IAAI,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE;gCACrC,IAAI,CAAC,aAAa;qCACf,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;qCACtD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;oCACX,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;wCAChC,MAAM,MAAM,GAAkB;4CAC5B,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;4CACtG,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;yCACnG,CAAC;wCAEF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;wCAEjC,OAAO,MAAM,CAAC;qCACf;yCAAM;wCACL,OAAO,EAAE,CAAC;qCACX;iCACF,CAAC,CAAC;qCACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qCACb,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;6BACjD;yBACF;wBAAC,MAAM;oBACR,KAAK,cAAc,CAAC,WAAW;wBAAE;4BAC/B,IAAI,OAAO,EAAE;gCACX,IAAI,CAAC,aAAa;qCACf,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qCAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;oCACX,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;wCAChD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;4CAC1C,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;4CACzB,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;yCACnC;6CAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;4CACpD,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;4CACtC,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;yCACtB;qCACF;oCACD,OAAO,EAAE,CAAC;iCACX,CAAC,CAAC;qCACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qCACb,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;6BACnD;yBACF;wBAAC,MAAM;iBACT;aACF;SAEF,CAAC,CAAC;KACJ;;IAID,SAAS,CAAC,EAAc;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS;gBAC9B,KAAK,cAAc,CAAC,WAAW;oBAAE;wBAC/B,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;6BAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;6BACb,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;4BACxB,IAAI,YAAY,EAAE;gCAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gCAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oCACnB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;oCACd;wCACR,WAAW,EAAE,oBAAoB;wCACjC,MAAM,EAAE,CAAC;gDACP,KAAK,EAAE,YAAY,CAAC,KAAK;gDACzB,GAAG,EAAE,YAAY,CAAC,GAAG;gDACrB,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;gDACzB,WAAW,EAAE,WAAW;6CACzB,CAAC;qCACH;iCACF,CAAC,CAAC;gCACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAC/B;yBACF,CAAC,CAAC;qBACN;oBAAC,MAAM;gBACR,KAAK,cAAc,CAAC,SAAS,CAAC;gBAC9B,KAAK,cAAc,CAAC,WAAW;oBAAE;wBAC/B,IAAI,CAAC,aAAa;6BACf,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;6BAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;6BACb,SAAS,CAAC,CAAC,YAAY;4BACtB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,YAAY,EAAE;gCAC1D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;gCAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;gCAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gCACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gCAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gCAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAC/B;yBACF,CAAC,CAAC;qBACN;oBAAC,MAAM;aACT;SACF;KACF;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;iHAlhBU,oBAAoB;qGAApB,oBAAoB,mhBCvBjC,ytOA2GM;2FDpFO,oBAAoB;kBALhC,SAAS;+BACE,cAAc;uIAwLF,gBAAgB;sBAArC,YAAY;uBAAC,MAAM;gBAwBH,UAAU;sBAA1B,MAAM;gBAIa,IAAI;sBAAvB,KAAK;gBAeW,iBAAiB;sBAAjC,MAAM;gBAIa,WAAW;sBAA9B,KAAK;gBAKW,qBAAqB;sBAArC,MAAM;gBAIa,eAAe;sBAAlC,KAAK;gBAKU,cAAc;sBAA7B,KAAK;gBAMc,SAAS;sBAA5B,KAAK;gBAiJN,WAAW;sBADV,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;gBA2F9C,SAAS;sBADR,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;MEtfjC,eAAe,GAAqB;IAC7C,EAAE,IAAI,EAAE,EAAE,EAAM,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IAC7C,EAAE,IAAI,EAAE,GAAG,EAAK,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IAC7C,EAAE,IAAI,EAAE,GAAG,EAAK,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IAC7C,EAAE,IAAI,EAAE,GAAG,EAAK,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IAE7C,EAAE,IAAI,EAAE,IAAI,EAAI,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC/C,EAAE,IAAI,EAAE,IAAI,EAAI,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC/C,EAAE,IAAI,EAAE,KAAK,EAAG,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC/C,EAAE,IAAI,EAAE,KAAK,EAAG,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAE/C,EAAE,IAAI,EAAE,KAAK,EAAG,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCPvC,cAAc;IAEzB,SAAS,CAAC,KAAyB;QACjC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;KACzD;;2GAPU,cAAc;yGAAd,cAAc;2FAAd,cAAc;kBAH1B,IAAI;mBAAC;oBACJ,IAAI,EAAE,YAAY;iBACnB;;;MCqBY,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAf1B,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,cAAc;QACd,aAAa;QACb,+BAA+B,aAG/B,YAAY,aAGZ,oBAAoB;QACpB,+BAA+B;+GAGtB,iBAAiB,YARnB;YACP,YAAY;SACb;2FAMU,iBAAiB;kBAjB7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,qBAAqB;wBACrB,wBAAwB;wBACxB,cAAc;wBACd,aAAa;wBACb,+BAA+B;qBAChC;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,+BAA+B;qBAChC;iBACF;;;MClBY,wBAAwB;IAEnC;KACC;IAED,QAAQ;KACP;;qHANU,wBAAwB;yGAAxB,wBAAwB,0DCPrC,sEAEK;2FDKQ,wBAAwB;kBALpC,SAAS;+BACE,oBAAoB;;;MEKnB,oBAAoB;IAE/B;KACC;IAED,QAAQ;KACP;;iHANU,oBAAoB;qGAApB,oBAAoB,2EAQd,wBAAwB,6BChB3C,sEAEK;2FDMQ,oBAAoB;kBALhC,SAAS;+BACE,eAAe;0EAYkB,KAAK;sBAA/C,eAAe;uBAAC,wBAAwB;;;MEA9B,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBARxB,oBAAoB;QACpB,wBAAwB,aAHlB,YAAY,aAMpB,oBAAoB;QACpB,wBAAwB;+GAGf,iBAAiB,YAVnB,CAAC,YAAY,CAAC;2FAUZ,iBAAiB;kBAX7B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE;wBACV,oBAAoB;wBACpB,wBAAwB;qBAC3B;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,wBAAwB;qBACzB;iBACF;;;MCRY,gBAAgB;IAE3B,iBAAgB;;6GAFL,gBAAgB;iGAAhB,gBAAgB,gDCP7B,2cAYM;2FDLO,gBAAgB;kBAL5B,SAAS;+BACE,UAAU;;;AEDf,MAAM,aAAa,GAAG,IAAI,cAAc,CAAmB,cAAc,CAAC;;MCUpE,uBAAuB;IAElC,YAAmC,OAAyB;QAKpD,aAAQ,GAA8B,IAAI,CAAC;;QAGnD,mBAAc,GAAG,EAAE,CAAC;QACpB,0BAAqB,GAAG,IAAI,YAAY,EAAkB,CAAC;QARzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAQD,kBAAkB,CAAC,KAAqB;QACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;;oHAdU,uBAAuB,kBAEd,aAAa;wGAFtB,uBAAuB,wDCZpC,gTAOM,kKDGQ,CAAC,kBAAkB,CAAC;2FAErB,uBAAuB;kBANnC,SAAS;+BACE,kBAAkB,cAGhB,CAAC,kBAAkB,CAAC;;;8BAInB,MAAM;+BAAC,aAAa;;;;MERtB,sBAAsB;IAEjC,YAAY,KAAuB,EAAE,QAA0B;QAC7D,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;KACzB;;mHAJU,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;iBAC5B;;;MCCY,oBAAoB;IAE/B,YAAY,KAAuB,EAAE,QAA0B;QAC7D,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;KACvB;;iHAJU,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;iBAC1B;;;MCCY,sBAAsB;IAEjC,YAAY,KAAuB,EAAE,QAA0B;QAC7D,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;KACzB;;mHAJU,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;iBAC5B;;;MCuBY,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBAjBtB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,gBAAgB;QAChB,uBAAuB,aAGvB,YAAY;QACZ,aAAa,aAGb,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,gBAAgB;2GAGP,aAAa,YAXf;YACP,YAAY;YACZ,aAAa;SACd;2FAQU,aAAa;kBAnBzB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,gBAAgB;wBAChB,uBAAuB;qBACxB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,gBAAgB;qBACjB;iBACF;;;MCfY,cAAc;IAEzB,YACU,OAAgB,EAChB,cAAwB,EACxB,wBAAkD;QAFlD,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAU;QACxB,6BAAwB,GAAxB,wBAAwB,CAA0B;KACvD;IAEE,IAAI,CAAC,QAA0B;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC3D,MAAM,EAAE,IAAI,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAE3G,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACtC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1E,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAA0B,MAAM,CAAC,CAAC;QAC7E,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAuB;YAC3D,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,OAAO,iBAAiB,CAAC,QAAQ,CAAC;KACnC;IAEM,IAAI,CAAC,KAA8B;QACxC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAC9D,IAAI,CAAC,CAAC,CAAC,CACR,CAAC,SAAS,CAAC;;YACV,MAAA,KAAK,CAAC,UAAU,CAAC,0CAAE,OAAO,CAAC,OAAO,EAAE,CAAA;SACrC,CAAC,CAAC;QAEH,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;KAC/B;;2GAzCU,cAAc;+GAAd,cAAc,cAFb,aAAa;2FAEd,cAAc;kBAH1B,UAAU;mBAAC;oBACV,UAAU,EAAE,aAAa;iBAC1B;;;MCJY,sBAAsB;IALnC;QAYkB,UAAK,GAAU,EAAE,CAAC;QAClB,kBAAa,GAAU,EAAE,CAAC;KAW3C;IARC,UAAU,CAAC,IAAS,EAAE,KAAY;QAChC,IAAU,KAAK,CAAC,MAAO,CAAC,OAAO,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/E;KACF;;mHAjBU,sBAAsB;uGAAtB,sBAAsB,kPCPnC,khCAiBc;2FDVD,sBAAsB;kBALlC,SAAS;+BACE,gBAAgB;8BAWV,KAAK;sBAApB,KAAK;gBACU,aAAa;sBAA5B,KAAK;gBAC8B,qBAAqB;sBAAxD,SAAS;uBAAC,uBAAuB;;;MEVvB,yBAAyB;IAEpC,YAAY,QAA0B,EAAE,WAAmC;QACzE,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC;KACvC;;sHAJU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;;;MCCY,yBAAyB;IAEpC,YAAY,QAA0B,EAAE,WAAmC;QACzE,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC;KACvC;;sHAJU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;;;MCCY,yBAAyB;IAEpC,YAAY,QAA0B,EAAE,WAAmC;QACzE,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC;KACvC;;sHAJU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;;;MCuBY,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAjB5B,sBAAsB;QACtB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB,aAGzB,YAAY;QACZ,gBAAgB;QAChB,iBAAiB,aAGjB,sBAAsB;QACtB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;iHAGhB,mBAAmB,YAZrB;YACP,YAAY;YACZ,gBAAgB;YAChB,iBAAiB;SAClB;2FAQU,mBAAmB;kBAnB/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,yBAAyB;qBAC1B;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,iBAAiB;qBAClB;oBACD,OAAO,EAAE;wBACP,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,yBAAyB;qBAC1B;iBACF;;;MCnBY,iBAAiB;IAL9B;QAQW,cAAS,GAAG,IAAI,CAAC;QAE1B,yBAAoB,GAA4B,IAAI,CAAC;QAErD,gBAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAQnD;IAPC,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;YAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;;8GAZU,iBAAiB;kGAAjB,iBAAiB,iLCR9B,i/BAgBc;2FDRD,iBAAiB;kBAL7B,SAAS;+BACE,WAAW;8BAMH,GAAG;sBAApB,SAAS;uBAAC,KAAK;gBACP,SAAS;sBAAjB,KAAK;;;MEAK,oBAAoB;IAE/B,YAAY,QAA2B;QA2BvC,cAAS,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;QAC/C,iBAAY,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;QAExD,gBAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAClD,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QA9BzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;YACrC,OAAO,WAAW,KAAK,IAAI,CAAC;SAC7B,CAAC,CAAC;aACF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC;YAClC,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,MAAM,qCAAqC,CAAC;aAC7C;iBAAM,IAAI,WAAW,IAAI,GAAG,EAAE;gBAC7B,OAAO,IAAI,CAAC;aACb;iBAAM,IAAI,UAAU,EAAE;gBACrB,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SACF,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,YAAY;aACd,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACnD,SAAS,CAAC;YACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B,CAAC,CAAC;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IASD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;IAGD,IAAoB,QAAQ,CAAC,KAAc;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC7B;;IAID,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC3C;KACF;;iHAtDU,oBAAoB;qGAApB,oBAAoB,qJCXjC,gQAIM,kSDKQ,CAAC,oBAAoB,CAAC;2FAEvB,oBAAoB;kBANhC,SAAS;+BACE,eAAe,cAGb,CAAC,oBAAoB,CAAC;qGA0Cd,QAAQ;sBAA3B,KAAK;gBASN,cAAc;sBADb,YAAY;uBAAC,eAAe;;;MElDlB,qBAAqB;IAEhC,YAAoB,MAAyB,EAAc,cAAyC,EAAU,OAAmB;QAA7G,WAAM,GAAN,MAAM,CAAmB;QAAiE,YAAO,GAAP,OAAO,CAAY;QAKjI,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAA6B,IAAI,CAAC;QALzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;IAOD,qBAAqB;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBAClE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAc;oBACtD,EAAE,CAAC,cAAc,EAAE,CAAC;;oBAEpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ;wBAC9B,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;4BAC/C,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK;gCACpC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;6BACzB,CAAC,CAAC;yBACJ;qBACF,CAAC,CAAC;oBACH,OAAO,KAAK,CAAC;iBACd,CAAC,CAAC;aACJ;SACF;aAAM;;YAGL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBACnG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAc;oBACtD,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;wBACvB,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;wBACpB,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;qBACtB;oBACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;wBACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACrC;iBACF,CAAC,CAAC;aACJ;SAEF;KACF;;kHAlDU,qBAAqB;sGAArB,qBAAqB,mHASE,yBAAyB,iCClB7D,0OAEK;2FDOQ,qBAAqB;kBALjC,SAAS;+BACE,gBAAgB;;;8BAMsB,QAAQ;;yBAOM,SAAS;sBAAtE,eAAe;uBAAC,UAAU,CAAC,MAAM,yBAAyB,CAAC;;;MEVjD,yBAAyB;IAEpC,YACkC,cAAyC,EAChB,UAAiC;QAM5E,cAAS,GAAG,IAAI,CAAC;QACjC,cAAS,GAAG,KAAK,CAAC;QALhB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;IAOD,IAAI,iBAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAkB,CAAC,CAAC,CAAC;KAChF;;sHAjBU,yBAAyB,kBAGc,yBAAyB,yDACzD,UAAU,CAAC,MAAM,qBAAqB,CAAC;0GAJ9C,yBAAyB,gKAmBF,yBAAyB,oDC3B7D,4OAEK;2FDMQ,yBAAyB;kBALrC,SAAS;+BACE,oBAAoB;;wBAOoB,yBAAyB;8BAAxE,QAAQ;;8BAAI,IAAI;;8BAAI,QAAQ;;8BAC5B,IAAI;;8BAAI,MAAM;+BAAC,UAAU,CAAC,MAAM,qBAAqB,CAAC;;yBAMzC,SAAS;sBAAxB,KAAK;gBAS+E,cAAc;sBAAlG,eAAe;uBAAC,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;MEhBxE,uBAAuB;IAElC,YACU,UAAyC,EACQ,YAAmC,EAC3B,cAAyC;QAFlG,eAAU,GAAV,UAAU,CAA+B;QACQ,iBAAY,GAAZ,YAAY,CAAuB;KAG7F;IAID,kBAAkB;QAChB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;SACtC;KACF;;oHAfU,uBAAuB,4CAIxB,UAAU,CAAC,MAAM,qBAAqB,CAAC,aAC3B,UAAU,CAAC,MAAM,yBAAyB,CAAC;wGALtD,uBAAuB,qFAHI,yBAAyB;2FAGpD,uBAAuB;kBAPnC,SAAS;mBAAC;;oBAET,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE;wBACP,cAAc,EAAE,IAAI,eAAe,CAAC,yBAAyB,CAAC;qBAC/D;iBACF;;;8BAKI,MAAM;+BAAC,UAAU,CAAC,MAAM,qBAAqB,CAAC;;8BAC9C,QAAQ;;8BAAI,MAAM;+BAAC,UAAU,CAAC,MAAM,yBAAyB,CAAC;;;;MCVtD,gBAAgB;IAE3B,YACU,UAAyC,EACgB,cAAyC;QADlG,eAAU,GAAV,UAAU,CAA+B;QAGjD,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SAC9D;KACF;;6GAXU,gBAAgB,4CAIL,UAAU,CAAC,MAAM,yBAAyB,CAAC;iGAJtD,gBAAgB;2FAAhB,gBAAgB;kBAH5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,gCAAgC;iBAC3C;;;8BAKI,QAAQ;;8BAAI,MAAM;+BAAC,UAAU,CAAC,MAAM,yBAAyB,CAAC;;;;MCFtD,sBAAsB;IAEjC,YAAoB,OAAmB,EAA+B,UAAe;QAAjE,YAAO,GAAP,OAAO,CAAY;QAA+B,eAAU,GAAV,UAAU,CAAK;QAmC7E,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,cAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAChD,YAAO,GAAG,IAAI,eAAe,CAA2B,IAAI,CAAC,CAAC;QACtE,mBAAc,GAA0B,IAAI,CAAC;QAC7C,mBAAc,GAAG,CAAC,CAAC;QAtCjB,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC9B,OAAO,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;aACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;;gBAEjC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO;oBAC/C,MAAM,MAAM,GAAG,MAAM;0BACjB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY;0BACrC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;oBAElC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,IAAI,CAAC;iBACrF,CAAC,CAAC;;gBAGH,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACxF,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACzC,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,EAAE;oBACjC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;iBACvD;aACF;SACF,CAAC,CAAC;QAEL,IAAI,CAAC,UAAU;aACZ,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACtB,SAAS,CAAC;;YACT,MAAA,IAAI,CAAC,cAAc,0CAAE,SAAS,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAE,GAAG,CAAC,aAAa,CAAC,CAAC;SACvE,CAAC,CAAC;KACN;IAQD,IAA4B,MAAM,CAAC,KAAwB;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;mHArDU,sBAAsB,4CAEgB,WAAW;uGAFjD,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;iBAC5B;;;8BAG2C,MAAM;+BAAC,WAAW;;yBAyChC,MAAM;sBAAjC,KAAK;uBAAC,eAAe;;;MC5CX,sBAAsB;IALnC;QAMkB,eAAU,GAAU,EAAE,CAAC;QACT,WAAM,GAAG,IAAI,CAAC;KAC7C;;mHAHY,sBAAsB;uGAAtB,sBAAsB,uJCPnC,iHAEI;2FDKS,sBAAsB;kBALlC,SAAS;+BACE,iBAAiB;8BAKX,UAAU;sBAAzB,KAAK;gBACwB,MAAM;sBAAnC,WAAW;uBAAC,eAAe;;;MEHjB,uBAAuB;IAElC,YAAY,MAAyB,EAAE,WAA6B;QAClE,MAAM,CAAC,oBAAoB,GAAG,WAAW,CAAC;KAC3C;;oHAJU,uBAAuB;wGAAvB,uBAAuB;2FAAvB,uBAAuB;kBAHnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;iBAC7B;;;MCQY,wBAAwB;IALrC;;QAOE,WAAM,GAAsB,QAAQ,CAAC;QACpB,gBAAW,GAAG,IAAI,YAAY,EAAqB,CAAC;;QAUrD,kBAAa,GAAG,IAAI,CAAC;KAetC;IAxBC,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAoB,KAAK,CAAC,KAAwB;QAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpC;IAMD,WAAW,CAAC,EAAc;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,QAAQ,IAAI,CAAC,MAAM;gBACjB,KAAK,MAAM;oBACT,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;oBACtB,MAAM;gBACR;oBACE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;oBACpB,MAAM;aACT;SACF;KACF;;qHA3BU,wBAAwB;yGAAxB,wBAAwB,uNCbrC,0HAIM;2FDSO,wBAAwB;kBALpC,SAAS;+BACE,mBAAmB;8BAOZ,WAAW;sBAA3B,MAAM;gBAIa,KAAK;sBAAxB,KAAK;gBAMU,aAAa;sBAA5B,KAAK;gBAGN,WAAW;sBADV,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MEoBtB,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBA/BvB,iBAAiB;QACjB,oBAAoB;QACpB,yBAAyB;QACzB,qBAAqB;QAErB,uBAAuB;QACvB,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB,aAGxB,YAAY;QACZ,YAAY;QACZ,kBAAkB,aAGlB,iBAAiB;QACjB,oBAAoB;QACpB,yBAAyB;QACzB,qBAAqB;QAErB,uBAAuB;QACvB,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB;4GAGf,cAAc,YAnBhB;YACP,YAAY;YACZ,YAAY;YACZ,kBAAkB;SACnB;2FAeU,cAAc;kBAjC1B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,oBAAoB;wBACpB,yBAAyB;wBACzB,qBAAqB;wBAErB,uBAAuB;wBACvB,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,uBAAuB;wBACvB,wBAAwB;qBACzB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,kBAAkB;qBACnB;oBACD,OAAO,EAAE;wBACP,iBAAiB;wBACjB,oBAAoB;wBACpB,yBAAyB;wBACzB,qBAAqB;wBAErB,uBAAuB;wBACvB,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,uBAAuB;wBACvB,wBAAwB;qBACzB;iBACF;;;MCxCY,0BAA0B;IAErC,iBAAiB;IAEjB,QAAQ;KACP;;uHALU,0BAA0B;2GAA1B,0BAA0B,2DCPvC,2EAGA;2FDIa,0BAA0B;kBALtC,SAAS;+BACE,qBAAqB;;;MEIpB,wBAAwB;IAEnC,iBAAiB;IAEjB,QAAQ;KACP;;qHALU,wBAAwB;yGAAxB,wBAAwB,yDCPrC,6EAEM;2FDKO,wBAAwB;kBALpC,SAAS;+BACE,mBAAmB;;;AEDxB,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAmB,kBAAkB,CAAC;;MCS5E,oBAAoB;IAE/B,YAAuC,OAAyB;QAgBhD,SAAI,GAAkB,IAAI,CAAC;QACb,iBAAY,GAAG,IAAI,CAAC;QACV,qBAAgB,GAAG,IAAI,CAAC;QACpC,aAAQ,GAAG,IAAI,CAAC;QAGpC,aAAQ,GAAkC,IAAI,CAAC;QAEvD,UAAK,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAC5C,cAAS,GAAG,IAAI,eAAe,CAAoB,QAAQ,CAAC,CAAC;QAxB3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS;aAClC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS;aACtC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;YACZ,QAAQ,IAAI,CAAC,QAAQ;gBACnB,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACX,OAAO,KAAK,CAAC;gBACf;oBACE,OAAO,IAAI,CAAC;aACf;SACF,CAAC,CAAC,CAAC;KACP;;IAgBD,IAAW,QAAQ,CAAC,KAAwB;QAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC7B;;iHArCU,oBAAoB,kBAEX,iBAAiB;qGAF1B,oBAAoB,kOCXjC,ybAOM;2FDIO,oBAAoB;kBALhC,SAAS;+BACE,cAAc;;;8BAMX,MAAM;+BAAC,iBAAiB;;yBAgBrB,IAAI;sBAAnB,KAAK;gBACwB,YAAY;sBAAzC,WAAW;uBAAC,eAAe;gBACY,gBAAgB;sBAAvD,WAAW;uBAAC,yBAAyB;gBACV,QAAQ;sBAAnC,WAAW;uBAAC,aAAa;;;MEzBf,yBAAyB;IACpC,YAAoB,gBAAoC;QAApC,qBAAgB,GAAhB,gBAAgB,CAAoB;KAAK;IAItC,OAAO;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACnD;;sHAPU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;sGAIiB,gBAAgB;sBAA/B,KAAK;gBAEiB,OAAO;sBAA7B,YAAY;uBAAC,OAAO;;;MCgBV,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAhB1B,oBAAoB;QACpB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB,aAGzB,YAAY;QACZ,aAAa,aAGb,oBAAoB;QACpB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB;+GAGhB,iBAAiB,YAXnB;YACP,YAAY;YACZ,aAAa;SACd;2FAQU,iBAAiB;kBAlB7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,0BAA0B;wBAC1B,wBAAwB;wBACxB,yBAAyB;qBAC1B;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,0BAA0B;wBAC1B,wBAAwB;wBACxB,yBAAyB;qBAC1B;iBACF;;;MChBY,kBAAkB;IAE7B,YACU,OAAgB,EAChB,cAAwB;QADxB,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAU;KAC7B;IAEE,IAAI,CAAC,QAA0B,EAAE,QAA4C,EAAE,WAAW,GAAG,KAAK,EAAE,gBAAoE,IAAI;QACjL,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC/D,MAAM,EAAE,IAAI,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QACrD,MAAM,MAAM,GAAkB;YAC5B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,gBAAgB,EAAE,WAAW;YAC7B,WAAW;SACZ,CAAC;QAEF,QAAQ,QAAQ;YACd,KAAK,QAAQ;gBACX,WAAW,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,KAAK,KAAK;gBACR,WAAW,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM;YACR,KAAK,KAAK;gBACR,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM;YAER;gBACE,MAAM,4BAA4B,CAAC;SACtC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAuB,MAAM,CAAC,CAAC;QAC1E,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/C,UAAU,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAA2B;YAC/D,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,UAAU;SACpB,CAAC;QAEF,IAAI,WAAW,IAAI,aAAa,EAAE;YAChC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;SACvF;QAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC;KACnC;IAEM,IAAI,CAAC,SAA+B;QACzC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,UAAU,CAAC,gBAAM,OAAA,MAAA,SAAS,CAAC,UAAU,CAAC,0CAAE,OAAO,CAAC,OAAO,EAAE,CAAA,EAAA,EAAE,GAAG,CAAC,CAAC;KACjE;;+GAhEU,kBAAkB;mHAAlB,kBAAkB,cAFjB,iBAAiB;2FAElB,kBAAkB;kBAH9B,UAAU;mBAAC;oBACV,UAAU,EAAE,iBAAiB;iBAC9B;;;MCFY,iBAAiB;IAE5B;QAkBA,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,aAAQ,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;QAC1C,WAAM,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;QACxC,kBAAa,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;;;QAUxC,gBAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QACzC,gBAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QA/BxD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC;YACvC,MAAM,CAAC,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK,CAAC;YAChC,OAAO;gBACL,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;gBACtC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;aAClD,CAAC;SACH,CAAC,CAAC,CAAC;QAEN,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC;YAC/B,MAAM,CAAC,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B,CAAC,CAAC;KACN;;IASD,IAAoB,OAAO,CAAC,KAAa;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAMD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1B;IACD,IAAoB,KAAK,CAAC,KAAa;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;IAGD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;KACpC;IACD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;KACxB;IAE2B,YAAY;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;;8GAzDU,iBAAiB;kGAAjB,iBAAiB,+NCR9B,mMAEO;2FDMM,iBAAiB;kBAL7B,SAAS;+BACE,WAAW;0EA+BD,OAAO;sBAA1B,KAAK;gBAMW,WAAW;sBAA3B,MAAM;gBACU,WAAW;sBAA3B,MAAM;gBAIa,KAAK;sBAAxB,KAAK;gBAiBsB,YAAY;sBAAvC,YAAY;uBAAC,YAAY;;;ME9Cf,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBATvB,iBAAiB,aAGjB,YAAY,aAGZ,iBAAiB;4GAGR,cAAc,YAPhB;YACP,YAAY;SACb;2FAKU,cAAc;kBAX1B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,iBAAiB;qBAClB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,iBAAiB;qBAClB;iBACF;;;MCXY,oBAAoB;IAE/B,YAAY,OAAmB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;;iHAJU,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;iBAC1B;;;MCEY,qBAAqB;IAEhC,YACwC,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;KAC7D;IAEL,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACf;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACxD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAA;SACtC;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;SACzC;KACF;;kHAdU,qBAAqB,kBAGtB,oBAAoB;sHAHnB,qBAAqB,cAFpB,MAAM;2FAEP,qBAAqB;kBAHjC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;8BAII,MAAM;+BAAC,oBAAoB;;;;MCEnB,oBAAoB;IAE/B,YACU,mBAA0C,EAChC,QAAa,EACvB,IAAY;QAFZ,wBAAmB,GAAnB,mBAAmB,CAAuB;QAE1C,SAAI,GAAJ,IAAI,CAAQ;QAWd,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,cAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAChD,iBAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAM3D,oBAAe,GAAgC,IAAI,CAAC;QAlBlD,IAAI,CAAC,GAAG,GAAa,QAAQ,CAAC;QAC9B,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAC/C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,QAAQ,IAAI,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC;;YAET,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B,CAAC,CAAC;KACN;IAYD,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,kBAAkB;QAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAGD,cAAc;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,kBAAkB;;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QAExG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;SACvD;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC9C;KACF;IAED,oBAAoB;QAClB,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,MAAM,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE;YACjE,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;gBACxF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE;oBAChD,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;iBAC9E;aACF;SACF;KACF;IAED,cAAc,CAAC,SAA+B;QAC5C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;YAC5E,MAAM,CAAC,QAAQ,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;SAC/C;KACF;;iHA5EU,oBAAoB,oDAIrB,QAAQ;qGAJP,oBAAoB,mJAoBd,oBAAoB,sIC/BvC,0jBAWM;2FDAO,oBAAoB;kBALhC,SAAS;+BACE,cAAc;;;8BAQrB,MAAM;+BAAC,QAAQ;;yBAgB4C,UAAU;sBAAvE,eAAe;uBAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBACpC,OAAO;sBAA9B,YAAY;uBAAC,QAAQ;gBAkBtB,cAAc;sBADb,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;ME7B9B,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAX1B,oBAAoB;QACpB,oBAAoB,aAGpB,YAAY,aAGZ,oBAAoB;QACpB,oBAAoB;+GAGX,iBAAiB,YARnB;YACP,YAAY;SACb;2FAMU,iBAAiB;kBAb7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,oBAAoB;qBACrB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,oBAAoB;qBACrB;iBACF;;;MCdY,YAAY;IAEvB,SAAS,CAAC,KAAY,EAAE,SAAiB;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;KAClD;;yGAJU,YAAY;uGAAZ,YAAY;2FAAZ,YAAY;kBAHxB,IAAI;mBAAC;oBACJ,IAAI,EAAE,QAAQ;iBACf;;;MCIY,kBAAkB;IAL/B;QAOE,WAAM,GAAG,KAAK,CAAC;QAEf,iBAAY,GAAG,IAAI,eAAe,CAAQ,EAAE,CAAC,CAAC;QAC9C,eAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACjD,eAAU,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAKrC,eAAU,GAAG,EAAE,CAAC;QACT,gBAAW,GAAU,EAAE,CAAC;QACvB,uBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;QACxD,kBAAa,GAAU,EAAE,CAAC;QACP,cAAS,GAAG,KAAK,CAAC;QAEtC,cAAS,GAAG,EAAE,CAAC;QACvB,gBAAW,GAAG,EAAE,CAAC;KAkDlB;IA9CC,eAAe;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,oBAAoB,CAAC,KAAa;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;KACF;IACD,mBAAmB,CAAC,UAAe;QACjC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;IACD,YAAY,CAAC,IAAS,EAAE,KAAiB;QACvC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAGD,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC/D;KACF;IAGM,KAAK;QACV,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;;+GAlEU,kBAAkB;mGAAlB,kBAAkB,koBCR/B,+sCAyBA;2FDjBa,kBAAkB;kBAL9B,SAAS;+BACE,YAAY;8BAY8B,mBAAmB;sBAAtE,SAAS;uBAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC1B,SAAS;sBAAhC,SAAS;uBAAC,WAAW;gBACC,QAAQ;sBAA9B,SAAS;uBAAC,UAAU;gBACZ,UAAU;sBAAlB,KAAK;gBACU,WAAW;sBAA1B,KAAK;gBACW,kBAAkB;sBAAlC,MAAM;gBACE,aAAa;sBAArB,KAAK;gBACsB,SAAS;sBAApC,WAAW;uBAAC,aAAa;gBA0C1B,QAAQ;sBADP,YAAY;uBAAC,eAAe;gBAQtB,KAAK;sBADX,YAAY;uBAAC,OAAO;;;MEjEV,uBAAuB;IAElC,YAAoB,gBAAoC,EAAE,WAA6B;QAAnE,qBAAgB,GAAhB,gBAAgB,CAAoB;QACtD,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,WAAW,CAAC;KAClD;;oHAJU,uBAAuB;wGAAvB,uBAAuB;2FAAvB,uBAAuB;kBAHnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;iBAC7B;;;MCUY,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBATvB,YAAY,aAGZ,YAAY,aAGZ,YAAY;4GAGH,cAAc,YAPhB;YACP,YAAY;SACb;2FAKU,cAAc;kBAX1B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;iBACF;;;MCUY,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAdxB,kBAAkB;QAClB,uBAAuB,aAGvB,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,cAAc,aAGd,kBAAkB;QAClB,uBAAuB;6GAGd,eAAe,YAXjB;YACP,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,cAAc;SACf;2FAMU,eAAe;kBAhB3B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,kBAAkB;wBAClB,uBAAuB;qBACxB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,gBAAgB;wBAChB,cAAc;qBACf;oBACD,OAAO,EAAE;wBACP,kBAAkB;wBAClB,uBAAuB;qBACxB;iBACF;;;MCfY,kBAAkB;IAG7B,YAAY,UAAiC;QAIpC,aAAQ,GAAG,KAAK,CAAC;QAHxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;+GALU,kBAAkB;mGAAlB,kBAAkB,iIAQf,WAAW,gDChB3B,mEAA+D;2FDQlD,kBAAkB;kBAL9B,SAAS;+BACE,aAAa;yGAWd,QAAQ;sBAAhB,KAAK;gBACqB,cAAc;sBAAxC,YAAY;uBAAC,WAAW;;;MERd,qBAAqB;IALlC;QAQkB,WAAM,GAAG,IAAI,CAAC;QAC9B,cAAS,GAA8B,IAAI,CAAC;KAS7C;IAPC,YAAY,CAAC,GAAuB;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;KACd;;kHAXU,qBAAqB;sGAArB,qBAAqB,6GAEf,kBAAkB,6BCVrC,kmBAWM;2FDHO,qBAAqB;kBALjC,SAAS;+BACE,gBAAgB;8BAMW,QAAQ;sBAA5C,eAAe;uBAAC,kBAAkB;gBACnB,MAAM;sBAArB,KAAK;;;MEOK,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAX3B,qBAAqB;QACrB,kBAAkB,aAGlB,YAAY,aAGZ,qBAAqB;QACrB,kBAAkB;gHAGT,kBAAkB,YARpB;YACP,YAAY;SACb;2FAMU,kBAAkB;kBAb9B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,kBAAkB;qBACnB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,qBAAqB;wBACrB,kBAAkB;qBACnB;iBACF;;;MCVY,sBAAsB;IAEjC,YAAoB,OAAqC,EAAU,KAAc;QAA7D,YAAO,GAAP,OAAO,CAA8B;QAAU,UAAK,GAAL,KAAK,CAAS;QAGhE,mBAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;KAFpE;IAKD,OAAO,CAAC,KAAqB;;QAE3B,KAAK,CAAC,cAAc,EAAE,CAAC;;QAGvB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,IAAU,MAAO,CAAC,aAAa,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;QAGtC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,QAAQ,CAAC,aAAa,EAAE;;gBAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5F;SACF;KAEF;IAED,WAAW,CAAC,KAAU,EAAE,GAAW,EAAE,GAAW;QAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SAChC;aAAM,IAAI,GAAG,GAAG,GAAG,EAAE;YACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;SACjE;aAAM,IAAI,GAAG,GAAG,GAAG,EAAE;YACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;SACjE;aAAM;YACL,OAAO,IAAI,CAAC;SACb;KACF;;mHA1CU,sBAAsB;uGAAtB,sBAAsB;2FAAtB,sBAAsB;kBAHlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uCAAuC;iBAClD;yHAMkB,cAAc;sBAA9B,MAAM;gBAGP,OAAO;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MCPtB,qBAAqB;IAEhC,YAAoB,GAAsB,EAAU,IAAY,EAAU,QAAmB;QAAzE,QAAG,GAAH,GAAG,CAAmB;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAa7F,WAAM,GAAG,KAAK,CAAC;QACf,qBAAgB,GAAW,EAAE,CAAC;QAC9B,cAAS,GAAG,KAAK,CAAC;;QAiCV,kBAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,uBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;QAhD7D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;SACd,CAAC,CAAC;KACN;IAMD,SAAS,CAAC,GAAqB;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC;;QAEb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;IAED,SAAS,CAAC,KAAY,EAAE,GAAW,EAAE,SAAkC;QACrE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,KAAK,GAAqB,KAAK,CAAC,MAAM,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;SACpB;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAEjD,IAAI,SAAS,EAAE;;gBAEb,IAAI,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrC,SAAS,CAAC,KAAK,EAAE,CAAC;iBACnB;aACF;SACF;KACF;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAKD,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IACD,IAAoB,YAAY,CAAC,KAAW;;;QAG1C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAClD;;;;IAKD,IAAI,KAAK;;QAEP,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KACrC;IACD,IAAI,KAAK,CAAC,KAAa;;QAErB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;;;;IAKD,IAAI,OAAO;;QAET,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KACvC;IACD,IAAI,OAAO,CAAC,KAAa;;;QAGvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;IAGD,UAAU,CAAC,KAAW,EAAE,KAAW;QACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;KAC/F;;kHA9FU,qBAAqB;sGAArB,qBAAqB,sJCPlC,+8CAoBM;2FDbO,qBAAqB;kBALjC,SAAS;+BACE,eAAe;qJAuDR,kBAAkB;sBAAlC,MAAM;gBAIa,YAAY;sBAA/B,KAAK;;;ME/CK,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAT5B,sBAAsB,aAGtB,YAAY,aAGZ,sBAAsB;iHAGb,mBAAmB,YAPrB;YACP,YAAY;SACb;2FAKU,mBAAmB;kBAX/B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,sBAAsB;qBACvB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,sBAAsB;qBACvB;iBACF;;;MCOY,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAZ3B,qBAAqB,aAGrB,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,gBAAgB,aAGhB,qBAAqB;gHAGZ,kBAAkB,YAVpB;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,gBAAgB;SACjB;2FAKU,kBAAkB;kBAd9B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;qBACjB;oBACD,OAAO,EAAE;wBACP,qBAAqB;qBACtB;iBACF;;;MCXY,uBAAuB;IANpC;QAQE,sBAAiB,GAAG,IAAI,CAAC;;QAGzB,eAAU,GAAmB,KAAK,CAAC;QAClB,WAAM,GAAG,IAAI,YAAY,EAAkB,CAAC;QAC5C,oBAAe,GAAG,IAAI,YAAY,EAAkB,CAAC;;;QAWtD,aAAQ,GAAG,KAAK,CAAC;KAalC;IAvBC,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAoB,SAAS,CAAC,KAAqB;QACjD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC5C;;IAOD,QAAQ,CAAC,KAAY;QACnB,MAAM,GAAG,GAAS,KAAK,CAAC,MAAO,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;;oHA7BU,uBAAuB;wGAAvB,uBAAuB,qLCTpC,mRAKQ,4BDEM,CAAE,wBAAwB,CAAE;2FAE7B,uBAAuB;kBANnC,SAAS;+BACE,kBAAkB,cAGhB,CAAE,wBAAwB,CAAE;8BAQvB,MAAM;sBAAtB,MAAM;gBACU,eAAe;sBAA/B,MAAM;gBAIa,SAAS;sBAA5B,KAAK;gBAOU,QAAQ;sBAAvB,KAAK;;;MEZK,oBAAoB;;iHAApB,oBAAoB;kHAApB,oBAAoB,iBAT7B,uBAAuB,aAGvB,YAAY,aAGZ,uBAAuB;kHAGd,oBAAoB,YAPtB;YACP,YAAY;SACb;2FAKU,oBAAoB;kBAXhC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,uBAAuB;qBACxB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,uBAAuB;qBACxB;iBACF;;;ACZM,MAAM,eAAe,GAAG,IAAI,cAAc,CAAmB,gBAAgB,CAAC;;MCSxE,kBAAkB;IAC7B,YAAqC,OAAyB;QAI9D,cAAS,GAAG,QAAQ,CAAC;QACL,aAAQ,GAAa,QAAQ,CAAC,MAAM,CAAC;QAJnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;;+GAHU,kBAAkB,kBACT,eAAe;mGADxB,kBAAkB,oFCX/B,4dAUA,2YDDc,CAAC,kBAAkB,CAAC;2FAErB,kBAAkB;kBAN9B,SAAS;+BACE,YAAY,cAGV,CAAC,kBAAkB,CAAC;;;8BAGnB,MAAM;+BAAC,eAAe;;yBAKnB,QAAQ;sBAAvB,KAAK;;;MEPK,kBAAkB;IAE7B,YACU,OAAgB,EAChB,WAA6B,EACrC,wBAAkD,EAC1C,cAAwB,EACJ,MAAkB;QAJtC,YAAO,GAAP,OAAO,CAAS;QAChB,gBAAW,GAAX,WAAW,CAAkB;QAE7B,mBAAc,GAAd,cAAc,CAAU;QACJ,WAAM,GAAN,MAAM,CAAY;QAgBhC,cAAS,GAAa,QAAQ,CAAC,MAAM,CAAC;QAI9C,eAAU,GAAsB,IAAI,CAAC;QAlB3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC9B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACrE,MAAM,EAAE,IAAI,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QAErG,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB,CAAA;KACF;IAQoC,MAAM;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,WAAW;QACT,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,QAAQ,IAAI,CAAC,SAAS;YACpB,KAAK,QAAQ,CAAC,MAAM;gBAAE;oBACpB,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;iBACJ;gBAAC,MAAM;YACR,KAAK,QAAQ,CAAC,GAAG;gBAAE;oBACjB,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;iBACJ;gBAAC,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAAE;oBAClB,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;iBACJ;gBAAC,MAAM;YACR,KAAK,QAAQ,CAAC,KAAK;gBAAE;oBACnB,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,QAAQ;wBACjB,QAAQ,EAAE,OAAO;wBACjB,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;iBACJ;gBAAC,MAAM;SACT;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACtC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;iBAChC,aAAa,CAAC,SAAS,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAqB,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9C;IAED,WAAW;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;KACF;;+GAtFU,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;iBACzB;;;8BAQI,IAAI;;8BAAI,QAAQ;;yBAgBH,SAAS;sBAAxB,KAAK;gBAM+B,MAAM;sBAA1C,YAAY;uBAAC,aAAa;;;MCpBhB,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAXxB,kBAAkB;QAClB,kBAAkB,aAGlB,YAAY;QACZ,aAAa,aAGb,kBAAkB;6GAGT,eAAe,YARjB;YACP,YAAY;YACZ,aAAa;SACd;2FAKU,eAAe;kBAb3B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,kBAAkB;wBAClB,kBAAkB;qBACnB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,kBAAkB;qBACnB;iBACF;;;MCVY,oBAAoB;IAmB/B;QAjBA,WAAM,GAAG,KAAK,CAAC;QAEf,iBAAY,GAAG,IAAI,eAAe,CAAQ,EAAE,CAAC,CAAC;QAC9C,eAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAEjD,eAAU,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAC9C,eAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAGlB,eAAU,GAAG,EAAE,CAAC;QACT,kBAAa,GAAG,YAAY,CAAC;QAC7B,sBAAiB,GAAG,sBAAsB,CAAC;QAC1C,uBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;QACvD,uBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;QAC7C,qBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;QAC9C,cAAS,GAAG,IAAI,YAAY,EAAU,CAAC;QAG/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY;aACxC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;KACvD;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,oBAAoB,CAAC,KAAa;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;KACF;IAED,IAAoB,WAAW,CAAC,KAAY;QAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,iBAAiB,CAAC,UAAe;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1C;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtC;IAEM,KAAK;QACV,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpC;IAGD,QAAQ;QACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC9D;KACF;;iHAlEU,oBAAoB;qGAApB,oBAAoB,yfCRjC,qpCAkBM;2FDVO,oBAAoB;kBALhC,SAAS;+BACE,cAAc;0EAcF,OAAO;sBAA5B,SAAS;uBAAC,SAAS;gBACX,UAAU;sBAAlB,KAAK;gBACU,aAAa;sBAA5B,KAAK;gBACU,iBAAiB;sBAAhC,KAAK;gBACW,kBAAkB;sBAAlC,MAAM;gBACG,kBAAkB;sBAA3B,MAAM;gBACG,gBAAgB;sBAAzB,MAAM;gBACG,SAAS;sBAAlB,MAAM;gBAuBa,WAAW;sBAA9B,KAAK;gBAsBN,QAAQ;sBADP,YAAY;uBAAC,eAAe;;;ME9ClB,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAZ1B,oBAAoB,aAGpB,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,mBAAmB,aAGnB,oBAAoB;+GAGX,iBAAiB,YAVnB;YACP,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,mBAAmB;SACpB;2FAKU,iBAAiB;kBAd7B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oBAAoB;qBACrB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,gBAAgB;wBAChB,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,oBAAoB;qBACrB;iBACF;;;MCjBY,eAAe;IAE1B,SAAS,CAAC,SAAc;QACtB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,SAAS,CAAC,KAAK,QAAQ,EAAE;YAC5G,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAW,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC;QACzG,OAAO,YAAY,CAAC;KACrB;;4GAdU,eAAe;0GAAf,eAAe;2FAAf,eAAe;kBAH3B,IAAI;mBAAC;oBACJ,IAAI,EAAE,aAAa;iBACpB;;;MCaY,qBAAqB;;kHAArB,qBAAqB;mHAArB,qBAAqB,iBAT9B,eAAe,aAGf,YAAY,aAGZ,eAAe;mHAGN,qBAAqB,YAPvB;YACP,YAAY;SACb;2FAKU,qBAAqB;kBAXjC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,eAAe;qBAChB;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,eAAe;qBAChB;iBACF;;;AChBD;;;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab/accordion-tab.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab/accordion-tab.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion/accordion.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion/accordion.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/from-overlay-id/from-overlay-id.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/from-overlay/from-overlay.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/accordion/accordion.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/enums/color.enum.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/enums/position.enum.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert/alert.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert/alert.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert-close/alert-close.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert-close/alert-close.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/alert/alert.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/services/calendar-month/calendar-month.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/uc-first/uc-first.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/month-name/month-name.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/month-name/month-name.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/uc-first/uc-first.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/weekday-name/weekday-name.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/weekday-name/weekday-name.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/calendar/calendar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card/card.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card/card.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card-header/card-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/card/card.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/carousel/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/providers/snackbar-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/component/snackbar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/component/snackbar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/snackbar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/snackbar/service/snackbar.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/copy/copy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/copy/copy.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/code-snippet/code-snippet.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/context-menu/context-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/context-menu/context-menu.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable-column/datatable-column.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable-settings.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination/pagination.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination/pagination.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable/datatable.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable/datatable.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/row-template/row-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/pagination/pagination.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datatable/datatable.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown/dropdown.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/dropdown/dropdown.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/datepicker/datepicker.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress/progress.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress/progress.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar/progress-bar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar/progress-bar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/for/for.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/for/for.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/progress-bar/progress-bar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/format-bytes/format-bytes.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/file-upload/file-upload.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/enums/scheduler-mode.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/enums/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/services/timeline/timeline.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/resource-group-presenter/resource-group-presenter.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/resource-group-presenter/resource-group-presenter.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/day-of-week/day-of-week.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/constants/available-scales.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/pipes/date-offset/date-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scheduler/scheduler.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group-item/list-group-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group-item/list-group-item.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group/list-group.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group/list-group.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/list-group/list-group.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal/modal.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal/modal.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/providers/modal-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal-content/modal-content.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/component/modal-content/modal-content.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-header/modal-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-body/modal-body.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/directives/modal-footer/modal-footer.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/modal.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/modal/service/modal.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/multiselect/multiselect.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar/navbar.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar/navbar.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-nav/navbar-nav.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-nav/navbar-nav.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-item/navbar-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-item/navbar-item.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/nav-link/nav-link.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-content/navbar-content.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-brand/navbar-brand.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-brand/navbar-brand.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/expand-button/expand-button.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-toggler/navbar-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar-toggler/navbar-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/navbar/navbar.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-header/offcanvas-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-header/offcanvas-header.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-body/offcanvas-body.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas-body/offcanvas-body.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/providers/offcanvas-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas/offcanvas.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/components/offcanvas/offcanvas.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/directives/offcanvas-close/offcanvas-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/offcanvas.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/offcanvas/services/offcanvas/offcanvas.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/rating/rating.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/scrollspy/scrollspy.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/in-list/in-list.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/directive/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/in-list/in-list.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/select2/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tab-control/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/directives/enhanced-paste/enhanced-paste.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/directives/enhanced-paste/enhanced-paste.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/timepicker/timepicker.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/toggle-button/toggle-button.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/providers/tooltip-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/component/tooltip.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/component/tooltip.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/directive/tooltip.directive.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/tooltip/tooltip.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.component.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.component.html","../../../../libs/mintplayer-ng-bootstrap/src/lib/components/typeahead/typeahead.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/font-color/font-color.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/src/lib/pipes/font-color/font-color.module.ts","../../../../libs/mintplayer-ng-bootstrap/src/mintplayer-ng-bootstrap.ts"],"sourcesContent":["import { Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab',\n templateUrl: './accordion-tab.component.html',\n styleUrls: ['./accordion-tab.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsAccordionTabComponent {\n\n accordion: BsAccordionComponent;\n @ContentChildren(forwardRef(() => BsAccordionComponent)) childAccordions!: QueryList<BsAccordionComponent>;\n constructor(accordion: BsAccordionComponent) {\n this.accordion = accordion;\n }\n\n private tabOverlayIdentifier: string | null = null;\n \n //#region IsActive\n @Output() public isActiveChange = new EventEmitter<boolean>();\n private _isActive = false;\n public get isActive() {\n return this._isActive;\n }\n @Input() public set isActive(value: boolean) {\n if (this._isActive !== value) {\n this._isActive = value;\n if (this._isActive) {\n this.accordion.tabPages.filter((tab) => {\n return tab !== this;\n }).forEach((tab) => {\n tab.isActive = false;\n });\n } else {\n this.childAccordions.forEach((accordion) => {\n accordion.tabPages.forEach((tab) => {\n tab.isActive = false;\n });\n });\n }\n this.isActiveChange.emit(value);\n }\n }\n //#endregion\n}\n","<div class=\"card\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"card-block overflow-hidden\" [@slideUpDown] *ngIf=\"isActive\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component, ContentChildren, QueryList } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class BsAccordionComponent {\n\n @ContentChildren(BsAccordionTabComponent) tabPages!: QueryList<BsAccordionTabComponent>;\n disableAnimations = false;\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab-header',\n templateUrl: './accordion-tab-header.component.html',\n styleUrls: ['./accordion-tab-header.component.scss']\n})\nexport class BsAccordionTabHeaderComponent {\n\n constructor(private accordionTab: BsAccordionTabComponent, private accordion: BsAccordionComponent) {\n }\n\n headerClicked(event: MouseEvent) {\n event.preventDefault();\n this.accordionTab.isActive = !this.accordionTab.isActive;\n }\n}\n","<div class=\"card-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <ng-content></ng-content>\n</div>","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\nimport { BsFromOverlayDirective } from '../from-overlay/from-overlay.directive';\n\n@Directive({\n selector: 'bs-accordion-tab[bsFromOverlayId]'\n})\nexport class BsFromOverlayIdDirective implements OnDestroy {\n\n constructor(private accordionTab: BsAccordionTabComponent, private bsFromOverlay: BsFromOverlayDirective) {\n this.accordionTab.isActiveChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isActive) => {\n if (isActive) {\n bsFromOverlay.bsFromOverlay = this.bsFromOverlayId;\n } else {\n bsFromOverlay.bsFromOverlay = null;\n }\n });\n }\n\n private destroyed$ = new Subject();\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n //#region bsFromOverlayId\n private _bsFromOverlayId!: string;\n public get bsFromOverlayId() {\n return this._bsFromOverlayId;\n }\n @Input() public set bsFromOverlayId(value: string) {\n this._bsFromOverlayId = value;\n this.accordionTab['tabOverlayIdentifier'] = value;\n }\n //#endregion\n\n}\n","import { AfterContentInit, AfterViewInit, ContentChildren, Directive, ElementRef, EventEmitter, Input, OnDestroy, Output, QueryList } from '@angular/core';\nimport { BehaviorSubject, combineLatest, debounce, debounceTime, filter, Subject, takeUntil } from 'rxjs';\nimport { BsAccordionTabComponent } from '..';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\nimport { BsFromOverlayIdDirective } from '../from-overlay-id/from-overlay-id.directive';\n\n@Directive({\n selector: 'bs-accordion[bsFromOverlay]'\n})\nexport class BsFromOverlayDirective implements AfterContentInit, OnDestroy {\n\n constructor(private accordion: BsAccordionComponent) {\n this.accordion.disableAnimations = true;\n combineLatest([this.inited$, this.activeOverlayIdentifier$])\n .pipe(filter(([inited, activeOverlayIdentifier]) => {\n return inited;\n }))\n // .pipe(debounceTime(5))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([inited, activeOverlayIdentifier]) => {\n this.bsFromOverlayChange.emit(activeOverlayIdentifier);\n this.accordion.tabPages.forEach((tab) => {\n tab.isActive = (tab[\"tabOverlayIdentifier\"] == activeOverlayIdentifier);\n });\n setTimeout(() => this.accordion.disableAnimations = false, 30);\n });\n }\n\n private readonly inited$ = new BehaviorSubject<boolean>(false);\n private readonly destroyed$ = new Subject();\n private readonly activeOverlayIdentifier$ = new BehaviorSubject<string | null>(null);\n\n @Output() public bsFromOverlayChange = new EventEmitter<string | null>();\n private _bsFromOverlay: string | null = null;\n public get bsFromOverlay() {\n return this._bsFromOverlay;\n }\n @Input() public set bsFromOverlay(value: string | null) {\n if (this._bsFromOverlay != value) {\n this._bsFromOverlay = value;\n this.activeOverlayIdentifier$.next(value);\n }\n }\n\n @ContentChildren(BsFromOverlayIdDirective, { read: ElementRef }) tabPages!: QueryList<ElementRef<BsAccordionTabComponent>>;\n \n ngAfterContentInit() {\n this.inited$.next(true);\n }\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsAccordionComponent } from './accordion/accordion.component';\nimport { BsAccordionTabComponent } from './accordion-tab/accordion-tab.component';\nimport { BsAccordionTabHeaderComponent } from './accordion-tab-header/accordion-tab-header.component';\nimport { BsFromOverlayDirective } from './from-overlay/from-overlay.directive';\nimport { BsFromOverlayIdDirective } from './from-overlay-id/from-overlay-id.directive';\n\n@NgModule({\n declarations: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent,\n BsFromOverlayDirective,\n BsFromOverlayIdDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent,\n BsFromOverlayDirective,\n BsFromOverlayIdDirective\n ]\n})\nexport class BsAccordionModule { }\n","export enum Color {\n primary,\n secondary,\n success,\n danger,\n warning,\n info,\n light,\n dark,\n body,\n white,\n transparent\n}","export enum Position {\n top,\n left,\n bottom,\n right\n}","import { Component, Input } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '../../../enums';\n\n@Component({\n selector: 'bs-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n animations: [ FadeInOutAnimation ]\n})\nexport class BsAlertComponent {\n\n @Input() public type: Color = Color.primary;\n colors = Color;\n\n isVisible = true;\n}\n","<div class=\"mb-3 overflow-hidden\" *ngIf=\"isVisible\" [@fadeInOut]>\n <div class=\"alert mb-0\" [ngClass]=\"'alert-' + colors[type]\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component } from '@angular/core';\nimport { BsAlertComponent } from '../alert/alert.component';\n\n@Component({\n selector: 'bs-alert-close',\n templateUrl: './alert-close.component.html',\n styleUrls: ['./alert-close.component.scss']\n})\nexport class BsAlertCloseComponent {\n\n constructor(private alert: BsAlertComponent) {\n }\n\n closeAlert() {\n this.alert.isVisible = false;\n }\n \n}\n","<button class=\"btn float-end\" (click)=\"closeAlert()\">\n <span class=\"text-dark\">×</span>\n</button>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsAlertComponent } from './alert/alert.component';\nimport { BsAlertCloseComponent } from './alert-close/alert-close.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsAlertComponent,\n BsAlertCloseComponent\n ],\n exports: [\n BsAlertComponent,\n BsAlertCloseComponent\n ]\n})\nexport class BsAlertModule {}\n","import { Injectable } from '@angular/core';\nimport { FirstAndLastDate } from '../../interfaces/first-and-last-date';\nimport { Week } from '../../interfaces/week';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsCalendarMonthService {\n\n public getWeeks(month: Date) {\n const firstAndLast = this.getFirstAndLastDayOfMonth(month);\n const firstOfMonth = this.getMondayBefore(firstAndLast.first);\n const lastOfMonth = this.getSundayAfter(firstAndLast.last);\n const days = this.dateDiff(firstOfMonth, lastOfMonth) + 1;\n const firstDayOffset = (firstAndLast.first.getDay() + 7 - 1) % 7;\n const allDays = this.generateList(days).map(d => d - firstDayOffset).map(d => {\n const wrongDate = new Date(firstAndLast.first.getFullYear(), firstAndLast.first.getMonth(), firstAndLast.first.getDate() + d);\n const correctDate = new Date(wrongDate.getFullYear(), wrongDate.getMonth(), wrongDate.getDate());\n return {\n date: correctDate,\n dayOfMonth: correctDate.getDate(),\n isInMonth: (correctDate.getFullYear() === month.getFullYear()) && (correctDate.getMonth() === month.getMonth())\n };\n });\n const weeks = this.chunk(allDays, 7);\n const weeksMapped = weeks.map<Week>((w, i) => ({\n number: this.weekOfYear(new Date(month.getFullYear(), month.getMonth(), w.find(d => d.isInMonth)?.dayOfMonth)),\n days: w\n }));\n return weeksMapped;\n }\n \n generateList(count: number) {\n return [...Array(count).keys()];\n }\n\n dayOfWeekMondayBased(date: Date) {\n const d = date.getDay() - 1;\n if (d < 0) {\n return 6;\n } else {\n return d;\n }\n }\n\n weekOfYear(date: Date) {\n const dateClone = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n dateClone.setUTCDate(dateClone.getUTCDate() + 4 - (dateClone.getUTCDay() || 7));\n const yearStart = new Date(Date.UTC(dateClone.getUTCFullYear(), 0, 1));\n const utcDiff = this.toUTC(dateClone) - this.toUTC(yearStart);\n return Math.ceil((utcDiff / (1000 * 60 * 60 * 24) + 1) / 7);\n }\n\n getFirstAndLastDayOfMonth(date: Date) {\n const first = new Date(date.getFullYear(), date.getMonth(), 1);\n const last = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return <FirstAndLastDate>{ first, last };\n }\n\n dateDiff(date1: Date, date2: Date) {\n const utc1 = this.toUTC(date1);\n const utc2 = this.toUTC(date2);\n const msPerDay = 1000 * 60 * 60 * 24;\n return Math.floor((utc2 - utc1) / msPerDay);\n }\n\n dayOfYear(date: Date) {\n const start = new Date(date.getFullYear(), 0, 0);\n return this.dateDiff(start, date);\n }\n\n toUTC(date: Date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n chunk<T>(items: T[], size: number) {\n const result: T[][] = [];\n for (let i = 0; i < items.length; i += size) {\n result.push(items.slice(i, i + size));\n }\n return result;\n }\n\n getMondayBefore(date: Date) {\n const day = date.getDay(), diff = date.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\n const monday = new Date(date);\n monday.setDate(diff);\n return monday;\n }\n\n getSundayAfter(date: Date) {\n const day = date.getDay();\n const sunday = new Date(date);\n if (day !== 0) {\n const diff = date.getDate() + 7 - day;\n sunday.setDate(diff);\n }\n return sunday;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucFirst'\n})\nexport class UcFirstPipe implements PipeTransform {\n\n transform(value: string, ...args: any[]) {\n return value[0].toUpperCase() + value.slice(1);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monthName'\n})\nexport class MonthNamePipe implements PipeTransform {\n\n transform(date: Date | null, ...args: any[]) {\n if (date) {\n return date.toLocaleString(\"default\", { month: 'long' });\n } else {\n return '';\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { DateDayOfMonth } from '../../interfaces/date-day-of-month';\nimport { Week } from '../../interfaces/week';\nimport { WeekDay } from '../../interfaces/weekday';\nimport { BsCalendarMonthService } from '../../services/calendar-month/calendar-month.service';\n\n@Component({\n selector: 'bs-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n})\nexport class BsCalendarComponent implements OnDestroy {\n constructor(private calendarMonthService: BsCalendarMonthService) {\n this.weeks$ = this.currentMonth$\n .pipe(map((month) => this.calendarMonthService.getWeeks(month)))\n .pipe(takeUntil(this.destroyed$));\n this.shownDays$ = this.weeks$\n .pipe(filter((weeks) => weeks.length > 1))\n .pipe(map((weeks) => weeks[1].days))\n .pipe(\n map((days) => {\n const firstDay = days[0];\n if (firstDay) {\n return days.map((d) => {\n const date = new Date(\n firstDay.date.getFullYear(),\n firstDay.date.getMonth(),\n d?.dayOfMonth\n );\n return <WeekDay>{\n short: date.toLocaleString('default', { weekday: 'short' }),\n long: date.toLocaleString('default', { weekday: 'long' })\n };\n });\n } else {\n return [];\n }\n })\n );\n this.selectedDate$.pipe(takeUntil(this.destroyed$)).subscribe((date) => {\n this.selectedDateChange.emit(date);\n });\n this.currentMonth$.pipe(takeUntil(this.destroyed$)).subscribe((month) => {\n this.currentMonthChange.emit(month);\n });\n }\n\n private destroyed$ = new Subject();\n weeks$: Observable<Week[]>;\n shownDays$: Observable<WeekDay[]>;\n\n //#region CurrentMonth\n currentMonth$ = new BehaviorSubject<Date>(new Date());\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this.currentMonth$.value;\n }\n @Input() set currentMonth(value: Date) {\n this.currentMonth$.next(value);\n }\n //#endregion\n //#region SelectedDate\n selectedDate$ = new BehaviorSubject<Date>(new Date());\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this.selectedDate$.value;\n }\n @Input() set selectedDate(value: Date) {\n this.selectedDate$.next(value);\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n previousMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() - 1, 1)\n );\n });\n\n return false;\n }\n\n nextMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() + 1, 1)\n );\n });\n\n return false;\n }\n\n isSameDate(date1: Date | null, date2: Date | null) {\n if (date1 === null && date2 === null) return true;\n if (date1 === null || date2 === null) return false;\n\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n goto(day: DateDayOfMonth | null) {\n if (day) {\n this.selectedDate$.next(day.date);\n }\n }\n}\n","<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <i class=\"bi bi-chevron-left fw-bolder\"></i>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | ucFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <i class=\"bi bi-chevron-right fw-bolder\"></i>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n <th *ngFor=\"let dayOfWeek of shownDays$ | async\" [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n </tr>\n <tr *ngFor=\"let week of (weeks$ | async)\">\n <th>\n {{ week.number }}\n </th>\n <td [class.selected]=\"day === null ? false : isSameDate(selectedDate$ | async, day.date)\" *ngFor=\"let day of week.days\" (click)=\"goto(day)\">\n <span *ngIf=\"day !== null\" [class.text-muted]=\"!day.isInMonth\">{{ day.dayOfMonth }}</span>\n </td>\n </tr>\n</table>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonthNamePipe } from './month-name.pipe';\n\n@NgModule({\n declarations: [\n MonthNamePipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MonthNamePipe\n ]\n})\nexport class BsMonthNamePipeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UcFirstPipe } from './uc-first.pipe';\n\n@NgModule({\n declarations: [\n UcFirstPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n UcFirstPipe\n ]\n})\nexport class BsUcFirstPipeModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'weekdayName'\n})\nexport class WeekdayNamePipe implements PipeTransform {\n\n transform(date: Date, ...args: any[]): unknown {\n return date.toLocaleString(\"default\", { weekday: 'short' });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WeekdayNamePipe } from './weekday-name.pipe';\n\n\n\n@NgModule({\n declarations: [\n WeekdayNamePipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n WeekdayNamePipe\n ]\n})\nexport class BsWeekdayNameModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCalendarComponent } from './calendar.component';\nimport { BsMonthNamePipeModule } from '../../pipes/month-name/month-name.module';\nimport { BsUcFirstPipeModule } from '../../pipes/uc-first/uc-first.module';\nimport { BsWeekdayNameModule } from '../../pipes/weekday-name/weekday-name.module';\n\n@NgModule({\n declarations: [\n BsCalendarComponent\n ],\n imports: [\n CommonModule,\n BsUcFirstPipeModule,\n BsMonthNamePipeModule,\n BsWeekdayNameModule\n ],\n exports: [\n BsCalendarComponent\n ]\n})\nexport class BsCalendarModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class BsCardComponent {\n}\n","<div class=\"card\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-block\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss']\n})\nexport class BsCardHeaderComponent {\n}\n","<div class=\"card-header\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCardComponent } from './card/card.component';\nimport { BsCardHeaderComponent } from './card-header/card-header.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsCardComponent,\n BsCardHeaderComponent\n ],\n exports: [\n BsCardComponent,\n BsCardHeaderComponent\n ]\n})\nexport class BsCardModule {}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>) {\n this.itemTemplate = this.templateRef;\n }\n}\n","import { AfterContentInit, Component, ContentChildren, HostBinding, Input, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation, CarouselSlideAnimation } from '@mintplayer/ng-animations';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation, CarouselSlideAnimation]\n})\nexport class BsCarouselComponent implements OnDestroy, AfterContentInit {\n\n constructor() {\n this.currentImageIndex$ = this.currentImageCounter$\n .pipe(map((counter) => {\n const l = this.images.length;\n return ((counter % l) + l) % l;\n }))\n .pipe(takeUntil(this.destroyed$));\n this.currentImage$ = this.currentImageIndex$\n .pipe(map((index) => this.images.get(index)?.itemTemplate ?? null))\n .pipe(takeUntil(this.destroyed$));\n }\n\n @HostBinding('@.disabled') public animationsDisabled = false;\n @Input() public indicators = true;\n @ContentChildren(BsCarouselImageDirective) images!: QueryList<BsCarouselImageDirective>;\n \n private _animation: 'fade' | 'slide' = 'slide';\n\n destroyed$ = new Subject();\n currentImageCounter$ = new BehaviorSubject<number>(-1);\n currentImageIndex$: Observable<number>;\n currentImage$: Observable<TemplateRef<any> | null>;\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n ngAfterContentInit() {\n if (this.images.length > 0) {\n this.currentImageCounter$.next(0);\n } else {\n this.currentImageCounter$.next(-1);\n }\n }\n \n //#region Animation\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => {\n this.animationsDisabled = false;\n }, 20);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n previousImage() {\n this.currentImageCounter$\n .pipe(take(1))\n .subscribe((currentImageCounter) => {\n this.currentImageCounter$.next(currentImageCounter - 1);\n });\n }\n\n nextImage() {\n this.currentImageCounter$\n .pipe(take(1))\n .subscribe((currentImageCounter) => {\n this.currentImageCounter$.next(currentImageCounter + 1);\n });\n }\n\n setCurrentImage(index: number) {\n const currentValue = this.currentImageCounter$.value;\n const l = this.images.length;\n const counterMod = ((currentValue % l) + l) % l;\n const newValue = currentValue - counterMod + index;\n this.currentImageCounter$.next(newValue);\n }\n\n}\n","<div class=\"carousel slide\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ]\n})\nexport class BsCarouselModule { }\n","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const SNACKBAR_CONTENT = new InjectionToken<TemplateRef<any>>('SnackbarContent');","import { AnimationEvent } from '@angular/animations';\nimport { Component, EventEmitter, HostBinding, Inject, TemplateRef } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { SnackbarAnimationMeta } from '../interfaces/snackbar-animation-meta';\nimport { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';\n\n@Component({\n selector: 'bs-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsSnackbarComponent {\n\n constructor(@Inject(SNACKBAR_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n }\n \n @HostBinding('class.d-block') displayBlock = true;\n @HostBinding('class.w-100') width100 = true;\n content: TemplateRef<any>;\n\n private instance: SnackbarAnimationMeta | null = null;\n\n //#region Monitor @slideUpDown hooks\n animationState = '';\n animationStateChanged = new EventEmitter<AnimationEvent>();\n onAnimationChanged(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n //#endregion\n\n}\n","<div [@slideUpDown]=\"animationState\"\n (@slideUpDown.start)=\"onAnimationChanged($event)\"\n (@slideUpDown.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>","import { Directive, HostListener, Input } from '@angular/core';\nimport { BsSnackbarService } from '../../service/snackbar.service';\nimport { BsSnackbarComponent } from '../../component/snackbar.component';\n\n@Directive({\n selector: '[bsSnackbarClose]'\n})\nexport class BsSnackbarCloseDirective {\n constructor(private snackbarService: BsSnackbarService) { }\n\n @Input() public bsSnackbarClose!: BsSnackbarComponent;\n\n @HostListener('click') onClick() {\n this.snackbarService.hide(this.bsSnackbarClose);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsSnackbarComponent } from './component/snackbar.component';\nimport { BsSnackbarCloseDirective } from './directives/snackbar-close/snackbar-close.directive';\n\n@NgModule({\n declarations: [\n BsSnackbarComponent,\n BsSnackbarCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsSnackbarComponent,\n BsSnackbarCloseDirective\n ]\n})\nexport class BsSnackbarModule { }\n","import { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\nimport { filter, take } from 'rxjs';\nimport { BsSnackbarModule } from '../snackbar.module';\nimport { BsSnackbarComponent } from '../component/snackbar.component';\nimport { SnackbarAnimationMeta } from '../interfaces/snackbar-animation-meta';\nimport { SNACKBAR_CONTENT } from '../providers/snackbar-content.provider';\n\n@Injectable({\n providedIn: BsSnackbarModule\n})\nexport class BsSnackbarService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n ) { }\n\n public show(template: TemplateRef<any>) {\n const injector = Injector.create({\n providers: [{ provide: SNACKBAR_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsSnackbarComponent, null, injector);\n\n const overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0'),\n width: '100%'\n });\n\n const componentInstance = overlayRef.attach<BsSnackbarComponent>(portal);\n \n componentInstance.instance['instance'] = <SnackbarAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n\n return componentInstance.instance;\n }\n\n public hide(snackbar: BsSnackbarComponent) {\n snackbar.animationStateChanged.pipe(\n filter(ev => ev.phaseName === 'done' && ev.toState === 'void'),\n take(1)\n ).subscribe(() => {\n snackbar['instance']?.overlay.dispose()\n });\n\n snackbar.animationState = 'void';\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, EventEmitter, HostListener, Inject, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[bsCopy]',\n})\nexport class BsCopyDirective {\n private doc: Document;\n constructor(@Inject(DOCUMENT) doc: any) {\n this.doc = doc;\n }\n\n @Input() public bsCopy: string | null = null;\n @Output() public bsCopied = new EventEmitter<string>();\n\n @HostListener('click', ['$event']) click(event: MouseEvent) {\n event.preventDefault();\n const listener = (e: ClipboardEvent) => {\n if (!!this.bsCopy && !!window) {\n const clipboard = e.clipboardData || <DataTransfer | null>(<any>window)['clipboardData'] || null;\n if (clipboard) {\n clipboard.setData('text', this.bsCopy?.toString());\n e.preventDefault();\n this.bsCopied.emit(this.bsCopy);\n }\n }\n };\n this.doc.addEventListener('copy', listener, false);\n this.doc.execCommand('copy');\n this.doc.removeEventListener('copy', listener, false);\n }\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BsSnackbarService } from '../snackbar/service/snackbar.service';\n\n@Component({\n selector: 'bs-code-snippet',\n templateUrl: './code-snippet.component.html',\n styleUrls: ['./code-snippet.component.scss']\n})\nexport class BsCodeSnippetComponent {\n\n constructor(private snackbarService: BsSnackbarService) {\n }\n \n @Input() public htmlToCopy = '';\n @ViewChild('copiedTemplate') copiedTemplate!: TemplateRef<any>;\n\n copiedHtml() {\n const snackbar = this.snackbarService.show(this.copiedTemplate);\n setTimeout(() => this.snackbarService.hide(snackbar), 3000);\n }\n\n}\n","<div class=\"position-relative\">\n <button #copyBtn [bsCopy]=\"htmlToCopy\" (bsCopied)=\"copiedHtml()\" class=\"btn btn-link rounded-0 text-light position-absolute copy-btn\">\n Copy html\n </button>\n <pre class=\"white-space-normal\">\n <code class=\"d-block white-space-pre\" [highlight]=\"htmlToCopy\"></code>\n </pre>\n <ng-template #copiedTemplate>\n <div class=\"p-3\">Copied!</div>\n </ng-template>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsCopyDirective } from './copy.directive';\n\n@NgModule({\n declarations: [\n BsCopyDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsCopyDirective\n ]\n})\nexport class BsCopyModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HighlightModule } from 'ngx-highlightjs';\nimport { BsCodeSnippetComponent } from './code-snippet.component';\nimport { BsCopyModule } from '../copy/copy.module';\n\n@NgModule({\n declarations: [\n BsCodeSnippetComponent\n ],\n imports: [\n CommonModule,\n BsCopyModule,\n HighlightModule\n ],\n exports: [\n BsCodeSnippetComponent\n ]\n})\nexport class BsCodeSnippetModule { }\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Host, HostListener, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[bsContextMenu]'\n})\nexport class BsContextMenuDirective {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n private viewContainerRef: ViewContainerRef,\n @Host() @SkipSelf() private element: ElementRef\n ) {\n this.element.nativeElement.oncontextmenu = (ev: MouseEvent) => {\n ev.preventDefault();\n this.checkAndCloseExisting(ev);\n\n const target = {\n getBoundingClientRect: () => {\n console.log('getBoundingClientRect', {\n clientX: ev.clientX,\n clientY: ev.clientY,\n scrollY: window.scrollY,\n });\n return ({\n width: 0,\n height: 0,\n top: ev.clientY + window.scrollY,\n left: ev.clientX,\n bottom: ev.clientY + window.scrollY,\n right: ev.clientX,\n });\n },\n };\n const element = new ElementRef(target);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(element)\n .withPositions([\n { originX: \"end\", originY: \"top\", overlayX: \"start\", overlayY: \"top\" },\n { originX: \"end\", originY: \"bottom\", overlayX: \"start\", overlayY: \"bottom\" },\n { originX: \"start\", originY: \"top\", overlayX: \"end\", overlayY: \"top\" },\n { originX: \"start\", originY: \"bottom\", overlayX: \"end\", overlayY: \"bottom\" },\n ])\n });\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n view.rootNodes.forEach(node => node.classList.add('position-static'));\n };\n }\n\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n @HostListener('document:click', ['$event']) clickAnywhere(ev: MouseEvent) {\n this.checkAndCloseExisting(ev);\n }\n \n \n @HostListener('window:blur') private onBlur() {\n this.close();\n }\n\n private close() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private checkAndCloseExisting(ev: MouseEvent) {\n if (this.overlayRef && !this.overlayRef.overlayElement.contains(<any>ev.target)) {\n this.close();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsContextMenuDirective } from './context-menu.directive';\n\n@NgModule({\n declarations: [\n BsContextMenuDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsContextMenuDirective\n ]\n})\nexport class BsContextMenuModule { }\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { DatatableColumnMetadata } from './datatable-column-metadata';\n\n@Directive({\n selector: '[bsDatatableColumn]'\n})\nexport class BsDatatableColumnDirective {\n\n constructor(templateRef: TemplateRef<any>) {\n this.templateRef = templateRef;\n }\n\n templateRef: TemplateRef<any>;\n @Input() public bsDatatableColumn: DatatableColumnMetadata = { name: '', sortable: true };\n\n}\n","import { PaginationRequest } from \"@mintplayer/ng-pagination\";\n\nexport class DatatableSettings {\n constructor(data?: Partial<DatatableSettings>) {\n Object.assign(this, data);\n\n if (data && data.perPage) {\n this.perPage = data.perPage;\n } else {\n // Set default value\n this.perPage = {\n values: [10, 20, 50],\n selected: 20\n };\n }\n \n if (data && data.page) {\n this.page = data.page;\n } else {\n // Set default value\n this.page = {\n values: [1],\n selected: 1\n };\n }\n }\n\n public sortProperty = '';\n public sortDirection: 'ascending' | 'descending' = 'ascending';\n public perPage: { values: number[], selected: number };\n public page: { values: number[], selected: number };\n\n public toPagination() {\n const res = <PaginationRequest>{\n sortProperty: this.sortProperty,\n sortDirection: this.sortDirection,\n perPage: this.perPage.selected,\n page: this.page.selected\n };\n return res;\n }\n}","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { PageWithSelection } from '../../../interfaces/page-with-selection';\n\n@Component({\n selector: 'bs-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n})\nexport class BsPaginationComponent implements OnDestroy {\n constructor() {\n this.destroyed$ = new Subject();\n\n this.visibleNumberOfNumberBoxes$ = combineLatest([\n this.numberOfBoxes$,\n this.pageNumbers$,\n this.showArrows$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([numberOfBoxes, pageNumbers, showArrows]) => {\n if (numberOfBoxes <= 0) {\n return pageNumbers.length;\n } else if (!showArrows) {\n return Math.min(numberOfBoxes, pageNumbers.length);\n } else if (numberOfBoxes <= 2) {\n return Math.min(1, pageNumbers.length);\n } else {\n return Math.min(numberOfBoxes - 2, pageNumbers.length);\n }\n })\n );\n\n this.shownPageNumbers$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n this.visibleNumberOfNumberBoxes$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {\n let startIndex = 0;\n\n const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);\n if (pageNumbers.indexOf(selectedPageNumber) < half) {\n startIndex = 0;\n } else if (\n pageNumbers.indexOf(selectedPageNumber) >=\n pageNumbers.length - half\n ) {\n startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;\n } else {\n startIndex = pageNumbers.indexOf(selectedPageNumber) - half;\n }\n\n return [...Array(visibleNumberOfNumberBoxes).keys()]\n .map((p) => p + startIndex)\n .map((p) =><PageWithSelection>{\n page: pageNumbers[p],\n selected: pageNumbers[p] === selectedPageNumber,\n });\n })\n );\n\n this.isFirstPage$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber]) => {\n return pageNumbers.indexOf(selectedPageNumber) === 0;\n })\n );\n\n this.isLastPage$ = combineLatest([\n this.pageNumbers$,\n this.selectedPageNumber$,\n ])\n .pipe(takeUntil(this.destroyed$))\n .pipe(\n map(([pageNumbers, selectedPageNumber]) => {\n return (pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1);\n })\n );\n\n this.selectedPageNumber$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((selectedPageNumber) => {\n this.selectedPageNumberChange.emit(selectedPageNumber);\n });\n }\n\n /** All page numbers. */\n pageNumbers$ = new BehaviorSubject<number[]>([]);\n /** Page numbers to be displayed to the user. */\n shownPageNumbers$: Observable<PageWithSelection[]>;\n /** Selected number. */\n selectedPageNumber$ = new BehaviorSubject<number>(1);\n /** Number of boxes. */\n numberOfBoxes$ = new BehaviorSubject<number>(0);\n /** Display previous/next arrows. */\n showArrows$ = new BehaviorSubject<boolean>(true);\n\n /** Indicates if first value is selected. */\n isFirstPage$ = new Observable<boolean>();\n /** Indicates if last value is selected. */\n isLastPage$ = new Observable<boolean>();\n /** The number of boxes (excluding arrows) that's being shown on the pagination component. */\n visibleNumberOfNumberBoxes$ = new Observable<number>();\n /** Monitor OnDestroyed hook. */\n private destroyed$: Subject<any>;\n\n private _selectedPageNumber = 0;\n private _numberOfBoxes = 0;\n private _pageNumbers: number[] = [];\n private _showArrows = true;\n\n //#region SelectedPageNumber\n @Output() public selectedPageNumberChange = new EventEmitter<number>();\n @Input() set selectedPageNumber(value: number) {\n this._selectedPageNumber = value;\n this.selectedPageNumber$.next(value);\n }\n get selectedPageNumber() {\n return this._selectedPageNumber;\n }\n //#endregion\n\n //#region NumberOfBoxes\n @Input() set numberOfBoxes(value: number) {\n this._numberOfBoxes = value;\n this.numberOfBoxes$.next(value);\n }\n get numberOfBoxes() {\n return this._numberOfBoxes;\n }\n //#endregion\n\n //#region PageNumbers\n @Input() set pageNumbers(value: number[]) {\n this._pageNumbers = value;\n this.pageNumbers$.next(value);\n }\n get pageNumbers() {\n return this._pageNumbers;\n }\n //#endregion\n\n //#region ShowArrows\n @Input() set showArrows(value: boolean) {\n this._showArrows = value;\n this.showArrows$.next(value);\n }\n get showArrows() {\n return this._showArrows;\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n onSelectPage(event: MouseEvent, page: number) {\n this.selectedPageNumber$.next(page);\n return false;\n }\n\n onPrevious() {\n this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);\n return false;\n }\n\n onNext() {\n this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);\n return false;\n }\n}\n","<ul class=\"pagination\">\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isFirstPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">&laquo;</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n <li *ngFor=\"let pageNumber of (shownPageNumbers$ | async)\" class=\"page-item\"\n [ngClass]=\"{ 'active': pageNumber.selected }\">\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" *ngIf=\"pageNumber.page != '...'\">\n {{ pageNumber.page }}\n <span class=\"visually-hidden\" *ngIf=\"pageNumber.selected\">(current)</span>\n </a>\n </li>\n <li class=\"page-item\" *ngIf=\"showArrows$ | async\" [class.disabled]=\"isLastPage$ | async\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">&raquo;</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>","import { Component, ContentChildren, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PaginationResponse } from '@mintplayer/ng-pagination';\nimport { BsDatatableColumnDirective } from '../datatable-column/datatable-column.directive';\nimport { DatatableSettings } from '../datatable-settings';\n\n@Component({\n selector: 'bs-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss']\n})\nexport class BsDatatableComponent {\n\n constructor() {\n this.settings = new DatatableSettings();\n this.settings.sortProperty = '';\n this.settings.sortDirection = 'ascending';\n this.settings.perPage = { values: [10, 20, 50], selected: 20 };\n this.settings.page = { values: [1], selected: 1 };\n }\n\n @ContentChildren(BsDatatableColumnDirective) columns: BsDatatableColumnDirective[] = [];\n @Input() settings: DatatableSettings;\n @Input() data?: PaginationResponse<any>;\n rowTemplate?: TemplateRef<any>;\n @Output() reloadData: EventEmitter<any> = new EventEmitter();\n\n columnHeaderClicked(column: BsDatatableColumnDirective) {\n if (column.bsDatatableColumn.sortable) {\n if (this.settings.sortProperty !== column.bsDatatableColumn.name) {\n this.settings.sortProperty = column.bsDatatableColumn.name;\n this.settings.sortDirection = 'ascending';\n } else if (this.settings.sortDirection === 'descending') {\n this.settings.sortDirection = 'ascending';\n } else {\n this.settings.sortDirection = 'descending';\n }\n this.reloadData.emit();\n }\n }\n\n}\n","<div class=\"table-responsive overflow-y-hidden mb-3\">\n <table class=\"table table-striped table-hover w-100 mb-0\" cellspacing=\"0\" role=\"grid\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" class=\"text-nowrap\"\n [class.sort]=\"column.bsDatatableColumn.sortable\"\n [class.sort-asc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.bsDatatableColumn.sortable && (settings.sortProperty === column.bsDatatableColumn.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"!!data && !!rowTemplate\">\n <ng-container *ngFor=\"let item of data.data\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"reloadData.emit()\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n</div>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsDatatableComponent } from '../datatable/datatable.component';\n\n@Directive({\n selector: '[bsRowTemplate]'\n})\nexport class BsRowTemplateDirective {\n\n constructor(private datatableComponent: BsDatatableComponent, templateRef: TemplateRef<any>) {\n this.datatableComponent.rowTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsPaginationComponent } from './pagination/pagination.component';\n\n\n\n@NgModule({\n declarations: [\n BsPaginationComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsPaginationComponent\n ]\n})\nexport class BsPaginationModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDatatableComponent } from './datatable/datatable.component';\nimport { BsRowTemplateDirective } from './row-template/row-template.directive';\nimport { BsPaginationModule } from '../pagination/pagination.module';\nimport { BsDatatableColumnDirective } from './datatable-column/datatable-column.directive';\n\n@NgModule({\n declarations: [\n BsDatatableComponent,\n BsRowTemplateDirective,\n BsDatatableColumnDirective\n ],\n imports: [\n CommonModule,\n BsPaginationModule\n ],\n exports: [\n BsDatatableComponent,\n BsRowTemplateDirective,\n BsDatatableColumnDirective\n ]\n})\nexport class BsDatatableModule { }\n","import { Directive, ElementRef, forwardRef, HostBinding, HostListener, Inject, NgZone, PLATFORM_ID, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ClickOutsideDirective } from '@mintplayer/ng-click-outside';\nimport { Subject, take, takeUntil } from 'rxjs';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownMenu]'\n})\nexport class BsDropdownMenuDirective extends ClickOutsideDirective {\n constructor(\n @Inject(forwardRef(() => BsDropdownDirective)) private dropdown: BsDropdownDirective,\n private viewContainerRef: ViewContainerRef,\n private templateRef: TemplateRef<any>,\n private overlay: Overlay,\n\n elementRef: ElementRef<any>,\n zone: NgZone,\n @Inject(PLATFORM_ID) platformId: any\n ) {\n super(elementRef, zone, platformId);\n\n this.dropdown.isOpen$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isOpen) => {\n if (isOpen) {\n this.wait = true;\n setTimeout(() => this.wait = false, 100);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.dropdown.hasBackdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(!this.dropdown.toggle ? dropdown.elementRef : this.dropdown.toggle.toggleButton)\n .withPositions([\n // element: BottomLeft - dropdown: TopLeft\n { originX: \"start\", originY: \"bottom\", overlayX: \"start\", overlayY: \"top\", offsetY: 0 },\n // element: TopLeft - dropdown: BottomLeft\n { originX: \"start\", originY: \"top\", overlayX: \"start\", overlayY: \"bottom\", offsetY: 0 },\n ]),\n });\n\n if (this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {\n this.overlayRef.backdropClick().subscribe(() => {\n this.dropdown.isOpen = false;\n });\n }\n \n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n \n if (this.dropdown.sameDropdownWidth) {\n const width = this.dropdown.elementRef.nativeElement.offsetWidth;\n view.rootNodes[0].style.width = width + 'px';\n }\n } else {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n });\n }\n\n private wait = false;\n private destroyed$ = new Subject();\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n @HostBinding('class.show') get show() { return this.dropdown.isOpen; }\n @HostListener('clickOutside', ['$event']) clickedOutside(ev: MouseEvent) {\n if (!this.wait) {\n if (!this.overlayRef?.overlayElement.contains(<any>ev.target)) {\n this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {\n if (isOpen && !this.dropdown.hasBackdrop && this.dropdown.closeOnClickOutside) {\n this.dropdown.isOpen = false;\n }\n });\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { take } from 'rxjs';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownToggle]'\n})\nexport class BsDropdownToggleDirective {\n\n constructor(\n private dropdown: BsDropdownDirective,\n toggleButton: ElementRef) {\n this.toggleButton = toggleButton;\n }\n\n toggleButton: ElementRef;\n\n\n @HostListener('click')\n onClick() {\n this.dropdown.isOpen$.pipe(take(1)).subscribe((isOpen) => {\n this.dropdown.isOpen$.next(!isOpen);\n });\n }\n}\n","import { ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BsDropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from '../dropdown-toggle/dropdown-toggle.directive';\n\n@Directive({\n selector: '[bsDropdown]'\n})\nexport class BsDropdownDirective {\n\n constructor(elementRef: ElementRef<any>) {\n this.elementRef = elementRef;\n }\n\n isOpen$ = new BehaviorSubject<boolean>(false);\n\n elementRef: ElementRef<any>;\n @ContentChild(BsDropdownMenuDirective, {static: false}) menu!: BsDropdownMenuDirective;\n @ContentChild(BsDropdownToggleDirective, {static: false}) toggle: BsDropdownToggleDirective | null = null;\n \n @Input() public hasBackdrop = false;\n @Input() public sameWidth = false;\n @Input() public closeOnClickOutside = false;\n @Input() public sameDropdownWidth = false;\n\n //#region IsOpen\n public get isOpen() {\n return this.isOpen$.value;\n }\n @Output() public isOpenChange = new EventEmitter<boolean>();\n @Input() public set isOpen(value: boolean) {\n if (this.isOpen$.value !== value) {\n this.isOpen$.next(value);\n this.isOpenChange.emit(value);\n }\n }\n //#endregion\n\n @HostListener('window:blur') private onBlur() {\n this.isOpen = false;\n }\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bs-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss']\n})\nexport class BsDatepickerComponent {\n\n //#region SelectedDate\n _selectedDate = new Date();\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this._selectedDate;\n }\n @Input() set selectedDate(value: Date) {\n this._selectedDate = value;\n this.selectedDateChange.emit(value);\n }\n //#endregion\n\n //#region CurrentMonth\n _currentMonth = new Date();\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this._currentMonth;\n }\n @Input() set currentMonth(value: Date) {\n this._currentMonth = value;\n this.currentMonthChange.emit(value);\n }\n //#endregion\n\n}\n","<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">{{ selectedDate | date }}</button>\n <div *bsDropdownMenu>\n <bs-calendar [(selectedDate)]=\"selectedDate\" [(currentMonth)]=\"currentMonth\"></bs-calendar>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ClickOutsideModule } from '@mintplayer/ng-click-outside';\nimport { BsDropdownDirective } from './dropdown/dropdown.directive';\nimport { BsDropdownMenuDirective } from './dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';\n\n\n\n@NgModule({\n declarations: [\n BsDropdownDirective,\n BsDropdownToggleDirective,\n BsDropdownMenuDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ClickOutsideModule\n ],\n exports: [\n BsDropdownDirective,\n BsDropdownToggleDirective,\n BsDropdownMenuDirective\n ]\n})\nexport class BsDropdownModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDatepickerComponent } from './datepicker.component';\nimport { BsCalendarModule } from '../calendar/calendar.module';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\n\n\n\n@NgModule({\n declarations: [\n BsDatepickerComponent\n ],\n imports: [\n CommonModule,\n BsCalendarModule,\n BsDropdownModule\n ],\n exports: [\n BsDatepickerComponent\n ]\n})\nexport class BsDatepickerModule { }\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.scss']\n})\nexport class BsProgressComponent {\n @HostBinding('class.progress') private progressClass = true;\n @Input() @HostBinding('style.height.px') public height: number | null = null;\n @Input() public isIndeterminate = false;\n}\n","<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>","import { Component, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Color } from '../../../enums/color.enum';\nimport { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss']\n})\nexport class BsProgressBarComponent implements OnDestroy {\n\n constructor() {\n this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])\n .pipe(map(([minimum, maximum, value]) => {\n return (value - minimum) / (maximum - minimum) * 100;\n }));\n this.width$ = this.percentage$\n .pipe(map((width) => {\n return String(width) + '%';\n }));\n this.colorClass$ = this.color$\n .pipe(map((color) => {\n const name = Color[color];\n return `bg-${name}`;\n }));\n\n this.colorClass$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((color) => {\n this.colorClass = color;\n });\n this.width$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((width) => {\n this.widthStyle = width;\n });\n this.value$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueNow = value;\n });\n this.minimum$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueMin = value;\n });\n this.maximum$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.valueMax = value;\n });\n }\n\n destroyed$ = new Subject()\n minimum$ = new BehaviorSubject<number>(0);\n maximum$ = new BehaviorSubject<number>(100);\n value$ = new BehaviorSubject<number>(50);\n percentage$: Observable<number>;\n width$: Observable<string>;\n color$ = new BehaviorSubject<Color>(Color.primary);\n colorClass$: Observable<string>;\n\n @Input() public set minimum(value: number) {\n this.minimum$.next(value);\n }\n @Input() public set maximum(value: number) {\n this.maximum$.next(value);\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n }\n @Input() public set color(value: Color) {\n this.color$.next(value);\n }\n @Input() @HostBinding('class.progress-bar-striped') public striped = false;\n @Input() @HostBinding('class.progress-bar-animated') public animated = false;\n\n @HostBinding('class.progress-bar') progressBar = true;\n @HostBinding('class') colorClass = 'bg-primary';\n @HostBinding('style.width') widthStyle = '0';\n @HostBinding('attr.role') role = 'progressbar';\n @HostBinding('attr.aria-valuenow') valueNow = 50;\n @HostBinding('attr.aria-valuemin') valueMin = 0;\n @HostBinding('attr.aria-valuemax') valueMax = 100;\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[bsFor]'\n})\nexport class BsForDirective {\n\n @HostBinding('class.cursor-default') defaultCursor = true;\n\n @Input() bsFor: any;\n @HostListener('click') onMouseClick() {\n if (!('tagName' in this.bsFor)) {\n this.bsFor.focus();\n } else if (this.bsFor.tagName.toLowerCase() !== 'input') {\n this.bsFor.focus();\n } else if (this.bsFor.type.toLowerCase() === 'file') {\n this.bsFor.click();\n } else {\n this.bsFor.focus();\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes'\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, EventEmitter, HostListener, Input, Output, TemplateRef } from '@angular/core';\nimport { FileUpload } from '../file-upload';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss']\n})\nexport class BsFileUploadComponent {\n\n @Input() public dropFilesCaption = 'Drop your files here';\n @Input() public browseFilesCaption = 'Browse for files';\n @Input() public placeholder = 'Drop files to upload';\n\n isDraggingFile = false;\n fileTemplate?: TemplateRef<FileUpload>;\n @Input() public files: FileUpload[] = [];\n @Output() public filesDropped = new EventEmitter<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n \n this.processDroppedFiles(files);\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n \n if (event.dataTransfer) {\n this.isDraggingFile = true;\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map(f => <FileUpload>{ file: f, progress: 0 });\n \n this.files.push(...newFiles);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<ul class=\"list-group files-list\">\n <li class=\"list-group-item\" *ngFor=\"let upload of files\">\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </li>\n</ul>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\n\n@Directive({\n selector: '[bsFileUploadTemplate]'\n})\nexport class BsFileUploadTemplateDirective {\n\n constructor(fileUploadComponent: BsFileUploadComponent, templateRef: TemplateRef<any>) {\n fileUploadComponent.fileTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsForDirective } from './for.directive';\n\n@NgModule({\n declarations: [\n BsForDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsForDirective\n ]\n})\nexport class BsForModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsProgressComponent } from './progress/progress.component';\nimport { BsProgressBarComponent } from './progress-bar/progress-bar.component';\n\n\n\n@NgModule({\n declarations: [\n BsProgressBarComponent,\n BsProgressComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsProgressBarComponent,\n BsProgressComponent\n ]\n})\nexport class BsProgressBarModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsFormatBytesPipe } from './format-bytes.pipe';\n\n@NgModule({\n declarations: [\n BsFormatBytesPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsFormatBytesPipe\n ]\n})\nexport class BsFormatBytesModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsForModule } from '../for/for.module';\nimport { BsProgressBarModule } from '../progress-bar';\nimport { BsFormatBytesModule } from '../../pipes/format-bytes/format-bytes.module';\nimport { BsFileUploadComponent } from './component/file-upload.component';\nimport { BsFileUploadTemplateDirective } from './directive/file-upload-template.directive';\n\n@NgModule({\n declarations: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective\n ],\n imports: [\n CommonModule,\n BsForModule,\n BsFormatBytesModule,\n BsProgressBarModule\n ],\n exports: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective\n ]\n})\nexport class BsFileUploadModule { }\n","export enum ESchedulerMode {\n week,\n timeline\n}","export enum EDragOperation {\n none,\n createEvent,\n resizeEvent,\n moveEvent,\n}","import { Injectable } from '@angular/core';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimelineTrack } from '../../interfaces/timeline-track';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsTimelineService {\n\n public splitInParts(event: SchedulerEvent | PreviewEvent) {\n let startTime = event.start;\n const result: SchedulerEventPart[] = [];\n const eventOrNull = 'color' in event ? event : null;\n while (!this.dateEquals(startTime, event.end)) {\n const end = new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate() + 1, 0, 0, 0);\n result.push({ start: startTime, end: end, event: eventOrNull });\n startTime = end;\n }\n if (startTime != event.end) {\n result.push({ start: startTime, end: event.end, event: eventOrNull });\n }\n\n return <SchedulerEventWithParts>{ event: event, parts: result };\n }\n \n private dateEquals(date1: Date, date2: Date) {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n public getTimeline(events: SchedulerEvent[]) {\n const timestamps = this.getTimestamps(events);\n const tracks: TimelineTrack[] = [];\n\n timestamps.forEach((timestamp, tIndex) => {\n const starting = events.filter((e) => e.start === timestamp);\n // const ending = events.filter((e) => e.end === timestamp);\n\n starting.forEach((startedEvent, eIndex) => {\n const freeTracks = tracks.filter(t => this.trackIsFreeAt(t, startedEvent));\n if (freeTracks.length === 0) {\n tracks.push({ index: tracks.length, events: [startedEvent] });\n } else {\n freeTracks[0].events.push(startedEvent);\n }\n });\n });\n\n return tracks;\n }\n\n private getTimestamps(events: SchedulerEvent[]) {\n const allTimestamps = events.map(e => [e.start, e.end])\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n \n return allTimestamps\n .filter((t, i) => allTimestamps.indexOf(t) === i)\n .sort((t1, t2) => <any>t1 - <any>t2);\n }\n\n private trackIsFreeAt(track: TimelineTrack, event: SchedulerEvent) {\n if (track.events.every((ev) => (ev.end <= event.start) || (event.end <= ev.start))) {\n return true;\n } else {\n return false;\n }\n }\n\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { Resource, ResourceGroup } from '../../interfaces';\nimport { ResourceOrGroup } from '../../interfaces/resource-or-group';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { TimeSlot } from '../../interfaces/time-slot';\n\n@Component({\n selector: 'bs-resource-group-presenter',\n templateUrl: './resource-group-presenter.component.html',\n styleUrls: ['./resource-group-presenter.component.scss'],\n \n})\nexport class ResourceGroupPresenterComponent implements OnDestroy {\n \n constructor() {\n this.data$ = this.resourceOrGroup$\n .pipe(map((resourceOrGroup) => {\n if (!resourceOrGroup) {\n return null;\n } else if ('children' in resourceOrGroup) {\n return <ResourceOrGroup>{\n resource: null,\n resourceGroup: resourceOrGroup\n };\n } else {\n return <ResourceOrGroup>{\n resource: resourceOrGroup,\n resourceGroup: null\n };\n }\n }))\n .pipe(filter((resourceOrGroup) => !!resourceOrGroup))\n .pipe(map((resourceOrGroup) => <ResourceOrGroup>resourceOrGroup));\n\n this.colSpan$ = this.timeSlots$\n .pipe(map(timeSlots => timeSlots\n .map(timeslot => timeslot.slots.length)\n .reduce((sum, current) => sum + current, 0)\n ));\n }\n\n @Input() level = 0;\n resourceOrGroup$ = new BehaviorSubject<Resource | ResourceGroup | null>(null);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n isExpanded$ = new BehaviorSubject<boolean>(false);\n data$: Observable<ResourceOrGroup>;\n colSpan$: Observable<number>;\n destroyed$ = new Subject();\n\n //#region resourceOrGroup\n public get resourceOrGroup() {\n return this.resourceOrGroup$.value;\n }\n @Input() public set resourceGroup(value: Resource | ResourceGroup | null) {\n this.resourceOrGroup$.next(value);\n }\n //#endregion\n\n //#region timeSlots\n public get timeSlots() {\n return this.timeSlots$.value;\n }\n @Input() public set timeSlots(value: SchedulerStampWithSlots[]) {\n this.timeSlots$.next(value);\n }\n //#endregion\n\n //#region isExpanded\n public get isExpanded() {\n return this.isExpanded$.value;\n }\n @Input() public set isExpanded(value: boolean) {\n this.isExpanded$.next(value);\n }\n //#endregion\n\n toggleExpanded() {\n this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {\n this.isExpanded$.next(!isExpanded);\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","<ng-container *ngIf=\"(data$ | async) as data\">\n\n <!-- Data is a resource group -->\n <ng-container *ngIf=\"data.resourceGroup\">\n <!-- Header -->\n <tr class=\"p-0 cursor-pointer\" *ngIf=\"(timeSlots$ | async) as timeSlots\" [title]=\"data.resourceGroup.description\">\n <ng-container *ngIf=\"(colSpan$ | async) as colspan\">\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n <i class=\"bi bi-chevron-down\" [style.padding-left.px]=\"level * 20\" *ngIf=\"isExpanded$ | async\"></i>\n <i class=\"bi bi-chevron-right\" [style.padding-left.px]=\"level * 20\" *ngIf=\"(isExpanded$ | async) === false\"></i>\n {{ data.resourceGroup.description }}\n </span>\n </td>\n </ng-container>\n </tr>\n\n <!-- Subgroups or resources -->\n <ng-container *ngIf=\"isExpanded$ | async\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <ng-container *ngFor=\"let child of data.resourceGroup.children\">\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- Data is a resource -->\n <tr *ngIf=\"data.resource\" class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n <ng-container *ngFor=\"let slots of (timeSlots$ | async)\">\n <td class=\"bg-white border-1\" *ngFor=\"let slot of slots.slots\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n </ng-container>\n </tr>\n</ng-container>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTodayOffset'\n})\nexport class BsSecondsTodayOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTimespan'\n})\nexport class BsSecondsTimespanPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n return (value.end.getTime() - value.start.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dayOfWeek'\n})\nexport class DayOfWeekPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const dayOfWeek = value.start.getDay();\n if (dayOfWeek === 0) {\n return 7;\n } else {\n return dayOfWeek;\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, take, takeUntil } from 'rxjs';\nimport { ESchedulerMode } from '../../enums/scheduler-mode';\nimport { BsCalendarMonthService } from '../../../../services/calendar-month/calendar-month.service';\nimport { EDragOperation } from '../../enums/drag-operation';\nimport { DragOperation } from '../../interfaces/drag-operation';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimeSlot } from '../../interfaces/time-slot';\nimport { BsTimelineService } from '../../services/timeline/timeline.service';\nimport { ResourceGroup } from '../../interfaces/resource-group';\nimport { Resource } from '../../interfaces';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { WeekOptions } from '../../interfaces/week-options';\nimport { TimelineOptions } from '../../interfaces/timeline-options';\n\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n})\nexport class BsSchedulerComponent implements OnDestroy {\n constructor(private calendarMonthService: BsCalendarMonthService, private timelineService: BsTimelineService) {\n const monday = this.calendarMonthService.getMondayBefore(new Date());\n this.currentWeekOrMonth$ = new BehaviorSubject<Date>(monday);\n\n this.shownDays$ = combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentDay, mode]) => {\n currentDay.setHours(0);\n currentDay.setMinutes(0);\n currentDay.setSeconds(0);\n currentDay.setMilliseconds(0);\n switch (mode) {\n case ESchedulerMode.week: {\n return Array.from(Array(7).keys()).map((x) => this.addDays(currentDay, x));\n }\n case ESchedulerMode.timeline: {\n const firstDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), 1);\n const daysOfMonth = new Date(currentDay.getFullYear(), currentDay.getMonth() + 1, 0).getDate();\n return Array.from(Array(daysOfMonth).keys()).map((x) => this.addDays(firstDay, x));\n }\n }\n })\n );\n\n this.daysOfWeekWithTimestamps$ = this.shownDays$\n .pipe(map((shownDays) => ({ start: shownDays[0].getTime(), end: shownDays[shownDays.length - 1].getTime() + 24 * 60 * 60 * 1000 })));\n \n this.events$ = this.resources$\n .pipe(map((resourcesOrGroups) => resourcesOrGroups.map(resOrGroup => this.getResourcesForGroup(resOrGroup))))\n .pipe(map(jaggedResources => jaggedResources.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n .pipe(map(resources => resources.map(res => res.events)))\n .pipe(map(jaggedEvents => jaggedEvents.reduce((flat, toFlatten) => flat.concat(toFlatten), [])));\n\n // groups.reduce((flat, toFlatten) => flat.concat(toFlatten.children), [])\n this.eventParts$ = this.events$.pipe(\n map((events) => events.map((ev) => this.timelineService.splitInParts(ev)))\n );\n\n this.eventPartsForThisWeek$ = combineLatest([\n this.daysOfWeekWithTimestamps$,\n this.eventParts$\n .pipe(map(eventParts => eventParts.map(evp => evp.parts)))\n .pipe(map(jaggedParts => jaggedParts.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n ])\n .pipe(map(([startAndEnd, eventParts]) => {\n return eventParts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n }));\n\n this.previewEventParts$ = this.previewEvent$.pipe(\n map((event) => {\n if (event) {\n return this.timelineService.splitInParts(event)\n } else {\n return null;\n }\n })\n );\n this.previewEventPartsForThisWeek$ = combineLatest([this.daysOfWeekWithTimestamps$, this.previewEventParts$])\n .pipe(map(([startAndEnd, previewEventParts]) => {\n if (previewEventParts) {\n return previewEventParts.parts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n } else {\n return [];\n }\n }));\n\n this.timelinedEventPartsForThisWeek$ = this.eventPartsForThisWeek$\n .pipe(map(eventParts => {\n // We'll only use the events for this week\n const events = eventParts.map(ep => ep.event)\n .filter((e, i, list) => list.indexOf(e) === i)\n .filter((e) => !!e)\n .map((e) => <SchedulerEvent>e);\n const timeline = this.timelineService.getTimeline(events);\n\n const result = timeline.map(track => track.events.map(ev => ({ event: ev, index: track.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), [])\n .map((evi) => eventParts.filter(p => p.event === evi.event).map(p => ({ part: p, index: evi.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n\n return {\n total: timeline.length,\n parts: result\n };\n }));\n\n combineLatest([this.mode$, this.shownDays$, this.timeSlotDuration$])\n .pipe(filter(([mode, shownDays, duration]) => mode !== null))\n .pipe(map(([mode, shownDays, duration]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n const timeSlotsPerDay = Math.floor((60 * 60 * 24) / duration);\n return Array.from(Array(timeSlotsPerDay).keys()).map((index) => {\n const timeslotForMonday = this.createTimeslot(shownDays[0], index, duration);\n\n return <SchedulerStampWithSlots>{\n slots: shownDays.map((day) => {\n const start = new Date(day);\n start.setHours(timeslotForMonday.start.getHours());\n start.setMinutes(timeslotForMonday.start.getMinutes());\n start.setSeconds(timeslotForMonday.start.getSeconds());\n start.setMilliseconds(timeslotForMonday.start.getMilliseconds());\n \n const end = new Date(day);\n end.setHours(timeslotForMonday.end.getHours());\n end.setMinutes(timeslotForMonday.end.getMinutes());\n end.setSeconds(timeslotForMonday.end.getSeconds());\n end.setMilliseconds(timeslotForMonday.end.getMilliseconds());\n end.setDate(end.getDate() + timeslotForMonday.end.getDate() - timeslotForMonday.start.getDate());\n \n return <TimeSlot>{ start, end };\n }),\n stamp: timeslotForMonday.start\n };\n });\n }\n case ESchedulerMode.timeline: {\n const totalTimeslots = (24 * 60 * 60) / duration;\n return shownDays.map((day) => {\n return <SchedulerStampWithSlots>{\n slots: Array.from(Array(totalTimeslots).keys())\n .map((index) => {\n return this.createTimeslot(day, index, duration);\n }),\n stamp: day\n } \n });\n }\n default: {\n throw 'Unknown value for Mode: ' + mode;\n }\n }\n }))\n .subscribe((timeslots) => {\n // For performance reasons, we're not using an observable here, but persist the timeslots in a BehaviorSubject.\n this.timeSlots$.next(timeslots);\n });\n \n this.weekOptions$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((weekOptions) => {\n this.weekOptionsChange.emit(weekOptions);\n });\n this.timelineOptions$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((timelineOptions) => {\n this.timelineOptionsChange.emit(timelineOptions);\n });\n\n // combineLatest([this.mode$, this.scale$])\n // .pipe(filter(([mode, scale]) => mode === ESchedulerMode.timeline))\n\n }\n\n resources$ = new BehaviorSubject<(Resource | ResourceGroup)[]>([]);\n events$: Observable<SchedulerEvent[]>;\n eventParts$: Observable<SchedulerEventWithParts[]>;\n eventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n timelinedEventPartsForThisWeek$: Observable<{ total: number, parts: { part: SchedulerEventPart, index: number}[] }>;\n weekOptions$ = new BehaviorSubject<WeekOptions>({ unitHeight: 30 });\n timelineOptions$ = new BehaviorSubject<TimelineOptions>({ unitWidth: 50 });\n \n previewEvent$ = new BehaviorSubject<PreviewEvent | null>(null);\n previewEventParts$: Observable<SchedulerEventWithParts | null>;\n previewEventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n \n currentWeekOrMonth$: BehaviorSubject<Date>;\n shownDays$: Observable<Date[]>;\n daysOfWeekWithTimestamps$: Observable<{start: number, end: number}>;\n timeSlotDuration$ = new BehaviorSubject<number>(1800);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n mouseState$ = new BehaviorSubject<boolean>(false);\n hoveredTimeSlot$ = new BehaviorSubject<TimeSlot | null>(null);\n hoveredEvent$ = new BehaviorSubject<SchedulerEvent | null>(null);\n destroyed$ = new Subject();\n\n @ViewChildren('slot') timeSlotElements!: QueryList<ElementRef<HTMLDivElement>>;\n\n createTimeslot(date: Date, index: number, duration: number) {\n const timeSlotStart = new Date(date);\n timeSlotStart.setTime(+timeSlotStart.getTime() + index * duration * 1000);\n const timeSlotEnd = new Date(timeSlotStart);\n timeSlotEnd.setTime(+timeSlotEnd.getTime() + duration * 1000);\n\n return <TimeSlot>{ start: timeSlotStart, end: timeSlotEnd };\n }\n\n getResourcesForGroup(resourceOrGroup: Resource | ResourceGroup) : Resource[] {\n if ('children' in resourceOrGroup) {\n return resourceOrGroup.children\n .map((child) => this.getResourcesForGroup(child))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n } else {\n return [resourceOrGroup];\n }\n }\n\n //#region Mode\n modes = ESchedulerMode;\n mode$ = new BehaviorSubject<ESchedulerMode>(ESchedulerMode.week);\n @Output() public modeChange = new EventEmitter<ESchedulerMode>();\n public get mode() {\n return this.mode$.value;\n }\n @Input() public set mode(value: ESchedulerMode) {\n this.mode$.next(value);\n }\n //#endregion\n // //#region Scale\n // scale$ = new BehaviorSubject<SchedulerScale>(availableScales[4]);\n // @Output() public scaleChange = new EventEmitter<SchedulerScale>();\n // public get scale() {\n // return this.scale$.value;\n // }\n // @Input() public set scale(value: SchedulerScale) {\n // this.scale$.next(value);\n // }\n // //#endregion\n //#region WeekOptions\n @Output() public weekOptionsChange = new EventEmitter<WeekOptions>();\n public get weekOptions() {\n return this.weekOptions$.value;\n }\n @Input() public set weekOptions(value: WeekOptions) {\n this.weekOptions$.next(value);\n }\n //#endregion\n //#region TimelineOptions\n @Output() public timelineOptionsChange = new EventEmitter<TimelineOptions>();\n public get timelineOptions() {\n return this.timelineOptions$.value;\n }\n @Input() public set timelineOptions(value: TimelineOptions) {\n this.timelineOptions$.next(value);\n }\n //#endregion\n //#region maxInnerHeight\n @Input() public maxInnerHeight: number | null = null;\n //#endregion\n //#region Resources\n public get resources() {\n return this.resources$.value;\n }\n @Input() public set resources(value: (Resource | ResourceGroup)[]) {\n this.resources$.next(value);\n }\n //#endregion\n\n private addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n onPreviousWeekOrMonth() {\n this.onChangeWeekOrMonth(false);\n }\n\n onNextWeekOrMonth() {\n this.onChangeWeekOrMonth(true);\n }\n\n private onChangeWeekOrMonth(next: boolean) {\n combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentWeekOrMonth, mode]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n return this.addDays(currentWeekOrMonth, (next ? 7 : -7));\n }\n case ESchedulerMode.timeline: {\n return new Date(currentWeekOrMonth.getFullYear(), currentWeekOrMonth.getMonth() + (next ? 1 : -1), 1);\n }\n }\n }), take(1))\n .subscribe((w) => this.currentWeekOrMonth$.next(w));\n }\n\n onHoverEvent(ev: SchedulerEvent | null) {\n console.log('hovered', ev);\n this.hoveredEvent$.next(ev);\n }\n\n onLeaveEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(null);\n }\n\n operation: DragOperation | null = null;\n dragStartTimeslot: TimeSlot | null = null;\n onCreateEvent(ev: MouseEvent, slot: TimeSlot) {\n ev.preventDefault();\n this.mouseState$.next(true);\n this.dragStartTimeslot = slot;\n this.operation = {\n operation: EDragOperation.createEvent,\n event: {\n start: slot.start,\n end: slot.end,\n color: '#F00',\n description: 'Test event',\n },\n meta: null,\n };\n this.previewEvent$.next({ start: slot.start, end: slot.end });\n }\n\n randomColor() {\n const brightness = 128;\n return '#' + this.randomChannel(brightness) + this.randomChannel(brightness) + this.randomChannel(brightness);\n }\n randomChannel(brightness: number){\n const r = 255-brightness;\n const n = 0|((Math.random() * r) + brightness);\n const s = n.toString(16);\n return (s.length==1) ? '0'+s : s;\n }\n\n onStartDragEvent(eventPart: SchedulerEventPart, ev: MouseEvent) {\n ev.preventDefault();\n this.hoveredTimeSlot$.pipe(take(1)).subscribe((hoveredTimeSlot) => {\n if (eventPart.event) {\n this.dragStartTimeslot = hoveredTimeSlot;\n this.operation = {\n operation: EDragOperation.moveEvent,\n event: eventPart.event,\n meta: null,\n };\n this.previewEvent$.next({ start: eventPart.event.start, end: eventPart.event.end });\n }\n });\n }\n\n onStartResizeEvent(event: SchedulerEvent | null, position: 'top' | 'bottom') {\n if (event) {\n switch (position) {\n case 'top': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n case 'bottom': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n }\n }\n }\n\n //#region hoveredTimeslot$\n private getHoveredTimeslot(ev: MouseEvent, timeSlots: SchedulerStampWithSlots[]) {\n const hoveredSlots = this.timeSlotElements.filter((el) => {\n const rct = el.nativeElement.getBoundingClientRect();\n if (rct.left <= ev.x && ev.x <= rct.right && rct.top <= ev.y && ev.y <= rct.bottom) {\n return true;\n } else {\n return false;\n }\n });\n\n if (!hoveredSlots || hoveredSlots.length === 0) {\n return null;\n }\n\n const slotElement = hoveredSlots[0].nativeElement;\n\n const strRow = slotElement.getAttribute('data-row');\n if (!strRow) {\n return null;\n }\n const row = parseInt(strRow);\n\n const strColumn = slotElement.getAttribute('data-column');\n if (!strColumn) {\n return null;\n }\n const column = parseInt(strColumn);\n\n const slot = timeSlots[row].slots[column];\n return slot;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove(ev: MouseEvent) {\n this.timeSlots$.pipe(take(1)).subscribe((timeSlots) => {\n const hovered = this.getHoveredTimeslot(ev, timeSlots);\n this.hoveredTimeSlot$.next(hovered);\n\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n if (this.operation.event && this.dragStartTimeslot && hovered && (this.operation.event.end.getTime() != hovered.end.getTime())) {\n if (this.dragStartTimeslot.start.getTime() === hovered.start.getTime()) {\n // 1 slot\n } else if (this.dragStartTimeslot.start.getTime() < hovered.start.getTime()) {\n // Drag down\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = this.dragStartTimeslot.start;\n ev.end = hovered.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n } else if (this.dragStartTimeslot.start.getTime() > hovered.start.getTime()) {\n // Drag up\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = hovered.start;\n ev.end = this.dragStartTimeslot.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n }\n } break;\n case EDragOperation.moveEvent: {\n if (hovered && this.dragStartTimeslot) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n const result = <PreviewEvent>{\n start: new Date(ev.start.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime()),\n end: new Date(ev.end.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime())\n };\n \n this.dragStartTimeslot = hovered;\n\n return result;\n } else {\n return ev;\n }\n }))\n .pipe(take(1))\n .subscribe(ev => this.previewEvent$.next(ev));\n }\n } break;\n case EDragOperation.resizeEvent: {\n if (hovered) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(map((ev) => {\n if (ev && this.operation && this.operation.event) {\n if (this.operation.meta.position === 'top') {\n ev.start = hovered.start;\n ev.end = this.operation.event.end;\n } else if (this.operation.meta.position === 'bottom') {\n ev.start = this.operation.event.start;\n ev.end = hovered.end;\n }\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n } break;\n }\n }\n\n });\n }\n //#endregion\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n combineLatest([this.previewEvent$])\n .pipe(take(1))\n .subscribe(([previewEvent]) => {\n if (previewEvent) {\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next([\n ...this.resources$.value,\n <Resource>{\n description: 'New resource group',\n events: [{\n start: previewEvent.start,\n end: previewEvent.end,\n color: this.randomColor(),\n description: 'New event'\n }]\n }\n ]);\n this.previewEvent$.next(null);\n }\n });\n } break;\n case EDragOperation.moveEvent:\n case EDragOperation.resizeEvent: {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(take(1))\n .subscribe((previewEvent) => {\n if (this.operation && this.operation.event && previewEvent) {\n this.operation.event.start = previewEvent.start;\n this.operation.event.end = previewEvent.end;\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next(this.resources$.value);\n this.previewEvent$.next(null);\n }\n });\n } break;\n }\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","<div class=\"table d-flex w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\"\n *ngIf=\"(mode$ | async) === modes.week\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <i class=\"bi-chevron-left px-0\"></i>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <i class=\"bi-chevron-right px-0\"></i>\n </button>\n </div>\n <div class=\"flex-grow-1 calendar-head-cell\" *ngFor=\"let day of (shownDays$ | async)\">\n <span class=\"d-block col-form-label text-center\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n <div class=\"position-relative\" *ngIf=\"(timeSlots$ | async) as row\">\n <ng-container *ngIf=\"(weekOptions$ | async) as weekOptions\">\n <!-- Timeslots -->\n <div *ngFor=\"let timeslots of row; let i = index\" class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n <div class=\"calendar-cell flex-grow-1\" *ngFor=\"let slot of timeslots.slots; let j = index\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n </div>\n\n <!-- Events -->\n <ng-container *ngIf=\"(timeSlotDuration$ | async) as timeSlotDuration\">\n <ng-container *ngIf=\"(timelinedEventPartsForThisWeek$ | async) as partData\">\n <div *ngFor=\"let eventPart of partData.parts\" class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n\n <div class=\"event-resize top\"\n *ngIf=\"eventPart.part.start === eventPart.part.event?.start\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n <div class=\"event-border\"></div>\n <div class=\"event-wrapper\" *ngIf=\"eventPart.part.event\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n <div class=\"event-resize bottom\"\n *ngIf=\"eventPart.part.end === eventPart.part.event?.end\"\n (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"(previewEventPartsForThisWeek$ | async) as previewPartData\">\n <div *ngFor=\"let eventPart of previewPartData\" class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<div class=\"table d-flex w-100 overflow-y-auto mb-0 bg-white timeline\" *ngIf=\"(mode$ | async) === modes.timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <i class=\"bi-chevron-left px-0\"></i>\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 <i class=\"bi-chevron-right px-0\"></i>\n </button>\n </div>\n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n <ng-container *ngIf=\"(timeSlots$ | async) as timeSlots\">\n <tr>\n <td></td>\n <td *ngFor=\"let day of timeSlots\" [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n </tr>\n <tr>\n <td></td>\n <ng-container *ngIf=\"(timelineOptions$ | async) as timelineOptions\">\n <ng-container *ngFor=\"let day of timeSlots\">\n <td *ngFor=\"let slot of day.slots\">\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n <bs-resource-group-presenter *ngFor=\"let group of (resources$ | async)\" [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n </ng-container>\n </table>\n </div>\n</div>","import { SchedulerScale } from \"../interfaces/scheduler-schale\";\n\nexport const availableScales: SchedulerScale[] = [\n { time: 60, pixels: 60, markerSize: 900 }, // 60s / 60px = 1 s/px = 1 min / 60 px\n { time: 120, pixels: 60, markerSize: 900 }, // 120s / 60px = 2 s/px = 2 min / 60 px\n { time: 300, pixels: 60, markerSize: 900 }, // 180s / 60px = 3 s/px = 5 min / 60 px\n { time: 900, pixels: 60, markerSize: 900 }, // 360s / 60px = 6 s/px = 15 min / 60 px\n\n { time: 3600, pixels: 60, markerSize: 21600 }, // 600s / 60px = 10 s/px = 1 u / 60 px\n { time: 7200, pixels: 60, markerSize: 21600 }, // 1200s / 60px = 20 s/px\n { time: 10800, pixels: 60, markerSize: 21600 }, // 1800s / 60px = 30 s/px\n { time: 21600, pixels: 60, markerSize: 21600 }, // 3600s / 60px = 60 s/px\n\n { time: 86400, pixels: 60, markerSize: 604800 }, // 6000s / 60px = 100 s/px\n]","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dateOffset'\n})\nexport class DateOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSecondsTimespanPipe } from './pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe';\nimport { BsSecondsTodayOffsetPipe } from './pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe';\nimport { DateOffsetPipe } from './pipes/date-offset/date-offset.pipe';\nimport { DayOfWeekPipe } from './pipes/day-of-week/day-of-week.pipe';\nimport { BsSchedulerComponent } from './components/scheduler/scheduler.component';\nimport { ResourceGroupPresenterComponent } from './components/resource-group-presenter/resource-group-presenter.component';\n\n@NgModule({\n declarations: [\n BsSchedulerComponent,\n BsSecondsTimespanPipe,\n BsSecondsTodayOffsetPipe,\n DateOffsetPipe,\n DayOfWeekPipe,\n ResourceGroupPresenterComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsSchedulerComponent,\n ResourceGroupPresenterComponent\n ]\n})\nexport class BsSchedulerModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-list-group-item',\n templateUrl: './list-group-item.component.html',\n styleUrls: ['./list-group-item.component.scss']\n})\nexport class BsListGroupItemComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","<li class=\"list-group-item\">\n <ng-content></ng-content>\n</li>","import { Component, ContentChildren, OnInit, QueryList } from '@angular/core';\nimport { BsListGroupItemComponent } from '../list-group-item/list-group-item.component';\n\n@Component({\n selector: 'bs-list-group',\n templateUrl: './list-group.component.html',\n styleUrls: ['./list-group.component.scss']\n})\nexport class BsListGroupComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n @ContentChildren(BsListGroupItemComponent) items!: QueryList<BsListGroupItemComponent>;\n\n}\n","<ul class=\"list-group mt-0\">\n <ng-content></ng-content>\n</ul>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsListGroupComponent } from './list-group/list-group.component';\nimport { BsListGroupItemComponent } from './list-group-item/list-group-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsListGroupComponent,\n BsListGroupItemComponent\n ],\n exports: [\n BsListGroupComponent,\n BsListGroupItemComponent\n ]\n})\nexport class BsListGroupModule {}\n","import { Component, HostListener, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: 'bs-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class BsModalComponent {\n\n constructor() {}\n\n header!: TemplateRef<any>;\n body!: TemplateRef<any>;\n footer!: TemplateRef<any>;\n\n}\n","<div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n <div class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n</div>","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const MODAL_CONTENT = new InjectionToken<TemplateRef<any>>('ModalContent');","import { AnimationEvent } from '@angular/animations';\nimport { Component, ContentChild, EventEmitter, HostListener, Inject, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { filter, take } from 'rxjs';\nimport { ModalAnimationMeta } from '../../interfaces';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Component({\n selector: 'bs-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsModalContentComponent {\n\n constructor(@Inject(MODAL_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n }\n content: TemplateRef<any>;\n \n private instance: ModalAnimationMeta | null = null;\n closeOnEscape = false;\n\n //#region Monitor @fadeInOut hooks\n animationState = '';\n animationStateChanged = new EventEmitter<AnimationEvent>();\n onAnimationChanged(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n //#endregion\n\n @HostListener('keydown', ['$event'])\n private onKeyDown(ev: KeyboardEvent) {\n if (this.closeOnEscape && ev.code === 'Escape') {\n this.animationStateChanged.pipe(\n filter(ev => ev.phaseName === 'done' && ev.toState === 'void'),\n take(1)\n ).subscribe(() => this.instance?.overlay.dispose());\n \n this.animationState = 'void';\n }\n }\n}\n","<div class=\"modal d-block\" tabindex=\"-1\"\n [@fadeInOut]=\"animationState\"\n (@fadeInOut.start)=\"onAnimationChanged($event)\"\n (@fadeInOut.done)=\"onAnimationChanged($event)\">\n\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n\n</div>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalHeader]'\n})\nexport class BsModalHeaderDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.header = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalBody]'\n})\nexport class BsModalBodyDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.body = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsModalComponent } from '../../component/modal/modal.component';\n\n@Directive({\n selector: '[bsModalFooter]'\n})\nexport class BsModalFooterDirective {\n\n constructor(modal: BsModalComponent, template: TemplateRef<any>) {\n modal.footer = template;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsModalHeaderDirective } from './directives/modal-header/modal-header.directive';\nimport { BsModalBodyDirective } from './directives/modal-body/modal-body.directive';\nimport { BsModalFooterDirective } from './directives/modal-footer/modal-footer.directive';\nimport { BsModalContentComponent } from './component/modal-content/modal-content.component';\nimport { BsModalComponent } from '../modal/component/modal/modal.component';\n\n@NgModule({\n declarations: [\n BsModalHeaderDirective,\n BsModalBodyDirective,\n BsModalFooterDirective,\n BsModalComponent,\n BsModalContentComponent\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsModalHeaderDirective,\n BsModalBodyDirective,\n BsModalFooterDirective,\n BsModalComponent\n ]\n})\nexport class BsModalModule { }\n","import { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { filter, take } from 'rxjs';\nimport { BsModalModule } from '../modal.module';\nimport { BsModalContentComponent } from '../component/modal-content/modal-content.component';\nimport { ModalAnimationMeta } from '../interfaces';\nimport { MODAL_CONTENT } from '../providers/modal-content.provider';\n\n@Injectable({\n providedIn: BsModalModule\n})\nexport class BsModalService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver,\n ) { }\n\n public show(template: TemplateRef<any>, closeOnEscape = false) {\n const injector = Injector.create({\n providers: [{ provide: MODAL_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsModalContentComponent, null, injector, this.componentFactoryResolver);\n\n const overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),\n width: '100%',\n hasBackdrop: true\n });\n\n const componentInstance = overlayRef.attach<BsModalContentComponent>(portal);\n componentInstance.instance['instance'] = <ModalAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n componentInstance.instance.closeOnEscape = closeOnEscape;\n\n return componentInstance.instance;\n }\n\n public hide(modal: BsModalContentComponent) {\n modal.animationStateChanged.pipe(\n filter(ev => ev.phaseName === 'done' && ev.toState === 'void'),\n take(1)\n ).subscribe(() => {\n modal['instance']?.overlay.dispose()\n });\n\n modal.animationState = 'void';\n }\n\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss']\n})\nexport class BsMultiselectComponent {\n\n headerTemplate!: TemplateRef<any>;\n footerTemplate!: TemplateRef<any>;\n buttonTemplate!: TemplateRef<any>;\n\n\n @Input() public items: any[] = [];\n @Input() public selectedItems: any[] = [];\n @ViewChild('defaultButtonTemplate') defaultButtonTemplate!: TemplateRef<any>;\n\n itemChange(item: any, event: Event) {\n if ((<any>event.target).checked) {\n this.selectedItems.push(item);\n } else {\n this.selectedItems.splice(this.selectedItems.findIndex((i) => i === item), 1);\n }\n }\n \n}\n","<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button bsDropdownToggle class=\"btn btn-primary\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate ?? defaultButtonTemplate; context: { $implicit: selectedItems.length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <hr class=\"my-2\" *ngIf=\"headerTemplate\">\n <label *ngFor=\"let item of items\" class=\"form-check\">\n <input type=\"checkbox\" [checked]=\"selectedItems.indexOf(item) > -1\" (change)=\"itemChange(item, $event)\" class=\"form-check-input\">\n <span class=\"form-check-label\">{{ item }}</span>\n </label>\n <hr class=\"my-2\" *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]'\n})\nexport class BsHeaderTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.headerTemplate = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]'\n})\nexport class BsFooterTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.footerTemplate = template;\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]'\n})\nexport class BsButtonTemplateDirective {\n\n constructor(template: TemplateRef<any>, multiselect: BsMultiselectComponent) {\n multiselect.buttonTemplate = template;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\nimport { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';\nimport { BsMultiselectComponent } from './component/multiselect.component';\nimport { BsHeaderTemplateDirective } from './directives/header-template/header-template.directive';\nimport { BsFooterTemplateDirective } from './directives/footer-template/footer-template.directive';\nimport { BsButtonTemplateDirective } from './directives/button-template/button-template.directive';\n\n@NgModule({\n declarations: [\n BsMultiselectComponent,\n BsHeaderTemplateDirective,\n BsFooterTemplateDirective,\n BsButtonTemplateDirective\n ],\n imports: [\n CommonModule,\n BsDropdownModule,\n FocusOnLoadModule,\n ],\n exports: [\n BsMultiselectComponent,\n BsHeaderTemplateDirective,\n BsFooterTemplateDirective,\n BsButtonTemplateDirective\n ]\n})\nexport class BsMultiselectModule { }\n","import { Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BehaviorSubject, take } from 'rxjs';\n\n@Component({\n selector: 'bs-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n})\nexport class BsNavbarComponent {\n\n @ViewChild('nav') nav!: ElementRef;\n @Input() autoclose = true;\n\n expandButtonTemplate: TemplateRef<any> | null = null;\n \n isExpanded$ = new BehaviorSubject<boolean>(false);\n toggleExpanded() {\n this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {\n this.isExpanded$.next(!isExpanded);\n });\n }\n\n \n}\n","<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>","import { Component, HostListener, Input, OnDestroy } from '@angular/core';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { BehaviorSubject, combineLatest, debounceTime, filter, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-navbar-nav',\n templateUrl: './navbar-nav.component.html',\n styleUrls: ['./navbar-nav.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsNavbarNavComponent implements OnDestroy {\n\n constructor(bsNavbar: BsNavbarComponent) {\n this.bsNavbar = bsNavbar;\n this.showNavs$ = combineLatest([this.bsNavbar.isExpanded$, this.windowWidth$])\n .pipe(filter(([isExpanded, windowWidth]) => {\n return windowWidth !== null;\n }))\n .pipe(map(([isExpanded, windowWidth]) => {\n if (windowWidth === null) {\n throw 'windowWidth should not be null here';\n } else if (windowWidth >= 768) {\n return true;\n } else if (isExpanded) {\n return true;\n } else {\n return false;\n }\n }));\n\n this.windowWidth$\n .pipe(debounceTime(300), takeUntil(this.destroyed$))\n .subscribe(() => {\n this.isResizing$.next(false);\n });\n this.onWindowResize();\n }\n \n bsNavbar: BsNavbarComponent;\n collapse$ = new BehaviorSubject<boolean>(true);\n windowWidth$ = new BehaviorSubject<number | null>(null);\n showNavs$: Observable<boolean>;\n isResizing$ = new BehaviorSubject<boolean>(false);\n destroyed$ = new Subject();\n \n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n \n //#region collapse\n @Input() public set collapse(value: boolean) {\n this.collapse$.next(value);\n }\n public get collapse() {\n return this.collapse$.value;\n }\n //#endregion\n\n @HostListener('window:resize')\n onWindowResize() {\n this.isResizing$.next(true);\n if (typeof window !== 'undefined') {\n this.windowWidth$.next(window.innerWidth);\n }\n }\n}\n","<div class=\"navbar-collapse w-100 show\" [class.collapse]=\"collapse$ | async\" *ngIf=\"showNavs$ | async\" [@slideUpDown] [@.disabled]=\"isResizing$ | async\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>","import { AfterContentChecked, Component, ContentChildren, ElementRef, forwardRef, Optional, QueryList } from '@angular/core';\nimport { BsNavbarComponent } from '../../navbar/navbar/navbar.component';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Component({\n selector: 'bs-navbar-item',\n templateUrl: './navbar-item.component.html',\n styleUrls: ['./navbar-item.component.scss']\n})\nexport class BsNavbarItemComponent implements AfterContentChecked {\n\n constructor(private navbar: BsNavbarComponent, @Optional() parentDropdown: BsNavbarDropdownComponent, private element: ElementRef) {\n this.parentDropdown = parentDropdown;\n }\n\n parentDropdown: BsNavbarDropdownComponent;\n hasDropdown = false;\n anchorTag: HTMLAnchorElement | null = null;\n @ContentChildren(forwardRef(() => BsNavbarDropdownComponent)) dropdowns!: QueryList<BsNavbarDropdownComponent>;\n\n ngAfterContentChecked() {\n this.anchorTag = this.element.nativeElement.querySelector('li a');\n\n if (this.hasDropdown) {\n (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');\n\n if (this.anchorTag && !this.anchorTag.getAttribute('close-init-b')) {\n this.anchorTag.setAttribute('close-init-b', '1');\n this.anchorTag.addEventListener('click', (ev: MouseEvent) => {\n ev.preventDefault();\n // Normally there should be only one dropdown in this list\n this.dropdowns.forEach((dropdown) => {\n if (!(dropdown.isVisible = !dropdown.isVisible)) {\n dropdown.childDropdowns.forEach((child) => {\n child.isVisible = false;\n });\n }\n });\n return false;\n });\n }\n } else {\n\n // Close if this is a link\n if ((this.dropdowns.length === 0) && this.anchorTag && !this.anchorTag.getAttribute('close-init-a')) {\n this.anchorTag.setAttribute('close-init-a', '1');\n this.anchorTag.addEventListener('click', (ev: MouseEvent) => {\n let d = this.parentDropdown;\n while (d && d.autoclose) {\n d.isVisible = false;\n d = d.parentDropdown;\n }\n if (this.navbar.autoclose) {\n this.navbar.isExpanded$.next(false);\n }\n });\n }\n\n }\n }\n}\n","<li [class.nav-item]=\"parentDropdown === null\" [class.dropdown]=\"(dropdowns.length > 0) && (parentDropdown === null)\" [class.dropend]=\"(dropdowns.length > 0) && (parentDropdown !== null)\">\n <ng-content></ng-content>\n</li>","import { Component, ContentChildren, forwardRef, Host, Inject, Input, Optional, QueryList, SkipSelf } from '@angular/core';\nimport { BsNavbarItemComponent } from '../navbar-item/navbar-item.component';\n\n@Component({\n selector: 'bs-navbar-dropdown',\n templateUrl: './navbar-dropdown.component.html',\n styleUrls: ['./navbar-dropdown.component.scss']\n})\nexport class BsNavbarDropdownComponent {\n\n constructor(\n @SkipSelf() @Host() @Optional() parentDropdown: BsNavbarDropdownComponent,\n @Host() @Inject(forwardRef(() => BsNavbarItemComponent)) navbarItem: BsNavbarItemComponent\n ) {\n this.parentDropdown = parentDropdown;\n this.navbarItem = navbarItem;\n }\n\n @Input() public autoclose = true;\n isVisible = false;\n navbarItem: BsNavbarItemComponent;\n parentDropdown: BsNavbarDropdownComponent;\n\n get elementsToExclude() {\n return [this.navbarItem.anchorTag].filter((a) => a).map((a) => <HTMLElement>a);\n }\n\n @ContentChildren(forwardRef(() => BsNavbarDropdownComponent), { descendants: true }) childDropdowns!: QueryList<BsNavbarDropdownComponent>;\n}\n","<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>","import { AfterContentInit, Component, ContentChildren, Directive, ElementRef, forwardRef, Inject, Optional, QueryList } from '@angular/core';\nimport { BsNavbarItemComponent } from '../navbar-item/navbar-item.component';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Directive({\n // selector: 'bs-navbar-item > a[routerLink]',\n selector: 'bs-navbar-item',\n queries: {\n childDropdowns: new ContentChildren(BsNavbarDropdownComponent)\n }\n})\nexport class DropdownToggleDirective implements AfterContentInit {\n\n constructor(\n private elementRef: ElementRef<HTMLAnchorElement>,\n @Inject(forwardRef(() => BsNavbarItemComponent)) private bsNavbarItem: BsNavbarItemComponent,\n @Optional() @Inject(forwardRef(() => BsNavbarDropdownComponent)) parentDropdown: BsNavbarDropdownComponent\n ) {\n }\n\n childDropdowns!: QueryList<BsNavbarDropdownComponent>;\n\n ngAfterContentInit() {\n if (this.bsNavbarItem.dropdowns.length > 0) {\n this.bsNavbarItem.hasDropdown = true;\n }\n }\n}","import { Directive, ElementRef, forwardRef, Inject, Optional } from '@angular/core';\nimport { BsNavbarDropdownComponent } from '../navbar-dropdown/navbar-dropdown.component';\n\n@Directive({\n selector: 'bs-navbar-item > a[routerLink]'\n})\nexport class NavLinkDirective {\n\n constructor(\n private elementRef: ElementRef<HTMLAnchorElement>,\n @Optional() @Inject(forwardRef(() => BsNavbarDropdownComponent)) parentDropdown: BsNavbarDropdownComponent\n ) {\n if (parentDropdown == null) {\n this.elementRef.nativeElement.classList.add('nav-link');\n } else {\n this.elementRef.nativeElement.classList.add('dropdown-item');\n }\n }\n\n}","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, Inject, Input, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\n\n@Directive({\n selector: '[navbarContent]'\n})\nexport class NavbarContentDirective implements AfterViewInit, OnDestroy {\n\n constructor(private element: ElementRef, @Inject(PLATFORM_ID) private platformId: any) {\n combineLatest([this.viewInit$, this.navbar$])\n .pipe(filter(([viewInit, navbar]) => {\n return viewInit && !!navbar;\n }))\n .pipe(take(1))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([viewInit, navbar]) => {\n if (!isPlatformServer(platformId)) {\n // Initialize the ResizeObserver\n this.resizeObserver = new ResizeObserver((entries) => {\n const height = navbar\n ? navbar.nav.nativeElement.offsetHeight\n : entries[0].contentRect.height;\n\n this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';\n });\n\n // Monitor the size\n const px = getComputedStyle(this.element.nativeElement).getPropertyValue('padding-top');\n const pt = parseInt(px.replace(/px$/, ''));\n this.initialPadding = isNaN(pt) ? 0 : pt;\n if (this.resizeObserver && navbar) {\n this.resizeObserver.observe(navbar.nav.nativeElement);\n }\n }\n });\n\n this.destroyed$\n .pipe(filter(d => !!d))\n .subscribe(() => {\n this.resizeObserver?.unobserve(this.navbar$.value?.nav.nativeElement);\n });\n }\n\n private destroyed$ = new Subject();\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private navbar$ = new BehaviorSubject<BsNavbarComponent | null>(null);\n resizeObserver: ResizeObserver | null = null;\n initialPadding = 0;\n\n @Input('navbarContent') set navbar(value: BsNavbarComponent) {\n this.navbar$.next(value);\n }\n \n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-brand',\n templateUrl: './navbar-brand.component.html',\n styleUrls: ['./navbar-brand.component.scss']\n})\nexport class BsNavbarBrandComponent {\n @Input() public routerLink: any[] = [];\n @HostBinding('class.mx-auto') mxAuto = true;\n}\n","<a class=\"navbar-brand mx-auto mx-md-unset\" [routerLink]=\"routerLink\">\n <ng-content></ng-content>\n</a>","import { Directive, TemplateRef } from '@angular/core';\nimport { BsNavbarComponent } from '../navbar/navbar.component';\n\n@Directive({\n selector: '[bsExpandButton]'\n})\nexport class BsExpandButtonDirective {\n\n constructor(navbar: BsNavbarComponent, templateRef: TemplateRef<any>) {\n navbar.expandButtonTemplate = templateRef;\n }\n\n}\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-toggler',\n templateUrl: './navbar-toggler.component.html',\n styleUrls: ['./navbar-toggler.component.scss'],\n})\nexport class BsNavbarTogglerComponent {\n //#region State\n _state: 'open' | 'closed' = 'closed';\n @Output() public stateChange = new EventEmitter<'open' | 'closed'>();\n public get state() {\n return this._state;\n }\n @Input() public set state(value: 'open' | 'closed') {\n this._state = value;\n this.stateChange.emit(this._state);\n }\n //#endregion\n\n @Input() public toggleOnClick = true;\n\n @HostListener('click', ['$event'])\n toggleState(ev: MouseEvent) {\n if (this.toggleOnClick) {\n switch (this._state) {\n case 'open':\n this.state = 'closed';\n break;\n default:\n this.state = 'open';\n break;\n }\n }\n }\n}\n","<div class=\"navbar-toggler float-left\" [ngClass]=\"state\">\n <div></div>\n <div></div>\n <div></div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { ClickOutsideModule } from '@mintplayer/ng-click-outside';\nimport { BsNavbarComponent } from './navbar/navbar.component';\nimport { BsNavbarNavComponent } from './navbar-nav/navbar-nav.component';\nimport { BsNavbarDropdownComponent } from './navbar-dropdown/navbar-dropdown.component';\nimport { BsNavbarItemComponent } from './navbar-item/navbar-item.component';\nimport { DropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';\nimport { NavLinkDirective } from './nav-link/nav-link.directive';\nimport { NavbarContentDirective } from './navbar-content/navbar-content.directive';\nimport { BsNavbarBrandComponent } from './navbar-brand/navbar-brand.component';\nimport { BsExpandButtonDirective } from './expand-button/expand-button.directive';\nimport { BsNavbarTogglerComponent } from './navbar-toggler/navbar-toggler.component';\n\n@NgModule({\n declarations: [\n BsNavbarComponent,\n BsNavbarNavComponent,\n BsNavbarDropdownComponent,\n BsNavbarItemComponent,\n\n DropdownToggleDirective,\n NavLinkDirective,\n NavbarContentDirective,\n BsNavbarBrandComponent,\n BsExpandButtonDirective,\n BsNavbarTogglerComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n ClickOutsideModule\n ],\n exports: [\n BsNavbarComponent,\n BsNavbarNavComponent,\n BsNavbarDropdownComponent,\n BsNavbarItemComponent,\n\n DropdownToggleDirective,\n NavLinkDirective,\n NavbarContentDirective,\n BsNavbarBrandComponent,\n BsExpandButtonDirective,\n BsNavbarTogglerComponent\n ]\n})\nexport class BsNavbarModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-header',\n templateUrl: './offcanvas-header.component.html',\n styleUrls: ['./offcanvas-header.component.scss']\n})\nexport class BsOffcanvasHeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"offcanvas-header\">\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-body',\n templateUrl: './offcanvas-body.component.html',\n styleUrls: ['./offcanvas-body.component.scss']\n})\nexport class BsOffcanvasBodyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"offcanvas-body small\">\n <ng-content></ng-content>\n</div>","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const OFFCANVAS_CONTENT = new InjectionToken<TemplateRef<any>>('OffcanvasContent');","import { Component, HostBinding, Inject, Input, TemplateRef } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { OffcanvasPosition } from '../../types/position';\nimport { OffcanvasAnimationMeta } from '../../interfaces';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\n\n@Component({\n selector: 'bs-offcanvas',\n templateUrl: './offcanvas.component.html',\n styleUrls: ['./offcanvas.component.scss'],\n})\nexport class BsOffcanvasComponent {\n\n constructor(@Inject(OFFCANVAS_CONTENT) content: TemplateRef<any>) {\n this.content = content;\n this.offcanvasClass$ = this.position$\n .pipe(map((pos) => `offcanvas-${pos}`));\n this.offcanvasHeight100$ = this.position$\n .pipe(map((pos) => {\n switch (this.position) {\n case 'top':\n case 'bottom':\n return false;\n default:\n return true;\n }\n }));\n }\n\n @Input() public size: number | null = null;\n @HostBinding('class.d-block') displayBlock = true;\n @HostBinding('class.position-absolute') positionAbsolute = true;\n @HostBinding('class.w-100') width100 = true;\n\n content: TemplateRef<any>;\n private instance: OffcanvasAnimationMeta | null = null;\n \n show$ = new BehaviorSubject<boolean>(false);\n position$ = new BehaviorSubject<OffcanvasPosition>('bottom');\n offcanvasClass$: Observable<string>;\n offcanvasHeight100$: Observable<boolean>;\n\n //#region Position\n public set position(value: OffcanvasPosition) {\n this.position$.next(value);\n }\n public get position() {\n return this.position$.value;\n }\n //#endregion\n\n}\n","<div class=\"offcanvas overflow-hidden\" [class]=\"offcanvasClass$ | async\"\n [class.show]=\"show$ | async\"\n [class.h-100]=\"offcanvasHeight100$ | async\"\n [style.height.px]=\"size\"\n [class.oc-max-width]=\"['start', 'end'].includes(position)\"\n [class.oc-max-height]=\"['top', 'bottom'].includes(position)\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: this }\" ></ng-container>\n</div>","import { Directive, HostListener, Input } from '@angular/core';\nimport { BsOffcanvasComponent } from '../../components/offcanvas/offcanvas.component';\nimport { BsOffcanvasService } from '../../services/offcanvas/offcanvas.service';\n\n@Directive({\n selector: '[bsOffcanvasClose]'\n})\nexport class BsOffcanvasCloseDirective {\n constructor(private offcanvasService: BsOffcanvasService) { }\n\n @Input() public bsOffcanvasClose!: BsOffcanvasComponent;\n\n @HostListener('click') onClick() {\n this.offcanvasService.hide(this.bsOffcanvasClose);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsOffcanvasHeaderComponent } from './components/offcanvas-header/offcanvas-header.component';\nimport { BsOffcanvasBodyComponent } from './components/offcanvas-body/offcanvas-body.component';\nimport { BsOffcanvasComponent } from './components/offcanvas/offcanvas.component';\nimport { BsOffcanvasCloseDirective } from './directives/offcanvas-close/offcanvas-close.directive';\n\n\n\n@NgModule({\n declarations: [\n BsOffcanvasComponent,\n BsOffcanvasHeaderComponent,\n BsOffcanvasBodyComponent,\n BsOffcanvasCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsOffcanvasComponent,\n BsOffcanvasHeaderComponent,\n BsOffcanvasBodyComponent,\n BsOffcanvasCloseDirective\n ]\n})\nexport class BsOffcanvasModule { }\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\nimport { BsOffcanvasModule } from '../../offcanvas.module';\nimport { BsOffcanvasComponent } from '../../components/offcanvas/offcanvas.component';\nimport { OffcanvasAnimationMeta } from '../../interfaces/offcanvas-animation-meta';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\n\n@Injectable({\n providedIn: BsOffcanvasModule\n})\nexport class BsOffcanvasService {\n\n constructor(\n private overlay: Overlay,\n private parentInjector: Injector,\n ) { }\n\n public show(template: TemplateRef<any>, position: 'top' | 'bottom' | 'start' | 'end', hasBackdrop = false, backdropClick: ((offcanvas: BsOffcanvasComponent) => void) | null = null) {\n const injector = Injector.create({\n providers: [{ provide: OFFCANVAS_CONTENT, useValue: template }],\n parent: this.parentInjector\n });\n const portal = new ComponentPortal(BsOffcanvasComponent, null, injector);\n \n const positioning = this.overlay.position().global();\n const config: OverlayConfig = {\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: positioning,\n hasBackdrop,\n };\n\n switch (position) {\n case 'bottom':\n positioning.centerHorizontally().bottom('0');\n config.width = '100%';\n break;\n case 'top':\n positioning.centerHorizontally().top('0');\n config.width = '100%';\n break;\n case 'start':\n positioning.centerVertically().left('0');\n config.height = '100%';\n break;\n case 'end':\n positioning.centerVertically().right('0');\n config.height = '100%';\n break;\n \n default:\n throw 'Invalid value for position';\n }\n\n const overlayRef = this.overlay.create(config);\n \n const componentInstance = overlayRef.attach<BsOffcanvasComponent>(portal);\n componentInstance.instance.position = position;\n setTimeout(() => componentInstance.instance.show$.next(true));\n \n componentInstance.instance['instance'] = <OffcanvasAnimationMeta>{\n component: componentInstance,\n overlay: overlayRef\n };\n\n if (hasBackdrop && backdropClick) {\n overlayRef.backdropClick().subscribe(() => backdropClick(componentInstance.instance));\n }\n\n return componentInstance.instance;\n }\n\n public hide(offcanvas: BsOffcanvasComponent) {\n offcanvas.show$.next(false);\n setTimeout(() => offcanvas['instance']?.overlay.dispose(), 300);\n }\n\n}\n","import { Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'bs-rating',\n templateUrl: './rating.component.html',\n styleUrls: ['./rating.component.scss']\n})\nexport class BsRatingComponent implements OnDestroy {\n\n constructor() {\n this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])\n .pipe(map(([maximum, previewValue, value]) => {\n const v = previewValue ?? value;\n return [\n ...[...Array(v).keys()].map(i => true),\n ...[...Array(maximum - v).keys()].map(i => false)\n ];\n }));\n\n combineLatest([this.previewValue$, this.value$])\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([previewValue, value]) => {\n const v = previewValue ?? value;\n this.starsChange.emit(v);\n });\n }\n\n destroyed$ = new Subject();\n maximum$ = new BehaviorSubject<number>(5);\n value$ = new BehaviorSubject<number>(3);\n previewValue$ = new BehaviorSubject<number | null>(null);\n stars$: Observable<boolean[]>;\n\n //#region Maximum\n @Input() public set maximum(value: number) {\n this.maximum$.next(value);\n }\n //#endregion\n\n //#region Value\n @Output() public valueChange = new EventEmitter<number>();\n @Output() public starsChange = new EventEmitter<number>();\n public get value() {\n return this.value$.value;\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n this.valueChange.emit(value);\n }\n //#endregion\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n hoverValue(index: number) {\n this.previewValue$.next(index + 1);\n }\n selectValue(index: number) {\n this.value = index + 1;\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.previewValue$.next(null);\n }\n}\n","<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '&#9733;' : '&#9734;' }}\n</span>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsRatingComponent } from './rating.component';\n\n\n\n@NgModule({\n declarations: [\n BsRatingComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsRatingComponent\n ]\n})\nexport class BsRatingModule { }\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]'\n})\nexport class BsScrollspyDirective {\n\n constructor(element: ElementRef) {\n this.element = element;\n }\n\n element: ElementRef;\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n constructor(\n @Inject(ROUTER_CONFIGURATION) private routerConfig: ExtraOptions\n ) { }\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Inject, NgZone, OnDestroy, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';\nimport { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss']\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n\n constructor(\n private scrollOffsetService: BsScrollOffsetService,\n @Inject(DOCUMENT) document: any,\n private zone: NgZone) {\n this.doc = <Document>document;\n combineLatest([this.viewInit$, this.contentInit$])\n .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n // this.setActiveDirective();\n this.scrollToCurrentInSpy();\n });\n }\n\n private destroyed$ = new Subject();\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private contentInit$ = new BehaviorSubject<boolean>(false);\n\n @ContentChildren(BsScrollspyDirective, { descendants: true }) directives!: QueryList<BsScrollspyDirective>;\n @ViewChildren('anchor') anchors!: QueryList<ElementRef<HTMLSpanElement>>;\n\n doc: Document;\n activeDirective: BsScrollspyDirective | null = null;\n\n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngAfterContentInit() {\n this.contentInit$.next(true);\n }\n \n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n \n @HostListener('window:scroll', ['$event'])\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (this.directives.length === 0) {\n this.activeDirective = null;\n } else if (dirs.length === 0) {\n this.activeDirective = this.directives.get(0) ?? null;\n } else {\n this.activeDirective = dirs[dirs.length - 1];\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective) {\n const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);\n const anchor = this.anchors.get(index);\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n \n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsScrollspyComponent } from './component/scrollspy.component';\nimport { BsScrollspyDirective } from './directives/scrollspy.directive';\n\n\n\n@NgModule({\n declarations: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ]\n})\nexport class BsScrollspyModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inList'\n})\nexport class BsInListPipe implements PipeTransform {\n\n transform(items: any[], parameter: number) {\n return items.some(item => item.id === parameter);\n }\n\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss']\n})\nexport class BsSelect2Component implements AfterViewInit {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<any[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n hostWidth$ = new BehaviorSubject<number>(200);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n @Input() searchterm = '';\n @Input() public suggestions: any[] = [];\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Input() selectedItems: any[] = [];\n @HostBinding('class.focus') isFocused = false;\n\n private charWidth = 10;\n searchWidth = 20;\n itemTemplate?: TemplateRef<any>;\n\n\n ngAfterViewInit() {\n this.onResize();\n }\n \n onProvideSuggestions(value: string) {\n this.searchWidth = this.charWidth * (this.searchterm.length + 2);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n onSuggestionClicked(suggestion: any) {\n this.searchterm = '';\n this.isOpen = false;\n\n const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.push(suggestion);\n } else {\n this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);\n }\n\n this.searchBox.nativeElement.focus();\n }\n onRemoveItem(item: any, event: MouseEvent) {\n event.stopPropagation();\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n this.focus();\n }\n\n @HostListener('window:resize')\n onResize() {\n if (typeof window !== 'undefined') {\n this.hostWidth$.next(this.itemsBox.nativeElement.offsetWidth);\n }\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n \n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { item: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static p-0\" [style.width.px]=\"hostWidth$ | async\">\n <li *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [class.selected]=\"selectedItems | inList:suggestion.id\">{{ suggestion.text }}</li>\n </ul>\n </div>\n</div>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">×</span>\n {{ item.text }}\n </span>\n</ng-template>\n","import { Directive, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../component/select2.component';\n\n@Directive({\n selector: '[bsItemTemplate]'\n})\nexport class BsItemTemplateDirective {\n\n constructor(private select2component: BsSelect2Component, templateRef: TemplateRef<any>) {\n this.select2component.itemTemplate = templateRef;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsInListPipe } from './in-list.pipe';\n\n@NgModule({\n declarations: [\n BsInListPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsInListPipe\n ]\n})\nexport class BsInListModule { }\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\nimport { BsItemTemplateDirective } from './directive/item-template.directive';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsInListModule } from '../../pipes/in-list/in-list.module';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsDropdownModule,\n BsInListModule\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective\n ]\n})\nexport class BsSelect2Module { }\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss']\n})\nexport class BsTabPageComponent {\n\n tabControl: BsTabControlComponent;\n constructor(tabControl: BsTabControlComponent) {\n this.tabControl = tabControl;\n }\n\n @Input() disabled = false;\n @ContentChild(TemplateRef) headerTemplate!: TemplateRef<any>;\n\n}\n","<ng-content *ngIf=\"tabControl.activeTab === this\"></ng-content>","import { Component, ContentChildren, Input } from '@angular/core';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\n\n @ContentChildren(BsTabPageComponent) tabPages!: BsTabPageComponent[];\n @Input() public border = true;\n activeTab: BsTabPageComponent | null = null;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n}\n","<ul class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let tab of tabPages\">\n <li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n <a class=\"nav-link\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\" href=\"\">\n <ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n </a>\n </li>\n </ng-container>\n</ul>\n<div class=\"tab-content\" [class.border]=\"border && activeTab\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { NumberOverflow } from '../../interfaces/number-overflow';\n\n@Directive({\n selector: 'input[type=\"number\"][bsEnhancedPaste]'\n})\nexport class EnhancedPasteDirective {\n\n constructor(private element: ElementRef<HTMLInputElement>, private model: NgModel) {\n }\n\n @Output() public numberOverflow = new EventEmitter<NumberOverflow>();\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n // Prevent the default paste event\n event.preventDefault();\n \n // Get data from clipboard\n const data = event.clipboardData || (<any>window).clipboardData;\n const contents = data.getData('text');\n\n // Get min and max from input\n const min = parseFloat(this.element.nativeElement.min);\n const max = parseFloat(this.element.nativeElement.max);\n\n const filtered = this.filterInput(contents, min, max);\n if (filtered) {\n this.numberOverflow.emit(filtered);\n if (filtered.boundaryValue) {\n // Update NgModel\n this.model.control.setValue(filtered?.boundaryValue, { emitEvent: false, onlySelf: true });\n }\n }\n\n }\n\n filterInput(value: any, min: number, max: number): NumberOverflow | null {\n const val = parseInt(value);\n if (isNaN(val)) {\n return { boundary: 'invalid' };\n } else if (val > max) {\n return { boundary: 'max', inputValue: val, boundaryValue: max };\n } else if (val < min) {\n return { boundary: 'min', inputValue: val, boundaryValue: min };\n } else {\n return null;\n }\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, NgZone, Output, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'bs-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: ['./timepicker.component.scss']\n})\nexport class BsTimepickerComponent {\n\n constructor(private ref: ChangeDetectorRef, private zone: NgZone, private renderer: Renderer2) {\n const today = new Date();\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n const interval = 900;\n this.presetTimestamps = Array.from(Array(24 * 60 * 60 / interval).keys())\n .map(i => {\n const clone = new Date(today);\n clone.setTime(clone.getTime() + i * interval * 1000);\n return clone;\n });\n }\n\n isOpen = false;\n presetTimestamps: Date[] = [];\n isFocused = false;\n\n selectAll(box: HTMLInputElement) {\n box.select();\n // box.setSelectionRange(0, box.value.length);\n this.isFocused = true;\n }\n\n setNumber(event: Event, max: number, nextInput: HTMLInputElement | null) {\n event.preventDefault();\n const input = <HTMLInputElement>event.target;\n const val = parseInt(input.value);\n if (isNaN(val)) {\n input.value = '00';\n } else {\n const result = Math.min(max, Math.abs(val));\n input.value = result.toString().padStart(2, '0');\n\n if (nextInput) {\n // const maxAllowedNumberOfDigits = input.max.length;\n if (result * 10 > parseInt(input.max)) {\n nextInput.focus();\n }\n }\n }\n }\n\n setTime(time: Date) {\n this.selectedTime = time;\n this.isOpen = false;\n }\n\n //#region SelectedTime\n private _selectedTime = new Date();\n @Output() public selectedTimeChange = new EventEmitter<Date>();\n public get selectedTime() {\n return this._selectedTime;\n }\n @Input() public set selectedTime(value: Date) {\n // this.hours = value.getHours();\n // this.minutes = value.getMinutes();\n this._selectedTime = value;\n this.selectedTimeChange.emit(this._selectedTime);\n }\n //#endregion\n\n //#region Hours\n // private _hours = 0;\n get hours() {\n // return this._hours;\n return this.selectedTime.getHours();\n }\n set hours(value: number) {\n // this._hours = value;\n const clone = new Date(this.selectedTime);\n clone.setHours(value);\n this.selectedTime = clone;\n }\n // hours = 0;\n //#endregion\n //#region Minutes\n // private _minutes = 0;\n get minutes() {\n // return this._minutes;\n return this.selectedTime.getMinutes();\n }\n set minutes(value: number) {\n // this._minutes = value;\n // this.selectedTime.setMinutes(value);\n const clone = new Date(this.selectedTime);\n clone.setMinutes(value);\n this.selectedTime = clone;\n }\n //#endregion\n\n timesEqual(time1: Date, time2: Date) {\n return (time1.getHours() === time2.getHours()) && (time1.getMinutes() === time2.getMinutes());\n }\n\n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [closeOnClickOutside]=\"true\" [sameDropdownWidth]=\"true\">\n <span class=\"input-group\">\n <span class=\"form-control d-flex\" [class.focus]=\"isFocused\">\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"23\" (input)=\"setNumber($event, 23, minuteBox)\" bsEnhancedPaste [ngModel]=\"hours | number: '2.0'\" (ngModelChange)=\"hours = $event\" (focus)=\"selectAll(hourBox)\" (blur)=\"isFocused = false\" #hourBox class=\"w-100 border-0 bg-transparent text-end\">\n </div>\n <span class=\"px-1\">:</span>\n <div class=\"flex-grow-1\">\n <input type=\"number\" [min]=\"0\" [max]=\"59\" (input)=\"setNumber($event, 59, null)\" bsEnhancedPaste [ngModel]=\"minutes | number: '2.0'\" (ngModelChange)=\"minutes = $event\" (focus)=\"selectAll(minuteBox)\" (blur)=\"isFocused = false\" #minuteBox class=\"w-100 border-0 bg-transparent\">\n </div>\n </span>\n <button class=\"btn btn-secondary\" (click)=\"isOpen = !isOpen\">\n <i class=\"bi bi-clock\"></i>\n </button>\n </span>\n <ul class=\"list-group\" *bsDropdownMenu>\n <li class=\"list-group-item list-group-item-action\" [class.active]=\"timesEqual(selectedTime, timestamp)\" *ngFor=\"let timestamp of presetTimestamps\" (click)=\"setTime(timestamp)\">\n {{ timestamp | date: 'HH:mm' }}\n </li>\n </ul>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EnhancedPasteDirective } from './enhanced-paste.directive';\n\n@NgModule({\n declarations: [\n EnhancedPasteDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n EnhancedPasteDirective\n ]\n})\nexport class EnhancedPasteModule { }\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsTimepickerComponent } from './timepicker.component';\nimport { BsDropdownModule } from '../dropdown';\nimport { EnhancedPasteModule } from '../../directives/enhanced-paste/enhanced-paste.module';\n\n@NgModule({\n declarations: [\n BsTimepickerComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n EnhancedPasteModule,\n BsDropdownModule\n ],\n exports: [\n BsTimepickerComponent\n ]\n})\nexport class BsTimepickerModule { }\n","import { AfterViewInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ColorTransitionAnimation } from '@mintplayer/ng-animations';\n\n@Component({\n selector: 'bs-toggle-button',\n templateUrl: './toggle-button.component.html',\n styleUrls: ['./toggle-button.component.scss'],\n animations: [ ColorTransitionAnimation ]\n})\nexport class BsToggleButtonComponent implements AfterViewInit {\n\n disableAnimations = true;\n\n //#region isToggled\n _isToggled: boolean | null = false;\n @Output() public change = new EventEmitter<boolean | null>();\n @Output() public isToggledChange = new EventEmitter<boolean | null>();\n public get isToggled() {\n return this._isToggled;\n }\n @Input() public set isToggled(value: boolean | null) {\n this._isToggled = value;\n this.isToggledChange.emit(this._isToggled);\n }\n //#endregion\n\n //#region disabled\n @Input() public disabled = false;\n //#endregion\n\n onChange(event: Event) {\n const val = (<any>event.target).checked;\n this.isToggled = val;\n this.change.emit(val);\n }\n \n ngAfterViewInit() {\n this.disableAnimations = false;\n }\n\n}\n","<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsToggleButtonComponent } from './toggle-button.component';\n\n@NgModule({\n declarations: [\n BsToggleButtonComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsToggleButtonComponent\n ]\n})\nexport class BsToggleButtonModule { }\n","import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TOOLTIP_CONTENT = new InjectionToken<TemplateRef<any>>('TooltipContent');","import { Component, Inject, Input, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Position } from '../../../enums/position.enum';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Component({\n selector: 'bs-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsTooltipComponent {\n constructor(@Inject(TOOLTIP_CONTENT) content: TemplateRef<any>) {\n this.template = content; \n }\n\n positions = Position;\n @Input() public position: Position = Position.bottom;\n template: TemplateRef<any>;\n\n\n}\n","<div [@fadeInOut] class=\"tooltip position-relative show\"\n [class.bs-tooltip-bottom]=\"position === positions.bottom\"\n [class.bs-tooltip-top]=\"position === positions.top\"\n [class.bs-tooltip-start]=\"position === positions.left\"\n [class.bs-tooltip-end]=\"position === positions.right\">\n <div class=\"tooltip-arrow\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Directive, ElementRef, Host, HostListener, Injector, Input, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Position } from '../../../enums/position.enum';\nimport { BsTooltipComponent } from '../component/tooltip.component';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Directive({\n selector: '*[bsTooltip]'\n})\nexport class BsTooltipDirective {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n componentFactoryResolver: ComponentFactoryResolver,\n private parentInjector: Injector,\n @Host() @SkipSelf() private parent: ElementRef\n ) {\n this.injector = Injector.create({\n providers: [{ provide: TOOLTIP_CONTENT, useValue: this.templateRef }],\n parent: this.parentInjector\n });\n this.portal = new ComponentPortal(BsTooltipComponent, null, this.injector, componentFactoryResolver);\n\n parent.nativeElement.onmouseenter = () => {\n this.showTooltip();\n };\n parent.nativeElement.onmouseleave = () => {\n this.hideTooltip();\n }\n }\n\n @Input() public bsTooltip: Position = Position.bottom;\n\n private injector: Injector;\n private portal: ComponentPortal<any>;\n private overlayRef: OverlayRef | null = null;\n\n @HostListener('window:blur') private onBlur() {\n this.hideTooltip();\n }\n\n showTooltip() {\n const positions: ConnectedPosition[] = [];\n switch (this.bsTooltip) {\n case Position.bottom: {\n positions.push({\n originX: \"center\",\n originY: \"bottom\", //<--\n overlayX: \"center\",\n overlayY: \"top\"\n });\n } break;\n case Position.top: {\n positions.push({\n originX: \"center\",\n originY: \"top\", //<--\n overlayX: \"center\",\n overlayY: \"bottom\"\n });\n } break;\n case Position.left: {\n positions.push({\n originX: \"start\", //<--\n originY: \"center\",\n overlayX: \"end\",\n overlayY: \"center\",\n });\n } break;\n case Position.right: {\n positions.push({\n originX: \"end\", //<--\n originY: \"center\",\n overlayX: \"start\",\n overlayY: \"center\"\n });\n } break;\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.parent)\n .withPositions(positions),\n });\n const component = this.overlayRef.attach<BsTooltipComponent>(this.portal);\n component.instance.position = this.bsTooltip;\n }\n\n hideTooltip() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsTooltipDirective } from './directive/tooltip.directive';\nimport { BsTooltipComponent } from './component/tooltip.component';\n\n@NgModule({\n declarations: [\n BsTooltipDirective,\n BsTooltipComponent\n ],\n imports: [\n CommonModule,\n OverlayModule\n ],\n exports: [\n BsTooltipDirective\n ]\n})\nexport class BsTooltipModule { }\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { BehaviorSubject, map, Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'bs-typeahead',\n templateUrl: './typeahead.component.html',\n styleUrls: ['./typeahead.component.scss']\n})\nexport class BsTypeaheadComponent implements AfterViewInit {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<any[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n showNoSuggestions$: Observable<boolean>;\n hostWidth$ = new BehaviorSubject<number>(200);\n destroyed$ = new Subject();\n \n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n @Input() searchterm = '';\n @Input() public isLoadingText = 'Loading...';\n @Input() public noSuggestionsText = 'No suggestions found';\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Output() suggestionSelected = new EventEmitter<any>();\n @Output() searchtermChange = new EventEmitter<string>();\n @Output() submitted = new EventEmitter<string>();\n \n constructor() {\n this.showNoSuggestions$ = this.suggestions$\n .pipe(map(suggestions => suggestions.length === 0));\n }\n\n ngAfterViewInit() {\n this.onResize();\n }\n\n onProvideSuggestions(value: string) {\n this.searchtermChange.emit(value);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n\n @Input() public set suggestions(value: any[]) {\n this.isLoading$.next(false);\n this.suggestions$.next(value);\n }\n suggestionClicked(suggestion: any) {\n this.searchterm = suggestion.text;\n this.searchtermChange.emit(this.searchterm);\n\n this.isOpen = false;\n this.suggestionSelected.emit(suggestion);\n }\n\n onSubmit() {\n this.isOpen = false;\n this.submitted.emit(this.searchterm);\n }\n\n public focus() {\n this.textbox.nativeElement.focus();\n }\n\n @HostListener('window:resize')\n onResize() {\n if (typeof window !== 'undefined') {\n this.hostWidth$.next(this.textbox.nativeElement.offsetWidth);\n }\n }\n\n}\n","<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [closeOnClickOutside]=\"true\">\n <input type=\"text\" class=\"form-control\" #textbox [(ngModel)]=\"searchterm\" (ngModelChange)=\"onProvideSuggestions($event)\" (keyup.enter)=\"onSubmit()\" />\n <div *bsDropdownMenu>\n <ul class=\"dropdown-menu d-block position-static\" [style.width.px]=\"hostWidth$ | async\">\n <bs-progress *ngIf=\"isLoading$ | async\" [height]=\"2\" [isIndeterminate]=\"true\"></bs-progress>\n <li *ngIf=\"isLoading$ | async\">\n <a class=\"dropdown-item disabled\">{{ isLoadingText }}</a>\n </li>\n <ng-container *ngIf=\"(isLoading$ | async) === false\">\n <li *ngIf=\"showNoSuggestions$ | async\">\n <a class=\"dropdown-item disabled\">{{ noSuggestionsText }}</a>\n </li>\n <li *ngFor=\"let suggestion of (suggestions$ | async)\" (click)=\"suggestionClicked(suggestion)\">\n <a class=\"dropdown-item cursor-pointer\">{{ suggestion.text }}</a>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsTypeaheadComponent } from './typeahead.component';\nimport { BsProgressBarModule } from '../progress-bar/progress-bar.module';\nimport { BsDropdownModule } from '../dropdown/dropdown.module';\n\n\n\n@NgModule({\n declarations: [\n BsTypeaheadComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsDropdownModule,\n BsProgressBarModule\n ],\n exports: [\n BsTypeaheadComponent\n ]\n})\nexport class BsTypeaheadModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFontColor'\n})\nexport class BsFontColorPipe implements PipeTransform {\n\n transform(color_hex: any): any {\n if (color_hex === undefined || color_hex === null || color_hex.length < 7 || typeof (color_hex) !== 'string') {\n return '#FFFFFF';\n }\n const R_HEX: string = color_hex.substr(1, 2);\n const G_HEX: string = color_hex.substr(3, 2);\n const B_HEX: string = color_hex.substr(5, 2);\n const R_DEC: number = parseInt(R_HEX, 16);\n const G_DEC: number = parseInt(G_HEX, 16);\n const B_DEC: number = parseInt(B_HEX, 16);\n const CONTRAST_HEX: string = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';\n return CONTRAST_HEX;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsFontColorPipe } from './font-color.pipe';\n\n\n\n@NgModule({\n declarations: [\n BsFontColorPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsFontColorPipe\n ]\n})\nexport class BsFontColorPipeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","takeUntil","take"],"mappings":"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"}