@mintplayer/ng-bootstrap 13.1.10 → 13.1.15
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/_bootstrap.scss +14 -0
- package/esm2020/lib/components/accordion/accordion/accordion.component.mjs +2 -4
- package/esm2020/lib/components/accordion/accordion-tab/accordion-tab.component.mjs +1 -11
- package/esm2020/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.mjs +3 -8
- package/esm2020/lib/components/accordion/accordion.module.mjs +4 -8
- package/esm2020/lib/components/alert/alert/alert.component.mjs +2 -4
- package/esm2020/lib/components/alert/alert-close/alert-close.component.mjs +1 -3
- package/esm2020/lib/components/calendar/calendar.component.mjs +16 -15
- package/esm2020/lib/components/card/card/card.component.mjs +4 -10
- package/esm2020/lib/components/card/card-header/card-header.component.mjs +2 -6
- package/esm2020/lib/components/carousel/carousel/carousel.component.mjs +9 -7
- package/esm2020/lib/components/carousel/carousel-image/carousel-image.directive.mjs +1 -1
- package/esm2020/lib/components/code-snippet/code-snippet.component.mjs +28 -0
- package/esm2020/lib/components/code-snippet/code-snippet.module.mjs +34 -0
- package/esm2020/lib/components/code-snippet/index.mjs +3 -0
- package/esm2020/lib/components/context-menu/context-menu.directive.mjs +34 -14
- package/esm2020/lib/components/context-menu/context-menu.module.mjs +8 -4
- package/esm2020/lib/components/copy/copy.directive.mjs +45 -0
- package/esm2020/lib/components/copy/copy.module.mjs +26 -0
- package/esm2020/lib/components/copy/index.mjs +3 -0
- package/esm2020/lib/components/datatable/datatable/datatable.component.mjs +6 -8
- package/esm2020/lib/components/datatable/datatable-settings.mjs +1 -1
- package/esm2020/lib/components/datatable/datatable.module.mjs +1 -1
- package/esm2020/lib/components/datatable/row-template/row-template.directive.mjs +3 -3
- package/esm2020/lib/components/datepicker/datepicker.component.mjs +32 -7
- package/esm2020/lib/components/dropdown/dropdown/dropdown.directive.mjs +10 -3
- package/esm2020/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.mjs +14 -16
- 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 +38 -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 +7 -1
- package/esm2020/lib/components/modal/component/index.mjs +3 -0
- package/esm2020/lib/components/modal/component/modal/modal.component.mjs +13 -0
- package/esm2020/lib/components/modal/component/modal-content/modal-content.component.mjs +27 -0
- package/esm2020/lib/components/modal/directives/index.mjs +4 -0
- package/esm2020/lib/components/modal/directives/modal-body/modal-body.directive.mjs +18 -0
- package/esm2020/lib/components/modal/directives/modal-footer/modal-footer.directive.mjs +18 -0
- package/esm2020/lib/components/modal/directives/modal-header/modal-header.directive.mjs +18 -0
- package/esm2020/lib/components/modal/index.mjs +5 -0
- package/esm2020/lib/components/modal/interfaces/index.mjs +2 -0
- package/esm2020/lib/components/modal/interfaces/modal-animation-meta.mjs +2 -0
- package/esm2020/lib/components/modal/modal.module.mjs +48 -0
- package/esm2020/lib/components/modal/providers/modal-content.provider.mjs +3 -0
- package/esm2020/lib/components/modal/service/modal.service.mjs +52 -0
- package/esm2020/lib/components/multiselect/component/multiselect.component.mjs +34 -0
- package/esm2020/lib/components/multiselect/directives/button-template/button-template.directive.mjs +18 -0
- package/esm2020/lib/components/multiselect/directives/footer-template/footer-template.directive.mjs +18 -0
- package/esm2020/lib/components/multiselect/directives/header-template/header-template.directive.mjs +18 -0
- package/esm2020/lib/components/multiselect/directives/index.mjs +4 -0
- package/esm2020/lib/components/multiselect/index.mjs +3 -2
- package/esm2020/lib/components/multiselect/multiselect.module.mjs +21 -6
- package/esm2020/lib/components/navbar/index.mjs +2 -1
- package/esm2020/lib/components/navbar/navbar/navbar.component.mjs +3 -3
- package/esm2020/lib/components/navbar/navbar-brand/navbar-brand.component.mjs +18 -0
- package/esm2020/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.mjs +7 -6
- package/esm2020/lib/components/navbar/navbar-item/navbar-item.component.mjs +16 -5
- package/esm2020/lib/components/navbar/navbar-nav/navbar-nav.component.mjs +1 -1
- package/esm2020/lib/components/navbar/navbar.module.mjs +10 -5
- package/esm2020/lib/components/pagination/pagination/pagination.component.mjs +88 -71
- package/esm2020/lib/components/rating/index.mjs +3 -0
- package/esm2020/lib/components/rating/rating.component.mjs +72 -0
- package/esm2020/lib/components/rating/rating.module.mjs +26 -0
- package/esm2020/lib/components/scrollspy/component/scrollspy.component.mjs +30 -6
- package/esm2020/lib/components/select2/component/select2.component.mjs +7 -9
- package/esm2020/lib/components/select2/directive/item-template.directive.mjs +1 -2
- package/esm2020/lib/components/snackbar/component/snackbar.component.mjs +1 -1
- package/esm2020/lib/components/snackbar/service/snackbar.service.mjs +4 -4
- package/esm2020/lib/components/snackbar/snackbar.module.mjs +8 -4
- package/esm2020/lib/components/tab-control/tab-control/tab-control.component.mjs +8 -7
- package/esm2020/lib/components/tab-control/tab-page/tab-page.component.mjs +4 -6
- package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +19 -15
- package/esm2020/lib/components/tooltip/directive/tooltip.directive.mjs +9 -3
- package/esm2020/lib/components/tooltip/tooltip.module.mjs +8 -4
- package/esm2020/lib/interfaces/date-day-of-month.mjs +1 -1
- package/esm2020/lib/interfaces/index.mjs +2 -1
- package/esm2020/lib/interfaces/week.mjs +1 -1
- package/esm2020/lib/interfaces/weekday.mjs +2 -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/format-bytes/index.mjs +3 -0
- package/esm2020/lib/pipes/index.mjs +2 -1
- package/esm2020/lib/services/calendar-month/calendar-month.service.mjs +34 -18
- package/fesm2015/mintplayer-ng-bootstrap.mjs +1347 -579
- package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap.mjs +1342 -580
- package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/lib/components/accordion/accordion/accordion.component.d.ts +1 -4
- package/lib/components/accordion/accordion-tab/accordion-tab.component.d.ts +1 -4
- package/lib/components/accordion/accordion-tab-header/accordion-tab-header.component.d.ts +1 -4
- package/lib/components/accordion/accordion.module.d.ts +1 -2
- package/lib/components/alert/alert/alert.component.d.ts +1 -4
- package/lib/components/alert/alert-close/alert-close.component.d.ts +1 -3
- package/lib/components/calendar/calendar.component.d.ts +4 -5
- package/lib/components/card/card/card.component.d.ts +1 -6
- package/lib/components/card/card-header/card-header.component.d.ts +1 -4
- package/lib/components/carousel/carousel/carousel.component.d.ts +9 -9
- package/lib/components/code-snippet/code-snippet.component.d.ts +12 -0
- package/lib/components/code-snippet/code-snippet.module.d.ts +10 -0
- package/lib/components/code-snippet/index.d.ts +2 -0
- package/lib/components/context-menu/context-menu.directive.d.ts +4 -2
- package/lib/components/context-menu/context-menu.module.d.ts +2 -1
- package/lib/components/copy/copy.directive.d.ts +11 -0
- package/lib/components/copy/copy.module.d.ts +8 -0
- package/lib/components/copy/index.d.ts +2 -0
- package/lib/components/datatable/datatable/datatable.component.d.ts +4 -5
- package/lib/components/datatable/row-template/row-template.directive.d.ts +1 -1
- package/lib/components/datepicker/datepicker.component.d.ts +11 -7
- package/lib/components/dropdown/dropdown/dropdown.directive.d.ts +1 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +3 -3
- 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 +8 -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 +6 -0
- package/lib/components/modal/component/index.d.ts +2 -0
- package/lib/components/modal/component/modal/modal.component.d.ts +10 -0
- package/lib/components/modal/component/modal-content/modal-content.component.d.ts +13 -0
- package/lib/components/modal/directives/index.d.ts +3 -0
- package/lib/components/modal/directives/modal-body/modal-body.directive.d.ts +8 -0
- package/lib/components/modal/directives/modal-footer/modal-footer.directive.d.ts +8 -0
- package/lib/components/modal/directives/modal-header/modal-header.directive.d.ts +8 -0
- package/lib/components/modal/index.d.ts +4 -0
- package/lib/components/modal/interfaces/index.d.ts +1 -0
- package/lib/components/modal/interfaces/modal-animation-meta.d.ts +7 -0
- package/lib/components/modal/modal.module.d.ts +13 -0
- package/lib/components/modal/providers/modal-content.provider.d.ts +2 -0
- package/lib/components/modal/service/modal.service.d.ts +14 -0
- package/lib/components/multiselect/{multiselect.component.d.ts → component/multiselect.component.d.ts} +7 -6
- package/lib/components/multiselect/directives/button-template/button-template.directive.d.ts +8 -0
- package/lib/components/multiselect/directives/footer-template/footer-template.directive.d.ts +8 -0
- package/lib/components/multiselect/directives/header-template/header-template.directive.d.ts +8 -0
- package/lib/components/multiselect/directives/index.d.ts +3 -0
- package/lib/components/multiselect/index.d.ts +2 -1
- package/lib/components/multiselect/multiselect.module.d.ts +8 -5
- package/lib/components/navbar/index.d.ts +1 -0
- package/lib/components/navbar/navbar/navbar.component.d.ts +1 -1
- package/lib/components/navbar/navbar-brand/navbar-brand.component.d.ts +6 -0
- package/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.d.ts +4 -4
- package/lib/components/navbar/navbar-item/navbar-item.component.d.ts +3 -4
- package/lib/components/navbar/navbar.module.d.ts +5 -4
- package/lib/components/pagination/pagination/pagination.component.d.ts +9 -10
- package/lib/components/rating/index.d.ts +2 -0
- package/lib/components/rating/rating.component.d.ts +22 -0
- package/lib/components/rating/rating.module.d.ts +8 -0
- package/lib/components/scrollspy/component/scrollspy.component.d.ts +11 -3
- package/lib/components/select2/component/select2.component.d.ts +4 -6
- package/lib/components/snackbar/component/snackbar.component.d.ts +1 -2
- package/lib/components/snackbar/snackbar.module.d.ts +2 -1
- package/lib/components/tab-control/tab-control/tab-control.component.d.ts +4 -6
- package/lib/components/tab-control/tab-page/tab-page.component.d.ts +3 -4
- package/lib/components/toggle-button/toggle-button.component.d.ts +5 -5
- package/lib/components/tooltip/directive/tooltip.directive.d.ts +1 -0
- package/lib/components/tooltip/tooltip.module.d.ts +2 -1
- package/lib/interfaces/date-day-of-month.d.ts +1 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/interfaces/week.d.ts +1 -1
- package/lib/interfaces/weekday.d.ts +4 -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/format-bytes/index.d.ts +2 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/services/calendar-month/calendar-month.service.d.ts +2 -0
- package/package.json +3 -2
- package/src/assets/ic-upload-file.svg +7 -0
- package/src/styles/custom.scss +12 -0
- package/src/styles/ngx-highlight-themes/solarized-dark.scss +89 -0
- package/src/styles/utilities/cursor.scss +10 -0
- package/src/styles/utilities/white-space.scss +10 -0
- package/esm2020/lib/components/multiselect/multiselect.component.mjs +0 -36
|
@@ -9,6 +9,7 @@ import { BsNavbarItemComponent } from './navbar-item/navbar-item.component';
|
|
|
9
9
|
import { DropdownToggleDirective } from './dropdown-toggle/dropdown-toggle.directive';
|
|
10
10
|
import { NavLinkDirective } from './nav-link/nav-link.directive';
|
|
11
11
|
import { NavbarContentDirective } from './navbar-content/navbar-content.directive';
|
|
12
|
+
import { BsNavbarBrandComponent } from './navbar-brand/navbar-brand.component';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
export class BsNavbarModule {
|
|
14
15
|
}
|
|
@@ -19,7 +20,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
19
20
|
BsNavbarItemComponent,
|
|
20
21
|
DropdownToggleDirective,
|
|
21
22
|
NavLinkDirective,
|
|
22
|
-
NavbarContentDirective
|
|
23
|
+
NavbarContentDirective,
|
|
24
|
+
BsNavbarBrandComponent], imports: [CommonModule,
|
|
23
25
|
RouterModule,
|
|
24
26
|
ClickOutsideModule], exports: [BsNavbarComponent,
|
|
25
27
|
BsNavbarNavComponent,
|
|
@@ -27,7 +29,8 @@ BsNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
27
29
|
BsNavbarItemComponent,
|
|
28
30
|
DropdownToggleDirective,
|
|
29
31
|
NavLinkDirective,
|
|
30
|
-
NavbarContentDirective
|
|
32
|
+
NavbarContentDirective,
|
|
33
|
+
BsNavbarBrandComponent] });
|
|
31
34
|
BsNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsNavbarModule, imports: [[
|
|
32
35
|
CommonModule,
|
|
33
36
|
RouterModule,
|
|
@@ -43,7 +46,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
43
46
|
BsNavbarItemComponent,
|
|
44
47
|
DropdownToggleDirective,
|
|
45
48
|
NavLinkDirective,
|
|
46
|
-
NavbarContentDirective
|
|
49
|
+
NavbarContentDirective,
|
|
50
|
+
BsNavbarBrandComponent
|
|
47
51
|
],
|
|
48
52
|
imports: [
|
|
49
53
|
CommonModule,
|
|
@@ -57,8 +61,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
57
61
|
BsNavbarItemComponent,
|
|
58
62
|
DropdownToggleDirective,
|
|
59
63
|
NavLinkDirective,
|
|
60
|
-
NavbarContentDirective
|
|
64
|
+
NavbarContentDirective,
|
|
65
|
+
BsNavbarBrandComponent
|
|
61
66
|
]
|
|
62
67
|
}]
|
|
63
68
|
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUErQi9FLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBM0J2QixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLHlCQUF5QjtRQUN6QixxQkFBcUI7UUFFckIsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsc0JBQXNCLGFBR3RCLFlBQVk7UUFDWixZQUFZO1FBQ1osa0JBQWtCLGFBR2xCLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUVyQix1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0QixzQkFBc0I7NEdBR2IsY0FBYyxZQWpCaEI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGtCQUFrQjtTQUNuQjsyRkFhVSxjQUFjO2tCQTdCMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUVyQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUVyQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlTW9kdWxlIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctY2xpY2stb3V0c2lkZSc7XG5pbXBvcnQgeyBCc05hdmJhckNvbXBvbmVudCB9IGZyb20gJy4vbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNOYXZiYXJOYXZDb21wb25lbnQgfSBmcm9tICcuL25hdmJhci1uYXYvbmF2YmFyLW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vbmF2YmFyLWRyb3Bkb3duL25hdmJhci1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNOYXZiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZiYXItaXRlbS9uYXZiYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLXRvZ2dsZS9kcm9wZG93bi10b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5hdkxpbmtEaXJlY3RpdmUgfSBmcm9tICcuL25hdi1saW5rL25hdi1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOYXZiYXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9uYXZiYXItY29udGVudC9uYXZiYXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnNOYXZiYXJCcmFuZENvbXBvbmVudCB9IGZyb20gJy4vbmF2YmFyLWJyYW5kL25hdmJhci1icmFuZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCc05hdmJhckNvbXBvbmVudCxcbiAgICBCc05hdmJhck5hdkNvbXBvbmVudCxcbiAgICBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEJzTmF2YmFySXRlbUNvbXBvbmVudCxcblxuICAgIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlLFxuICAgIE5hdkxpbmtEaXJlY3RpdmUsXG4gICAgTmF2YmFyQ29udGVudERpcmVjdGl2ZSxcbiAgICBCc05hdmJhckJyYW5kQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIENsaWNrT3V0c2lkZU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnNOYXZiYXJDb21wb25lbnQsXG4gICAgQnNOYXZiYXJOYXZDb21wb25lbnQsXG4gICAgQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBCc05hdmJhckl0ZW1Db21wb25lbnQsXG5cbiAgICBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSxcbiAgICBOYXZMaW5rRGlyZWN0aXZlLFxuICAgIE5hdmJhckNvbnRlbnREaXJlY3RpdmUsXG4gICAgQnNOYXZiYXJCcmFuZENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzTmF2YmFyTW9kdWxlIHsgfVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil, } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
export class BsPaginationComponent {
|
|
@@ -19,85 +19,80 @@ export class BsPaginationComponent {
|
|
|
19
19
|
/** The number of boxes (excluding arrows) that's being shown on the pagination component. */
|
|
20
20
|
this.visibleNumberOfNumberBoxes$ = new Observable();
|
|
21
21
|
this._selectedPageNumber = 0;
|
|
22
|
-
this.selectedPageNumberChange = new EventEmitter();
|
|
23
22
|
this._numberOfBoxes = 0;
|
|
24
23
|
this._pageNumbers = [];
|
|
25
24
|
this._showArrows = true;
|
|
25
|
+
//#region SelectedPageNumber
|
|
26
|
+
this.selectedPageNumberChange = new EventEmitter();
|
|
26
27
|
this.destroyed$ = new Subject();
|
|
27
|
-
this.visibleNumberOfNumberBoxes$ =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}));
|
|
72
|
-
this.isLastPage$ =
|
|
73
|
-
combineLatest([this.pageNumbers$, this.selectedPageNumber$])
|
|
74
|
-
.pipe(takeUntil(this.destroyed$))
|
|
75
|
-
.pipe(map(([pageNumbers, selectedPageNumber]) => {
|
|
76
|
-
return pageNumbers.indexOf(selectedPageNumber) === (pageNumbers.length - 1);
|
|
28
|
+
this.visibleNumberOfNumberBoxes$ = combineLatest([
|
|
29
|
+
this.numberOfBoxes$,
|
|
30
|
+
this.pageNumbers$,
|
|
31
|
+
this.showArrows$,
|
|
32
|
+
])
|
|
33
|
+
.pipe(takeUntil(this.destroyed$))
|
|
34
|
+
.pipe(map(([numberOfBoxes, pageNumbers, showArrows]) => {
|
|
35
|
+
if (numberOfBoxes <= 0) {
|
|
36
|
+
return pageNumbers.length;
|
|
37
|
+
}
|
|
38
|
+
else if (!showArrows) {
|
|
39
|
+
return Math.min(numberOfBoxes, pageNumbers.length);
|
|
40
|
+
}
|
|
41
|
+
else if (numberOfBoxes <= 2) {
|
|
42
|
+
return Math.min(1, pageNumbers.length);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return Math.min(numberOfBoxes - 2, pageNumbers.length);
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
this.shownPageNumbers$ = combineLatest([
|
|
49
|
+
this.pageNumbers$,
|
|
50
|
+
this.selectedPageNumber$,
|
|
51
|
+
this.visibleNumberOfNumberBoxes$,
|
|
52
|
+
])
|
|
53
|
+
.pipe(takeUntil(this.destroyed$))
|
|
54
|
+
.pipe(map(([pageNumbers, selectedPageNumber, visibleNumberOfNumberBoxes]) => {
|
|
55
|
+
let startIndex = 0;
|
|
56
|
+
const half = Math.round((visibleNumberOfNumberBoxes - 1) / 2);
|
|
57
|
+
if (pageNumbers.indexOf(selectedPageNumber) < half) {
|
|
58
|
+
startIndex = 0;
|
|
59
|
+
}
|
|
60
|
+
else if (pageNumbers.indexOf(selectedPageNumber) >=
|
|
61
|
+
pageNumbers.length - half) {
|
|
62
|
+
startIndex = pageNumbers.length - visibleNumberOfNumberBoxes;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
startIndex = pageNumbers.indexOf(selectedPageNumber) - half;
|
|
66
|
+
}
|
|
67
|
+
return [...Array(visibleNumberOfNumberBoxes).keys()]
|
|
68
|
+
.map((p) => p + startIndex)
|
|
69
|
+
.map((p) => ({
|
|
70
|
+
page: pageNumbers[p],
|
|
71
|
+
selected: pageNumbers[p] === selectedPageNumber,
|
|
77
72
|
}));
|
|
73
|
+
}));
|
|
74
|
+
this.isFirstPage$ = combineLatest([
|
|
75
|
+
this.pageNumbers$,
|
|
76
|
+
this.selectedPageNumber$,
|
|
77
|
+
])
|
|
78
|
+
.pipe(takeUntil(this.destroyed$))
|
|
79
|
+
.pipe(map(([pageNumbers, selectedPageNumber]) => {
|
|
80
|
+
return pageNumbers.indexOf(selectedPageNumber) === 0;
|
|
81
|
+
}));
|
|
82
|
+
this.isLastPage$ = combineLatest([
|
|
83
|
+
this.pageNumbers$,
|
|
84
|
+
this.selectedPageNumber$,
|
|
85
|
+
])
|
|
86
|
+
.pipe(takeUntil(this.destroyed$))
|
|
87
|
+
.pipe(map(([pageNumbers, selectedPageNumber]) => {
|
|
88
|
+
return (pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1);
|
|
89
|
+
}));
|
|
78
90
|
this.selectedPageNumber$
|
|
79
91
|
.pipe(takeUntil(this.destroyed$))
|
|
80
92
|
.subscribe((selectedPageNumber) => {
|
|
81
93
|
this.selectedPageNumberChange.emit(selectedPageNumber);
|
|
82
94
|
});
|
|
83
95
|
}
|
|
84
|
-
ngOnInit() {
|
|
85
|
-
}
|
|
86
|
-
ngOnDestroy() {
|
|
87
|
-
this.destroyed$.next(true);
|
|
88
|
-
}
|
|
89
|
-
onSelectPage(event, page) {
|
|
90
|
-
this.selectedPageNumber$.next(page);
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
onPrevious() {
|
|
94
|
-
this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
onNext() {
|
|
98
|
-
this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
96
|
set selectedPageNumber(value) {
|
|
102
97
|
this._selectedPageNumber = value;
|
|
103
98
|
this.selectedPageNumber$.next(value);
|
|
@@ -105,6 +100,8 @@ export class BsPaginationComponent {
|
|
|
105
100
|
get selectedPageNumber() {
|
|
106
101
|
return this._selectedPageNumber;
|
|
107
102
|
}
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region NumberOfBoxes
|
|
108
105
|
set numberOfBoxes(value) {
|
|
109
106
|
this._numberOfBoxes = value;
|
|
110
107
|
this.numberOfBoxes$.next(value);
|
|
@@ -112,6 +109,8 @@ export class BsPaginationComponent {
|
|
|
112
109
|
get numberOfBoxes() {
|
|
113
110
|
return this._numberOfBoxes;
|
|
114
111
|
}
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region PageNumbers
|
|
115
114
|
set pageNumbers(value) {
|
|
116
115
|
this._pageNumbers = value;
|
|
117
116
|
this.pageNumbers$.next(value);
|
|
@@ -119,6 +118,8 @@ export class BsPaginationComponent {
|
|
|
119
118
|
get pageNumbers() {
|
|
120
119
|
return this._pageNumbers;
|
|
121
120
|
}
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region ShowArrows
|
|
122
123
|
set showArrows(value) {
|
|
123
124
|
this._showArrows = value;
|
|
124
125
|
this.showArrows$.next(value);
|
|
@@ -126,6 +127,22 @@ export class BsPaginationComponent {
|
|
|
126
127
|
get showArrows() {
|
|
127
128
|
return this._showArrows;
|
|
128
129
|
}
|
|
130
|
+
//#endregion
|
|
131
|
+
ngOnDestroy() {
|
|
132
|
+
this.destroyed$.next(true);
|
|
133
|
+
}
|
|
134
|
+
onSelectPage(event, page) {
|
|
135
|
+
this.selectedPageNumber$.next(page);
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
onPrevious() {
|
|
139
|
+
this.selectedPageNumber$.next(this.selectedPageNumber$.value - 1);
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
onNext() {
|
|
143
|
+
this.selectedPageNumber$.next(this.selectedPageNumber$.value + 1);
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
129
146
|
}
|
|
130
147
|
BsPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
131
148
|
BsPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsPaginationComponent, selector: "bs-pagination", inputs: { selectedPageNumber: "selectedPageNumber", numberOfBoxes: "numberOfBoxes", pageNumbers: "pageNumbers", showArrows: "showArrows" }, outputs: { selectedPageNumberChange: "selectedPageNumberChange" }, ngImport: i0, template: "<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\">«</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\">»</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n</ul>", styles: [":host{display:inline-block}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1.AsyncPipe } });
|
|
@@ -143,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
143
160
|
}], showArrows: [{
|
|
144
161
|
type: Input
|
|
145
162
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVEzRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBb0ZBLHdCQUF3QjtRQUN4QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBR2pELHVCQUF1QjtRQUN2Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRCx1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxvQ0FBb0M7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUVqRCw0Q0FBNEM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLFVBQVUsRUFBVyxDQUFDO1FBQ3pDLDJDQUEyQztRQUMzQyxnQkFBVyxHQUFHLElBQUksVUFBVSxFQUFXLENBQUM7UUFDeEMsNkZBQTZGO1FBQzdGLGdDQUEyQixH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Q2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQzs7a0hBL0lVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9RQ1RsQywybENBb0JLOzJGRFhRLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzBFQWlIUix3QkFBd0I7c0JBQXhDLE1BQU07Z0JBQ00sa0JBQWtCO3NCQUE5QixLQUFLO2dCQVNPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBU08sV0FBVztzQkFBdkIsS0FBSztnQkFTTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWdlV2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvcGFnZS13aXRoLXNlbGVjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMudmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMkID1cbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubnVtYmVyT2ZCb3hlcyQsIHRoaXMucGFnZU51bWJlcnMkLCB0aGlzLnNob3dBcnJvd3MkXSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAgIC5waXBlKG1hcCgoW251bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLCBzaG93QXJyb3dzXSkgPT4ge1xuICAgICAgICAgIGlmIChudW1iZXJPZkJveGVzIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwYWdlTnVtYmVycy5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIGlmICghc2hvd0Fycm93cykge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKG51bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChudW1iZXJPZkJveGVzIDw9IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbigxLCBwYWdlTnVtYmVycy5sZW5ndGgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4obnVtYmVyT2ZCb3hlcyAtIDIsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG5cbiAgICB0aGlzLnNob3duUGFnZU51bWJlcnMkID0gXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLCB0aGlzLnZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJF0pXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAucGlwZShtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyLCB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlc10pID0+IHtcbiAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3QgaGFsZiA9IE1hdGgucm91bmQoKHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzIC0gMSkgLyAyKTtcbiAgICAgICAgICBpZiAocGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpIDwgaGFsZikge1xuICAgICAgICAgICAgc3RhcnRJbmRleCA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPj0gKHBhZ2VOdW1iZXJzLmxlbmd0aCAtIGhhbGYpKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gcGFnZU51bWJlcnMubGVuZ3RoIC0gdmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgLSBoYWxmO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mTnVtYmVyQm94ZXMpLmtleXMoKV1cbiAgICAgICAgICAgIC5tYXAocCA9PiBwICsgc3RhcnRJbmRleClcbiAgICAgICAgICAgIC5tYXAocCA9PiA8UGFnZVdpdGhTZWxlY3Rpb24+e1xuICAgICAgICAgICAgICBwYWdlOiBwYWdlTnVtYmVyc1twXSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHBhZ2VOdW1iZXJzW3BdID09PSBzZWxlY3RlZFBhZ2VOdW1iZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG5cbiAgICB0aGlzLmlzRmlyc3RQYWdlJCA9XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhZ2VOdW1iZXJzJCwgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkXSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAgIC5waXBlKG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXJdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PT0gMDtcbiAgICAgICAgfSkpO1xuICAgICAgICBcbiAgICB0aGlzLmlzTGFzdFBhZ2UkID1cbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucGFnZU51bWJlcnMkLCB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciRdKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnBpcGUobWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlcl0pID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpID09PSAocGFnZU51bWJlcnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIH0pKTtcbiAgICBcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyQ2hhbmdlLmVtaXQoc2VsZWN0ZWRQYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG9uU2VsZWN0UGFnZShldmVudDogTW91c2VFdmVudCwgcGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQocGFnZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25QcmV2aW91cygpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQudmFsdWUgLSAxKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbk5leHQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLnZhbHVlICsgMSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEFsbCBwYWdlIG51bWJlcnMuICovXG4gIHBhZ2VOdW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFtdKTtcbiAgLyoqIFBhZ2UgbnVtYmVycyB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuICovXG4gIHNob3duUGFnZU51bWJlcnMkOiBPYnNlcnZhYmxlPFBhZ2VXaXRoU2VsZWN0aW9uW10+O1xuICAvKiogU2VsZWN0ZWQgbnVtYmVyLiAqL1xuICBzZWxlY3RlZFBhZ2VOdW1iZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuICAvKiogTnVtYmVyIG9mIGJveGVzLiAqL1xuICBudW1iZXJPZkJveGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgLyoqIERpc3BsYXkgcHJldmlvdXMvbmV4dCBhcnJvd3MuICovXG4gIHNob3dBcnJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKiogSW5kaWNhdGVzIGlmIGZpcnN0IHZhbHVlIGlzIHNlbGVjdGVkLiAqL1xuICBpc0ZpcnN0UGFnZSQgPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAvKiogSW5kaWNhdGVzIGlmIGxhc3QgdmFsdWUgaXMgc2VsZWN0ZWQuICovXG4gIGlzTGFzdFBhZ2UkID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgLyoqIFRoZSBudW1iZXIgb2YgYm94ZXMgKGV4Y2x1ZGluZyBhcnJvd3MpIHRoYXQncyBiZWluZyBzaG93biBvbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuICovXG4gIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJCA9IG5ldyBPYnNlcnZhYmxlPG51bWJlcj4oKTtcbiAgLyoqIE1vbml0b3IgT25EZXN0cm95ZWQgaG9vay4gKi9cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PGFueT47XG5cblxuICBcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRQYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkUGFnZU51bWJlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQYWdlTnVtYmVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZWxlY3RlZFBhZ2VOdW1iZXIgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkUGFnZU51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQYWdlTnVtYmVyO1xuICB9XG4gIFxuICBwcml2YXRlIF9udW1iZXJPZkJveGVzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZXQgbnVtYmVyT2ZCb3hlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbnVtYmVyT2ZCb3hlcyA9IHZhbHVlO1xuICAgIHRoaXMubnVtYmVyT2ZCb3hlcyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IG51bWJlck9mQm94ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX251bWJlck9mQm94ZXM7XG4gIH1cbiAgXG4gIHByaXZhdGUgX3BhZ2VOdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBzZXQgcGFnZU51bWJlcnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5fcGFnZU51bWJlcnMgPSB2YWx1ZTtcbiAgICB0aGlzLnBhZ2VOdW1iZXJzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgcGFnZU51bWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VOdW1iZXJzO1xuICB9XG4gIFxuICBwcml2YXRlIF9zaG93QXJyb3dzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2V0IHNob3dBcnJvd3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93QXJyb3dzID0gdmFsdWU7XG4gICAgdGhpcy5zaG93QXJyb3dzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2hvd0Fycm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0Fycm93cztcbiAgfVxuXG59XG4iLCI8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJzaG93QXJyb3dzJCB8IGFzeW5jXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzRmlyc3RQYWdlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIlwiIChjbGljayk9XCJvblByZXZpb3VzKClcIiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZsYXF1bzs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgKHNob3duUGFnZU51bWJlcnMkIHwgYXN5bmMpXCIgY2xhc3M9XCJwYWdlLWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUnOiBwYWdlTnVtYmVyLnNlbGVjdGVkIH1cIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiXCIgKGNsaWNrKT1cIm9uU2VsZWN0UGFnZSgkZXZlbnQsIHBhZ2VOdW1iZXIucGFnZSlcIiAqbmdJZj1cInBhZ2VOdW1iZXIucGFnZSAhPSAnLi4uJ1wiPlxuICAgICAgICAgICAge3sgcGFnZU51bWJlci5wYWdlIH19XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiICpuZ0lmPVwicGFnZU51bWJlci5zZWxlY3RlZFwiPihjdXJyZW50KTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJzaG93QXJyb3dzJCB8IGFzeW5jXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzTGFzdFBhZ2UkIHwgYXN5bmNcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCIgYXJpYS1sYWJlbD1cIk5leHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZyYXF1bzs8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuPC91bD4iXX0=
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFDSCxVQUFVLEVBQ1YsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQzs7O0FBUWQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQztRQW1GQSx3QkFBd0I7UUFDeEIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUdqRCx1QkFBdUI7UUFDdkIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDckQsdUJBQXVCO1FBQ3ZCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsb0NBQW9DO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFakQsNENBQTRDO1FBQzVDLGlCQUFZLEdBQUcsSUFBSSxVQUFVLEVBQVcsQ0FBQztRQUN6QywyQ0FBMkM7UUFDM0MsZ0JBQVcsR0FBRyxJQUFJLFVBQVUsRUFBVyxDQUFDO1FBQ3hDLDZGQUE2RjtRQUM3RixnQ0FBMkIsR0FB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QUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztrSEF2S1UscUJBQXFCO3NHQUFyQixxQkFBcUIsb1FDdEJsQywybENBb0JLOzJGREVRLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzBFQWtIUix3QkFBd0I7c0JBQXhDLE1BQU07Z0JBQ00sa0JBQWtCO3NCQUE5QixLQUFLO2dCQVVPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBVU8sV0FBVztzQkFBdkIsS0FBSztnQkFVTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBhZ2VXaXRoU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9wYWdlLXdpdGgtc2VsZWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCc1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgdGhpcy52aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubnVtYmVyT2ZCb3hlcyQsXG4gICAgICB0aGlzLnBhZ2VOdW1iZXJzJCxcbiAgICAgIHRoaXMuc2hvd0Fycm93cyQsXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW251bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLCBzaG93QXJyb3dzXSkgPT4ge1xuICAgICAgICAgIGlmIChudW1iZXJPZkJveGVzIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwYWdlTnVtYmVycy5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIGlmICghc2hvd0Fycm93cykge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKG51bWJlck9mQm94ZXMsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChudW1iZXJPZkJveGVzIDw9IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbigxLCBwYWdlTnVtYmVycy5sZW5ndGgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5taW4obnVtYmVyT2ZCb3hlcyAtIDIsIHBhZ2VOdW1iZXJzLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuc2hvd25QYWdlTnVtYmVycyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucGFnZU51bWJlcnMkLFxuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLFxuICAgICAgdGhpcy52aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyQsXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3BhZ2VOdW1iZXJzLCBzZWxlY3RlZFBhZ2VOdW1iZXIsIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzXSkgPT4ge1xuICAgICAgICAgIGxldCBzdGFydEluZGV4ID0gMDtcblxuICAgICAgICAgIGNvbnN0IGhhbGYgPSBNYXRoLnJvdW5kKCh2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcyAtIDEpIC8gMik7XG4gICAgICAgICAgaWYgKHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSA8IGhhbGYpIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBwYWdlTnVtYmVycy5pbmRleE9mKHNlbGVjdGVkUGFnZU51bWJlcikgPj1cbiAgICAgICAgICAgIHBhZ2VOdW1iZXJzLmxlbmd0aCAtIGhhbGZcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBwYWdlTnVtYmVycy5sZW5ndGggLSB2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRJbmRleCA9IHBhZ2VOdW1iZXJzLmluZGV4T2Yoc2VsZWN0ZWRQYWdlTnVtYmVyKSAtIGhhbGY7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZOdW1iZXJCb3hlcykua2V5cygpXVxuICAgICAgICAgICAgLm1hcCgocCkgPT4gcCArIHN0YXJ0SW5kZXgpXG4gICAgICAgICAgICAubWFwKChwKSA9PjxQYWdlV2l0aFNlbGVjdGlvbj57XG4gICAgICAgICAgICAgIHBhZ2U6IHBhZ2VOdW1iZXJzW3BdLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogcGFnZU51bWJlcnNbcF0gPT09IHNlbGVjdGVkUGFnZU51bWJlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuaXNGaXJzdFBhZ2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnBhZ2VOdW1iZXJzJCxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbcGFnZU51bWJlcnMsIHNlbGVjdGVkUGFnZU51bWJlcl0pID0+IHtcbiAgICAgICAgICByZXR1cm4gcGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpID09PSAwO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuaXNMYXN0UGFnZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucGFnZU51bWJlcnMkLFxuICAgICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtwYWdlTnVtYmVycywgc2VsZWN0ZWRQYWdlTnVtYmVyXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAocGFnZU51bWJlcnMuaW5kZXhPZihzZWxlY3RlZFBhZ2VOdW1iZXIpID09PSBwYWdlTnVtYmVycy5sZW5ndGggLSAxKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUGFnZU51bWJlciRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRQYWdlTnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyQ2hhbmdlLmVtaXQoc2VsZWN0ZWRQYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqIEFsbCBwYWdlIG51bWJlcnMuICovXG4gIHBhZ2VOdW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyW10+KFtdKTtcbiAgLyoqIFBhZ2UgbnVtYmVycyB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuICovXG4gIHNob3duUGFnZU51bWJlcnMkOiBPYnNlcnZhYmxlPFBhZ2VXaXRoU2VsZWN0aW9uW10+O1xuICAvKiogU2VsZWN0ZWQgbnVtYmVyLiAqL1xuICBzZWxlY3RlZFBhZ2VOdW1iZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuICAvKiogTnVtYmVyIG9mIGJveGVzLiAqL1xuICBudW1iZXJPZkJveGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgLyoqIERpc3BsYXkgcHJldmlvdXMvbmV4dCBhcnJvd3MuICovXG4gIHNob3dBcnJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKiogSW5kaWNhdGVzIGlmIGZpcnN0IHZhbHVlIGlzIHNlbGVjdGVkLiAqL1xuICBpc0ZpcnN0UGFnZSQgPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAvKiogSW5kaWNhdGVzIGlmIGxhc3QgdmFsdWUgaXMgc2VsZWN0ZWQuICovXG4gIGlzTGFzdFBhZ2UkID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgLyoqIFRoZSBudW1iZXIgb2YgYm94ZXMgKGV4Y2x1ZGluZyBhcnJvd3MpIHRoYXQncyBiZWluZyBzaG93biBvbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuICovXG4gIHZpc2libGVOdW1iZXJPZk51bWJlckJveGVzJCA9IG5ldyBPYnNlcnZhYmxlPG51bWJlcj4oKTtcbiAgLyoqIE1vbml0b3IgT25EZXN0cm95ZWQgaG9vay4gKi9cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PGFueT47XG5cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRQYWdlTnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfbnVtYmVyT2ZCb3hlcyA9IDA7XG4gIHByaXZhdGUgX3BhZ2VOdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuICBwcml2YXRlIF9zaG93QXJyb3dzID0gdHJ1ZTtcblxuICAvLyNyZWdpb24gU2VsZWN0ZWRQYWdlTnVtYmVyXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWRQYWdlTnVtYmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFBhZ2VOdW1iZXIodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3NlbGVjdGVkUGFnZU51bWJlciA9IHZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2VsZWN0ZWRQYWdlTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFBhZ2VOdW1iZXI7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIE51bWJlck9mQm94ZXNcbiAgQElucHV0KCkgc2V0IG51bWJlck9mQm94ZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX251bWJlck9mQm94ZXMgPSB2YWx1ZTtcbiAgICB0aGlzLm51bWJlck9mQm94ZXMkLm5leHQodmFsdWUpO1xuICB9XG4gIGdldCBudW1iZXJPZkJveGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9udW1iZXJPZkJveGVzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQYWdlTnVtYmVyc1xuICBASW5wdXQoKSBzZXQgcGFnZU51bWJlcnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5fcGFnZU51bWJlcnMgPSB2YWx1ZTtcbiAgICB0aGlzLnBhZ2VOdW1iZXJzJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgcGFnZU51bWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VOdW1iZXJzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG93QXJyb3dzXG4gIEBJbnB1dCgpIHNldCBzaG93QXJyb3dzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Fycm93cyA9IHZhbHVlO1xuICAgIHRoaXMuc2hvd0Fycm93cyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNob3dBcnJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dBcnJvd3M7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBvblNlbGVjdFBhZ2UoZXZlbnQ6IE1vdXNlRXZlbnQsIHBhZ2U6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KHBhZ2UpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uUHJldmlvdXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLm5leHQodGhpcy5zZWxlY3RlZFBhZ2VOdW1iZXIkLnZhbHVlIC0gMSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25OZXh0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC5uZXh0KHRoaXMuc2VsZWN0ZWRQYWdlTnVtYmVyJC52YWx1ZSArIDEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwic2hvd0Fycm93cyQgfCBhc3luY1wiIFtjbGFzcy5kaXNhYmxlZF09XCJpc0ZpcnN0UGFnZSQgfCBhc3luY1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJcIiAoY2xpY2spPVwib25QcmV2aW91cygpXCIgYXJpYS1sYWJlbD1cIlByZXZpb3VzXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mbGFxdW87PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIChzaG93blBhZ2VOdW1iZXJzJCB8IGFzeW5jKVwiIGNsYXNzPVwicGFnZS1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlJzogcGFnZU51bWJlci5zZWxlY3RlZCB9XCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIlwiIChjbGljayk9XCJvblNlbGVjdFBhZ2UoJGV2ZW50LCBwYWdlTnVtYmVyLnBhZ2UpXCIgKm5nSWY9XCJwYWdlTnVtYmVyLnBhZ2UgIT0gJy4uLidcIj5cbiAgICAgICAgICAgIHt7IHBhZ2VOdW1iZXIucGFnZSB9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIiAqbmdJZj1cInBhZ2VOdW1iZXIuc2VsZWN0ZWRcIj4oY3VycmVudCk8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwic2hvd0Fycm93cyQgfCBhc3luY1wiIFtjbGFzcy5kaXNhYmxlZF09XCJpc0xhc3RQYWdlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIlwiIChjbGljayk9XCJvbk5leHQoKVwiIGFyaWEtbGFiZWw9XCJOZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvdWw+Il19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './rating.component';
|
|
2
|
+
export * from './rating.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9yYXRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYXRpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmF0aW5nLm1vZHVsZSc7Il19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, map, Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class BsRatingComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.destroyed$ = new Subject();
|
|
8
|
+
this.maximum$ = new BehaviorSubject(5);
|
|
9
|
+
this.value$ = new BehaviorSubject(3);
|
|
10
|
+
this.previewValue$ = new BehaviorSubject(null);
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region Value
|
|
13
|
+
this.valueChange = new EventEmitter();
|
|
14
|
+
this.starsChange = new EventEmitter();
|
|
15
|
+
this.stars$ = combineLatest([this.maximum$, this.previewValue$, this.value$])
|
|
16
|
+
.pipe(map(([maximum, previewValue, value]) => {
|
|
17
|
+
const v = previewValue ?? value;
|
|
18
|
+
return [
|
|
19
|
+
...[...Array(v).keys()].map(i => true),
|
|
20
|
+
...[...Array(maximum - v).keys()].map(i => false)
|
|
21
|
+
];
|
|
22
|
+
}));
|
|
23
|
+
combineLatest([this.previewValue$, this.value$])
|
|
24
|
+
.pipe(takeUntil(this.destroyed$))
|
|
25
|
+
.subscribe(([previewValue, value]) => {
|
|
26
|
+
const v = previewValue ?? value;
|
|
27
|
+
this.starsChange.emit(v);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#region Maximum
|
|
31
|
+
set maximum(value) {
|
|
32
|
+
this.maximum$.next(value);
|
|
33
|
+
}
|
|
34
|
+
get value() {
|
|
35
|
+
return this.value$.value;
|
|
36
|
+
}
|
|
37
|
+
set value(value) {
|
|
38
|
+
this.value$.next(value);
|
|
39
|
+
this.valueChange.emit(value);
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
ngOnDestroy() {
|
|
43
|
+
this.destroyed$.next(true);
|
|
44
|
+
}
|
|
45
|
+
hoverValue(index) {
|
|
46
|
+
this.previewValue$.next(index + 1);
|
|
47
|
+
}
|
|
48
|
+
selectValue(index) {
|
|
49
|
+
this.value = index + 1;
|
|
50
|
+
}
|
|
51
|
+
onMouseLeave() {
|
|
52
|
+
this.previewValue$.next(null);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
BsRatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
BsRatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BsRatingComponent, selector: "bs-rating", inputs: { maximum: "maximum", value: "value" }, outputs: { valueChange: "valueChange", starsChange: "starsChange" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '★' : '☆' }}\n</span>", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe } });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'bs-rating', template: "<span class=\"cursor-pointer\" *ngFor=\"let star of (stars$ | async), let i = index\" (mouseenter)=\"hoverValue(i)\" (click)=\"selectValue(i)\">\n {{ star ? '★' : '☆' }}\n</span>", styles: [""] }]
|
|
60
|
+
}], ctorParameters: function () { return []; }, propDecorators: { maximum: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], valueChange: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], starsChange: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}], value: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], onMouseLeave: [{
|
|
69
|
+
type: HostListener,
|
|
70
|
+
args: ['mouseleave']
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvcmF0aW5nL3JhdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU8zRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBa0JBLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFPekQsWUFBWTtRQUVaLGVBQWU7UUFDRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBL0J4RCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLFlBQVksSUFBSSxLQUFLLENBQUM7WUFDaEMsT0FBTztnQkFDTCxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7YUFDbEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLFlBQVksSUFBSSxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBUUQsaUJBQWlCO0lBQ2pCLElBQW9CLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFNRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFvQixLQUFLLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsWUFBWTtJQUVaLFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OzhHQXpEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrTkNSOUIsbU1BRU87MkZETU0saUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7MEVBK0JELE9BQU87c0JBQTFCLEtBQUs7Z0JBTVcsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUlhLEtBQUs7c0JBQXhCLEtBQUs7Z0JBaUJzQixZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1yYXRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF0aW5nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RhcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5tYXhpbXVtJCwgdGhpcy5wcmV2aWV3VmFsdWUkLCB0aGlzLnZhbHVlJF0pXG4gICAgICAucGlwZShtYXAoKFttYXhpbXVtLCBwcmV2aWV3VmFsdWUsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB2ID0gcHJldmlld1ZhbHVlID8/IHZhbHVlO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLlsuLi5BcnJheSh2KS5rZXlzKCldLm1hcChpID0+IHRydWUpLFxuICAgICAgICAgIC4uLlsuLi5BcnJheShtYXhpbXVtIC0gdikua2V5cygpXS5tYXAoaSA9PiBmYWxzZSlcbiAgICAgICAgXTtcbiAgICAgIH0pKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucHJldmlld1ZhbHVlJCwgdGhpcy52YWx1ZSRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChbcHJldmlld1ZhbHVlLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdiA9IHByZXZpZXdWYWx1ZSA/PyB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdGFyc0NoYW5nZS5lbWl0KHYpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgbWF4aW11bSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNSk7XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzKTtcbiAgcHJldmlld1ZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHN0YXJzJDogT2JzZXJ2YWJsZTxib29sZWFuW10+O1xuXG4gIC8vI3JlZ2lvbiBNYXhpbXVtXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWF4aW11bSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXhpbXVtJC5uZXh0KHZhbHVlKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gVmFsdWVcbiAgQE91dHB1dCgpIHB1YmxpYyB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN0YXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUkLnZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBob3ZlclZhbHVlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnByZXZpZXdWYWx1ZSQubmV4dChpbmRleCArIDEpO1xuICB9XG4gIHNlbGVjdFZhbHVlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnZhbHVlID0gaW5kZXggKyAxO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLnByZXZpZXdWYWx1ZSQubmV4dChudWxsKTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiICpuZ0Zvcj1cImxldCBzdGFyIG9mIChzdGFycyQgfCBhc3luYyksIGxldCBpID0gaW5kZXhcIiAobW91c2VlbnRlcik9XCJob3ZlclZhbHVlKGkpXCIgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGkpXCI+XG4gICAge3sgc3RhciA/ICcmIzk3MzM7JyA6ICcmIzk3MzQ7JyB9fVxuPC9zcGFuPiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { BsRatingComponent } from './rating.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BsRatingModule {
|
|
6
|
+
}
|
|
7
|
+
BsRatingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
BsRatingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, declarations: [BsRatingComponent], imports: [CommonModule], exports: [BsRatingComponent] });
|
|
9
|
+
BsRatingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, imports: [[
|
|
10
|
+
CommonModule
|
|
11
|
+
]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsRatingModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [
|
|
16
|
+
BsRatingComponent
|
|
17
|
+
],
|
|
18
|
+
imports: [
|
|
19
|
+
CommonModule
|
|
20
|
+
],
|
|
21
|
+
exports: [
|
|
22
|
+
BsRatingComponent
|
|
23
|
+
]
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3JhdGluZy9yYXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWV2RCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQVR2QixpQkFBaUIsYUFHakIsWUFBWSxhQUdaLGlCQUFpQjs0R0FHUixjQUFjLFlBUGhCO1lBQ1AsWUFBWTtTQUNiOzJGQUtVLGNBQWM7a0JBWDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJzUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9yYXRpbmcuY29tcG9uZW50JztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzUmF0aW5nQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJzUmF0aW5nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQnNSYXRpbmdNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,20 +1,42 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Component, ContentChildren, HostListener, Inject, QueryList, ViewChildren } 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';
|
|
3
4
|
import { BsScrollOffsetService } from '../../../services/scroll-offset/scroll-offset.service';
|
|
4
5
|
import { BsScrollspyDirective } from '../directives/scrollspy.directive';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../../services/scroll-offset/scroll-offset.service";
|
|
7
8
|
import * as i2 from "@angular/common";
|
|
8
9
|
export class BsScrollspyComponent {
|
|
9
|
-
constructor(scrollOffsetService, document) {
|
|
10
|
+
constructor(scrollOffsetService, document, zone) {
|
|
10
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);
|
|
11
16
|
this.activeDirective = null;
|
|
12
17
|
this.doc = document;
|
|
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
|
+
});
|
|
13
25
|
}
|
|
14
26
|
ngAfterViewInit() {
|
|
15
|
-
this.
|
|
27
|
+
this.viewInit$.next(true);
|
|
28
|
+
}
|
|
29
|
+
ngAfterContentInit() {
|
|
30
|
+
this.contentInit$.next(true);
|
|
31
|
+
}
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this.destroyed$.next(true);
|
|
16
34
|
}
|
|
17
35
|
onWindowScroll() {
|
|
36
|
+
this.setActiveDirective();
|
|
37
|
+
this.scrollToCurrentInSpy();
|
|
38
|
+
}
|
|
39
|
+
setActiveDirective() {
|
|
18
40
|
const offsetY = this.scrollOffsetService.getScrollOffset()[1];
|
|
19
41
|
const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);
|
|
20
42
|
if (this.directives.length === 0) {
|
|
@@ -26,6 +48,8 @@ export class BsScrollspyComponent {
|
|
|
26
48
|
else {
|
|
27
49
|
this.activeDirective = dirs[dirs.length - 1];
|
|
28
50
|
}
|
|
51
|
+
}
|
|
52
|
+
scrollToCurrentInSpy() {
|
|
29
53
|
if (window && (window.innerWidth >= 768)) {
|
|
30
54
|
if (this.activeDirective) {
|
|
31
55
|
const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);
|
|
@@ -43,7 +67,7 @@ export class BsScrollspyComponent {
|
|
|
43
67
|
window.scrollTo({ top: y, behavior: 'smooth' });
|
|
44
68
|
}
|
|
45
69
|
}
|
|
46
|
-
BsScrollspyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: i1.BsScrollOffsetService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
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 });
|
|
47
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"] }] });
|
|
48
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
|
|
49
73
|
type: Component,
|
|
@@ -51,7 +75,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
51
75
|
}], ctorParameters: function () { return [{ type: i1.BsScrollOffsetService }, { type: undefined, decorators: [{
|
|
52
76
|
type: Inject,
|
|
53
77
|
args: [DOCUMENT]
|
|
54
|
-
}] }]; }, propDecorators: { directives: [{
|
|
78
|
+
}] }, { type: i0.NgZone }]; }, propDecorators: { directives: [{
|
|
55
79
|
type: ContentChildren,
|
|
56
80
|
args: [BsScrollspyDirective, { descendants: true }]
|
|
57
81
|
}], anchors: [{
|
|
@@ -61,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
61
85
|
type: HostListener,
|
|
62
86
|
args: ['window:scroll', ['$event']]
|
|
63
87
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsc3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbHNweS9jb21wb25lbnQvc2Nyb2xsc3B5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLG1CQUEwQyxFQUNoQyxRQUFhLEVBQ3ZCLElBQVk7UUFGWix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBRTFDLFNBQUksR0FBSixJQUFJLENBQVE7UUFXZCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQU0zRCxvQkFBZSxHQUFnQyxJQUFJLENBQUM7UUFsQmxELElBQUksQ0FBQyxHQUFHLEdBQWEsUUFBUSxDQUFDO1FBQzlCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVlELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFeEcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRTtvQkFDaEQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RTthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQStCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2lIQTFFVSxvQkFBb0IsdURBSXJCLFFBQVE7cUdBSlAsb0JBQW9CLG1KQW9CZCxvQkFBb0Isc0lDL0J2QywwakJBV007MkZEQU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQVFyQixNQUFNOzJCQUFDLFFBQVE7aUVBZ0I0QyxVQUFVO3NCQUF2RSxlQUFlO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDcEMsT0FBTztzQkFBOUIsWUFBWTt1QkFBQyxRQUFRO2dCQWtCdEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgTmdab25lLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1Njcm9sbE9mZnNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JvbGwtb2Zmc2V0L3Njcm9sbC1vZmZzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBCc1Njcm9sbHNweURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2Nyb2xsc3B5LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXNjcm9sbHNweScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxzcHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxzcHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1Njcm9sbHNweUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzY3JvbGxPZmZzZXRTZXJ2aWNlOiBCc1Njcm9sbE9mZnNldFNlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuZG9jID0gPERvY3VtZW50PmRvY3VtZW50O1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmlld0luaXQkLCB0aGlzLmNvbnRlbnRJbml0JF0pXG4gICAgICAucGlwZShmaWx0ZXIoKFt2aWV3SW5pdCwgY29udGVudEluaXRdKSA9PiB2aWV3SW5pdCAmJiBjb250ZW50SW5pdCksIHRha2UoMSkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzLnNldEFjdGl2ZURpcmVjdGl2ZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQ3VycmVudEluU3B5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgdmlld0luaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgY29udGVudEluaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihCc1Njcm9sbHNweURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBkaXJlY3RpdmVzITogUXVlcnlMaXN0PEJzU2Nyb2xsc3B5RGlyZWN0aXZlPjtcbiAgQFZpZXdDaGlsZHJlbignYW5jaG9yJykgYW5jaG9ycyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+O1xuXG4gIGRvYzogRG9jdW1lbnQ7XG4gIGFjdGl2ZURpcmVjdGl2ZTogQnNTY3JvbGxzcHlEaXJlY3RpdmUgfCBudWxsID0gbnVsbDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0JC5uZXh0KHRydWUpO1xuICB9XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuICBcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIHRoaXMuc2V0QWN0aXZlRGlyZWN0aXZlKCk7XG4gICAgdGhpcy5zY3JvbGxUb0N1cnJlbnRJblNweSgpO1xuICB9XG5cbiAgc2V0QWN0aXZlRGlyZWN0aXZlKCkge1xuICAgIGNvbnN0IG9mZnNldFkgPSB0aGlzLnNjcm9sbE9mZnNldFNlcnZpY2UuZ2V0U2Nyb2xsT2Zmc2V0KClbMV07XG4gICAgY29uc3QgZGlycyA9IHRoaXMuZGlyZWN0aXZlcy5maWx0ZXIoKGQpID0+IGQuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgPCBvZmZzZXRZKTtcblxuICAgIGlmICh0aGlzLmRpcmVjdGl2ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdGl2ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChkaXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RpdmUgPSB0aGlzLmRpcmVjdGl2ZXMuZ2V0KDApID8/IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aXZlID0gZGlyc1tkaXJzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbFRvQ3VycmVudEluU3B5KCkge1xuICAgIGlmICh3aW5kb3cgJiYgKHdpbmRvdy5pbm5lcldpZHRoID49IDc2OCkpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZURpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGlyZWN0aXZlcy50b0FycmF5KCkuZmluZEluZGV4KCh2LCBpKSA9PiB2ID09PSB0aGlzLmFjdGl2ZURpcmVjdGl2ZSk7XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuYW5jaG9ycy5nZXQoaW5kZXgpO1xuICAgICAgICBpZiAoYW5jaG9yICYmIGFuY2hvci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICBhbmNob3IubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBzY3JvbGxUb0hlYWRlcihkaXJlY3RpdmU6IEJzU2Nyb2xsc3B5RGlyZWN0aXZlKSB7XG4gICAgY29uc3QgaGVhZGVyID0gZGlyZWN0aXZlLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5zY3JvbGxPZmZzZXRTZXJ2aWNlLmdldFNjcm9sbE9mZnNldCgpWzFdO1xuICAgIGNvbnN0IHkgPSBoZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFkgLSBvZmZzZXRZICsgMTtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oe3RvcDogeSwgYmVoYXZpb3I6ICdzbW9vdGgnfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNweVwiPlxuICAgIDx1bCBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkaXIgb2YgZGlyZWN0aXZlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZGF0YS1pbmRleF09XCJpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cIiduYXYnICsgZGlyLmVsZW1lbnQubmF0aXZlRWxlbWVudC50YWdOYW1lXCIgW2NsYXNzLmZ3LWJvbGRdPVwiYWN0aXZlRGlyZWN0aXZlPy5lbGVtZW50ID09PSBkaXIuZWxlbWVudFwiIChjbGljayk9XCJzY3JvbGxUb0hlYWRlcihkaXIpXCIgW3RpdGxlXT1cImRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnRcIiAjYW5jaG9yPlxuICAgICAgICAgICAgICAgIHt7IGRpci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
|