adb-shared 6.0.1 → 6.0.3
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/esm2022/adb-shared.mjs +4 -4
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.mjs +48 -48
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.mjs +112 -112
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-nav.module.mjs +58 -66
- package/esm2022/lib/components/adb-artportalen-nav/environment.service.mjs +16 -16
- package/esm2022/lib/components/adb-artportalen-nav/navigation.model.mjs +1 -1
- package/esm2022/lib/components/adb-buttons/adb-buttons.module.mjs +19 -19
- package/esm2022/lib/components/adb-buttons/help-button.component.mjs +35 -35
- package/esm2022/lib/components/adb-confirm-modal/adb-confirm-modal.mjs +29 -29
- package/esm2022/lib/components/adb-confirm-modal/adb-modal.module.mjs +23 -23
- package/esm2022/lib/components/adb-confirm-modal/adb-modal.service.mjs +46 -46
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.directive.mjs +100 -100
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.module.mjs +24 -23
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.service.mjs +10 -10
- package/esm2022/lib/components/adb-dropdown/adb-dropdown2.directive.mjs +119 -0
- package/esm2022/lib/components/adb-header/adb-header.module.mjs +49 -57
- package/esm2022/lib/components/adb-header/adb-nav.component.mjs +115 -115
- package/esm2022/lib/components/adb-header/environment.service.mjs +16 -16
- package/esm2022/lib/components/adb-header/navigation.model.mjs +1 -1
- package/esm2022/lib/components/adb-rich-editor/adb-rich-editor.component.mjs +84 -0
- package/esm2022/lib/components/adb-rich-editor/adb-rich-editor.module.mjs +19 -0
- package/esm2022/lib/components/adb-toast/adb-toast.mjs +25 -25
- package/esm2022/lib/components/adb-toast/adb-toast.module.mjs +23 -23
- package/esm2022/lib/components/adb-toast/adb-toast.service.mjs +55 -55
- package/esm2022/lib/components/date-picker/adb-date-picker.component.mjs +177 -177
- package/esm2022/lib/components/date-picker/adb-date-picker.directive.mjs +220 -220
- package/esm2022/lib/components/date-picker/adb-date-picker.module.mjs +25 -25
- package/esm2022/lib/components/date-picker/adb-date-picker.service.mjs +10 -10
- package/esm2022/lib/components/pagers/infinite-scroll.component.mjs +47 -47
- package/esm2022/lib/components/pagers/pager-base.directive.mjs +57 -57
- package/esm2022/lib/components/pagers/pager-inline.mjs +49 -49
- package/esm2022/lib/components/pagers/pager.mjs +53 -53
- package/esm2022/lib/components/pagers/pagers.module.mjs +26 -26
- package/esm2022/lib/directives/click-outside.directive.mjs +28 -28
- package/esm2022/lib/directives/directives.module.mjs +21 -21
- package/esm2022/lib/directives/file-upload.directive.mjs +36 -36
- package/esm2022/lib/directives/focus.directive.mjs +34 -34
- package/esm2022/lib/directives/redlist-badge-class.directive.mjs +44 -44
- package/esm2022/lib/directives/risk-class.directive.mjs +37 -37
- package/esm2022/lib/pipes/date.pipe.mjs +22 -22
- package/esm2022/lib/pipes/emptyValue.pipe.mjs +22 -22
- package/esm2022/lib/pipes/highlight-html.pipe.mjs +46 -46
- package/esm2022/lib/pipes/highlight.pipe.mjs +46 -46
- package/esm2022/lib/pipes/number-spacing.pipe.mjs +21 -21
- package/esm2022/lib/pipes/pipes.module.mjs +22 -21
- package/esm2022/lib/pipes/rich.pipe.mjs +36 -0
- package/esm2022/public-api.mjs +42 -38
- package/fesm2022/adb-shared.mjs +1826 -1598
- package/fesm2022/adb-shared.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.d.ts +23 -23
- package/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.d.ts +41 -41
- package/lib/components/adb-artportalen-nav/adb-artportalen-nav.module.d.ts +16 -17
- package/lib/components/adb-artportalen-nav/environment.service.d.ts +7 -7
- package/lib/components/adb-artportalen-nav/navigation.model.d.ts +18 -18
- package/lib/components/adb-buttons/adb-buttons.module.d.ts +9 -9
- package/lib/components/adb-buttons/help-button.component.d.ts +13 -13
- package/lib/components/adb-confirm-modal/adb-confirm-modal.d.ts +20 -20
- package/lib/components/adb-confirm-modal/adb-modal.module.d.ts +10 -10
- package/lib/components/adb-confirm-modal/adb-modal.service.d.ts +18 -18
- package/lib/components/adb-dropdown/adb-dropdown.directive.d.ts +21 -21
- package/lib/components/adb-dropdown/adb-dropdown.module.d.ts +11 -10
- package/lib/components/adb-dropdown/adb-dropdown.service.d.ts +7 -7
- package/lib/components/adb-dropdown/adb-dropdown2.directive.d.ts +23 -0
- package/lib/components/adb-header/adb-header.module.d.ts +15 -16
- package/lib/components/adb-header/adb-nav.component.d.ts +41 -41
- package/lib/components/adb-header/environment.service.d.ts +7 -7
- package/lib/components/adb-header/navigation.model.d.ts +29 -29
- package/lib/components/adb-rich-editor/adb-rich-editor.component.d.ts +24 -0
- package/lib/components/adb-rich-editor/adb-rich-editor.module.d.ts +9 -0
- package/lib/components/adb-toast/adb-toast.d.ts +11 -11
- package/lib/components/adb-toast/adb-toast.module.d.ts +10 -10
- package/lib/components/adb-toast/adb-toast.service.d.ts +36 -36
- package/lib/components/date-picker/adb-date-picker.component.d.ts +64 -64
- package/lib/components/date-picker/adb-date-picker.directive.d.ts +47 -47
- package/lib/components/date-picker/adb-date-picker.module.d.ts +12 -12
- package/lib/components/date-picker/adb-date-picker.service.d.ts +8 -8
- package/lib/components/pagers/infinite-scroll.component.d.ts +15 -15
- package/lib/components/pagers/pager-base.directive.d.ts +16 -16
- package/lib/components/pagers/pager-inline.d.ts +16 -16
- package/lib/components/pagers/pager.d.ts +22 -22
- package/lib/components/pagers/pagers.module.d.ts +11 -11
- package/lib/directives/click-outside.directive.d.ts +10 -10
- package/lib/directives/directives.module.d.ts +11 -11
- package/lib/directives/file-upload.directive.d.ts +12 -12
- package/lib/directives/focus.directive.d.ts +11 -11
- package/lib/directives/redlist-badge-class.directive.d.ts +7 -7
- package/lib/directives/risk-class.directive.d.ts +7 -7
- package/lib/pipes/date.pipe.d.ts +10 -10
- package/lib/pipes/emptyValue.pipe.d.ts +7 -7
- package/lib/pipes/highlight-html.pipe.d.ts +10 -10
- package/lib/pipes/highlight.pipe.d.ts +9 -9
- package/lib/pipes/number-spacing.pipe.d.ts +7 -7
- package/lib/pipes/pipes.module.d.ts +12 -11
- package/lib/pipes/rich.pipe.d.ts +11 -0
- package/package.json +5 -5
- package/public-api.d.ts +38 -34
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostBinding, Output } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class InfiniteScrollComponent {
|
|
4
|
-
constructor(_element) {
|
|
5
|
-
this._element = _element;
|
|
6
|
-
this.onVisible = new EventEmitter();
|
|
7
|
-
this.onHidden = new EventEmitter();
|
|
8
|
-
this.height = '1px';
|
|
9
|
-
this.checkForIntersection = (entries) => {
|
|
10
|
-
entries.forEach((entry) => {
|
|
11
|
-
const isIntersecting = entry.isIntersecting &&
|
|
12
|
-
entry.target === this._element.nativeElement;
|
|
13
|
-
if (isIntersecting) {
|
|
14
|
-
this.onVisible.emit();
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
this.onHidden.emit();
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
ngAfterViewInit() {
|
|
23
|
-
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
24
|
-
this.checkForIntersection(entries);
|
|
25
|
-
}, {});
|
|
26
|
-
this._intersectionObserver.observe(this._element.nativeElement);
|
|
27
|
-
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
if (this._intersectionObserver) {
|
|
30
|
-
this._intersectionObserver.disconnect();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
-
type: Directive,
|
|
38
|
-
args: [{ selector: "[onVisible]" }]
|
|
39
|
-
}], ctorParameters:
|
|
40
|
-
type: Output
|
|
41
|
-
}], onHidden: [{
|
|
42
|
-
type: Output
|
|
43
|
-
}], height: [{
|
|
44
|
-
type: HostBinding,
|
|
45
|
-
args: ['style.height']
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, EventEmitter, HostBinding, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class InfiniteScrollComponent {
|
|
4
|
+
constructor(_element) {
|
|
5
|
+
this._element = _element;
|
|
6
|
+
this.onVisible = new EventEmitter();
|
|
7
|
+
this.onHidden = new EventEmitter();
|
|
8
|
+
this.height = '1px';
|
|
9
|
+
this.checkForIntersection = (entries) => {
|
|
10
|
+
entries.forEach((entry) => {
|
|
11
|
+
const isIntersecting = entry.isIntersecting &&
|
|
12
|
+
entry.target === this._element.nativeElement;
|
|
13
|
+
if (isIntersecting) {
|
|
14
|
+
this.onVisible.emit();
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.onHidden.emit();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
ngAfterViewInit() {
|
|
23
|
+
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
24
|
+
this.checkForIntersection(entries);
|
|
25
|
+
}, {});
|
|
26
|
+
this._intersectionObserver.observe(this._element.nativeElement);
|
|
27
|
+
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
if (this._intersectionObserver) {
|
|
30
|
+
this._intersectionObserver.disconnect();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InfiniteScrollComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: InfiniteScrollComponent, selector: "[onVisible]", outputs: { onVisible: "onVisible", onHidden: "onHidden" }, host: { properties: { "style.height": "this.height" } }, ngImport: i0 }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InfiniteScrollComponent, decorators: [{
|
|
37
|
+
type: Directive,
|
|
38
|
+
args: [{ selector: "[onVisible]" }]
|
|
39
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onVisible: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}], onHidden: [{
|
|
42
|
+
type: Output
|
|
43
|
+
}], height: [{
|
|
44
|
+
type: HostBinding,
|
|
45
|
+
args: ['style.height']
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdGUtc2Nyb2xsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcnMvaW5maW5pdGUtc2Nyb2xsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkgsTUFBTSxPQUFPLHVCQUF1QjtJQU9oQyxZQUFvQixRQUFvQjtRQUFwQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBTnZCLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQWtCcEMseUJBQW9CLEdBQUcsQ0FDM0IsT0FBeUMsRUFDM0MsRUFBRTtZQUNBLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7Z0JBQ2pELE1BQU0sY0FBYyxHQUNWLEtBQU0sQ0FBQyxjQUFjO29CQUMzQixLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUVqRCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQixDQUFDO3FCQUFJLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO0lBN0IwQyxDQUFDO0lBRXRDLGVBQWU7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO2lJQXBCUSx1QkFBdUI7cUhBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7K0VBRWpCLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFFc0IsTUFBTTtzQkFBbEMsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW29uVmlzaWJsZV1cIiB9KVxyXG5leHBvcnQgY2xhc3MgSW5maW5pdGVTY3JvbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblZpc2libGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgaGVpZ2h0ID0gJzFweCc7XHJcbiAgICBwcml2YXRlIF9pbnRlcnNlY3Rpb25PYnNlcnZlcj86IEludGVyc2VjdGlvbk9ic2VydmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZW50cmllcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tGb3JJbnRlcnNlY3Rpb24oZW50cmllcyk7XHJcbiAgICAgICAgfSwge30pO1xyXG4gICAgICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoPEVsZW1lbnQ+dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0ZvckludGVyc2VjdGlvbiA9IChcclxuICAgICAgICBlbnRyaWVzOiBBcnJheTxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5PlxyXG4gICAgKSA9PiB7XHJcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpc0ludGVyc2VjdGluZyA9XHJcbiAgICAgICAgICAgICAgICAoPGFueT5lbnRyeSkuaXNJbnRlcnNlY3RpbmcgJiZcclxuICAgICAgICAgICAgICAgIGVudHJ5LnRhcmdldCA9PT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmlzaWJsZS5lbWl0KCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkhpZGRlbi5lbWl0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { Input } from '@angular/core';
|
|
2
|
-
import { Directive } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class PagerBaseDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.limit = PagerBaseDirective.DEFAULT_LIMIT;
|
|
7
|
-
this.currentPage = 1;
|
|
8
|
-
}
|
|
9
|
-
static { this.DEFAULT_LIMIT = 10; }
|
|
10
|
-
static { this.VISIBLE_PAGES = 5; }
|
|
11
|
-
static { this.SKIP_RESOURCE = 'offset'; }
|
|
12
|
-
set setTotalCount(value) {
|
|
13
|
-
this.totalCount = value;
|
|
14
|
-
this.calculatePages();
|
|
15
|
-
}
|
|
16
|
-
set setLimit(value) {
|
|
17
|
-
this.limit = value ?? PagerBaseDirective.DEFAULT_LIMIT;
|
|
18
|
-
this.calculatePages();
|
|
19
|
-
}
|
|
20
|
-
calculatePages() {
|
|
21
|
-
if (this.totalCount >= 0 && this.limit > 0) {
|
|
22
|
-
this.amountOfPages = Math.ceil(this.totalCount / this.limit);
|
|
23
|
-
if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {
|
|
24
|
-
this.pages = [
|
|
25
|
-
this.currentPage - 2,
|
|
26
|
-
this.currentPage - 1, this.currentPage
|
|
27
|
-
];
|
|
28
|
-
const above = this.amountOfPages - this.currentPage;
|
|
29
|
-
if (above >= 1) {
|
|
30
|
-
this.pages.push(this.currentPage + 1);
|
|
31
|
-
}
|
|
32
|
-
if (above >= 2) {
|
|
33
|
-
this.pages.push(this.currentPage + 2);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else if (this.totalCount) {
|
|
37
|
-
const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;
|
|
38
|
-
this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
this.amountOfPages = 0;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
-
type: Directive
|
|
50
|
-
}], propDecorators: { setTotalCount: [{
|
|
51
|
-
type: Input,
|
|
52
|
-
args: ['totalCount']
|
|
53
|
-
}], setLimit: [{
|
|
54
|
-
type: Input,
|
|
55
|
-
args: ['limit']
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Input } from '@angular/core';
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class PagerBaseDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.limit = PagerBaseDirective.DEFAULT_LIMIT;
|
|
7
|
+
this.currentPage = 1;
|
|
8
|
+
}
|
|
9
|
+
static { this.DEFAULT_LIMIT = 10; }
|
|
10
|
+
static { this.VISIBLE_PAGES = 5; }
|
|
11
|
+
static { this.SKIP_RESOURCE = 'offset'; }
|
|
12
|
+
set setTotalCount(value) {
|
|
13
|
+
this.totalCount = value;
|
|
14
|
+
this.calculatePages();
|
|
15
|
+
}
|
|
16
|
+
set setLimit(value) {
|
|
17
|
+
this.limit = value ?? PagerBaseDirective.DEFAULT_LIMIT;
|
|
18
|
+
this.calculatePages();
|
|
19
|
+
}
|
|
20
|
+
calculatePages() {
|
|
21
|
+
if (this.totalCount >= 0 && this.limit > 0) {
|
|
22
|
+
this.amountOfPages = Math.ceil(this.totalCount / this.limit);
|
|
23
|
+
if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {
|
|
24
|
+
this.pages = [
|
|
25
|
+
this.currentPage - 2,
|
|
26
|
+
this.currentPage - 1, this.currentPage
|
|
27
|
+
];
|
|
28
|
+
const above = this.amountOfPages - this.currentPage;
|
|
29
|
+
if (above >= 1) {
|
|
30
|
+
this.pages.push(this.currentPage + 1);
|
|
31
|
+
}
|
|
32
|
+
if (above >= 2) {
|
|
33
|
+
this.pages.push(this.currentPage + 2);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else if (this.totalCount) {
|
|
37
|
+
const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;
|
|
38
|
+
this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.amountOfPages = 0;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
46
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: PagerBaseDirective, inputs: { setTotalCount: ["totalCount", "setTotalCount"], setLimit: ["limit", "setLimit"] }, ngImport: i0 }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerBaseDirective, decorators: [{
|
|
49
|
+
type: Directive
|
|
50
|
+
}], propDecorators: { setTotalCount: [{
|
|
51
|
+
type: Input,
|
|
52
|
+
args: ['totalCount']
|
|
53
|
+
}], setLimit: [{
|
|
54
|
+
type: Input,
|
|
55
|
+
args: ['limit']
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXItYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXJzL3BhZ2VyLWJhc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUMsTUFBTSxPQUFnQixrQkFBa0I7SUFEeEM7UUFNSSxVQUFLLEdBQVcsa0JBQWtCLENBQUMsYUFBYSxDQUFDO1FBZWpELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0tBeUJuQjthQTVDa0Isa0JBQWEsR0FBRyxFQUFFLEFBQUwsQ0FBTTthQUNuQixrQkFBYSxHQUFHLENBQUMsQUFBSixDQUFLO2FBQ2hCLGtCQUFhLEdBQUcsUUFBUSxBQUFYLENBQVk7SUFJMUMsSUFBeUIsYUFBYSxDQUFDLEtBQWE7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFvQixRQUFRLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFPUyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzVELElBQUksQ0FBQyxLQUFLLEdBQUc7b0JBQ1QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDO29CQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVztpQkFBQyxDQUFDO2dCQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3BELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQzNGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO2lJQTNDaUIsa0JBQWtCO3FIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRHZDLFNBQVM7OEJBUW1CLGFBQWE7c0JBQXJDLEtBQUs7dUJBQUMsWUFBWTtnQkFLQyxRQUFRO3NCQUEzQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYWdlckJhc2VEaXJlY3RpdmUge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgREVGQVVMVF9MSU1JVCA9IDEwO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgVklTSUJMRV9QQUdFUyA9IDU7XHJcbiAgICBwcm90ZWN0ZWQgc3RhdGljIFNLSVBfUkVTT1VSQ0UgPSAnb2Zmc2V0JztcclxuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcclxuICAgIGxpbWl0OiBudW1iZXIgPSBQYWdlckJhc2VEaXJlY3RpdmUuREVGQVVMVF9MSU1JVDtcclxuXHJcbiAgICBASW5wdXQoJ3RvdGFsQ291bnQnKSBzZXQgc2V0VG90YWxDb3VudCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy50b3RhbENvdW50ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgnbGltaXQnKSBzZXQgc2V0TGltaXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubGltaXQgPSB2YWx1ZSA/PyBQYWdlckJhc2VEaXJlY3RpdmUuREVGQVVMVF9MSU1JVDtcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFnZXM6IEFycmF5PG51bWJlcj47XHJcblxyXG4gICAgYW1vdW50T2ZQYWdlczogbnVtYmVyO1xyXG4gICAgY3VycmVudFBhZ2UgPSAxO1xyXG5cclxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQYWdlcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50b3RhbENvdW50ID49IDAgJiYgdGhpcy5saW1pdCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnRPZlBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxDb3VudCAvIHRoaXMubGltaXQpO1xyXG4gICAgICAgICAgICBpZiAoKHRoaXMuY3VycmVudFBhZ2UgKyAxKSA+IFBhZ2VyQmFzZURpcmVjdGl2ZS5WSVNJQkxFX1BBR0VTKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VzID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgLSAyLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgLSAxLCB0aGlzLmN1cnJlbnRQYWdlXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFib3ZlID0gdGhpcy5hbW91bnRPZlBhZ2VzIC0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgICAgICAgICAgICAgIGlmIChhYm92ZSA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKHRoaXMuY3VycmVudFBhZ2UgKyAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChhYm92ZSA+PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKHRoaXMuY3VycmVudFBhZ2UgKyAyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRvdGFsQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IHRoaXMuYW1vdW50T2ZQYWdlcyA+IFBhZ2VyQmFzZURpcmVjdGl2ZS5WSVNJQkxFX1BBR0VTID8gNSA6IHRoaXMuYW1vdW50T2ZQYWdlcztcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZXMgPSBBcnJheShNYXRoLmNlaWwobWF4KSkuZmlsbCgxKS5tYXAoKHgsIGkpID0+IGkgKyAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50T2ZQYWdlcyA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { PagerBaseDirective } from './pager-base.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class PagerInlineComponent extends PagerBaseDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
this.pageChanged = new EventEmitter();
|
|
9
|
-
this.infiniteLimit = false;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.calculatePages();
|
|
13
|
-
}
|
|
14
|
-
onFirstClick() {
|
|
15
|
-
this.currentPage = 1;
|
|
16
|
-
this.pageChanged.emit(this.currentPage - 1);
|
|
17
|
-
this.calculatePages();
|
|
18
|
-
}
|
|
19
|
-
onPrevClick() {
|
|
20
|
-
this.currentPage = this.currentPage - 1;
|
|
21
|
-
this.pageChanged.emit(this.currentPage - 1);
|
|
22
|
-
this.calculatePages();
|
|
23
|
-
}
|
|
24
|
-
onPageClick(page) {
|
|
25
|
-
this.currentPage = page;
|
|
26
|
-
this.pageChanged.emit(this.currentPage - 1);
|
|
27
|
-
}
|
|
28
|
-
onNextClick() {
|
|
29
|
-
this.currentPage = this.currentPage + 1;
|
|
30
|
-
this.pageChanged.emit(this.currentPage - 1);
|
|
31
|
-
this.calculatePages();
|
|
32
|
-
}
|
|
33
|
-
onLastClick() {
|
|
34
|
-
this.currentPage = this.amountOfPages;
|
|
35
|
-
this.pageChanged.emit(this.currentPage - 1);
|
|
36
|
-
this.calculatePages();
|
|
37
|
-
}
|
|
38
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
39
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'adb-pager', template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pr-2 my-1\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onFirstClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onPrevClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage==page\" *ngFor=\"let page of pages\">\r\n <button class=\"page-link\" (click)=\"onPageClick(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onNextClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n</nav>\r\n" }]
|
|
44
|
-
}], ctorParameters:
|
|
45
|
-
type: Output
|
|
46
|
-
}], infiniteLimit: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { PagerBaseDirective } from './pager-base.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class PagerInlineComponent extends PagerBaseDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.pageChanged = new EventEmitter();
|
|
9
|
+
this.infiniteLimit = false;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.calculatePages();
|
|
13
|
+
}
|
|
14
|
+
onFirstClick() {
|
|
15
|
+
this.currentPage = 1;
|
|
16
|
+
this.pageChanged.emit(this.currentPage - 1);
|
|
17
|
+
this.calculatePages();
|
|
18
|
+
}
|
|
19
|
+
onPrevClick() {
|
|
20
|
+
this.currentPage = this.currentPage - 1;
|
|
21
|
+
this.pageChanged.emit(this.currentPage - 1);
|
|
22
|
+
this.calculatePages();
|
|
23
|
+
}
|
|
24
|
+
onPageClick(page) {
|
|
25
|
+
this.currentPage = page;
|
|
26
|
+
this.pageChanged.emit(this.currentPage - 1);
|
|
27
|
+
}
|
|
28
|
+
onNextClick() {
|
|
29
|
+
this.currentPage = this.currentPage + 1;
|
|
30
|
+
this.pageChanged.emit(this.currentPage - 1);
|
|
31
|
+
this.calculatePages();
|
|
32
|
+
}
|
|
33
|
+
onLastClick() {
|
|
34
|
+
this.currentPage = this.amountOfPages;
|
|
35
|
+
this.pageChanged.emit(this.currentPage - 1);
|
|
36
|
+
this.calculatePages();
|
|
37
|
+
}
|
|
38
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerInlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: PagerInlineComponent, selector: "adb-pager", inputs: { infiniteLimit: "infiniteLimit" }, outputs: { pageChanged: "pageChanged" }, usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pr-2 my-1\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onFirstClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onPrevClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage==page\" *ngFor=\"let page of pages\">\r\n <button class=\"page-link\" (click)=\"onPageClick(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onNextClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n</nav>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerInlineComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'adb-pager', template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pr-2 my-1\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onFirstClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onPrevClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage==page\" *ngFor=\"let page of pages\">\r\n <button class=\"page-link\" (click)=\"onPageClick(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onNextClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n</nav>\r\n" }]
|
|
44
|
+
}], ctorParameters: () => [], propDecorators: { pageChanged: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}], infiniteLimit: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXItaW5saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Vycy9wYWdlci1pbmxpbmUudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXJzL3BhZ2VyLWlubGluZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQU01RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBR3hEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFIRixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFHL0IsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7aUlBaENRLG9CQUFvQjtxSEFBcEIsb0JBQW9CLDZKQ1BqQyx1a0VBb0NBOzsyRkQ3QmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLFdBQVc7d0RBSVgsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlckJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL3BhZ2VyLWJhc2UuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhZGItcGFnZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdlci1pbmxpbmUuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VySW5saW5lQ29tcG9uZW50IGV4dGVuZHMgUGFnZXJCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgQElucHV0KCkgaW5maW5pdGVMaW1pdCA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZXMoKTtcclxuICAgIH1cclxuICAgIG9uRmlyc3RDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQodGhpcy5jdXJyZW50UGFnZSAtIDEpO1xyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZXMoKTtcclxuICAgIH1cclxuICAgIG9uUHJldkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlIC0gMTtcclxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQodGhpcy5jdXJyZW50UGFnZSAtIDEpO1xyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZXMoKTtcclxuICAgIH1cclxuICAgIG9uUGFnZUNsaWNrKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlIC0gMSk7XHJcbiAgICB9XHJcbiAgICBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSArIDE7XHJcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KHRoaXMuY3VycmVudFBhZ2UgLSAxKTtcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBvbkxhc3RDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5hbW91bnRPZlBhZ2VzO1xyXG4gICAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlIC0gMSk7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuYXYgKm5nSWY9XCJwYWdlcyYmcGFnZXMubGVuZ3RoPjEmJmN1cnJlbnRQYWdlPD1hbW91bnRPZlBhZ2VzXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBwci0yIG15LTFcIj5cclxuICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb25cIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJvbkZpcnN0Q2xpY2soKVwiIFtuZ0NsYXNzXT1cImN1cnJlbnRQYWdlPT0xPydvcGFjaXR5LTUwIHBlLW5vbmUnOicnXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlPT0xXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUHJldkNsaWNrKClcIiBbbmdDbGFzc109XCJjdXJyZW50UGFnZT09MT8nb3BhY2l0eS01MCBwZS1ub25lJzonJ1wiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZT09MVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFBhZ2U9PXBhZ2VcIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUGFnZUNsaWNrKHBhZ2UpXCI+XHJcbiAgICAgICAgICAgICAgICB7e3BhZ2V9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uTmV4dENsaWNrKClcIiBbbmdDbGFzc109XCJjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlcz8nb3BhY2l0eS01MCBwZS1ub25lJzonJ1wiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1yaWdodFwiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluZmluaXRlTGltaXRcIj5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiKGFtb3VudE9mUGFnZXMtMSkqbGltaXQ8MTAwMDBcIiBjbGFzcz1cInBhZ2UtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJvbkxhc3RDbGljaygpXCIgW25nQ2xhc3NdPVwiY3VycmVudFBhZ2U+PWFtb3VudE9mUGFnZXM/J29wYWNpdHktNTAgcGUtbm9uZSc6JydcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2U+PWFtb3VudE9mUGFnZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvdWJsZS1yaWdodFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0lmPVwiaW5maW5pdGVMaW1pdFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uTGFzdENsaWNrKClcIiBbbmdDbGFzc109XCJjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlcz8nb3BhY2l0eS01MCBwZS1ub25lJzonJ1wiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L25hdj5cclxuIl19
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
3
|
-
import { PagerBaseDirective } from './pager-base.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class PagerComponent extends PagerBaseDirective {
|
|
8
|
-
constructor(activatedRoute) {
|
|
9
|
-
super();
|
|
10
|
-
this.activatedRoute = activatedRoute;
|
|
11
|
-
this.subscription = new Subscription();
|
|
12
|
-
this.offsetName = "offset";
|
|
13
|
-
this.infiniteLimit = false;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {
|
|
17
|
-
if (params[this.offsetName]) {
|
|
18
|
-
this.currentPage = (+params[this.offsetName] / this.limit) + 1;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this.currentPage = 1;
|
|
22
|
-
}
|
|
23
|
-
this.calculatePages();
|
|
24
|
-
//create model
|
|
25
|
-
this.params = {
|
|
26
|
-
first: { [this.offsetName]: 0 },
|
|
27
|
-
prev: { [this.offsetName]: (this.currentPage - 2) * this.limit },
|
|
28
|
-
pages: [],
|
|
29
|
-
next: { [this.offsetName]: this.currentPage * this.limit },
|
|
30
|
-
last: { [this.offsetName]: (this.amountOfPages - 1) * this.limit },
|
|
31
|
-
};
|
|
32
|
-
if (this.pages) {
|
|
33
|
-
for (const page of this.pages) {
|
|
34
|
-
this.params.pages.push({ name: page, params: { [this.offsetName]: (page - 1) * this.limit } });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
ngOnDestroy() {
|
|
40
|
-
this.subscription.unsubscribe();
|
|
41
|
-
}
|
|
42
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: 'adb-pager-nav', template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>" }]
|
|
48
|
-
}], ctorParameters:
|
|
49
|
-
type: Input
|
|
50
|
-
}], infiniteLimit: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Subscription } from 'rxjs';
|
|
3
|
+
import { PagerBaseDirective } from './pager-base.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class PagerComponent extends PagerBaseDirective {
|
|
8
|
+
constructor(activatedRoute) {
|
|
9
|
+
super();
|
|
10
|
+
this.activatedRoute = activatedRoute;
|
|
11
|
+
this.subscription = new Subscription();
|
|
12
|
+
this.offsetName = "offset";
|
|
13
|
+
this.infiniteLimit = false;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {
|
|
17
|
+
if (params[this.offsetName]) {
|
|
18
|
+
this.currentPage = (+params[this.offsetName] / this.limit) + 1;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.currentPage = 1;
|
|
22
|
+
}
|
|
23
|
+
this.calculatePages();
|
|
24
|
+
//create model
|
|
25
|
+
this.params = {
|
|
26
|
+
first: { [this.offsetName]: 0 },
|
|
27
|
+
prev: { [this.offsetName]: (this.currentPage - 2) * this.limit },
|
|
28
|
+
pages: [],
|
|
29
|
+
next: { [this.offsetName]: this.currentPage * this.limit },
|
|
30
|
+
last: { [this.offsetName]: (this.amountOfPages - 1) * this.limit },
|
|
31
|
+
};
|
|
32
|
+
if (this.pages) {
|
|
33
|
+
for (const page of this.pages) {
|
|
34
|
+
this.params.pages.push({ name: page, params: { [this.offsetName]: (page - 1) * this.limit } });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
this.subscription.unsubscribe();
|
|
41
|
+
}
|
|
42
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: PagerComponent, selector: "adb-pager-nav", inputs: { offsetName: "offsetName", infiniteLimit: "infiniteLimit" }, usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PagerComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'adb-pager-nav', template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>" }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }], propDecorators: { offsetName: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], infiniteLimit: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXJzL3BhZ2VyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Vycy9wYWdlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBTTVELE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBS2xELFlBQW9CLGNBQThCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFEsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSjFDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBSS9CLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsY0FBYztZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1YsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDaEUsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUMxRCxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTthQUNyRSxDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbkcsQ0FBQztZQUNMLENBQUM7UUFFTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7aUlBcENRLGNBQWM7cUhBQWQsY0FBYyxrSkNUM0IsNDlFQXVDTTs7MkZEOUJPLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0ksZUFBZTttRkFLaEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnZXJCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9wYWdlci1iYXNlLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYWRiLXBhZ2VyLW5hdicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3BhZ2VyLmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlckNvbXBvbmVudCBleHRlbmRzIFBhZ2VyQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgQElucHV0KCkgb2Zmc2V0TmFtZTogc3RyaW5nID0gXCJvZmZzZXRcIjtcclxuICAgIEBJbnB1dCgpIGluZmluaXRlTGltaXQgPSBmYWxzZTtcclxuICAgIHBhcmFtczogeyBmaXJzdDogYW55LCBwcmV2OiBhbnksIHBhZ2VzPzogYW55W10sIG5leHQ6IGFueSwgbGFzdDogYW55IH07XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwYXJhbXNbdGhpcy5vZmZzZXROYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9ICgrcGFyYW1zW3RoaXMub2Zmc2V0TmFtZV0gLyB0aGlzLmxpbWl0KSArIDE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VzKCk7XHJcbiAgICAgICAgICAgIC8vY3JlYXRlIG1vZGVsXHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgZmlyc3Q6IHsgW3RoaXMub2Zmc2V0TmFtZV06IDAgfSxcclxuICAgICAgICAgICAgICAgIHByZXY6IHsgW3RoaXMub2Zmc2V0TmFtZV06ICh0aGlzLmN1cnJlbnRQYWdlIC0gMikgKiB0aGlzLmxpbWl0IH0sXHJcbiAgICAgICAgICAgICAgICBwYWdlczogW10sXHJcbiAgICAgICAgICAgICAgICBuZXh0OiB7IFt0aGlzLm9mZnNldE5hbWVdOiB0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5saW1pdCB9LFxyXG4gICAgICAgICAgICAgICAgbGFzdDogeyBbdGhpcy5vZmZzZXROYW1lXTogKHRoaXMuYW1vdW50T2ZQYWdlcyAtIDEpICogdGhpcy5saW1pdCB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYWdlcykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHRoaXMucGFnZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtcy5wYWdlcy5wdXNoKHsgbmFtZTogcGFnZSwgcGFyYW1zOiB7IFt0aGlzLm9mZnNldE5hbWVdOiAocGFnZSAtIDEpICogdGhpcy5saW1pdCB9IH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuYXYgKm5nSWY9XCJwYWdlcyYmcGFnZXMubGVuZ3RoPjEmJmN1cnJlbnRQYWdlPD1hbW91bnRPZlBhZ2VzXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBteS0xXCI+XHJcbiAgICA8dWwgY2xhc3M9XCJwYWdpbmF0aW9uIG1iLTBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbcm91dGVyTGlua109XCJbXVwiIFtxdWVyeVBhcmFtc109XCJwYXJhbXMuZmlyc3RcIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwZS1ub25lIG9wYWNpdHktNTAnOmN1cnJlbnRQYWdlPT09MX1cIiBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImN1cnJlbnRQYWdlPT09MVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3VibGUtbGVmdFwiPjwvaT5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW3JvdXRlckxpbmtdPVwiW11cIiBbcXVlcnlQYXJhbXNdPVwicGFyYW1zLnByZXZcIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwZS1ub25lIG9wYWNpdHktNTAnOmN1cnJlbnRQYWdlPT09MX1cIiBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImN1cnJlbnRQYWdlPT09MVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRQYWdlPT09cGFnZS5uYW1lXCIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFyYW1zLnBhZ2VzXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW3JvdXRlckxpbmtdPVwiW11cIiBbcXVlcnlQYXJhbXNdPVwicGFnZS5wYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCI+e3twYWdlLm5hbWV9fTwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtyb3V0ZXJMaW5rXT1cIltdXCIgW3F1ZXJ5UGFyYW1zXT1cInBhcmFtcy5uZXh0XCIgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncGUtbm9uZSBvcGFjaXR5LTUwJzpjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlc31cIiBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImN1cnJlbnRQYWdlPj1hbW91bnRPZlBhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluZmluaXRlTGltaXRcIj5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiKGFtb3VudE9mUGFnZXMtMSkqbGltaXQ8MTAwMDBcIiBjbGFzcz1cInBhZ2UtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbcm91dGVyTGlua109XCJbXVwiIFtxdWVyeVBhcmFtc109XCJwYXJhbXMubGFzdFwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlc1wiIFtuZ0NsYXNzXT1cInsncGUtbm9uZSBvcGFjaXR5LTUwJzpjdXJyZW50UGFnZT49YW1vdW50T2ZQYWdlc31cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvdWJsZS1yaWdodFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdJZj1cImluZmluaXRlTGltaXRcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbcm91dGVyTGlua109XCJbXVwiIFtxdWVyeVBhcmFtc109XCJwYXJhbXMubGFzdFwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImN1cnJlbnRQYWdlPj1hbW91bnRPZlBhZ2VzXCIgW25nQ2xhc3NdPVwieydwZS1ub25lIG9wYWNpdHktNTAnOmN1cnJlbnRQYWdlPj1hbW91bnRPZlBhZ2VzfVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuPC9uYXY+Il19
|