@mintplayer/ng-bootstrap 13.1.7 → 13.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +2 -1
- package/esm2020/lib/components/accordion/accordion-tab/accordion-tab.component.mjs +4 -3
- package/esm2020/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.mjs +7 -3
- package/esm2020/lib/components/alert/alert/alert.component.mjs +4 -4
- package/esm2020/lib/components/calendar/calendar.component.mjs +3 -3
- package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +21 -7
- package/esm2020/lib/components/context-menu/context-menu.directive.mjs +77 -0
- package/esm2020/lib/components/context-menu/context-menu.module.mjs +26 -0
- package/esm2020/lib/components/context-menu/index.mjs +3 -0
- package/esm2020/lib/components/datepicker/datepicker.component.mjs +1 -1
- package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +33 -6
- package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +42 -13
- package/esm2020/lib/components/dropdown/dropdown-toggle/dropdown-toggle.directive.mjs +1 -2
- package/esm2020/lib/components/dropdown/dropdown.module.mjs +8 -4
- package/esm2020/lib/components/file-upload/component/file-upload.component.mjs +85 -0
- package/esm2020/lib/components/file-upload/directive/file-upload-template.directive.mjs +18 -0
- package/esm2020/lib/components/file-upload/file-upload.mjs +2 -0
- package/esm2020/lib/components/file-upload/file-upload.module.mjs +43 -0
- package/esm2020/lib/components/file-upload/index.mjs +5 -0
- package/esm2020/lib/components/for/for.directive.mjs +32 -0
- package/esm2020/lib/components/for/for.module.mjs +26 -0
- package/esm2020/lib/components/for/index.mjs +3 -0
- package/esm2020/lib/components/index.mjs +17 -7
- package/esm2020/lib/components/multiselect/multiselect.component.mjs +8 -5
- package/esm2020/lib/components/multiselect/multiselect.module.mjs +8 -4
- package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +9 -6
- package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +47 -9
- package/esm2020/lib/components/pagination/index.mjs +3 -0
- package/esm2020/lib/components/progress-bar/index.mjs +4 -0
- package/esm2020/lib/components/progress-bar/progress/progress.component.mjs +27 -0
- package/esm2020/lib/components/progress-bar/progress-bar/progress-bar.component.mjs +121 -0
- package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +31 -0
- package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +54 -14
- package/esm2020/lib/components/select2/component/select2.component.mjs +96 -0
- package/esm2020/lib/components/select2/directive/item-template.directive.mjs +19 -0
- package/esm2020/lib/components/select2/index.mjs +4 -0
- package/esm2020/lib/components/select2/select2.module.mjs +43 -0
- package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +35 -0
- package/esm2020/lib/components/snackbar/directives/index.mjs +2 -0
- package/esm2020/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.mjs +27 -0
- package/esm2020/lib/components/snackbar/index.mjs +6 -0
- package/esm2020/lib/components/snackbar/interfaces/index.mjs +2 -0
- package/esm2020/lib/components/snackbar/interfaces/snackbar-animation-meta.mjs +2 -0
- package/esm2020/lib/components/snackbar/providers/snackbar-content.provider.mjs +3 -0
- package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +49 -0
- package/esm2020/lib/components/snackbar/snackbar.module.mjs +38 -0
- package/esm2020/lib/components/toggle-button/index.mjs +3 -0
- package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +42 -0
- package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +26 -0
- package/esm2020/lib/components/tooltip/component/tooltip.component.mjs +25 -0
- package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +110 -0
- package/esm2020/lib/components/tooltip/index.mjs +4 -0
- package/esm2020/lib/components/tooltip/providers/tooltip-content.provider.mjs +3 -0
- package/esm2020/lib/components/tooltip/tooltip.module.mjs +29 -0
- package/esm2020/lib/components/typeahead/index.mjs +3 -0
- package/esm2020/lib/components/typeahead/typeahead.component.mjs +90 -0
- package/esm2020/lib/components/typeahead/typeahead.module.mjs +38 -0
- package/esm2020/lib/enums/index.mjs +2 -1
- package/esm2020/lib/enums/position.enum.mjs +8 -0
- package/esm2020/lib/pipes/font-color/font-color.module.mjs +26 -0
- package/esm2020/lib/pipes/font-color/font-color.pipe.mjs +26 -0
- package/esm2020/lib/pipes/font-color/index.mjs +3 -0
- package/esm2020/lib/pipes/format-bytes/format-bytes.module.mjs +26 -0
- package/esm2020/lib/pipes/format-bytes/format-bytes.pipe.mjs +23 -0
- package/esm2020/lib/pipes/in-list/in-list.module.mjs +26 -0
- package/esm2020/lib/pipes/in-list/in-list.pipe.mjs +16 -0
- package/esm2020/lib/pipes/index.mjs +2 -0
- package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +12 -14
- package/esm2020/lib/services/scroll-offset/scroll-offset.service.mjs +31 -0
- package/fesm2015/mintplayer-ng-bootstrap.mjs +1868 -511
- package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap.mjs +1860 -515
- package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -0
- package/lib/components/carousel/carousel/carousel.component.d.ts +4 -1
- package/lib/components/context-menu/context-menu.directive.d.ts +18 -0
- package/lib/components/context-menu/context-menu.module.d.ts +8 -0
- package/lib/components/context-menu/index.d.ts +2 -0
- package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +10 -2
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +6 -3
- package/lib/components/dropdown/dropdown.module.d.ts +2 -1
- package/lib/components/file-upload/component/file-upload.component.d.ts +19 -0
- package/lib/components/file-upload/directive/file-upload-template.directive.d.ts +8 -0
- package/lib/components/file-upload/file-upload.d.ts +4 -0
- package/lib/components/file-upload/file-upload.module.d.ts +12 -0
- package/lib/components/file-upload/index.d.ts +4 -0
- package/lib/components/for/for.directive.d.ts +7 -0
- package/lib/components/for/for.module.d.ts +8 -0
- package/lib/components/for/index.d.ts +2 -0
- package/lib/components/index.d.ts +16 -6
- package/lib/components/multiselect/multiselect.component.d.ts +3 -2
- package/lib/components/multiselect/multiselect.module.d.ts +2 -1
- package/lib/components/navbar/navbar/navbar.component.d.ts +3 -3
- package/lib/components/navbar/navbar-nav/navbar-nav.component.d.ts +10 -4
- package/lib/components/pagination/index.d.ts +2 -0
- package/lib/components/progress-bar/index.d.ts +3 -0
- package/lib/components/progress-bar/progress/progress.component.d.ts +8 -0
- package/lib/components/progress-bar/progress-bar/progress-bar.component.d.ts +31 -0
- package/lib/components/progress-bar/progress-bar.module.d.ts +9 -0
- package/lib/components/scrollspy/component/scrollspy.component.d.ts +14 -4
- package/lib/components/select2/component/select2.component.d.ts +30 -0
- package/lib/components/select2/directive/item-template.directive.d.ts +9 -0
- package/lib/components/select2/index.d.ts +3 -0
- package/lib/components/select2/select2.module.d.ts +12 -0
- package/lib/components/snackbar/component/snackbar.component.d.ts +15 -0
- package/lib/components/snackbar/directives/index.d.ts +1 -0
- package/lib/components/snackbar/directives/snackbar-close/snackbar-close.directive.d.ts +11 -0
- package/lib/components/snackbar/index.d.ts +5 -0
- package/lib/components/snackbar/interfaces/index.d.ts +1 -0
- package/lib/components/snackbar/interfaces/snackbar-animation-meta.d.ts +7 -0
- package/lib/components/snackbar/providers/snackbar-content.provider.d.ts +2 -0
- package/lib/components/snackbar/service/snackbar.service.d.ts +14 -0
- package/lib/components/snackbar/snackbar.module.d.ts +9 -0
- package/lib/components/toggle-button/index.d.ts +2 -0
- package/lib/components/toggle-button/toggle-button.component.d.ts +15 -0
- package/lib/components/toggle-button/toggle-button.module.d.ts +8 -0
- package/lib/components/tooltip/component/tooltip.component.d.ts +11 -0
- package/lib/components/tooltip/directive/tooltip.directive.d.ts +20 -0
- package/lib/components/tooltip/index.d.ts +2 -0
- package/lib/components/tooltip/providers/tooltip-content.provider.d.ts +2 -0
- package/lib/components/tooltip/tooltip.module.d.ts +9 -0
- package/lib/components/typeahead/index.d.ts +2 -0
- package/lib/components/typeahead/typeahead.component.d.ts +29 -0
- package/lib/components/typeahead/typeahead.module.d.ts +11 -0
- package/lib/enums/index.d.ts +1 -0
- package/lib/enums/position.enum.d.ts +6 -0
- package/lib/pipes/font-color/font-color.module.d.ts +8 -0
- package/lib/pipes/font-color/font-color.pipe.d.ts +7 -0
- package/lib/pipes/font-color/index.d.ts +2 -0
- package/lib/pipes/format-bytes/format-bytes.module.d.ts +8 -0
- package/lib/pipes/format-bytes/format-bytes.pipe.d.ts +7 -0
- package/lib/pipes/in-list/in-list.module.d.ts +8 -0
- package/lib/pipes/in-list/in-list.pipe.d.ts +7 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/services/calendar-month/calendar-month.service.d.ts +0 -1
- package/lib/services/scroll-offset/scroll-offset.service.d.ts +9 -0
- package/package.json +4 -2
- package/src/assets/ic-upload-file.svg +7 -0
- package/src/styles/utilities/cursor.scss +14 -0
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, take } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class BsNavbarComponent {
|
|
4
5
|
constructor() {
|
|
5
|
-
this.isExpanded = false;
|
|
6
|
+
this.isExpanded$ = new BehaviorSubject(false);
|
|
6
7
|
}
|
|
7
8
|
toggleExpanded() {
|
|
8
|
-
this.isExpanded
|
|
9
|
+
this.isExpanded$.pipe(take(1)).subscribe((isExpanded) => {
|
|
10
|
+
this.isExpanded$.next(!isExpanded);
|
|
11
|
+
});
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
14
|
BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
-
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<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 <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\"
|
|
15
|
+
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<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 <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
|
|
13
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarComponent, decorators: [{
|
|
14
17
|
type: Component,
|
|
15
|
-
args: [{ selector: 'bs-navbar', template: "<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 <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\"
|
|
16
|
-
}],
|
|
18
|
+
args: [{ selector: 'bs-navbar', template: "<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 <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] }]
|
|
19
|
+
}], propDecorators: { nav: [{
|
|
17
20
|
type: ViewChild,
|
|
18
21
|
args: ['nav']
|
|
19
22
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVNFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7S0FPbkQ7SUFOQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQVRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDZJQ1I5QiwrZkFVTTsyRkRGTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzs4QkFNSCxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNOYXZiYXJDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoJ25hdicpIG5hdiE6IEVsZW1lbnRSZWY7XG5cbiAgaXNFeHBhbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaXNFeHBhbmRlZCkgPT4ge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkJC5uZXh0KCFpc0V4cGFuZGVkKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8bmF2ICNuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBwb3NpdGlvbi1maXhlZCBuYXZiYXItZGFyayBiZy1kYXJrXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwIHctbWQtYXV0b1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXZiYXItYnJhbmQgbXgtYXV0byBteC1tZC11bnNldFwiIGhyZWY9XCIjXCI+TmF2YmFyIDI8L2E+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCIgY2xhc3M9XCJuYXZiYXItdG9nZ2xlciBhbGlnbi1zZWxmLWVuZFwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvbmF2PiJdfQ==
|
|
@@ -1,29 +1,67 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, HostListener, Input } from '@angular/core';
|
|
2
2
|
import { BsNavbarComponent } from '../navbar/navbar.component';
|
|
3
3
|
import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
|
|
4
|
+
import { BehaviorSubject, combineLatest, debounceTime, filter, map, Subject, takeUntil } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../navbar/navbar.component";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
6
8
|
export class BsNavbarNavComponent {
|
|
7
9
|
constructor(bsNavbar) {
|
|
8
|
-
|
|
9
|
-
this.
|
|
10
|
+
this.collapse$ = new BehaviorSubject(true);
|
|
11
|
+
this.windowWidth$ = new BehaviorSubject(null);
|
|
12
|
+
this.isResizing$ = new BehaviorSubject(false);
|
|
13
|
+
this.destroyed$ = new Subject();
|
|
10
14
|
this.bsNavbar = bsNavbar;
|
|
15
|
+
this.showNavs$ = combineLatest([this.bsNavbar.isExpanded$, this.windowWidth$])
|
|
16
|
+
.pipe(filter(([isExpanded, windowWidth]) => {
|
|
17
|
+
return windowWidth !== null;
|
|
18
|
+
}))
|
|
19
|
+
.pipe(map(([isExpanded, windowWidth]) => {
|
|
20
|
+
if (windowWidth === null) {
|
|
21
|
+
throw 'windowWidth should not be null here';
|
|
22
|
+
}
|
|
23
|
+
else if (windowWidth >= 768) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
else if (isExpanded) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
this.windowWidth$
|
|
34
|
+
.pipe(debounceTime(300), takeUntil(this.destroyed$))
|
|
35
|
+
.subscribe(() => {
|
|
36
|
+
this.isResizing$.next(false);
|
|
37
|
+
});
|
|
38
|
+
this.onWindowResize();
|
|
11
39
|
}
|
|
12
|
-
|
|
40
|
+
ngOnDestroy() {
|
|
41
|
+
this.destroyed$.next(true);
|
|
13
42
|
}
|
|
43
|
+
//#region collapse
|
|
14
44
|
set collapse(value) {
|
|
15
|
-
this.
|
|
45
|
+
this.collapse$.next(value);
|
|
16
46
|
}
|
|
17
47
|
get collapse() {
|
|
18
|
-
return this.
|
|
48
|
+
return this.collapse$.value;
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
onWindowResize() {
|
|
52
|
+
this.isResizing$.next(true);
|
|
53
|
+
this.windowWidth$.next(window.innerWidth);
|
|
19
54
|
}
|
|
20
55
|
}
|
|
21
56
|
BsNavbarNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, deps: [{ token: i1.BsNavbarComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
BsNavbarNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarNavComponent, selector: "bs-navbar-nav", inputs: { collapse: "collapse" }, ngImport: i0, template: "<div class=\"navbar-collapse
|
|
57
|
+
BsNavbarNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsNavbarNavComponent, selector: "bs-navbar-nav", inputs: { collapse: "collapse" }, host: { listeners: { "window:resize": "onWindowResize()" } }, ngImport: i0, template: "<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>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, animations: [SlideUpDownAnimation] });
|
|
23
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarNavComponent, decorators: [{
|
|
24
59
|
type: Component,
|
|
25
|
-
args: [{ selector: 'bs-navbar-nav', animations: [SlideUpDownAnimation], template: "<div class=\"navbar-collapse
|
|
60
|
+
args: [{ selector: 'bs-navbar-nav', animations: [SlideUpDownAnimation], template: "<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>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"] }]
|
|
26
61
|
}], ctorParameters: function () { return [{ type: i1.BsNavbarComponent }]; }, propDecorators: { collapse: [{
|
|
27
62
|
type: Input
|
|
63
|
+
}], onWindowResize: [{
|
|
64
|
+
type: HostListener,
|
|
65
|
+
args: ['window:resize']
|
|
28
66
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLW5hdi9uYXZiYXItbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXItbmF2L25hdmJhci1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBYyxNQUFNLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFRN0gsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFZLFFBQTJCO1FBMkJ2QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFFeEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQTlCekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDekMsT0FBTyxXQUFXLEtBQUssSUFBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO2FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUN4QixNQUFNLHFDQUFxQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksV0FBVyxJQUFJLEdBQUcsRUFBRTtnQkFDN0IsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTSxJQUFJLFVBQVUsRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ25ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBU0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBb0IsUUFBUSxDQUFDLEtBQWM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCxZQUFZO0lBR1osY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDOztpSEFwRFUsb0JBQW9CO3FHQUFwQixvQkFBb0IscUpDWGpDLGdRQUlNLGtTREtRLENBQUMsb0JBQW9CLENBQUM7MkZBRXZCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsQ0FBQyxvQkFBb0IsQ0FBQzt3R0EwQ2QsUUFBUTtzQkFBM0IsS0FBSztnQkFTTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTmF2YmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xpZGVVcERvd25BbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBleGhhdXN0QWxsLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLW5hdmJhci1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmJhci1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc05hdmJhck5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoYnNOYXZiYXI6IEJzTmF2YmFyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5ic05hdmJhciA9IGJzTmF2YmFyO1xuICAgIHRoaXMuc2hvd05hdnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5ic05hdmJhci5pc0V4cGFuZGVkJCwgdGhpcy53aW5kb3dXaWR0aCRdKVxuICAgICAgLnBpcGUoZmlsdGVyKChbaXNFeHBhbmRlZCwgd2luZG93V2lkdGhdKSA9PiB7XG4gICAgICAgIHJldHVybiB3aW5kb3dXaWR0aCAhPT0gbnVsbDtcbiAgICAgIH0pKVxuICAgICAgLnBpcGUobWFwKChbaXNFeHBhbmRlZCwgd2luZG93V2lkdGhdKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3dXaWR0aCA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93ICd3aW5kb3dXaWR0aCBzaG91bGQgbm90IGJlIG51bGwgaGVyZSc7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93V2lkdGggPj0gNzY4KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgdGhpcy53aW5kb3dXaWR0aCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzUmVzaXppbmckLm5leHQoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgdGhpcy5vbldpbmRvd1Jlc2l6ZSgpO1xuICB9XG4gIFxuICBic05hdmJhcjogQnNOYXZiYXJDb21wb25lbnQ7XG4gIGNvbGxhcHNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHdpbmRvd1dpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHNob3dOYXZzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZXNpemluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuICBcbiAgLy8jcmVnaW9uIGNvbGxhcHNlXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29sbGFwc2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbGxhcHNlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbGxhcHNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlJC52YWx1ZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy5pc1Jlc2l6aW5nJC5uZXh0KHRydWUpO1xuICAgIHRoaXMud2luZG93V2lkdGgkLm5leHQod2luZG93LmlubmVyV2lkdGgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIHctMTAwIHNob3dcIiBbY2xhc3MuY29sbGFwc2VdPVwiY29sbGFwc2UkIHwgYXN5bmNcIiAqbmdJZj1cInNob3dOYXZzJCB8IGFzeW5jXCIgW0BzbGlkZVVwRG93bl0gW0AuZGlzYWJsZWRdPVwiaXNSZXNpemluZyQgfCBhc3luY1wiPlxuICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXYgbXItYXV0b1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './pagination.module';
|
|
2
|
+
export * from './pagination/pagination.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JzsiXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './progress-bar.module';
|
|
2
|
+
export * from './progress/progress.component';
|
|
3
|
+
export * from './progress-bar/progress-bar.component';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7Il19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class BsProgressComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.progressClass = true;
|
|
7
|
+
this.height = null;
|
|
8
|
+
this.isIndeterminate = false;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
BsProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
BsProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressComponent, selector: "bs-progress", inputs: { height: "height", isIndeterminate: "isIndeterminate" }, host: { properties: { "class.progress": "this.progressClass", "style.height.px": "this.height" } }, ngImport: i0, template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'bs-progress', template: "<ng-content *ngIf=\"!isIndeterminate\"></ng-content>\n<div *ngIf=\"isIndeterminate\" class=\"progress-bar progress-bar-infinite\" role=\"progressbar\" aria-valuenow=\"infinite\"></div>", styles: ["@keyframes progress-infinite{0%{width:10%;margin-left:0%}25%{width:70%;margin-left:15%}50%{width:10%;margin-left:90%}75%{width:70%;margin-left:15%}to{width:10%;margin-left:0%}}.progress-bar-infinite{animation:progress-infinite 1.5s infinite}\n"] }]
|
|
16
|
+
}], propDecorators: { progressClass: [{
|
|
17
|
+
type: HostBinding,
|
|
18
|
+
args: ['class.progress']
|
|
19
|
+
}], height: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}, {
|
|
22
|
+
type: HostBinding,
|
|
23
|
+
args: ['style.height.px']
|
|
24
|
+
}], isIndeterminate: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU85RCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTXlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FDekM7O2dIQUpZLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlOQ1BoQywwTEFDMEg7MkZETTdHLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOzhCQUtnQixhQUFhO3NCQUFuRCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDbUIsTUFBTTtzQkFBckQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ3ZCLGVBQWU7c0JBQTlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1wcm9ncmVzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNQcm9ncmVzc0NvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MnKSBwcml2YXRlIHByb2dyZXNzQ2xhc3MgPSB0cnVlO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5weCcpIHB1YmxpYyBoZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG59XG4iLCI8bmctY29udGVudCAqbmdJZj1cIiFpc0luZGV0ZXJtaW5hdGVcIj48L25nLWNvbnRlbnQ+XG48ZGl2ICpuZ0lmPVwiaXNJbmRldGVybWluYXRlXCIgY2xhc3M9XCJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWluZmluaXRlXCIgcm9sZT1cInByb2dyZXNzYmFyXCIgYXJpYS12YWx1ZW5vdz1cImluZmluaXRlXCI+PC9kaXY+Il19
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { Color } from '../../../enums/color.enum';
|
|
3
|
+
import { BehaviorSubject, combineLatest, map, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BsProgressBarComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.destroyed$ = new Subject();
|
|
8
|
+
this.minimum$ = new BehaviorSubject(0);
|
|
9
|
+
this.maximum$ = new BehaviorSubject(100);
|
|
10
|
+
this.value$ = new BehaviorSubject(50);
|
|
11
|
+
this.color$ = new BehaviorSubject(Color.primary);
|
|
12
|
+
this.striped = false;
|
|
13
|
+
this.animated = false;
|
|
14
|
+
this.progressBar = true;
|
|
15
|
+
this.colorClass = 'bg-primary';
|
|
16
|
+
this.widthStyle = '0';
|
|
17
|
+
this.role = 'progressbar';
|
|
18
|
+
this.valueNow = 50;
|
|
19
|
+
this.valueMin = 0;
|
|
20
|
+
this.valueMax = 100;
|
|
21
|
+
this.percentage$ = combineLatest([this.minimum$, this.maximum$, this.value$])
|
|
22
|
+
.pipe(map(([minimum, maximum, value]) => {
|
|
23
|
+
return (value - minimum) / (maximum - minimum) * 100;
|
|
24
|
+
}));
|
|
25
|
+
this.width$ = this.percentage$
|
|
26
|
+
.pipe(map((width) => {
|
|
27
|
+
return String(width) + '%';
|
|
28
|
+
}));
|
|
29
|
+
this.colorClass$ = this.color$
|
|
30
|
+
.pipe(map((color) => {
|
|
31
|
+
const name = Color[color];
|
|
32
|
+
return `bg-${name}`;
|
|
33
|
+
}));
|
|
34
|
+
this.colorClass$
|
|
35
|
+
.pipe(takeUntil(this.destroyed$))
|
|
36
|
+
.subscribe((color) => {
|
|
37
|
+
this.colorClass = color;
|
|
38
|
+
});
|
|
39
|
+
this.width$
|
|
40
|
+
.pipe(takeUntil(this.destroyed$))
|
|
41
|
+
.subscribe((width) => {
|
|
42
|
+
this.widthStyle = width;
|
|
43
|
+
});
|
|
44
|
+
this.value$
|
|
45
|
+
.pipe(takeUntil(this.destroyed$))
|
|
46
|
+
.subscribe((value) => {
|
|
47
|
+
this.valueNow = value;
|
|
48
|
+
});
|
|
49
|
+
this.minimum$
|
|
50
|
+
.pipe(takeUntil(this.destroyed$))
|
|
51
|
+
.subscribe((value) => {
|
|
52
|
+
this.valueMin = value;
|
|
53
|
+
});
|
|
54
|
+
this.maximum$
|
|
55
|
+
.pipe(takeUntil(this.destroyed$))
|
|
56
|
+
.subscribe((value) => {
|
|
57
|
+
this.valueMax = value;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
set minimum(value) {
|
|
61
|
+
this.minimum$.next(value);
|
|
62
|
+
}
|
|
63
|
+
set maximum(value) {
|
|
64
|
+
this.maximum$.next(value);
|
|
65
|
+
}
|
|
66
|
+
set value(value) {
|
|
67
|
+
this.value$.next(value);
|
|
68
|
+
}
|
|
69
|
+
set color(value) {
|
|
70
|
+
this.color$.next(value);
|
|
71
|
+
}
|
|
72
|
+
ngOnDestroy() {
|
|
73
|
+
this.destroyed$.next(true);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
BsProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
BsProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: { minimum: "minimum", maximum: "maximum", value: "value", color: "color", striped: "striped", animated: "animated" }, host: { properties: { "class.progress-bar-striped": "this.striped", "class.progress-bar-animated": "this.animated", "class.progress-bar": "this.progressBar", "class": "this.colorClass", "style.width": "this.widthStyle", "attr.role": "this.role", "attr.aria-valuenow": "this.valueNow", "attr.aria-valuemin": "this.valueMin", "attr.aria-valuemax": "this.valueMax" } }, ngImport: i0, template: "", styles: [""] });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'bs-progress-bar', template: "", styles: [""] }]
|
|
81
|
+
}], ctorParameters: function () { return []; }, propDecorators: { minimum: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], maximum: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], value: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], color: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], striped: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}, {
|
|
92
|
+
type: HostBinding,
|
|
93
|
+
args: ['class.progress-bar-striped']
|
|
94
|
+
}], animated: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}, {
|
|
97
|
+
type: HostBinding,
|
|
98
|
+
args: ['class.progress-bar-animated']
|
|
99
|
+
}], progressBar: [{
|
|
100
|
+
type: HostBinding,
|
|
101
|
+
args: ['class.progress-bar']
|
|
102
|
+
}], colorClass: [{
|
|
103
|
+
type: HostBinding,
|
|
104
|
+
args: ['class']
|
|
105
|
+
}], widthStyle: [{
|
|
106
|
+
type: HostBinding,
|
|
107
|
+
args: ['style.width']
|
|
108
|
+
}], role: [{
|
|
109
|
+
type: HostBinding,
|
|
110
|
+
args: ['attr.role']
|
|
111
|
+
}], valueNow: [{
|
|
112
|
+
type: HostBinding,
|
|
113
|
+
args: ['attr.aria-valuenow']
|
|
114
|
+
}], valueMin: [{
|
|
115
|
+
type: HostBinding,
|
|
116
|
+
args: ['attr.aria-valuemin']
|
|
117
|
+
}], valueMax: [{
|
|
118
|
+
type: HostBinding,
|
|
119
|
+
args: ['attr.aria-valuemax']
|
|
120
|
+
}] } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTzNGLE1BQU0sT0FBTyxzQkFBc0I7SUFFakM7UUEwQ0EsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxHQUFHLENBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFHekMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQWVRLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxZQUFZLENBQUM7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SSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQW9CLEtBQUssQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFZRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7bUhBOUVVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG9pQkNUbkMsRUFBQTsyRkRTYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQXlEUCxPQUFPO3NCQUExQixLQUFLO2dCQUdjLE9BQU87c0JBQTFCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsS0FBSztnQkFHYyxLQUFLO3NCQUF4QixLQUFLO2dCQUdxRCxPQUFPO3NCQUFqRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDVSxRQUFRO3NCQUFuRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDZCQUE2QjtnQkFFaEIsV0FBVztzQkFBN0MsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ1gsVUFBVTtzQkFBL0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNRLFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYTtnQkFDQSxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ1csUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2NvbG9yLmVudW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1wcm9ncmVzcy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNQcm9ncmVzc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wZXJjZW50YWdlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubWluaW11bSQsIHRoaXMubWF4aW11bSQsIHRoaXMudmFsdWUkXSlcbiAgICAgIC5waXBlKG1hcCgoW21pbmltdW0sIG1heGltdW0sIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gKHZhbHVlIC0gbWluaW11bSkgLyAobWF4aW11bSAtIG1pbmltdW0pICogMTAwO1xuICAgICAgfSkpO1xuICAgIHRoaXMud2lkdGgkID0gdGhpcy5wZXJjZW50YWdlJFxuICAgICAgLnBpcGUobWFwKCh3aWR0aCkgPT4ge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHdpZHRoKSArICclJztcbiAgICAgIH0pKTtcbiAgICB0aGlzLmNvbG9yQ2xhc3MkID0gdGhpcy5jb2xvciRcbiAgICAgIC5waXBlKG1hcCgoY29sb3IpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbG9yW2NvbG9yXTtcbiAgICAgICAgcmV0dXJuIGBiZy0ke25hbWV9YDtcbiAgICAgIH0pKTtcblxuICAgIHRoaXMuY29sb3JDbGFzcyRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoY29sb3IpID0+IHtcbiAgICAgICAgdGhpcy5jb2xvckNsYXNzID0gY29sb3I7XG4gICAgICB9KTtcbiAgICB0aGlzLndpZHRoJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCh3aWR0aCkgPT4ge1xuICAgICAgICB0aGlzLndpZHRoU3R5bGUgPSB3aWR0aDtcbiAgICAgIH0pO1xuICAgIHRoaXMudmFsdWUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVOb3cgPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIHRoaXMubWluaW11bSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZU1pbiA9IHZhbHVlO1xuICAgICAgfSk7XG4gICAgdGhpcy5tYXhpbXVtJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlTWF4ID0gdmFsdWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpXG4gIG1pbmltdW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBtYXhpbXVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxMDApO1xuICB2YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNTApO1xuICBwZXJjZW50YWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICB3aWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgY29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xvcj4oQ29sb3IucHJpbWFyeSk7XG4gIGNvbG9yQ2xhc3MkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQElucHV0KCkgcHVibGljIHNldCBtaW5pbXVtKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm1pbmltdW0kLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWF4aW11bSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXhpbXVtJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbG9yKHZhbHVlOiBDb2xvcikge1xuICAgIHRoaXMuY29sb3IkLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MtYmFyLXN0cmlwZWQnKSBwdWJsaWMgc3RyaXBlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLnByb2dyZXNzLWJhci1hbmltYXRlZCcpIHB1YmxpYyBhbmltYXRlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MtYmFyJykgcHJvZ3Jlc3NCYXIgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY29sb3JDbGFzcyA9ICdiZy1wcmltYXJ5JztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpIHdpZHRoU3R5bGUgPSAnMCc7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdwcm9ncmVzc2Jhcic7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JykgdmFsdWVOb3cgPSA1MDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtaW4nKSB2YWx1ZU1pbiA9IDA7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JykgdmFsdWVNYXggPSAxMDA7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxufVxuIiwiIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { BsProgressComponent } from './progress/progress.component';
|
|
4
|
+
import { BsProgressBarComponent } from './progress-bar/progress-bar.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class BsProgressBarModule {
|
|
7
|
+
}
|
|
8
|
+
BsProgressBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
BsProgressBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, declarations: [BsProgressBarComponent,
|
|
10
|
+
BsProgressComponent], imports: [CommonModule], exports: [BsProgressBarComponent,
|
|
11
|
+
BsProgressComponent] });
|
|
12
|
+
BsProgressBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, imports: [[
|
|
13
|
+
CommonModule
|
|
14
|
+
]] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsProgressBarModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [
|
|
19
|
+
BsProgressBarComponent,
|
|
20
|
+
BsProgressComponent
|
|
21
|
+
],
|
|
22
|
+
imports: [
|
|
23
|
+
CommonModule
|
|
24
|
+
],
|
|
25
|
+
exports: [
|
|
26
|
+
BsProgressBarComponent,
|
|
27
|
+
BsProgressComponent
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWlCL0UsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVg1QixzQkFBc0I7UUFDdEIsbUJBQW1CLGFBR25CLFlBQVksYUFHWixzQkFBc0I7UUFDdEIsbUJBQW1CO2lIQUdWLG1CQUFtQixZQVJyQjtZQUNQLFlBQVk7U0FDYjsyRkFNVSxtQkFBbUI7a0JBYi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc1Byb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnNQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBCc1Byb2dyZXNzQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJzUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgQnNQcm9ncmVzc0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzUHJvZ3Jlc3NCYXJNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,20 +1,44 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Component, ContentChildren, HostListener, Inject, QueryList } from '@angular/core';
|
|
2
|
+
import { Component, ContentChildren, HostListener, Inject, NgZone, QueryList, ViewChildren } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';
|
|
4
|
+
import { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';
|
|
3
5
|
import { BsScrollspyDirective } from '../directives/scrollspy.directive';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
7
|
+
import * as i1 from "../../../services/scroll-offset/scroll-offset.service";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
6
9
|
export class BsScrollspyComponent {
|
|
7
|
-
constructor(document) {
|
|
10
|
+
constructor(scrollOffsetService, document, zone) {
|
|
11
|
+
this.scrollOffsetService = scrollOffsetService;
|
|
12
|
+
this.zone = zone;
|
|
13
|
+
this.destroyed$ = new Subject();
|
|
14
|
+
this.viewInit$ = new BehaviorSubject(false);
|
|
15
|
+
this.contentInit$ = new BehaviorSubject(false);
|
|
8
16
|
this.activeDirective = null;
|
|
9
17
|
this.doc = document;
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
combineLatest([this.viewInit$, this.contentInit$])
|
|
19
|
+
.pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))
|
|
20
|
+
.pipe(takeUntil(this.destroyed$))
|
|
21
|
+
.subscribe(() => {
|
|
22
|
+
// this.setActiveDirective();
|
|
23
|
+
this.scrollToCurrentInSpy();
|
|
24
|
+
});
|
|
12
25
|
}
|
|
13
26
|
ngAfterViewInit() {
|
|
14
|
-
this.
|
|
27
|
+
this.viewInit$.next(true);
|
|
28
|
+
}
|
|
29
|
+
ngAfterContentInit() {
|
|
30
|
+
this.contentInit$.next(true);
|
|
31
|
+
}
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this.destroyed$.next(true);
|
|
15
34
|
}
|
|
16
35
|
onWindowScroll() {
|
|
17
|
-
|
|
36
|
+
this.setActiveDirective();
|
|
37
|
+
this.scrollToCurrentInSpy();
|
|
38
|
+
}
|
|
39
|
+
setActiveDirective() {
|
|
40
|
+
const offsetY = this.scrollOffsetService.getScrollOffset()[1];
|
|
41
|
+
const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
|
|
18
42
|
if (this.directives.length === 0) {
|
|
19
43
|
this.activeDirective = null;
|
|
20
44
|
}
|
|
@@ -25,24 +49,40 @@ export class BsScrollspyComponent {
|
|
|
25
49
|
this.activeDirective = dirs[dirs.length - 1];
|
|
26
50
|
}
|
|
27
51
|
}
|
|
52
|
+
scrollToCurrentInSpy() {
|
|
53
|
+
if (window && (window.innerWidth >= 768)) {
|
|
54
|
+
if (this.activeDirective) {
|
|
55
|
+
const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
|
|
56
|
+
const anchor = this.anchors.get(index);
|
|
57
|
+
if (anchor && anchor.nativeElement.parentElement) {
|
|
58
|
+
anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
28
63
|
scrollToHeader(directive) {
|
|
29
64
|
const header = directive.element.nativeElement;
|
|
30
|
-
|
|
65
|
+
const offsetY = this.scrollOffsetService.getScrollOffset()[1];
|
|
66
|
+
const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;
|
|
67
|
+
window.scrollTo({ top: y, behavior: 'smooth' });
|
|
31
68
|
}
|
|
32
69
|
}
|
|
33
|
-
BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:
|
|
70
|
+
BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
BsScrollspyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
35
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
|
|
36
73
|
type: Component,
|
|
37
|
-
args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives\">\n <span class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\">\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:
|
|
38
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
74
|
+
args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;grid-gap:inherit;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i1.BsScrollOffsetService }, { type: undefined, decorators: [{
|
|
39
76
|
type: Inject,
|
|
40
77
|
args: [DOCUMENT]
|
|
41
|
-
}] }]; }, propDecorators: { directives: [{
|
|
78
|
+
}] }, { type: i0.NgZone }]; }, propDecorators: { directives: [{
|
|
42
79
|
type: ContentChildren,
|
|
43
80
|
args: [BsScrollspyDirective, { descendants: true }]
|
|
81
|
+
}], anchors: [{
|
|
82
|
+
type: ViewChildren,
|
|
83
|
+
args: ['anchor']
|
|
44
84
|
}], onWindowScroll: [{
|
|
45
85
|
type: HostListener,
|
|
46
86
|
args: ['window:scroll', ['$event']]
|
|
47
87
|
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLG1CQUEwQyxFQUNoQyxRQUFhLEVBQ3ZCLElBQVk7UUFGWix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBRTFDLFNBQUksR0FBSixJQUFJLENBQVE7UUFXZCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQU0zRCxvQkFBZSxHQUFnQyxJQUFJLENBQUM7UUFsQmxELElBQUksQ0FBQyxHQUFHLEdBQWEsUUFBUSxDQUFDO1FBQzlCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVlELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFeEcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRTtvQkFDaEQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RTthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQStCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2lIQTFFVSxvQkFBb0IsdURBSXJCLFFBQVE7cUdBSlAsb0JBQW9CLG1KQW9CZCxvQkFBb0Isc0lDL0J2QywwakJBV007MkZEQU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQVFyQixNQUFNOzJCQUFDLFFBQVE7aUVBZ0I0QyxVQUFVO3NCQUF2RSxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDcEMsT0FBTztzQkFBOUIsWUFBWTt1QkFBQyxRQUFRO2dCQWtCdEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgTmdab25lLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1Njcm9sbE9mZnNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JvbGwtb2Zmc2V0L3Njcm9sbC1vZmZzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBCc1Njcm9sbHNweURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2Nyb2xsc3B5LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXNjcm9sbHNweScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxzcHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxzcHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1Njcm9sbHNweUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY3JvbGxPZmZzZXRTZXJ2aWNlOiBCc1Njcm9sbE9mZnNldFNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuZG9jID0gPERvY3VtZW50PmRvY3VtZW50O1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmlld0luaXQkLCB0aGlzLmNvbnRlbnRJbml0JF0pXG4gICAgICAucGlwZShmaWx0ZXIoKFt2aWV3SW5pdCwgY29udGVudEluaXRdKSA9PiB2aWV3SW5pdCAmJiBjb250ZW50SW5pdCksIHRha2UoMSkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzLnNldEFjdGl2ZURpcmVjdGl2ZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQ3VycmVudEluU3B5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgdmlld0luaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgY29udGVudEluaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihCc1Njcm9sbHNweURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBkaXJlY3RpdmVzITogUXVlcnlMaXN0PEJzU2Nyb2xsc3B5RGlyZWN0aXZlPjtcbiAgQFZpZXdDaGlsZHJlbignYW5jaG9yJykgYW5jaG9ycyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+O1xuXG4gIGRvYzogRG9jdW1lbnQ7XG4gIGFjdGl2ZURpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0JC5uZXh0KHRydWUpO1xuICB9XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuICBcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIHRoaXMuc2V0QWN0aXZlRGlyZWN0aXZlKCk7XG4gICAgdGhpcy5zY3JvbGxUb0N1cnJlbnRJblNweSgpO1xuICB9XG5cbiAgc2V0QWN0aXZlRGlyZWN0aXZlKCkge1xuICAgIGNvbnN0IG9mZnNldFkgPSB0aGlzLnNjcm9sbE9mZnNldFNlcnZpY2UuZ2V0U2Nyb2xsT2Zmc2V0KClbMV07XG4gICAgY29uc3QgZGlycyA9IHRoaXMuZGlyZWN0aXZlcy5maWx0ZXIoKGQpID0+IGQuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgPCBvZmZzZXRZKTtcblxuICAgIGlmICh0aGlzLmRpcmVjdGl2ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChkaXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSB0aGlzLmRpcmVjdGl2ZXMuZ2V0KDApID8/IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gZGlyc1tkaXJzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbFRvQ3VycmVudEluU3B5KCkge1xuICAgIGlmICh3aW5kb3cgJiYgKHdpbmRvdy5pbm5lcldpZHRoID49IDc2OCkpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZURpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGlyZWN0aXZlcy50b0FycmF5KCkuZmluZEluZGV4KCh2LCBpKSA9PiB2ID09PSB0aGlzLmFjdGl2ZURpcmVjdGl2ZSk7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuYW5jaG9ycy5nZXQoaW5kZXgpO1xuICAgICAgICBpZiAoYW5jaG9yICYmIGFuY2hvci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICBhbmNob3IubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBzY3JvbGxUb0hlYWRlcihkaXJlY3RpdmU6IEJzU2Nyb2xsc3B5RGlyZWN0aXZlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gZGlyZWN0aXZlLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5zY3JvbGxPZmZzZXRTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpWzFdO1xuICAgIGNvbnN0IHkgPSBoZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFkgLSBvZmZzZXRZICsgMTtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oe3RvcDogeSwgYmVoYXZpb3I6ICdzbW9vdGgnfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNweVwiPlxuICAgIDx1bCBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkaXIgb2YgZGlyZWN0aXZlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZGF0YS1pbmRleF09XCJpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cIiduYXYnICsgZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50YWdOYW1lXCIgW2NsYXNzLmZ3LWJvbGRdPVwiYWN0aXZlRGlyZWN0aXZlPy5lbGVtZW50ID09PSBkaXIuZWxlbWVudFwiIChjbGljayk9XCJzY3JvbGxUb0hlYWRlcihkaXIpXCIgW3RpdGxlXT1cImRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnRcIiAjYW5jaG9yPlxuICAgICAgICAgICAgICAgIHt7IGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
|