@sebgroup/green-angular 3.6.2 → 3.7.0
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/lib/context-menu/context-menu.component.mjs +5 -5
- package/esm2020/lib/context-menu/context-menu.module.mjs +2 -2
- package/esm2020/lib/datepicker/datepicker.component.mjs +5 -5
- package/esm2020/lib/datepicker/datepicker.module.mjs +5 -6
- package/esm2020/lib/dropdown/dropdown.component.mjs +5 -5
- package/esm2020/lib/dropdown/dropdown.module.mjs +2 -2
- package/esm2020/lib/shared/index.mjs +2 -1
- package/esm2020/src/lib/accordion/accordion-list-item.component.mjs +47 -0
- package/esm2020/src/lib/accordion/accordion.component.mjs +72 -0
- package/esm2020/src/lib/accordion/accordion.module.mjs +19 -0
- package/esm2020/src/lib/accordion/index.mjs +4 -0
- package/esm2020/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
- package/esm2020/src/lib/badge/badge.component.mjs +80 -0
- package/esm2020/src/lib/badge/badge.module.mjs +18 -0
- package/esm2020/src/lib/badge/index.mjs +3 -0
- package/esm2020/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
- package/esm2020/src/lib/button/button.component.mjs +28 -0
- package/esm2020/src/lib/button/button.module.mjs +18 -0
- package/esm2020/src/lib/button/index.mjs +3 -0
- package/esm2020/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
- package/esm2020/src/lib/cell-table/cell-table-item.component.mjs +91 -0
- package/esm2020/src/lib/cell-table/cell-table.component.mjs +97 -0
- package/esm2020/src/lib/cell-table/cell-table.module.mjs +26 -0
- package/esm2020/src/lib/cell-table/cell-table.types.mjs +7 -0
- package/esm2020/src/lib/cell-table/cell-underline.directive.mjs +55 -0
- package/esm2020/src/lib/cell-table/index.mjs +4 -0
- package/esm2020/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
- package/esm2020/src/lib/context-menu/context-menu.component.mjs +80 -0
- package/esm2020/src/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2020/src/lib/context-menu/index.mjs +3 -0
- package/esm2020/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
- package/esm2020/src/lib/datepicker/datepicker.component.mjs +138 -0
- package/esm2020/src/lib/datepicker/datepicker.module.mjs +20 -0
- package/esm2020/src/lib/datepicker/index.mjs +3 -0
- package/esm2020/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
- package/esm2020/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2020/src/lib/dropdown/dropdown.component.mjs +212 -0
- package/esm2020/src/lib/dropdown/dropdown.module.mjs +34 -0
- package/esm2020/src/lib/dropdown/index.mjs +5 -0
- package/esm2020/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +50 -0
- package/esm2020/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
- package/esm2020/src/lib/in-page-wizard/index.mjs +3 -0
- package/esm2020/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
- package/esm2020/src/lib/modal/index.mjs +5 -0
- package/esm2020/src/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2020/src/lib/modal/modal.component.mjs +251 -0
- package/esm2020/src/lib/modal/modal.module.mjs +41 -0
- package/esm2020/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
- package/esm2020/src/lib/pagination/index.mjs +3 -0
- package/esm2020/src/lib/pagination/pagination.component.mjs +175 -0
- package/esm2020/src/lib/pagination/pagination.module.mjs +18 -0
- package/esm2020/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
- package/esm2020/src/lib/progress-circle/index.mjs +3 -0
- package/esm2020/src/lib/progress-circle/progress-circle.component.mjs +41 -0
- package/esm2020/src/lib/progress-circle/progress-circle.module.mjs +18 -0
- package/esm2020/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
- package/esm2020/src/lib/segmented-control/index.mjs +3 -0
- package/esm2020/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
- package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +35 -0
- package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +19 -0
- package/esm2020/src/lib/shared/core-element/core-element.directive.mjs +33 -0
- package/esm2020/src/lib/shared/core-element/core-element.module.mjs +18 -0
- package/esm2020/src/lib/shared/core-element/index.mjs +3 -0
- package/esm2020/src/lib/shared/index.mjs +4 -0
- package/esm2020/src/lib/shared/on-scroll.directive.mjs +47 -0
- package/esm2020/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
- package/esm2020/src/lib/shared/shared.module.mjs +18 -0
- package/esm2020/src/lib/slider/index.mjs +3 -0
- package/esm2020/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
- package/esm2020/src/lib/slider/slider.component.mjs +113 -0
- package/esm2020/src/lib/slider/slider.module.mjs +19 -0
- package/esm2020/src/lib/sortable-list/index.mjs +3 -0
- package/esm2020/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
- package/esm2020/src/lib/sortable-list/sortable-list.component.mjs +181 -0
- package/esm2020/src/lib/sortable-list/sortable-list.module.mjs +20 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +140 -0
- package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2015/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +272 -0
- package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +166 -0
- package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +266 -0
- package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +321 -0
- package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +114 -0
- package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +136 -0
- package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2015/sebgroup-green-angular.mjs +84 -80
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs +138 -0
- package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
- package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
- package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
- package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs +274 -0
- package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
- package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs +319 -0
- package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs +113 -0
- package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs +135 -0
- package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- package/fesm2020/sebgroup-green-angular.mjs +84 -80
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/lib/context-menu/context-menu.component.d.ts +2 -2
- package/lib/context-menu/context-menu.module.d.ts +1 -1
- package/lib/datepicker/datepicker.component.d.ts +1 -1
- package/lib/datepicker/datepicker.module.d.ts +2 -3
- package/lib/dropdown/dropdown.component.d.ts +2 -2
- package/lib/dropdown/dropdown.module.d.ts +1 -1
- package/lib/shared/index.d.ts +1 -0
- package/package.json +122 -2
- package/src/lib/accordion/accordion-list-item.component.d.ts +15 -0
- package/src/lib/accordion/accordion.component.d.ts +16 -0
- package/src/lib/accordion/accordion.module.d.ts +9 -0
- package/src/lib/accordion/index.d.ts +3 -0
- package/src/lib/badge/badge.component.d.ts +25 -0
- package/src/lib/badge/badge.module.d.ts +8 -0
- package/src/lib/badge/index.d.ts +2 -0
- package/src/lib/button/button.component.d.ts +9 -0
- package/src/lib/button/button.module.d.ts +8 -0
- package/src/lib/button/index.d.ts +2 -0
- package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
- package/src/lib/cell-table/cell-table.component.d.ts +44 -0
- package/src/lib/cell-table/cell-table.module.d.ts +10 -0
- package/src/lib/cell-table/cell-table.types.d.ts +34 -0
- package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
- package/src/lib/cell-table/index.d.ts +3 -0
- package/src/lib/context-menu/context-menu.component.d.ts +49 -0
- package/src/lib/context-menu/context-menu.module.d.ts +9 -0
- package/src/lib/context-menu/index.d.ts +2 -0
- package/src/lib/datepicker/datepicker.component.d.ts +66 -0
- package/src/lib/datepicker/datepicker.module.d.ts +9 -0
- package/src/lib/datepicker/index.d.ts +2 -0
- package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown.component.d.ts +79 -0
- package/src/lib/dropdown/dropdown.module.d.ts +11 -0
- package/src/lib/dropdown/index.d.ts +4 -0
- package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +17 -0
- package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
- package/src/lib/in-page-wizard/index.d.ts +2 -0
- package/src/lib/modal/index.d.ts +4 -0
- package/src/lib/modal/modal-footer.directive.d.ts +8 -0
- package/src/lib/modal/modal-header.directive.d.ts +8 -0
- package/src/lib/modal/modal.component.d.ts +65 -0
- package/src/lib/modal/modal.module.d.ts +11 -0
- package/src/lib/pagination/index.d.ts +2 -0
- package/src/lib/pagination/pagination.component.d.ts +42 -0
- package/src/lib/pagination/pagination.module.d.ts +8 -0
- package/src/lib/progress-circle/index.d.ts +2 -0
- package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
- package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
- package/src/lib/segmented-control/index.d.ts +2 -0
- package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
- package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
- package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
- package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
- package/src/lib/shared/core-element/index.d.ts +2 -0
- package/src/lib/shared/index.d.ts +3 -0
- package/src/lib/shared/on-scroll.directive.d.ts +14 -0
- package/src/lib/shared/shared.module.d.ts +8 -0
- package/src/lib/slider/index.d.ts +2 -0
- package/src/lib/slider/slider.component.d.ts +38 -0
- package/src/lib/slider/slider.module.d.ts +9 -0
- package/src/lib/sortable-list/index.d.ts +2 -0
- package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
- package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { ConfigurableFocusTrapFactory, } from '@angular/cdk/a11y';
|
|
3
|
+
import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';
|
|
4
|
+
import { NggModalHeaderDirective } from './modal-header.directive';
|
|
5
|
+
import { NggModalFooterDirective } from './modal-footer.directive';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
export class NggModalComponent {
|
|
10
|
+
constructor(ref, configurableFocusTrapFactory) {
|
|
11
|
+
this.ref = ref;
|
|
12
|
+
this.configurableFocusTrapFactory = configurableFocusTrapFactory;
|
|
13
|
+
this.isOpenChange = new EventEmitter();
|
|
14
|
+
this.closed = new EventEmitter();
|
|
15
|
+
this.confirm = new EventEmitter();
|
|
16
|
+
this.dismiss = new EventEmitter();
|
|
17
|
+
this.configurableFocusTrap = this.configurableFocusTrapFactory.create(this.ref.nativeElement);
|
|
18
|
+
}
|
|
19
|
+
get trapFocus() {
|
|
20
|
+
return this._trapFocus;
|
|
21
|
+
}
|
|
22
|
+
set trapFocus(value) {
|
|
23
|
+
this._trapFocus = value;
|
|
24
|
+
if (value) {
|
|
25
|
+
if (this._isOpen) {
|
|
26
|
+
this.enableFocusTrap();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.disableFocusTrap();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
get isOpen() {
|
|
34
|
+
return this._isOpen;
|
|
35
|
+
}
|
|
36
|
+
set isOpen(value) {
|
|
37
|
+
this._isOpen = value;
|
|
38
|
+
if (value) {
|
|
39
|
+
if (this.trapFocus) {
|
|
40
|
+
this.enableFocusTrap();
|
|
41
|
+
}
|
|
42
|
+
disableBodyScroll(this.ref.nativeElement, {
|
|
43
|
+
allowTouchMove: (el) => {
|
|
44
|
+
// Allow touchmove for elements inside modal, its required for scroll to work on iOS devices
|
|
45
|
+
return this.ref.nativeElement.contains(el);
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.disableFocusTrap();
|
|
51
|
+
enableBodyScroll(this.ref.nativeElement);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
get open() {
|
|
55
|
+
return this.isOpen;
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
if (this._isOpen && this.trapFocus)
|
|
59
|
+
this.enableFocusTrap();
|
|
60
|
+
else
|
|
61
|
+
this.disableFocusTrap();
|
|
62
|
+
}
|
|
63
|
+
handleCloseClick(event) {
|
|
64
|
+
this.closeModal(event);
|
|
65
|
+
}
|
|
66
|
+
handleBackdropClick(event) {
|
|
67
|
+
if (event.target == this.backdropRef?.nativeElement)
|
|
68
|
+
this.closeModal(event);
|
|
69
|
+
}
|
|
70
|
+
handleDismiss(event) {
|
|
71
|
+
this.dismiss.emit(event);
|
|
72
|
+
}
|
|
73
|
+
handleConfirm(event) {
|
|
74
|
+
this.confirm.emit(event);
|
|
75
|
+
}
|
|
76
|
+
closeModal(event) {
|
|
77
|
+
if (this.closed.observers.length > 0) {
|
|
78
|
+
this.closed.emit(event);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.isOpen = false;
|
|
82
|
+
this.isOpenChange.emit(this.isOpen);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
enableFocusTrap() {
|
|
86
|
+
if (this.configurableFocusTrap) {
|
|
87
|
+
this.configurableFocusTrap.enabled = true;
|
|
88
|
+
this.configurableFocusTrap.focusInitialElementWhenReady();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
disableFocusTrap() {
|
|
92
|
+
if (this.configurableFocusTrap) {
|
|
93
|
+
this.configurableFocusTrap.enabled = false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
ngOnDestroy() {
|
|
97
|
+
this.configurableFocusTrap?.destroy();
|
|
98
|
+
enableBodyScroll(this.ref.nativeElement);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
NggModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
+
NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", hideHeader: "hideHeader", hideFooter: "hideFooter", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, queries: [{ propertyName: "modalHeaderContent", first: true, predicate: NggModalHeaderDirective, descendants: true }, { propertyName: "modalFooterContent", first: true, predicate: NggModalFooterDirective, descendants: true }], viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\">\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalHeaderComponent; }), selector: "[ngg-modal-header]", inputs: ["header"], outputs: ["closed"] }, { kind: "component", type: i0.forwardRef(function () { return NggModalBodyComponent; }), selector: "[ngg-modal-body]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalFooterComponent; }), selector: "[ngg-modal-footer]", inputs: ["dismissLabel", "confirmLabel"], outputs: ["dismiss", "confirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\">\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }]; }, propDecorators: { modalType: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], header: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], confirmLabel: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], dismissLabel: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], size: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], hideHeader: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], hideFooter: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], trapFocus: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], isOpen: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], isOpenChange: [{
|
|
125
|
+
type: Output
|
|
126
|
+
}], closed: [{
|
|
127
|
+
type: Output
|
|
128
|
+
}], confirm: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}], dismiss: [{
|
|
131
|
+
type: Output
|
|
132
|
+
}], open: [{
|
|
133
|
+
type: HostBinding,
|
|
134
|
+
args: ['class.open']
|
|
135
|
+
}], backdropRef: [{
|
|
136
|
+
type: ViewChild,
|
|
137
|
+
args: ['backdrop']
|
|
138
|
+
}], modalHeaderContent: [{
|
|
139
|
+
type: ContentChild,
|
|
140
|
+
args: [NggModalHeaderDirective]
|
|
141
|
+
}], modalFooterContent: [{
|
|
142
|
+
type: ContentChild,
|
|
143
|
+
args: [NggModalFooterDirective]
|
|
144
|
+
}] } });
|
|
145
|
+
export class NggModalHeaderComponent {
|
|
146
|
+
constructor() {
|
|
147
|
+
this.closed = new EventEmitter();
|
|
148
|
+
}
|
|
149
|
+
handleClose(event) {
|
|
150
|
+
this.closed.emit(event);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
NggModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
154
|
+
NggModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalHeaderComponent, selector: "[ngg-modal-header]", inputs: { header: "header" }, outputs: { closed: "closed" }, ngImport: i0, template: `
|
|
155
|
+
<h3 data-testid="modal-header-text">{{ header }}</h3>
|
|
156
|
+
<button
|
|
157
|
+
data-testid="modal-close-button"
|
|
158
|
+
class="close"
|
|
159
|
+
(click)="this.handleClose($event)"
|
|
160
|
+
>
|
|
161
|
+
<span className="sr-only">Close</span>
|
|
162
|
+
<i></i>
|
|
163
|
+
</button>
|
|
164
|
+
`, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] });
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalHeaderComponent, decorators: [{
|
|
166
|
+
type: Component,
|
|
167
|
+
args: [{ selector: '[ngg-modal-header]', template: `
|
|
168
|
+
<h3 data-testid="modal-header-text">{{ header }}</h3>
|
|
169
|
+
<button
|
|
170
|
+
data-testid="modal-close-button"
|
|
171
|
+
class="close"
|
|
172
|
+
(click)="this.handleClose($event)"
|
|
173
|
+
>
|
|
174
|
+
<span className="sr-only">Close</span>
|
|
175
|
+
<i></i>
|
|
176
|
+
</button>
|
|
177
|
+
`, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
178
|
+
}], propDecorators: { header: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], closed: [{
|
|
181
|
+
type: Output
|
|
182
|
+
}] } });
|
|
183
|
+
export class NggModalBodyComponent {
|
|
184
|
+
}
|
|
185
|
+
NggModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
186
|
+
NggModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalBodyComponent, selector: "[ngg-modal-body]", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] });
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalBodyComponent, decorators: [{
|
|
188
|
+
type: Component,
|
|
189
|
+
args: [{ selector: '[ngg-modal-body]', template: `<ng-content></ng-content>`, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
190
|
+
}] });
|
|
191
|
+
export class NggModalFooterComponent {
|
|
192
|
+
constructor() {
|
|
193
|
+
this.dismiss = new EventEmitter();
|
|
194
|
+
this.confirm = new EventEmitter();
|
|
195
|
+
}
|
|
196
|
+
handleDismiss(event) {
|
|
197
|
+
this.dismiss.emit(event);
|
|
198
|
+
}
|
|
199
|
+
handleConfirm(event) {
|
|
200
|
+
this.confirm.emit(event);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
NggModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
204
|
+
NggModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalFooterComponent, selector: "[ngg-modal-footer]", inputs: { dismissLabel: "dismissLabel", confirmLabel: "confirmLabel" }, outputs: { dismiss: "dismiss", confirm: "confirm" }, ngImport: i0, template: `
|
|
205
|
+
<button
|
|
206
|
+
data-testid="modal-dismiss-button"
|
|
207
|
+
*ngIf="dismissLabel"
|
|
208
|
+
class="secondary"
|
|
209
|
+
(click)="this.handleDismiss($event)"
|
|
210
|
+
>
|
|
211
|
+
{{ dismissLabel }}
|
|
212
|
+
</button>
|
|
213
|
+
<button
|
|
214
|
+
data-testid="modal-confirm-button"
|
|
215
|
+
*ngIf="confirmLabel"
|
|
216
|
+
class="primary"
|
|
217
|
+
(click)="this.handleConfirm($event)"
|
|
218
|
+
>
|
|
219
|
+
{{ confirmLabel }}
|
|
220
|
+
</button>
|
|
221
|
+
`, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalFooterComponent, decorators: [{
|
|
223
|
+
type: Component,
|
|
224
|
+
args: [{ selector: '[ngg-modal-footer]', template: `
|
|
225
|
+
<button
|
|
226
|
+
data-testid="modal-dismiss-button"
|
|
227
|
+
*ngIf="dismissLabel"
|
|
228
|
+
class="secondary"
|
|
229
|
+
(click)="this.handleDismiss($event)"
|
|
230
|
+
>
|
|
231
|
+
{{ dismissLabel }}
|
|
232
|
+
</button>
|
|
233
|
+
<button
|
|
234
|
+
data-testid="modal-confirm-button"
|
|
235
|
+
*ngIf="confirmLabel"
|
|
236
|
+
class="primary"
|
|
237
|
+
(click)="this.handleConfirm($event)"
|
|
238
|
+
>
|
|
239
|
+
{{ confirmLabel }}
|
|
240
|
+
</button>
|
|
241
|
+
`, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
242
|
+
}], propDecorators: { dismissLabel: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], confirmLabel: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], dismiss: [{
|
|
247
|
+
type: Output
|
|
248
|
+
}], confirm: [{
|
|
249
|
+
type: Output
|
|
250
|
+
}] } });
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7OztBQVFsRSxNQUFNLE9BQU8saUJBQWlCO0lBb0U1QixZQUNVLEdBQTRCLEVBQzVCLDRCQUEwRDtRQUQxRCxRQUFHLEdBQUgsR0FBRyxDQUF5QjtRQUM1QixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBdkJuRCxpQkFBWSxHQUMzQixJQUFJLFlBQVksRUFBVyxDQUFBO1FBQ1osV0FBTSxHQUNyQixJQUFJLFlBQVksRUFBYyxDQUFBO1FBQ2YsWUFBTyxHQUN0QixJQUFJLFlBQVksRUFBYyxDQUFBO1FBQ2YsWUFBTyxHQUN0QixJQUFJLFlBQVksRUFBYyxDQUFBO1FBa0I5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FDbkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENB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b21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1vZGFsVHlwZSwgU2l6ZSB9IGZyb20gJ0BzZWJncm91cC9leHRyYWN0J1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhYmxlRm9jdXNUcmFwLFxuICBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IGRpc2FibGVCb2R5U2Nyb2xsLCBlbmFibGVCb2R5U2Nyb2xsIH0gZnJvbSAnYm9keS1zY3JvbGwtbG9jaydcbmltcG9ydCB7IE5nZ01vZGFsSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC1oZWFkZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdnTW9kYWxGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL21vZGFsLWZvb3Rlci5kaXJlY3RpdmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZy1tb2RhbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIG1vZGFsVHlwZT86IE1vZGFsVHlwZVxuICBASW5wdXQoKSBwdWJsaWMgaGVhZGVyPzogc3RyaW5nXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maXJtTGFiZWw/OiBzdHJpbmdcbiAgQElucHV0KCkgcHVibGljIGRpc21pc3NMYWJlbD86IHN0cmluZ1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZT86IFNpemVcbiAgQElucHV0KCkgcHVibGljIGhpZGVIZWFkZXI/OiBib29sZWFuXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlRm9vdGVyPzogYm9vbGVhblxuICBASW5wdXQoKSBwdWJsaWMgZ2V0IHRyYXBGb2N1cygpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhcEZvY3VzXG4gIH1cbiAgcHVibGljIHNldCB0cmFwRm9jdXModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl90cmFwRm9jdXMgPSB2YWx1ZVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5faXNPcGVuKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlRm9jdXNUcmFwKClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKClcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuXG4gIH1cbiAgcHVibGljIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9pc09wZW4gPSB2YWx1ZVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy50cmFwRm9jdXMpIHtcbiAgICAgICAgdGhpcy5lbmFibGVGb2N1c1RyYXAoKVxuICAgICAgfVxuXG4gICAgICBkaXNhYmxlQm9keVNjcm9sbCh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGFsbG93VG91Y2hNb3ZlOiAoZWwpID0+IHtcbiAgICAgICAgICAvLyBBbGxvdyB0b3VjaG1vdmUgZm9yIGVsZW1lbnRzIGluc2lkZSBtb2RhbCwgaXRzIHJlcXVpcmVkIGZvciBzY3JvbGwgdG8gd29yayBvbiBpT1MgZGV2aWNlc1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGVsKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKClcbiAgICAgIGVuYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIGlzT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgY29uZmlybTogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBkaXNtaXNzOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mub3BlbicpIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlblxuICB9XG4gIEBWaWV3Q2hpbGQoJ2JhY2tkcm9wJykgcHJpdmF0ZSBiYWNrZHJvcFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cbiAgQENvbnRlbnRDaGlsZChOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSlcbiAgcHVibGljIG1vZGFsSGVhZGVyQ29udGVudD86IE5nZ01vZGFsSGVhZGVyRGlyZWN0aXZlXG4gIEBDb250ZW50Q2hpbGQoTmdnTW9kYWxGb290ZXJEaXJlY3RpdmUpXG4gIHB1YmxpYyBtb2RhbEZvb3RlckNvbnRlbnQ/OiBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZVxuICBwcml2YXRlIF9pc09wZW4/OiBib29sZWFuXG4gIHByaXZhdGUgX3RyYXBGb2N1cz86IGJvb2xlYW5cbiAgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3Rvcnk6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG4gICkge1xuICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwID0gdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShcbiAgICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLnRyYXBGb2N1cykgdGhpcy5lbmFibGVGb2N1c1RyYXAoKVxuICAgIGVsc2UgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKClcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbG9zZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsKGV2ZW50KVxuICB9XG5cbiAgcHVibGljIGhhbmRsZUJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09IHRoaXMuYmFja2Ryb3BSZWY/Lm5hdGl2ZUVsZW1lbnQpIHRoaXMuY2xvc2VNb2RhbChldmVudClcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoZXZlbnQpXG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ29uZmlybShldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuY29uZmlybS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZU1vZGFsKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2xvc2VkLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KGV2ZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG4gICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlRm9jdXNUcmFwKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IHRydWVcbiAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUZvY3VzVHJhcCgpIHtcbiAgICBpZiAodGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwLmVuYWJsZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwPy5kZXN0cm95KClcbiAgICBlbmFibGVCb2R5U2Nyb2xsKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpXG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1oZWFkZXJdJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aDMgZGF0YS10ZXN0aWQ9XCJtb2RhbC1oZWFkZXItdGV4dFwiPnt7IGhlYWRlciB9fTwvaDM+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1jbG9zZS1idXR0b25cIlxuICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVDbG9zZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICA8aT48L2k+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsSGVhZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaGVhZGVyPzogc3RyaW5nXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKVxuXG4gIGhhbmRsZUNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdChldmVudClcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbmdnLW1vZGFsLWJvZHldJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnTW9kYWxCb2R5Q29tcG9uZW50IHt9XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tuZ2ctbW9kYWwtZm9vdGVyXScsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1kaXNtaXNzLWJ1dHRvblwiXG4gICAgICAqbmdJZj1cImRpc21pc3NMYWJlbFwiXG4gICAgICBjbGFzcz1cInNlY29uZGFyeVwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVEaXNtaXNzKCRldmVudClcIlxuICAgID5cbiAgICAgIHt7IGRpc21pc3NMYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtY29uZmlybS1idXR0b25cIlxuICAgICAgKm5nSWY9XCJjb25maXJtTGFiZWxcIlxuICAgICAgY2xhc3M9XCJwcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZUNvbmZpcm0oJGV2ZW50KVwiXG4gICAgPlxuICAgICAge3sgY29uZmlybUxhYmVsIH19XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsRm9vdGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGlzbWlzc0xhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIGNvbmZpcm1MYWJlbD86IHN0cmluZ1xuICBAT3V0cHV0KCkgZGlzbWlzczogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoZXZlbnQpXG4gIH1cblxuICBoYW5kbGVDb25maXJtKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jb25maXJtLmVtaXQoZXZlbnQpXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW5cIiBbbmdTd2l0Y2hdPVwibW9kYWxUeXBlXCI+XG4gIDxkaXYgY2xhc3M9XCJnZHMtZGlhbG9nLXdyYXBwZXJcIj5cbiAgICA8YXNpZGVcbiAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWxcIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzbGlkZW91dCdcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gICAgICBbY2xhc3MubWVkaXVtXT1cInNpemUgPT09ICdtZCdcIlxuICAgICAgW2NsYXNzLmxhcmdlXT1cInNpemUgPT09ICdsZydcIlxuICAgICAgW2NsYXNzLmVudGVyZWRdPVwiaXNPcGVuXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hc2lkZT5cbiAgICA8bWFpblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3Rha2VvdmVyJ1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgIFtjbGFzcy5lbnRlcmVkXT1cImlzT3BlblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWFpbj5cbiAgICA8c2VjdGlvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiXG4gICAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgIFtjbGFzcy5zbWFsbF09XCJzaXplID09PSAnc20nXCJcbiAgICAgIFtjbGFzcy5tZWRpdW1dPVwic2l6ZSA9PT0gJ21kJ1wiXG4gICAgICBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gICAgICBbY2xhc3MuZW50ZXJlZF09XCJpc09wZW5cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVIZWFkZXJcIj5cbiAgICAgICAgPGhlYWRlclxuICAgICAgICAgICpuZ0lmPVwiIW1vZGFsSGVhZGVyQ29udGVudDsgZWxzZSBoZWFkZXJDb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgIG5nZy1tb2RhbC1oZWFkZXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiXG4gICAgICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgICAgIChjbG9zZWQpPVwidGhpcy5oYW5kbGVDbG9zZUNsaWNrKCRldmVudClcIlxuICAgICAgICA+PC9oZWFkZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgbmdnLW1vZGFsLWJvZHkgZGF0YS10ZXN0aWQ9XCJtb2RhbC1ib2R5XCIgY2xhc3M9XCJib2R5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5Q29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZUZvb3RlciAmJiAoZGlzbWlzc0xhYmVsIHx8IGNvbmZpcm1MYWJlbClcIj5cbiAgICAgICAgPGZvb3RlclxuICAgICAgICAgICpuZ0lmPVwiIW1vZGFsRm9vdGVyQ29udGVudDsgZWxzZSBmb290ZXJDb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgIG5nZy1tb2RhbC1mb290ZXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWZvb3RlclwiXG4gICAgICAgICAgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIlxuICAgICAgICAgIFtjb25maXJtTGFiZWxdPVwiY29uZmlybUxhYmVsXCJcbiAgICAgICAgICAoZGlzbWlzcyk9XCJ0aGlzLmhhbmRsZURpc21pc3MoJGV2ZW50KVwiXG4gICAgICAgICAgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIlxuICAgICAgICA+PC9mb290ZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyQ29udGVudFRlbXBsYXRlPlxuICAgICAgPGhlYWRlciBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmdnTW9kYWxIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9oZWFkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2JvZHlDb250ZW50VGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlckNvbnRlbnRUZW1wbGF0ZT5cbiAgICAgIDxmb290ZXIgZGF0YS10ZXN0aWQ9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW25nZ01vZGFsRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZm9vdGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgI2JhY2tkcm9wXG4gICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWJhY2tkcm9wXCJcbiAgICAgIGNsYXNzPVwiYmFja2Ryb3AgZW50ZXJlZFwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVCYWNrZHJvcENsaWNrKCRldmVudClcIlxuICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
4
|
+
import { NggModalBodyComponent, NggModalComponent, NggModalFooterComponent, NggModalHeaderComponent, } from './modal.component';
|
|
5
|
+
import { NggModalHeaderDirective } from './modal-header.directive';
|
|
6
|
+
import { NggModalFooterDirective } from './modal-footer.directive';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
const DECLARATIONS = [
|
|
9
|
+
NggModalComponent,
|
|
10
|
+
NggModalHeaderComponent,
|
|
11
|
+
NggModalBodyComponent,
|
|
12
|
+
NggModalFooterComponent,
|
|
13
|
+
NggModalHeaderDirective,
|
|
14
|
+
NggModalFooterDirective,
|
|
15
|
+
];
|
|
16
|
+
const EXPORTS = [
|
|
17
|
+
NggModalComponent,
|
|
18
|
+
NggModalHeaderDirective,
|
|
19
|
+
NggModalFooterDirective,
|
|
20
|
+
];
|
|
21
|
+
export class NggModalModule {
|
|
22
|
+
}
|
|
23
|
+
NggModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
NggModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggModalModule, declarations: [NggModalComponent,
|
|
25
|
+
NggModalHeaderComponent,
|
|
26
|
+
NggModalBodyComponent,
|
|
27
|
+
NggModalFooterComponent,
|
|
28
|
+
NggModalHeaderDirective,
|
|
29
|
+
NggModalFooterDirective], imports: [A11yModule, CommonModule], exports: [NggModalComponent,
|
|
30
|
+
NggModalHeaderDirective,
|
|
31
|
+
NggModalFooterDirective] });
|
|
32
|
+
NggModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalModule, imports: [A11yModule, CommonModule] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalModule, decorators: [{
|
|
34
|
+
type: NgModule,
|
|
35
|
+
args: [{
|
|
36
|
+
imports: [A11yModule, CommonModule],
|
|
37
|
+
exports: EXPORTS,
|
|
38
|
+
declarations: DECLARATIONS,
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsdUJBQXVCLEdBQ3hCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7O0FBRWxFLE1BQU0sWUFBWSxHQUFHO0lBQ25CLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0NBQ3hCLENBQUE7QUFFRCxNQUFNLE9BQU8sR0FBRztJQUNkLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsdUJBQXVCO0NBQ3hCLENBQUE7QUFPRCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQW5CekIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2Qix1QkFBdUIsYUFVYixVQUFVLEVBQUUsWUFBWSxhQU5sQyxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHVCQUF1Qjs0R0FRWixjQUFjLFlBSmYsVUFBVSxFQUFFLFlBQVk7MkZBSXZCLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztvQkFDbkMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFlBQVksRUFBRSxZQUFZO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7XG4gIE5nZ01vZGFsQm9keUNvbXBvbmVudCxcbiAgTmdnTW9kYWxDb21wb25lbnQsXG4gIE5nZ01vZGFsRm9vdGVyQ29tcG9uZW50LFxuICBOZ2dNb2RhbEhlYWRlckNvbXBvbmVudCxcbn0gZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtaGVhZGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE5nZ01vZGFsRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC1mb290ZXIuZGlyZWN0aXZlJ1xuXG5jb25zdCBERUNMQVJBVElPTlMgPSBbXG4gIE5nZ01vZGFsQ29tcG9uZW50LFxuICBOZ2dNb2RhbEhlYWRlckNvbXBvbmVudCxcbiAgTmdnTW9kYWxCb2R5Q29tcG9uZW50LFxuICBOZ2dNb2RhbEZvb3RlckNvbXBvbmVudCxcbiAgTmdnTW9kYWxIZWFkZXJEaXJlY3RpdmUsXG4gIE5nZ01vZGFsRm9vdGVyRGlyZWN0aXZlLFxuXVxuXG5jb25zdCBFWFBPUlRTID0gW1xuICBOZ2dNb2RhbENvbXBvbmVudCxcbiAgTmdnTW9kYWxIZWFkZXJEaXJlY3RpdmUsXG4gIE5nZ01vZGFsRm9vdGVyRGlyZWN0aXZlLFxuXVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogRVhQT1JUUyxcbiAgZGVjbGFyYXRpb25zOiBERUNMQVJBVElPTlMsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtbGliLW1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvc2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtbGliLW1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './pagination.component';
|
|
2
|
+
export * from './pagination.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24ubW9kdWxlJ1xuIl19
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
+
import { PaginationI18n, } from '@sebgroup/extract';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class NggPaginationComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
/** Internationalization labels */
|
|
8
|
+
this.i18n = PaginationI18n;
|
|
9
|
+
/** Rendered size */
|
|
10
|
+
this.size = 'small';
|
|
11
|
+
/** Amount of pages to be displayed between the first and last */
|
|
12
|
+
this.displayPages = 5;
|
|
13
|
+
/** Total amount of items to be paginated */
|
|
14
|
+
this.length = 0;
|
|
15
|
+
/** Displayed items per page */
|
|
16
|
+
this.pageSize = 10;
|
|
17
|
+
this._pageIndex = 0;
|
|
18
|
+
this._pageIndicies = [];
|
|
19
|
+
/** Event emitted when a new page index is selected */
|
|
20
|
+
this.page = new EventEmitter();
|
|
21
|
+
}
|
|
22
|
+
/** The zero-based page index of the displayed list of pages. Defaulted to 0. */
|
|
23
|
+
get pageIndex() {
|
|
24
|
+
return this._pageIndex;
|
|
25
|
+
}
|
|
26
|
+
set pageIndex(value) {
|
|
27
|
+
this._pageIndex = Math.max(value, 0);
|
|
28
|
+
}
|
|
29
|
+
/** All centric page indicies to be displayed. */
|
|
30
|
+
get pageIndicies() {
|
|
31
|
+
return this._pageIndicies;
|
|
32
|
+
}
|
|
33
|
+
get totalPages() {
|
|
34
|
+
if (!this.pageSize) {
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
return Math.ceil(this.length / this.pageSize);
|
|
38
|
+
}
|
|
39
|
+
ngOnChanges(changes) {
|
|
40
|
+
if (changes.displayPages ||
|
|
41
|
+
changes.pageIndex ||
|
|
42
|
+
changes.pageSize ||
|
|
43
|
+
changes.length) {
|
|
44
|
+
this._pageIndicies = this.getDisplayedPageIndicies();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
hasPrevious() {
|
|
48
|
+
return this.pageIndex >= 1;
|
|
49
|
+
}
|
|
50
|
+
hasNext() {
|
|
51
|
+
return this.pageIndex < this.totalPages - 1;
|
|
52
|
+
}
|
|
53
|
+
gotoFirst() {
|
|
54
|
+
if (!this.hasPrevious()) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const previous = this.pageIndex;
|
|
58
|
+
this.pageIndex = 0;
|
|
59
|
+
this.emit(previous);
|
|
60
|
+
}
|
|
61
|
+
gotoLast() {
|
|
62
|
+
if (!this.hasNext()) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const previous = this.pageIndex;
|
|
66
|
+
this.pageIndex = this.totalPages - 1;
|
|
67
|
+
this.emit(previous);
|
|
68
|
+
}
|
|
69
|
+
gotoPrevious() {
|
|
70
|
+
if (!this.hasPrevious()) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const previous = this.pageIndex;
|
|
74
|
+
this.pageIndex = previous - 1;
|
|
75
|
+
this.emit(previous);
|
|
76
|
+
}
|
|
77
|
+
gotoNext() {
|
|
78
|
+
if (!this.hasNext()) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const previous = this.pageIndex;
|
|
82
|
+
this.pageIndex = previous + 1;
|
|
83
|
+
this.emit(previous);
|
|
84
|
+
}
|
|
85
|
+
goto(index) {
|
|
86
|
+
if (index === this.pageIndex || index < 0 || index >= this.totalPages) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const previous = this.pageIndex;
|
|
90
|
+
this.pageIndex = index;
|
|
91
|
+
this.emit(previous);
|
|
92
|
+
}
|
|
93
|
+
emit(previous) {
|
|
94
|
+
this._pageIndicies = this.getDisplayedPageIndicies();
|
|
95
|
+
this.page.emit({ pageIndex: this.pageIndex, previousPageIndex: previous });
|
|
96
|
+
}
|
|
97
|
+
getDisplayedPageIndicies() {
|
|
98
|
+
// Do not render
|
|
99
|
+
if (this.totalPages <= 1) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
// All pages can fit
|
|
103
|
+
if (this.totalPages <= this.displayPages)
|
|
104
|
+
return [...Array(this.totalPages - 2).keys()].map((index) => index + 1);
|
|
105
|
+
// Only first & last
|
|
106
|
+
if (this.totalPages === 2)
|
|
107
|
+
return [];
|
|
108
|
+
return this.getCenteredPageIndicies();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Find X (displayPages) amount of page indicies that are centered from the currently selected page index,
|
|
112
|
+
* but exclude the first and last indicies if they are within the range.
|
|
113
|
+
*/
|
|
114
|
+
getCenteredPageIndicies() {
|
|
115
|
+
const pages = [];
|
|
116
|
+
if (this.pageIndex === 0) {
|
|
117
|
+
pages.push(this.pageIndex + 1);
|
|
118
|
+
}
|
|
119
|
+
else if (this.pageIndex === this.totalPages - 1) {
|
|
120
|
+
pages.push(this.pageIndex - 1);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
pages.push(this.pageIndex);
|
|
124
|
+
}
|
|
125
|
+
const addAfter = () => {
|
|
126
|
+
const next = pages[pages.length - 1] + 1;
|
|
127
|
+
if (next < this.totalPages - 1 && counter > 0) {
|
|
128
|
+
pages.push(next);
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
};
|
|
133
|
+
const addBefore = () => {
|
|
134
|
+
const previous = pages[0] - 1;
|
|
135
|
+
if (previous > 0 && counter > 0) {
|
|
136
|
+
pages.unshift(previous);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
};
|
|
141
|
+
let counter = this.displayPages - 1;
|
|
142
|
+
while (counter > 0) {
|
|
143
|
+
const addedAfter = addAfter();
|
|
144
|
+
if (addedAfter)
|
|
145
|
+
counter--;
|
|
146
|
+
const addedBefore = addBefore();
|
|
147
|
+
if (addedBefore)
|
|
148
|
+
counter--;
|
|
149
|
+
if (!addedAfter && !addedBefore)
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
return pages;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
NggPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
+
NggPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggPaginationComponent, selector: "ngg-pagination", inputs: { i18n: "i18n", size: "size", displayPages: "displayPages", length: "length", pageSize: "pageSize", pageIndex: "pageIndex" }, outputs: { page: "page" }, usesOnChanges: true, ngImport: i0, template: "<nav\n [class]=\"'pagination ' + size\"\n role=\"navigation\"\n [attr.aria-label]=\"i18n.paginationLabel\"\n *ngIf=\"totalPages > 1\"\n>\n <ul class=\"gds-reset\">\n <li *ngIf=\"hasPrevious()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoPrevious()\"\n (keydown.enter)=\"gotoPrevious()\"\n [attr.aria-label]=\"i18n.previousPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\n />\n </svg>\n </a>\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoFirst()\"\n (keydown.enter)=\"gotoFirst()\"\n [attr.aria-current]=\"pageIndex === 0 ? 'page' : null\"\n [attr.aria-label]=\"i18n.firstPageLabel\"\n role=\"button\"\n >\n 1\n </a>\n </li>\n <li *ngIf=\"pageIndicies[0] > 1\" aria-hidden=\"true\">...</li>\n\n <li *ngFor=\"let index of pageIndicies\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"goto(index)\"\n (keydown.enter)=\"goto(index)\"\n [attr.aria-current]=\"pageIndex === index ? 'page' : null\"\n [attr.aria-label]=\"i18n.getPageLabel(index)\"\n role=\"button\"\n >\n {{ index + 1 }}\n </a>\n </li>\n\n <li\n *ngIf=\"pageIndicies[pageIndicies.length - 1] < totalPages - 2\"\n aria-hidden=\"true\"\n >\n ...\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoLast()\"\n (keydown.enter)=\"gotoLast()\"\n [attr.aria-current]=\"pageIndex === totalPages - 1 ? 'page' : null\"\n [attr.aria-label]=\"i18n.lastPageLabel\"\n role=\"button\"\n >\n {{ totalPages }}\n </a>\n </li>\n <li *ngIf=\"hasNext()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoNext()\"\n (keydown.enter)=\"gotoNext()\"\n [attr.aria-label]=\"i18n.nextPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\n />\n </svg>\n </a>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationComponent, decorators: [{
|
|
158
|
+
type: Component,
|
|
159
|
+
args: [{ selector: 'ngg-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n [class]=\"'pagination ' + size\"\n role=\"navigation\"\n [attr.aria-label]=\"i18n.paginationLabel\"\n *ngIf=\"totalPages > 1\"\n>\n <ul class=\"gds-reset\">\n <li *ngIf=\"hasPrevious()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoPrevious()\"\n (keydown.enter)=\"gotoPrevious()\"\n [attr.aria-label]=\"i18n.previousPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\n />\n </svg>\n </a>\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoFirst()\"\n (keydown.enter)=\"gotoFirst()\"\n [attr.aria-current]=\"pageIndex === 0 ? 'page' : null\"\n [attr.aria-label]=\"i18n.firstPageLabel\"\n role=\"button\"\n >\n 1\n </a>\n </li>\n <li *ngIf=\"pageIndicies[0] > 1\" aria-hidden=\"true\">...</li>\n\n <li *ngFor=\"let index of pageIndicies\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"goto(index)\"\n (keydown.enter)=\"goto(index)\"\n [attr.aria-current]=\"pageIndex === index ? 'page' : null\"\n [attr.aria-label]=\"i18n.getPageLabel(index)\"\n role=\"button\"\n >\n {{ index + 1 }}\n </a>\n </li>\n\n <li\n *ngIf=\"pageIndicies[pageIndicies.length - 1] < totalPages - 2\"\n aria-hidden=\"true\"\n >\n ...\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoLast()\"\n (keydown.enter)=\"gotoLast()\"\n [attr.aria-current]=\"pageIndex === totalPages - 1 ? 'page' : null\"\n [attr.aria-label]=\"i18n.lastPageLabel\"\n role=\"button\"\n >\n {{ totalPages }}\n </a>\n </li>\n <li *ngIf=\"hasNext()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoNext()\"\n (keydown.enter)=\"gotoNext()\"\n [attr.aria-label]=\"i18n.nextPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\n />\n </svg>\n </a>\n </li>\n </ul>\n</nav>\n" }]
|
|
160
|
+
}], propDecorators: { i18n: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], size: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], displayPages: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], length: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], pageSize: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], pageIndex: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], page: [{
|
|
173
|
+
type: Output
|
|
174
|
+
}] } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEdBR3hCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFHTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQTs7O0FBTzFCLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFNRSxrQ0FBa0M7UUFDekIsU0FBSSxHQUFvQixjQUFjLENBQUE7UUFFL0Msb0JBQW9CO1FBQ1gsU0FBSSxHQUFtQixPQUFPLENBQUE7UUFFdkMsa0VBQWtFO1FBQ3pELGlCQUFZLEdBQUcsQ0FBQyxDQUFBO1FBRXpCLDRDQUE0QztRQUNuQyxXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBRW5CLCtCQUErQjtRQUN0QixhQUFRLEdBQUcsRUFBRSxDQUFBO1FBVWQsZUFBVSxHQUFHLENBQUMsQ0FBQTtRQU1kLGtCQUFhLEdBQWEsRUFBRSxDQUFBO1FBVXBDLHNEQUFzRDtRQUM1QyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUE7S0FvSXREO0lBN0pDLGdGQUFnRjtJQUNoRixJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBR0Qs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QUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUYsU0FBUztzQkFEWixLQUFLO2dCQXdCSSxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIElQYWdpbmF0aW9uRXZlbnQsXG4gIElQYWdpbmF0aW9uSTE4bixcbiAgUGFnaW5hdGlvbkkxOG4sXG4gIFBhZ2luYXRpb25TaXplLFxufSBmcm9tICdAc2ViZ3JvdXAvZXh0cmFjdCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLyoqIEludGVybmF0aW9uYWxpemF0aW9uIGxhYmVscyAqL1xuICBASW5wdXQoKSBpMThuOiBJUGFnaW5hdGlvbkkxOG4gPSBQYWdpbmF0aW9uSTE4blxuXG4gIC8qKiBSZW5kZXJlZCBzaXplICovXG4gIEBJbnB1dCgpIHNpemU6IFBhZ2luYXRpb25TaXplID0gJ3NtYWxsJ1xuXG4gIC8qKiBBbW91bnQgb2YgcGFnZXMgdG8gYmUgZGlzcGxheWVkIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBsYXN0ICAqL1xuICBASW5wdXQoKSBkaXNwbGF5UGFnZXMgPSA1XG5cbiAgLyoqIFRvdGFsIGFtb3VudCBvZiBpdGVtcyB0byBiZSBwYWdpbmF0ZWQgKi9cbiAgQElucHV0KCkgbGVuZ3RoID0gMFxuXG4gIC8qKiBEaXNwbGF5ZWQgaXRlbXMgcGVyIHBhZ2UgKi9cbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMFxuXG4gIC8qKiBUaGUgemVyby1iYXNlZCBwYWdlIGluZGV4IG9mIHRoZSBkaXNwbGF5ZWQgbGlzdCBvZiBwYWdlcy4gRGVmYXVsdGVkIHRvIDAuICovXG4gIEBJbnB1dCgpXG4gIGdldCBwYWdlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZUluZGV4XG4gIH1cbiAgc2V0IHBhZ2VJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZUluZGV4ID0gTWF0aC5tYXgodmFsdWUsIDApXG4gIH1cbiAgcHJpdmF0ZSBfcGFnZUluZGV4ID0gMFxuXG4gIC8qKiBBbGwgY2VudHJpYyBwYWdlIGluZGljaWVzIHRvIGJlIGRpc3BsYXllZC4gKi9cbiAgZ2V0IHBhZ2VJbmRpY2llcygpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRpY2llc1xuICB9XG4gIHByaXZhdGUgX3BhZ2VJbmRpY2llczogbnVtYmVyW10gPSBbXVxuXG4gIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnBhZ2VTaXplKSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cblxuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKVxuICB9XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIG5ldyBwYWdlIGluZGV4IGlzIHNlbGVjdGVkICovXG4gIEBPdXRwdXQoKSBwYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxJUGFnaW5hdGlvbkV2ZW50PigpXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXMuZGlzcGxheVBhZ2VzIHx8XG4gICAgICBjaGFuZ2VzLnBhZ2VJbmRleCB8fFxuICAgICAgY2hhbmdlcy5wYWdlU2l6ZSB8fFxuICAgICAgY2hhbmdlcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMuX3BhZ2VJbmRpY2llcyA9IHRoaXMuZ2V0RGlzcGxheWVkUGFnZUluZGljaWVzKClcbiAgICB9XG4gIH1cblxuICBoYXNQcmV2aW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlSW5kZXggPj0gMVxuICB9XG5cbiAgaGFzTmV4dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlSW5kZXggPCB0aGlzLnRvdGFsUGFnZXMgLSAxXG4gIH1cblxuICBnb3RvRmlyc3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1ByZXZpb3VzKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMucGFnZUluZGV4XG4gICAgdGhpcy5wYWdlSW5kZXggPSAwXG4gICAgdGhpcy5lbWl0KHByZXZpb3VzKVxuICB9XG5cbiAgZ290b0xhc3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc05leHQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wYWdlSW5kZXhcbiAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMudG90YWxQYWdlcyAtIDFcbiAgICB0aGlzLmVtaXQocHJldmlvdXMpXG4gIH1cblxuICBnb3RvUHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1ByZXZpb3VzKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMucGFnZUluZGV4XG4gICAgdGhpcy5wYWdlSW5kZXggPSBwcmV2aW91cyAtIDFcbiAgICB0aGlzLmVtaXQocHJldmlvdXMpXG4gIH1cblxuICBnb3RvTmV4dCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzTmV4dCgpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnBhZ2VJbmRleFxuICAgIHRoaXMucGFnZUluZGV4ID0gcHJldmlvdXMgKyAxXG4gICAgdGhpcy5lbWl0KHByZXZpb3VzKVxuICB9XG5cbiAgZ290byhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGluZGV4ID09PSB0aGlzLnBhZ2VJbmRleCB8fCBpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLnBhZ2VJbmRleFxuICAgIHRoaXMucGFnZUluZGV4ID0gaW5kZXhcbiAgICB0aGlzLmVtaXQocHJldmlvdXMpXG4gIH1cblxuICBwcml2YXRlIGVtaXQocHJldmlvdXM6IG51bWJlcikge1xuICAgIHRoaXMuX3BhZ2VJbmRpY2llcyA9IHRoaXMuZ2V0RGlzcGxheWVkUGFnZUluZGljaWVzKClcbiAgICB0aGlzLnBhZ2UuZW1pdCh7IHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsIHByZXZpb3VzUGFnZUluZGV4OiBwcmV2aW91cyB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5ZWRQYWdlSW5kaWNpZXMoKTogbnVtYmVyW10ge1xuICAgIC8vIERvIG5vdCByZW5kZXJcbiAgICBpZiAodGhpcy50b3RhbFBhZ2VzIDw9IDEpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIC8vIEFsbCBwYWdlcyBjYW4gZml0XG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA8PSB0aGlzLmRpc3BsYXlQYWdlcylcbiAgICAgIHJldHVybiBbLi4uQXJyYXkodGhpcy50b3RhbFBhZ2VzIC0gMikua2V5cygpXS5tYXAoKGluZGV4KSA9PiBpbmRleCArIDEpXG5cbiAgICAvLyBPbmx5IGZpcnN0ICYgbGFzdFxuICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgPT09IDIpIHJldHVybiBbXVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2VudGVyZWRQYWdlSW5kaWNpZXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgWCAoZGlzcGxheVBhZ2VzKSBhbW91bnQgb2YgcGFnZSBpbmRpY2llcyB0aGF0IGFyZSBjZW50ZXJlZCBmcm9tIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGFnZSBpbmRleCxcbiAgICogYnV0IGV4Y2x1ZGUgdGhlIGZpcnN0IGFuZCBsYXN0IGluZGljaWVzIGlmIHRoZXkgYXJlIHdpdGhpbiB0aGUgcmFuZ2UuXG4gICAqL1xuICBwcml2YXRlIGdldENlbnRlcmVkUGFnZUluZGljaWVzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBwYWdlczogbnVtYmVyW10gPSBbXVxuXG4gICAgaWYgKHRoaXMucGFnZUluZGV4ID09PSAwKSB7XG4gICAgICBwYWdlcy5wdXNoKHRoaXMucGFnZUluZGV4ICsgMSlcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFnZUluZGV4ID09PSB0aGlzLnRvdGFsUGFnZXMgLSAxKSB7XG4gICAgICBwYWdlcy5wdXNoKHRoaXMucGFnZUluZGV4IC0gMSlcbiAgICB9IGVsc2Uge1xuICAgICAgcGFnZXMucHVzaCh0aGlzLnBhZ2VJbmRleClcbiAgICB9XG5cbiAgICBjb25zdCBhZGRBZnRlciA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBwYWdlc1twYWdlcy5sZW5ndGggLSAxXSArIDFcbiAgICAgIGlmIChuZXh0IDwgdGhpcy50b3RhbFBhZ2VzIC0gMSAmJiBjb3VudGVyID4gMCkge1xuICAgICAgICBwYWdlcy5wdXNoKG5leHQpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgY29uc3QgYWRkQmVmb3JlID0gKCkgPT4ge1xuICAgICAgY29uc3QgcHJldmlvdXMgPSBwYWdlc1swXSAtIDFcbiAgICAgIGlmIChwcmV2aW91cyA+IDAgJiYgY291bnRlciA+IDApIHtcbiAgICAgICAgcGFnZXMudW5zaGlmdChwcmV2aW91cylcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGxldCBjb3VudGVyID0gdGhpcy5kaXNwbGF5UGFnZXMgLSAxXG4gICAgd2hpbGUgKGNvdW50ZXIgPiAwKSB7XG4gICAgICBjb25zdCBhZGRlZEFmdGVyID0gYWRkQWZ0ZXIoKVxuICAgICAgaWYgKGFkZGVkQWZ0ZXIpIGNvdW50ZXItLVxuXG4gICAgICBjb25zdCBhZGRlZEJlZm9yZSA9IGFkZEJlZm9yZSgpXG4gICAgICBpZiAoYWRkZWRCZWZvcmUpIGNvdW50ZXItLVxuXG4gICAgICBpZiAoIWFkZGVkQWZ0ZXIgJiYgIWFkZGVkQmVmb3JlKSBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBwYWdlc1xuICB9XG59XG4iLCI8bmF2XG4gIFtjbGFzc109XCIncGFnaW5hdGlvbiAnICsgc2l6ZVwiXG4gIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLnBhZ2luYXRpb25MYWJlbFwiXG4gICpuZ0lmPVwidG90YWxQYWdlcyA+IDFcIlxuPlxuICA8dWwgY2xhc3M9XCJnZHMtcmVzZXRcIj5cbiAgICA8bGkgKm5nSWY9XCJoYXNQcmV2aW91cygpXCI+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImdkcy1yZXNldFwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChjbGljayk9XCJnb3RvUHJldmlvdXMoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImdvdG9QcmV2aW91cygpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLnByZXZpb3VzUGFnZUxhYmVsXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIwIDUxMlwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuXG4gICAgPGxpPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJnZHMtcmVzZXRcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoY2xpY2spPVwiZ290b0ZpcnN0KClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJnb3RvRmlyc3QoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJwYWdlSW5kZXggPT09IDAgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLmZpcnN0UGFnZUxhYmVsXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDFcbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdJZj1cInBhZ2VJbmRpY2llc1swXSA+IDFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4uLi48L2xpPlxuXG4gICAgPGxpICpuZ0Zvcj1cImxldCBpbmRleCBvZiBwYWdlSW5kaWNpZXNcIj5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwiZ2RzLXJlc2V0XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgKGNsaWNrKT1cImdvdG8oaW5kZXgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZ290byhpbmRleClcIlxuICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwicGFnZUluZGV4ID09PSBpbmRleCA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImkxOG4uZ2V0UGFnZUxhYmVsKGluZGV4KVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7eyBpbmRleCArIDEgfX1cbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuXG4gICAgPGxpXG4gICAgICAqbmdJZj1cInBhZ2VJbmRpY2llc1twYWdlSW5kaWNpZXMubGVuZ3RoIC0gMV0gPCB0b3RhbFBhZ2VzIC0gMlwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID5cbiAgICAgIC4uLlxuICAgIDwvbGk+XG5cbiAgICA8bGk+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImdkcy1yZXNldFwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChjbGljayk9XCJnb3RvTGFzdCgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZ290b0xhc3QoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJwYWdlSW5kZXggPT09IHRvdGFsUGFnZXMgLSAxID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaTE4bi5sYXN0UGFnZUxhYmVsXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHt7IHRvdGFsUGFnZXMgfX1cbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdJZj1cImhhc05leHQoKVwiPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJnZHMtcmVzZXRcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoY2xpY2spPVwiZ290b05leHQoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImdvdG9OZXh0KClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImkxOG4ubmV4dFBhZ2VMYWJlbFwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0zMTAuNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTkyIDE5MmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgMjU2IDczLjQgODYuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyelwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvbmF2PlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NggPaginationComponent } from './pagination.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NggPaginationModule {
|
|
6
|
+
}
|
|
7
|
+
NggPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
NggPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationModule, declarations: [NggPaginationComponent], imports: [CommonModule], exports: [NggPaginationComponent] });
|
|
9
|
+
NggPaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationModule, imports: [CommonModule] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggPaginationModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [NggPaginationComponent],
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [NggPaginationComponent],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBOztBQU8vRCxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBSmYsc0JBQXNCLGFBQzNCLFlBQVksYUFDWixzQkFBc0I7aUhBRXJCLG1CQUFtQixZQUhwQixZQUFZOzJGQUdYLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IE5nZ1BhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ2dQYWdpbmF0aW9uQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtOZ2dQYWdpbmF0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdnUGFnaW5hdGlvbk1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtbGliLXBhZ2luYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9wYWdpbmF0aW9uL3NlYmdyb3VwLWdyZWVuLWFuZ3VsYXItc3JjLWxpYi1wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './progress-circle.component';
|
|
2
|
+
export * from './progress-circle.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9wcm9ncmVzcy1jaXJjbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDBCQUEwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1jaXJjbGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1jaXJjbGUubW9kdWxlJ1xuIl19
|