vc-create-dashboard 2.9.5 → 2.9.6
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/lib/configurations.mjs +7 -0
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +210 -0
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +549 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +15 -15
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1080 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard.module.mjs +49 -49
- package/{esm2020 → esm2022}/lib/create-dashboard-container/directives/directives.module.mjs +5 -5
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -0
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +152 -0
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -0
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/filter.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/search.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/create-dashboard-container/pipes/text-count.pipe.mjs +4 -4
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +145 -0
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +195 -0
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -0
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +227 -0
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +126 -0
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -0
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +421 -0
- package/{esm2020 → esm2022}/lib/create-dashboard.service.mjs +4 -4
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +9 -9
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-injector.mjs +4 -2
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.module.mjs +5 -5
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -0
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -0
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -0
- package/{esm2020 → esm2022}/lib/ui-kit/floating-bar/floating-bar.module.mjs +9 -9
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -0
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -0
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -0
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +4 -4
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -0
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/formgroup.module.mjs +17 -17
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +4 -4
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/ui-kit/no-data/no-data.module.mjs +5 -5
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -0
- package/{esm2020 → esm2022}/lib/ui-kit/pagination/pagination.module.mjs +5 -5
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -0
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -0
- package/{esm2020 → esm2022}/lib/ui-kit/popover/popover.module.mjs +5 -5
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -0
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -0
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +105 -0
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -0
- package/{esm2020 → esm2022}/lib/ui-kit/select/select.module.mjs +5 -5
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -0
- package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +10 -8
- package/{esm2020 → esm2022}/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +5 -5
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +6 -7
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +161 -0
- package/{esm2020 → esm2022}/lib/ui-kit/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +23 -0
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/ui-kit/v-loader/v-loader.module.mjs +5 -5
- package/esm2022/vc-create-dashboard.mjs +5 -0
- package/fesm2022/vc-create-dashboard.mjs +5338 -0
- package/fesm2022/vc-create-dashboard.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/lib/create-dashboard-container/categories/categories.component.d.ts +1 -1
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +1 -1
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +1 -1
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +1 -1
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +1 -1
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +1 -1
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +1 -1
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +1 -1
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +1 -1
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +1 -1
- package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
- package/lib/ui-kit/dialog/dialog.component.d.ts +1 -1
- package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
- package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
- package/lib/ui-kit/pagination/pagination.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover.component.d.ts +1 -1
- package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +1 -1
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +1 -1
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +1 -1
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +1 -1
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
- package/package.json +6 -12
- package/esm2020/create-dashboard.mjs +0 -5
- package/esm2020/lib/configurations.mjs +0 -6
- package/esm2020/lib/create-dashboard-container/categories/categories.component.mjs +0 -209
- package/esm2020/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +0 -545
- package/esm2020/lib/create-dashboard-container/create-dashboard.component.mjs +0 -1067
- package/esm2020/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +0 -35
- package/esm2020/lib/create-dashboard-container/form-group/form-group.component.mjs +0 -141
- package/esm2020/lib/create-dashboard-container/frequency/frequency.component.mjs +0 -305
- package/esm2020/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +0 -146
- package/esm2020/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +0 -194
- package/esm2020/lib/create-dashboard-container/services/auth.service.mjs +0 -29
- package/esm2020/lib/create-dashboard-container/services/configure-widgets.service.mjs +0 -224
- package/esm2020/lib/create-dashboard-container/services/create-dashboard.service.mjs +0 -123
- package/esm2020/lib/create-dashboard-container/services/pagination.service.mjs +0 -29
- package/esm2020/lib/create-dashboard-container/user-list/user-list.component.mjs +0 -414
- package/esm2020/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +0 -53
- package/esm2020/lib/ui-kit/dialog/dialog-config.mjs +0 -3
- package/esm2020/lib/ui-kit/dialog/dialog-ref.mjs +0 -12
- package/esm2020/lib/ui-kit/dialog/dialog.component.mjs +0 -85
- package/esm2020/lib/ui-kit/dialog/dialog.service.mjs +0 -52
- package/esm2020/lib/ui-kit/dialog/insertion.directive.mjs +0 -16
- package/esm2020/lib/ui-kit/floating-bar/floating-bar.component.mjs +0 -52
- package/esm2020/lib/ui-kit/formgroup/click-outside.directive.mjs +0 -29
- package/esm2020/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +0 -27
- package/esm2020/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +0 -30
- package/esm2020/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +0 -100
- package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +0 -35
- package/esm2020/lib/ui-kit/no-data/no-data.component.mjs +0 -40
- package/esm2020/lib/ui-kit/pagination/pagination.component.mjs +0 -127
- package/esm2020/lib/ui-kit/popover/popover.component.mjs +0 -133
- package/esm2020/lib/ui-kit/popover/popover.directive.mjs +0 -86
- package/esm2020/lib/ui-kit/popover/popover.service.mjs +0 -17
- package/esm2020/lib/ui-kit/select/cs-option/cs-option.component.mjs +0 -36
- package/esm2020/lib/ui-kit/select/cs-select/cs-select.component.mjs +0 -89
- package/esm2020/lib/ui-kit/select/safe-html.pipe.mjs +0 -20
- package/esm2020/lib/ui-kit/services/cs-select.service.mjs +0 -15
- package/esm2020/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +0 -45
- package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +0 -153
- package/esm2020/lib/ui-kit/v-loader/loader/loader.component.mjs +0 -21
- package/esm2020/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +0 -21
- package/fesm2015/create-dashboard.mjs +0 -5195
- package/fesm2015/create-dashboard.mjs.map +0 -1
- package/fesm2020/create-dashboard.mjs +0 -5162
- package/fesm2020/create-dashboard.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/categories/categories-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/create-dashboard-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/interfaces/widget-data-model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/create-dashboard-container/user-list/user-list.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class NoDataComponent {
|
|
5
|
+
action;
|
|
6
|
+
noDataImage;
|
|
7
|
+
noDataText = '';
|
|
8
|
+
noDataButton;
|
|
9
|
+
noDataSecButton;
|
|
10
|
+
altText;
|
|
11
|
+
buttonAction = new EventEmitter();
|
|
12
|
+
smallButton;
|
|
13
|
+
buttonIcon;
|
|
14
|
+
iconClass;
|
|
15
|
+
constructor() { }
|
|
16
|
+
ngOnInit() { }
|
|
17
|
+
actionEmitter(button) {
|
|
18
|
+
this.buttonAction.emit(button);
|
|
19
|
+
}
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NoDataComponent, selector: "app-no-data", inputs: { action: "action", noDataImage: "noDataImage", noDataText: "noDataText", noDataButton: "noDataButton", noDataSecButton: "noDataSecButton", altText: "altText", smallButton: "smallButton", buttonIcon: "buttonIcon", iconClass: "iconClass" }, outputs: { buttonAction: "buttonAction" }, ngImport: i0, template: "<div class=\"no-data-wrapper\">\r\n <div class=\"no-data-container\">\r\n <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\r\n <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\r\n <div class=\"button-row\" *ngFor=\"let button of action\">\r\n <button *ngIf=\"!button?.buttonIcon\" (click)=\"actionEmitter(button)\" [innerHTML]=\"button?.buttonText\"\r\n [class.small]=\"smallButton\"></button>\r\n <button *ngIf=\"button?.buttonIcon\" (click)=\"actionEmitter(button)\" [class.small]=\"smallButton\">\r\n <i class=\"icons\" [innerHTML]=\"button?.buttonIcon\"></i> <span\r\n [innerHTML]=\"button?.buttonText\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";::ng-deep .no-data-wrapper{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background:#fff;border-radius:2px}::ng-deep .no-data-container{display:inline-block;text-align:center;width:450px}::ng-deep .no-data-container .image{width:300px;margin-bottom:20px;display:inline-block}::ng-deep .no-data-container p.text{font-size:17px;font-weight:400;line-height:24px;margin-bottom:25px;color:#161b2f;text-align:center;margin-top:0}::ng-deep .no-data-container p.text strong{font-weight:500}::ng-deep .no-data-container button{width:auto;height:38px;border-radius:2px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:500;line-height:24px;cursor:pointer;background:#1e5dd3;border:1px solid #1e5dd3;outline:none;text-transform:uppercase;padding:0 16px}::ng-deep .no-data-container button+button{margin-left:5px}::ng-deep .no-data-container button i+span{margin-left:12px}::ng-deep .no-data-container button.small{width:60px;height:24px;font-size:11px}::ng-deep .no-data-container button.small i{margin-right:5px;font-size:9px}::ng-deep .no-data-container .button-row{display:flex;justify-content:center}\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"] }] });
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoDataComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'app-no-data', template: "<div class=\"no-data-wrapper\">\r\n <div class=\"no-data-container\">\r\n <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\r\n <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\r\n <div class=\"button-row\" *ngFor=\"let button of action\">\r\n <button *ngIf=\"!button?.buttonIcon\" (click)=\"actionEmitter(button)\" [innerHTML]=\"button?.buttonText\"\r\n [class.small]=\"smallButton\"></button>\r\n <button *ngIf=\"button?.buttonIcon\" (click)=\"actionEmitter(button)\" [class.small]=\"smallButton\">\r\n <i class=\"icons\" [innerHTML]=\"button?.buttonIcon\"></i> <span\r\n [innerHTML]=\"button?.buttonText\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";::ng-deep .no-data-wrapper{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background:#fff;border-radius:2px}::ng-deep .no-data-container{display:inline-block;text-align:center;width:450px}::ng-deep .no-data-container .image{width:300px;margin-bottom:20px;display:inline-block}::ng-deep .no-data-container p.text{font-size:17px;font-weight:400;line-height:24px;margin-bottom:25px;color:#161b2f;text-align:center;margin-top:0}::ng-deep .no-data-container p.text strong{font-weight:500}::ng-deep .no-data-container button{width:auto;height:38px;border-radius:2px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:500;line-height:24px;cursor:pointer;background:#1e5dd3;border:1px solid #1e5dd3;outline:none;text-transform:uppercase;padding:0 16px}::ng-deep .no-data-container button+button{margin-left:5px}::ng-deep .no-data-container button i+span{margin-left:12px}::ng-deep .no-data-container button.small{width:60px;height:24px;font-size:11px}::ng-deep .no-data-container button.small i{margin-right:5px;font-size:9px}::ng-deep .no-data-container .button-row{display:flex;justify-content:center}\n"] }]
|
|
26
|
+
}], ctorParameters: function () { return []; }, propDecorators: { action: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], noDataImage: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], noDataText: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], noDataButton: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], noDataSecButton: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], altText: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], buttonAction: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}], smallButton: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], buttonIcon: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], iconClass: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L25vLWRhdGEvbm8tZGF0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L25vLWRhdGEvbm8tZGF0YS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPL0UsTUFBTSxPQUFPLGVBQWU7SUFDakIsTUFBTSxDQUFPO0lBQ2IsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsWUFBWSxDQUFvQjtJQUNoQyxlQUFlLENBQW9CO0lBQ25DLE9BQU8sQ0FBVTtJQUNoQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUMzQyxXQUFXLENBQVc7SUFDdEIsVUFBVSxDQUFPO0lBQ2pCLFNBQVMsQ0FBTztJQUN6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRLEtBQVcsQ0FBQztJQUVwQixhQUFhLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQWpCVSxlQUFlOzRGQUFmLGVBQWUsc1ZDUDVCLHcwQkFhTTs7NEZETk8sZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxhQUFhOzBFQUtkLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbm8tZGF0YScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vLWRhdGEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25vLWRhdGEuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vRGF0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYWN0aW9uITogYW55O1xyXG4gIEBJbnB1dCgpIG5vRGF0YUltYWdlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5vRGF0YVRleHQgPSAnJztcclxuICBASW5wdXQoKSBub0RhdGFCdXR0b24hOiBzdHJpbmcgfCBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG5vRGF0YVNlY0J1dHRvbiE6IHN0cmluZyB8IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWx0VGV4dCE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgYnV0dG9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQElucHV0KCkgc21hbGxCdXR0b24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGJ1dHRvbkljb24hOiBhbnk7XHJcbiAgQElucHV0KCkgaWNvbkNsYXNzITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblxyXG4gIGFjdGlvbkVtaXR0ZXIoYnV0dG9uOiBvYmplY3QpIHtcclxuICAgIHRoaXMuYnV0dG9uQWN0aW9uLmVtaXQoYnV0dG9uKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm5vLWRhdGEtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIm5vRGF0YUltYWdlXCIgW2FsdF09XCJhbHRUZXh0XCIgY2xhc3M9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCIgW2lubmVySFRNTF09XCJub0RhdGFUZXh0XCIgKm5nSWY9XCJub0RhdGFUZXh0XCI+PC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcm93XCIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhYnV0dG9uPy5idXR0b25JY29uXCIgKGNsaWNrKT1cImFjdGlvbkVtaXR0ZXIoYnV0dG9uKVwiIFtpbm5lckhUTUxdPVwiYnV0dG9uPy5idXR0b25UZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc21hbGxdPVwic21hbGxCdXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidXR0b24/LmJ1dHRvbkljb25cIiAoY2xpY2spPVwiYWN0aW9uRW1pdHRlcihidXR0b24pXCIgW2NsYXNzLnNtYWxsXT1cInNtYWxsQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFtpbm5lckhUTUxdPVwiYnV0dG9uPy5idXR0b25JY29uXCI+PC9pPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImJ1dHRvbj8uYnV0dG9uVGV4dFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { NoDataComponent } from './no-data.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class NoDataModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NoDataModule, declarations: [NoDataComponent], imports: [CommonModule], exports: [NoDataComponent] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoDataModule, imports: [CommonModule] });
|
|
6
9
|
}
|
|
7
|
-
|
|
8
|
-
NoDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NoDataModule, declarations: [NoDataComponent], imports: [CommonModule], exports: [NoDataComponent] });
|
|
9
|
-
NoDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NoDataModule, imports: [CommonModule] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NoDataModule, decorators: [{
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoDataModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
declarations: [NoDataComponent],
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
15
15
|
exports: [NoDataComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGF0YS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L25vLWRhdGEvbm8tZGF0YS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU90RCxNQUFNLE9BQU8sWUFBWTt3R0FBWixZQUFZO3lHQUFaLFlBQVksaUJBSlIsZUFBZSxhQUNwQixZQUFZLGFBQ1osZUFBZTt5R0FFZCxZQUFZLFlBSGIsWUFBWTs7NEZBR1gsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5vRGF0YUNvbXBvbmVudCB9IGZyb20gJy4vbm8tZGF0YS5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtOb0RhdGFDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtOb0RhdGFDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9EYXRhTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../create-dashboard-container/services/pagination.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Adds place holder for Pagination on the lists
|
|
7
|
+
*/
|
|
8
|
+
export class PaginationComponent {
|
|
9
|
+
paginationService;
|
|
10
|
+
start = 1;
|
|
11
|
+
totalCount;
|
|
12
|
+
paginationArray = [];
|
|
13
|
+
currentPage;
|
|
14
|
+
totalPages = 1;
|
|
15
|
+
limit = 1;
|
|
16
|
+
totalList = 1;
|
|
17
|
+
paginationFilter = new EventEmitter();
|
|
18
|
+
constructor(paginationService) {
|
|
19
|
+
this.paginationService = paginationService;
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges() {
|
|
22
|
+
this.currentPage = Number(this.paginationService.currentPage);
|
|
23
|
+
this.start = Number(this.paginationService.currentPage);
|
|
24
|
+
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.currentPage = Number(this.paginationService.currentPage);
|
|
28
|
+
this.start = Number(this.paginationService.currentPage);
|
|
29
|
+
this.rebuildPagination(this.currentPage, this.totalPages);
|
|
30
|
+
this.paginationService.currentValues.subscribe(event => {
|
|
31
|
+
if (event && (this.paginationService.currentPage !== this.currentPage)) {
|
|
32
|
+
this.currentPage = this.paginationService.currentPage;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/* In this function we will recreate the pagination structure as per current page and
|
|
37
|
+
total number of pages */
|
|
38
|
+
rebuildPagination(currentPage, totalCount) {
|
|
39
|
+
this.paginationArray = [];
|
|
40
|
+
this.totalCount = totalCount;
|
|
41
|
+
this.currentPage = currentPage;
|
|
42
|
+
if (this.paginationService.currentPage !== this.currentPage) {
|
|
43
|
+
this.paginationService.currentPage = this.currentPage;
|
|
44
|
+
this.paginationFilter.emit(true);
|
|
45
|
+
}
|
|
46
|
+
// If there are only 6 pages or less in total, just display all pages without "..."
|
|
47
|
+
if (totalCount <= 6) {
|
|
48
|
+
for (let i = 1; i <= totalCount; i++) {
|
|
49
|
+
this.paginationArray.push(i);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// ELSE display with ...
|
|
53
|
+
else {
|
|
54
|
+
// Always print first page button
|
|
55
|
+
this.paginationArray.push(1);
|
|
56
|
+
// Print "..." if currentPage is > 3
|
|
57
|
+
if (currentPage > 3) {
|
|
58
|
+
// this.paginationArray.push(2);
|
|
59
|
+
this.paginationArray.push('...');
|
|
60
|
+
}
|
|
61
|
+
// special case where last page is selected...
|
|
62
|
+
// Without this special case, only 2 buttons would be shown after ... if you were on last page
|
|
63
|
+
if (currentPage === totalCount) {
|
|
64
|
+
this.paginationArray.push(currentPage - 2);
|
|
65
|
+
}
|
|
66
|
+
// Print previous number button if currentPage > 2
|
|
67
|
+
if (currentPage > 2) {
|
|
68
|
+
this.paginationArray.push(currentPage - 1);
|
|
69
|
+
}
|
|
70
|
+
// Print current page number button as long as it not the first or last page
|
|
71
|
+
if (currentPage !== 1 && currentPage !== totalCount) {
|
|
72
|
+
this.paginationArray.push(currentPage);
|
|
73
|
+
}
|
|
74
|
+
// print next page number button if currentPage < lastPage - 1
|
|
75
|
+
if (currentPage < totalCount - 1) {
|
|
76
|
+
this.paginationArray.push(currentPage + 1);
|
|
77
|
+
}
|
|
78
|
+
// special case where first page is selected...
|
|
79
|
+
// Without this special case, only 2 buttons would be shown before ... if you were on first page
|
|
80
|
+
if (currentPage === 1) {
|
|
81
|
+
this.paginationArray.push(currentPage + 2);
|
|
82
|
+
}
|
|
83
|
+
// print "..." if currentPage is < lastPage -2
|
|
84
|
+
if (currentPage < totalCount - 2) {
|
|
85
|
+
this.paginationArray.push('...');
|
|
86
|
+
// HTML += "...";
|
|
87
|
+
}
|
|
88
|
+
// Always print last page button if there is more than 1 page
|
|
89
|
+
if (totalCount > 1) {
|
|
90
|
+
this.paginationArray.push(totalCount);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/* In this function we will set current page according to the action performed on browser
|
|
95
|
+
ex: prev next buttons clicks or selecting a particular page */
|
|
96
|
+
changePage(prev, page, next) {
|
|
97
|
+
if (prev) {
|
|
98
|
+
if (this.start > 1) {
|
|
99
|
+
this.start--;
|
|
100
|
+
// We have changed the start page, total rebuild the pagination
|
|
101
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (next) {
|
|
105
|
+
if (this.start < this.totalCount) {
|
|
106
|
+
this.start++;
|
|
107
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (page) {
|
|
111
|
+
this.start = page;
|
|
112
|
+
this.rebuildPagination(this.start, this.totalCount);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, deps: [{ token: i1.PaginationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "app-pagination", inputs: { totalPages: "totalPages", limit: "limit", totalList: "totalList" }, outputs: { paginationFilter: "paginationFilter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-box\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n </ul>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.pagination-box{margin-bottom:12px}.pagination-box ul{display:flex;align-items:center;padding:0;margin:0}.pagination-box ul li{list-style:none;display:flex}.pagination-box ul li+li{margin-left:4px}.pagination-box ul li:first-child{margin-right:4px;height:24px}.pagination-box ul li:first-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li:last-child{margin-left:8px!important;height:24px}.pagination-box ul li:last-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li button{border:1px solid #dbdbdb;background:#fff;border-radius:2px;color:#161b2f;font-weight:400;height:24px;min-width:24px;padding:0 5px;display:inline-flex;justify-content:center;align-items:center;outline:none;cursor:pointer;font-size:11px;margin:0}.pagination-box ul li button.active,.pagination-box ul li button:hover{border-color:#1e5dd3;color:#1e5dd3}.pagination-box ul li button.disabled{filter:grayscale(100%);pointer-events:none;background:#f1f1f1;color:#bcbcbc!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
119
|
+
type: Component,
|
|
120
|
+
args: [{ selector: 'app-pagination', template: "<div class=\"pagination-box\">\r\n <ul>\r\n <li><button [class.disabled]=\"currentPage==1\" (click)=\"changePage('prev',0,'')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n <li *ngFor=\"let page of paginationArray\">\r\n <button [disabled]=\"page=='...'\" [class.disable]=\"page=='...'\" [class.active]=\"currentPage==page\" (click)=\"changePage('',page,'')\">\r\n <i *ngIf=\"page=='...'\" class=\"icons\"></i>{{page!='...'?page : ''}}\r\n </button>\r\n </li>\r\n <li><button [class.disabled]=\"currentPage==totalCount\" (click)=\"changePage('',0,'next')\"><i class=\"icons vx-fs-10\"></i></button></li>\r\n </ul>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.pagination-box{margin-bottom:12px}.pagination-box ul{display:flex;align-items:center;padding:0;margin:0}.pagination-box ul li{list-style:none;display:flex}.pagination-box ul li+li{margin-left:4px}.pagination-box ul li:first-child{margin-right:4px;height:24px}.pagination-box ul li:first-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li:last-child{margin-left:8px!important;height:24px}.pagination-box ul li:last-child button{color:#1e5dd3;font-size:17px}.pagination-box ul li button{border:1px solid #dbdbdb;background:#fff;border-radius:2px;color:#161b2f;font-weight:400;height:24px;min-width:24px;padding:0 5px;display:inline-flex;justify-content:center;align-items:center;outline:none;cursor:pointer;font-size:11px;margin:0}.pagination-box ul li button.active,.pagination-box ul li button:hover{border-color:#1e5dd3;color:#1e5dd3}.pagination-box ul li button.disabled{filter:grayscale(100%);pointer-events:none;background:#f1f1f1;color:#bcbcbc!important}\n"] }]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i1.PaginationService }]; }, propDecorators: { totalPages: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], limit: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], totalList: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], paginationFilter: [{
|
|
128
|
+
type: Output
|
|
129
|
+
}] } });
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExRjs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFVVjtJQVRwQixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsVUFBVSxDQUFVO0lBQ3BCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsV0FBVyxDQUFVO0lBQ1osVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVoRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7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QkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9zZXJ2aWNlcy9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG4vKipcclxuICogQWRkcyBwbGFjZSBob2xkZXIgZm9yIFBhZ2luYXRpb24gb24gdGhlIGxpc3RzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBzdGFydCA9IDE7XHJcbiAgdG90YWxDb3VudCE6IG51bWJlcjtcclxuICBwYWdpbmF0aW9uQXJyYXk6IGFueVtdID0gW107XHJcbiAgY3VycmVudFBhZ2UhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdG90YWxQYWdlcyA9IDE7XHJcbiAgQElucHV0KCkgbGltaXQgPSAxO1xyXG4gIEBJbnB1dCgpIHRvdGFsTGlzdCA9IDE7XHJcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IE51bWJlcih0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlKTtcclxuICAgIHRoaXMuc3RhcnQgPSBOdW1iZXIodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSk7XHJcbiAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuY3VycmVudFBhZ2UsIHRoaXMudG90YWxQYWdlcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBOdW1iZXIodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSk7XHJcbiAgICB0aGlzLnN0YXJ0ID0gTnVtYmVyKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UpO1xyXG4gICAgdGhpcy5yZWJ1aWxkUGFnaW5hdGlvbih0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLnRvdGFsUGFnZXMpO1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50VmFsdWVzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCAmJiAodGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiBJbiB0aGlzIGZ1bmN0aW9uIHdlIHdpbGwgcmVjcmVhdGUgdGhlIHBhZ2luYXRpb24gc3RydWN0dXJlIGFzIHBlciBjdXJyZW50IHBhZ2UgYW5kXHJcbiAgIHRvdGFsIG51bWJlciBvZiBwYWdlcyAqL1xyXG5cclxuICByZWJ1aWxkUGFnaW5hdGlvbihjdXJyZW50UGFnZTogbnVtYmVyLCB0b3RhbENvdW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMucGFnaW5hdGlvbkFycmF5ID0gW107XHJcbiAgICB0aGlzLnRvdGFsQ291bnQgPSB0b3RhbENvdW50O1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlO1xyXG4gICAgaWYgKHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvbkZpbHRlci5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZXJlIGFyZSBvbmx5IDYgcGFnZXMgb3IgbGVzcyBpbiB0b3RhbCwganVzdCBkaXNwbGF5IGFsbCBwYWdlcyB3aXRob3V0IFwiLi4uXCJcclxuICAgIGlmICh0b3RhbENvdW50IDw9IDYpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxDb3VudDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gRUxTRSBkaXNwbGF5IHdpdGggLi4uXHJcbiAgICBlbHNlIHtcclxuXHJcbiAgICAgIC8vIEFsd2F5cyBwcmludCBmaXJzdCBwYWdlIGJ1dHRvblxyXG4gICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKDEpO1xyXG5cclxuICAgICAgLy8gUHJpbnQgXCIuLi5cIiBpZiBjdXJyZW50UGFnZSBpcyA+IDNcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlID4gMykge1xyXG4gICAgICAgIC8vIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goMik7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaCgnLi4uJyk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB3aGVyZSBsYXN0IHBhZ2UgaXMgc2VsZWN0ZWQuLi5cclxuICAgICAgLy8gV2l0aG91dCB0aGlzIHNwZWNpYWwgY2FzZSwgb25seSAyIGJ1dHRvbnMgd291bGQgYmUgc2hvd24gYWZ0ZXIgLi4uIGlmIHlvdSB3ZXJlIG9uIGxhc3QgcGFnZVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IHRvdGFsQ291bnQpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlIC0gMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFByaW50IHByZXZpb3VzIG51bWJlciBidXR0b24gaWYgY3VycmVudFBhZ2UgPiAyXHJcbiAgICAgIGlmIChjdXJyZW50UGFnZSA+IDIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlIC0gMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFByaW50IGN1cnJlbnQgcGFnZSBudW1iZXIgYnV0dG9uIGFzIGxvbmcgYXMgaXQgbm90IHRoZSBmaXJzdCBvciBsYXN0IHBhZ2VcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSAxICYmIGN1cnJlbnRQYWdlICE9PSB0b3RhbENvdW50KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkucHVzaChjdXJyZW50UGFnZSk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBwcmludCBuZXh0IHBhZ2UgbnVtYmVyIGJ1dHRvbiBpZiBjdXJyZW50UGFnZSA8IGxhc3RQYWdlIC0gMVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPCB0b3RhbENvdW50IC0gMSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2goY3VycmVudFBhZ2UgKyAxKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHNwZWNpYWwgY2FzZSB3aGVyZSBmaXJzdCBwYWdlIGlzIHNlbGVjdGVkLi4uXHJcbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBzcGVjaWFsIGNhc2UsIG9ubHkgMiBidXR0b25zIHdvdWxkIGJlIHNob3duIGJlZm9yZSAuLi4gaWYgeW91IHdlcmUgb24gZmlyc3QgcGFnZVxyXG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKGN1cnJlbnRQYWdlICsgMik7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBwcmludCBcIi4uLlwiIGlmIGN1cnJlbnRQYWdlIGlzIDwgbGFzdFBhZ2UgLTJcclxuICAgICAgaWYgKGN1cnJlbnRQYWdlIDwgdG90YWxDb3VudCAtIDIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcnJheS5wdXNoKCcuLi4nKTtcclxuXHJcbiAgICAgICAgLy8gSFRNTCArPSBcIi4uLlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBBbHdheXMgcHJpbnQgbGFzdCBwYWdlIGJ1dHRvbiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gMSBwYWdlXHJcbiAgICAgIGlmICh0b3RhbENvdW50ID4gMSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFycmF5LnB1c2godG90YWxDb3VudCk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuLyogSW4gdGhpcyBmdW5jdGlvbiB3ZSB3aWxsIHNldCBjdXJyZW50IHBhZ2UgYWNjb3JkaW5nIHRvIHRoZSBhY3Rpb24gcGVyZm9ybWVkIG9uIGJyb3dzZXJcclxuICAgZXg6IHByZXYgbmV4dCBidXR0b25zIGNsaWNrcyBvciBzZWxlY3RpbmcgYSBwYXJ0aWN1bGFyIHBhZ2UgKi9cclxuXHJcbiAgY2hhbmdlUGFnZShwcmV2OiBzdHJpbmcsIHBhZ2U6IG51bWJlciwgbmV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAocHJldikge1xyXG4gICAgICBpZiAodGhpcy5zdGFydCA+IDEpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0LS07XHJcbiAgICAgICAgLy8gV2UgaGF2ZSBjaGFuZ2VkIHRoZSBzdGFydCBwYWdlLCB0b3RhbCByZWJ1aWxkIHRoZSBwYWdpbmF0aW9uXHJcbiAgICAgICAgdGhpcy5yZWJ1aWxkUGFnaW5hdGlvbih0aGlzLnN0YXJ0LCB0aGlzLnRvdGFsQ291bnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCkge1xyXG4gICAgICBpZiAodGhpcy5zdGFydCA8IHRoaXMudG90YWxDb3VudCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQrKztcclxuICAgICAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuc3RhcnQsIHRoaXMudG90YWxDb3VudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwYWdlKSB7XHJcbiAgICAgIHRoaXMuc3RhcnQgPSBwYWdlO1xyXG4gICAgICB0aGlzLnJlYnVpbGRQYWdpbmF0aW9uKHRoaXMuc3RhcnQsIHRoaXMudG90YWxDb3VudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJveFwiPlxyXG4gICAgPHVsPlxyXG4gICAgICAgIDxsaT48YnV0dG9uIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZT09MVwiIChjbGljayk9XCJjaGFuZ2VQYWdlKCdwcmV2JywwLCcnKVwiPjxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOTZiOzwvaT48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdpbmF0aW9uQXJyYXlcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZT09Jy4uLidcIiBbY2xhc3MuZGlzYWJsZV09XCJwYWdlPT0nLi4uJ1wiIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFBhZ2U9PXBhZ2VcIiAoY2xpY2spPVwiY2hhbmdlUGFnZSgnJyxwYWdlLCcnKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJwYWdlPT0nLi4uJ1wiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTExOzwvaT57e3BhZ2UhPScuLi4nP3BhZ2UgOiAnJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPjxidXR0b24gW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlPT10b3RhbENvdW50XCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoJycsMCwnbmV4dCcpXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5NzA7PC9pPjwvYnV0dG9uPjwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj4iXX0=
|
|
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { PaginationComponent } from './pagination.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class PaginationModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule], exports: [PaginationComponent] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
|
|
6
9
|
}
|
|
7
|
-
|
|
8
|
-
PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule], exports: [PaginationComponent] });
|
|
9
|
-
PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PaginationModule, imports: [CommonModule] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PaginationModule, decorators: [{
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
declarations: [PaginationComponent],
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
15
15
|
exports: [PaginationComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLGlCQUpaLG1CQUFtQixhQUN4QixZQUFZLGFBQ1osbUJBQW1CO3lHQUVsQixnQkFBZ0IsWUFIakIsWUFBWTs7NEZBR1gsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1BhZ2luYXRpb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7fSJdfQ==
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./popover.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class PopoverComponent {
|
|
6
|
+
popoverService;
|
|
7
|
+
dontCloseonClick = false;
|
|
8
|
+
popoverContainer = false;
|
|
9
|
+
popoverRatio;
|
|
10
|
+
popoverContent;
|
|
11
|
+
closedOnOverlay = new EventEmitter();
|
|
12
|
+
constructor(popoverService) {
|
|
13
|
+
this.popoverService = popoverService;
|
|
14
|
+
}
|
|
15
|
+
showPopover = false;
|
|
16
|
+
leftValue;
|
|
17
|
+
topValue;
|
|
18
|
+
popoverHeight;
|
|
19
|
+
popoverWidth;
|
|
20
|
+
positionX;
|
|
21
|
+
positionY;
|
|
22
|
+
ngOnInit() { }
|
|
23
|
+
popover() {
|
|
24
|
+
this.popoverContainer = false;
|
|
25
|
+
this.popoverContainer = true;
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
this.getPosition();
|
|
28
|
+
this.showPopover = true;
|
|
29
|
+
this.popoverService.stopScroll = true;
|
|
30
|
+
// document.body.style.overflow = 'hidden';
|
|
31
|
+
}, 10);
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
popoverEvent() {
|
|
35
|
+
this.popoverContainer = false;
|
|
36
|
+
this.popoverContainer = true;
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
// this.getPosition();
|
|
39
|
+
this.positionX = this.popoverService.positionX;
|
|
40
|
+
this.positionY = this.popoverService.positionY;
|
|
41
|
+
this.showPopover = true;
|
|
42
|
+
this.popoverService.stopScroll = true;
|
|
43
|
+
}, 10);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
closePopover(top) {
|
|
47
|
+
if (!this.dontCloseonClick || top === 'top') {
|
|
48
|
+
this.popoverContainer = false;
|
|
49
|
+
this.showPopover = false;
|
|
50
|
+
this.popoverService.stopScroll = false;
|
|
51
|
+
// document.body.style.overflow = 'auto';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
close() {
|
|
55
|
+
this.popoverContainer = false;
|
|
56
|
+
this.showPopover = false;
|
|
57
|
+
this.popoverService.stopScroll = false;
|
|
58
|
+
}
|
|
59
|
+
clickedPopover() {
|
|
60
|
+
this.getPosition();
|
|
61
|
+
}
|
|
62
|
+
getPosition() {
|
|
63
|
+
// setTimeout(() => {
|
|
64
|
+
const elementPositionn = this.popoverService.elementPosition;
|
|
65
|
+
this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;
|
|
66
|
+
this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;
|
|
67
|
+
if (this.popoverService.elementDirection === 'left') {
|
|
68
|
+
this.leftValue = elementPositionn.left;
|
|
69
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
70
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (this.popoverService.elementDirection === 'right') {
|
|
77
|
+
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;
|
|
78
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
79
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (this.popoverService.elementDirection === 'top') {
|
|
86
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
87
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
88
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (this.popoverService.elementDirection === 'bottom') {
|
|
95
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
96
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
97
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (this.popoverService.elementDirection === 'self-position') {
|
|
104
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
105
|
+
this.topValue = elementPositionn.top - 15;
|
|
106
|
+
}
|
|
107
|
+
if (this.popoverService.elementDirection === 'top-center') {
|
|
108
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
109
|
+
// this.topValue = elementPositionn.top - this.popoverHeight;
|
|
110
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {
|
|
111
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (this.popoverService.elementDirection === 'center') {
|
|
118
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
119
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
120
|
+
}
|
|
121
|
+
this.positionX = this.leftValue;
|
|
122
|
+
this.positionY = this.topValue;
|
|
123
|
+
// }, 10);
|
|
124
|
+
}
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, selector: "app-popover", inputs: { dontCloseonClick: "dontCloseonClick" }, outputs: { closedOnOverlay: "closedOnOverlay" }, viewQueries: [{ propertyName: "popoverRatio", first: true, predicate: ["popoverRatio"], descendants: true }, { propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], ngImport: i0, template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\r\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\r\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
129
|
+
type: Component,
|
|
130
|
+
args: [{ selector: 'app-popover', template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\r\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\r\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"] }]
|
|
131
|
+
}], ctorParameters: function () { return [{ type: i1.PopoverService }]; }, propDecorators: { dontCloseonClick: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], popoverRatio: [{
|
|
134
|
+
type: ViewChild,
|
|
135
|
+
args: ['popoverRatio']
|
|
136
|
+
}], popoverContent: [{
|
|
137
|
+
type: ViewChild,
|
|
138
|
+
args: ['popoverContent']
|
|
139
|
+
}], closedOnOverlay: [{
|
|
140
|
+
type: Output
|
|
141
|
+
}] } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTVI7SUFMVixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ0UsWUFBWSxDQUFjO0lBQ3hCLGNBQWMsQ0FBYztJQUMvQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBQ3JELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxDQUFNO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsS0FBVSxDQUFDO0lBQ25CLE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMs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O1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixVQUFVO0lBQ1osQ0FBQzt3R0FsSFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdVdDUjdCLG1iQU1BOzs0RkRFYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTtxR0FLZCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDakIsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3BvdmVyU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBvcG92ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkb250Q2xvc2VvbkNsaWNrID0gZmFsc2U7XHJcbiAgcG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXJSYXRpbycpIHBvcG92ZXJSYXRpbyE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbnRlbnQnKSBwb3BvdmVyQ29udGVudCE6IEVsZW1lbnRSZWY7XHJcbiAgQE91dHB1dCgpIGNsb3NlZE9uT3ZlcmxheSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlKSB7fVxyXG4gIHNob3dQb3BvdmVyID0gZmFsc2U7XHJcbiAgbGVmdFZhbHVlOiBhbnk7XHJcbiAgdG9wVmFsdWU6IGFueTtcclxuICBwb3BvdmVySGVpZ2h0OiBhbnk7XHJcbiAgcG9wb3ZlcldpZHRoOiBhbnk7XHJcbiAgcG9zaXRpb25YITogbnVtYmVyO1xyXG4gIHBvc2l0aW9uWSE6IG51bWJlcjtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcbiAgcG9wb3ZlcigpIHtcclxuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSB0cnVlO1xyXG4gICAgICAvLyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XHJcbiAgICB9LCAxMCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHBvcG92ZXJFdmVudCgpIHtcclxuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25YID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblg7XHJcbiAgICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblk7XHJcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSB0cnVlO1xyXG5cclxuICAgIH0sIDEwKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY2xvc2VQb3BvdmVyKHRvcD86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRvbnRDbG9zZW9uQ2xpY2sgfHwgdG9wID09PSAndG9wJykge1xyXG4gICAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93UG9wb3ZlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSBmYWxzZTtcclxuICAgICAgLy8gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCl7XHJcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1BvcG92ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMucG9wb3ZlclNlcnZpY2Uuc3RvcFNjcm9sbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZFBvcG92ZXIoKSB7XHJcbiAgICB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgfVxyXG4gIGdldFBvc2l0aW9uKCkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBjb25zdCBlbGVtZW50UG9zaXRpb25uID0gdGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50UG9zaXRpb247XHJcbiAgICB0aGlzLnBvcG92ZXJIZWlnaHQgPSB0aGlzLnBvcG92ZXJSYXRpby5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIHRoaXMucG9wb3ZlcldpZHRoID0gdGhpcy5wb3BvdmVyUmF0aW8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdDtcclxuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC0gdGhpcy5wb3BvdmVyV2lkdGg7XHJcbiAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50RGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGg7XHJcbiAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoO1xyXG4gICAgICBpZiAoZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodCArIHRoaXMucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodCAtIDIwMCkge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ3NlbGYtcG9zaXRpb24nKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIDE1O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ3RvcC1jZW50ZXInKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIC8vIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQpIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdjZW50ZXInKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3NpdGlvblggPSB0aGlzLmxlZnRWYWx1ZTtcclxuICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy50b3BWYWx1ZTtcclxuICAgIC8vIH0sIDEwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcG92ZXItb3ZlcmxheVwiICpuZ0lmPVwicG9wb3ZlckNvbnRhaW5lclwiIChjbGljayk9XCJjbG9zZVBvcG92ZXIoJ3RvcCcpO3RoaXMuY2xvc2VkT25PdmVybGF5LmVtaXQoKTtcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImFjdGlvblwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd1BvcG92ZXJcIiAqbmdJZj1cInBvcG92ZXJDb250YWluZXJcIiBbc3R5bGUudG9wLnB4XT1cInBvc2l0aW9uWVwiIFtzdHlsZS5sZWZ0LnB4XT1cInBvc2l0aW9uWFwiICNwb3BvdmVyUmF0aW8gaWQ9XCJwb3BvdmVyUmF0aW9cIj5cclxuICA8ZGl2IChjbGljayk9XCJjbG9zZVBvcG92ZXIoKTsgY2xpY2tlZFBvcG92ZXIoKVwiICNwb3BvdmVyQ29udGVudD5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./popover.service";
|
|
4
|
+
export class PopoverDirective {
|
|
5
|
+
elRef;
|
|
6
|
+
popoverService;
|
|
7
|
+
dynamicComponent;
|
|
8
|
+
refrence;
|
|
9
|
+
placement;
|
|
10
|
+
leftValue;
|
|
11
|
+
topValue;
|
|
12
|
+
constructor(elRef, popoverService) {
|
|
13
|
+
this.elRef = elRef;
|
|
14
|
+
this.popoverService = popoverService;
|
|
15
|
+
}
|
|
16
|
+
click() {
|
|
17
|
+
this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
18
|
+
this.popoverService.elementDirection = this.placement;
|
|
19
|
+
// this.getPosition();
|
|
20
|
+
}
|
|
21
|
+
getPosition() {
|
|
22
|
+
setTimeout(() => {
|
|
23
|
+
// this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
24
|
+
const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();
|
|
25
|
+
if (this.placement === 'left') {
|
|
26
|
+
this.leftValue = elementPositionn.left;
|
|
27
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
28
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (this.placement === 'right') {
|
|
35
|
+
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;
|
|
36
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
37
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (this.placement === 'top') {
|
|
44
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
45
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
46
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (this.placement === 'bottom') {
|
|
53
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
54
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
55
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (this.placement === 'self-position') {
|
|
62
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
63
|
+
this.topValue = elementPositionn.top - 15;
|
|
64
|
+
}
|
|
65
|
+
if (this.placement === 'top-center') {
|
|
66
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
67
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
68
|
+
}
|
|
69
|
+
if (this.placement === 'bottom-center') {
|
|
70
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
71
|
+
this.topValue = elementPositionn.top + this.popoverService.popoverHeight;
|
|
72
|
+
}
|
|
73
|
+
this.popoverService.positionX = this.leftValue;
|
|
74
|
+
this.popoverService.positionY = this.topValue;
|
|
75
|
+
}, 10);
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PopoverDirective, selector: "[appPopover]", inputs: { refrence: "refrence", placement: "placement" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, decorators: [{
|
|
81
|
+
type: Directive,
|
|
82
|
+
args: [{
|
|
83
|
+
selector: '[appPopover]',
|
|
84
|
+
}]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopoverService }]; }, propDecorators: { refrence: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], placement: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], click: [{
|
|
90
|
+
type: HostListener,
|
|
91
|
+
args: ['click']
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0UsTUFBTSxPQUFPLGdCQUFnQjtJQU1QO0lBQTJCO0lBTC9DLGdCQUFnQixDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBQ2QsU0FBUyxDQUFVO0lBQzVCLFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFlBQW9CLEtBQWlCLEVBQVUsY0FBOEI7UUFBekQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFDMUQsS0FBSztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0RCxzQkFBc0I7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsMEZBQTBGO1lBQzFGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMxRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxj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LENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7d0dBaEVVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs4SEFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSWlCLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3BvdmVyU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcFBvcG92ZXJdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcG92ZXJEaXJlY3RpdmUge1xyXG4gIGR5bmFtaWNDb21wb25lbnQ6IGFueTtcclxuICBASW5wdXQoKSByZWZyZW5jZTogYW55O1xyXG4gIEBJbnB1dCgpIHBsYWNlbWVudCE6IHN0cmluZztcclxuICBsZWZ0VmFsdWU6IGFueTtcclxuICB0b3BWYWx1ZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlKSB7fVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKSB7XHJcbiAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9IHRoaXMucGxhY2VtZW50O1xyXG4gICAgLy8gdGhpcy5nZXRQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zaXRpb24oKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgLy8gdGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50UG9zaXRpb24gPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbm4gPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQ7XHJcbiAgICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlckhlaWdodDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoO1xyXG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICd0b3AnKSB7XHJcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoO1xyXG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlckhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aDtcclxuICAgICAgICBpZiAoZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodCArIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodCAtIDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnc2VsZi1wb3NpdGlvbicpIHtcclxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGggLyAyIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVyV2lkdGggLyAyO1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIDE1O1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3RvcC1jZW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoIC8gMjtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tLWNlbnRlcicpIHtcclxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGggLyAyIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVyV2lkdGggLyAyO1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlckhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvc2l0aW9uWCA9IHRoaXMubGVmdFZhbHVlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvc2l0aW9uWSA9IHRoaXMudG9wVmFsdWU7XHJcbiAgICB9LCAxMCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -5,11 +5,11 @@ import { PopoverDirective } from './popover.directive';
|
|
|
5
5
|
import { PopoverService } from './popover.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class PopoverModule {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, declarations: [PopoverComponent, PopoverDirective], imports: [CommonModule], exports: [PopoverComponent, PopoverDirective] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, providers: [PopoverService], imports: [CommonModule] });
|
|
8
11
|
}
|
|
9
|
-
|
|
10
|
-
PopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PopoverModule, declarations: [PopoverComponent, PopoverDirective], imports: [CommonModule], exports: [PopoverComponent, PopoverDirective] });
|
|
11
|
-
PopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverModule, providers: [PopoverService], imports: [CommonModule] });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverModule, decorators: [{
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
declarations: [PopoverComponent, PopoverDirective],
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
18
18
|
providers: [PopoverService],
|
|
19
19
|
}]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVFuRCxNQUFNLE9BQU8sYUFBYTt3R0FBYixhQUFhO3lHQUFiLGFBQWEsaUJBTFQsZ0JBQWdCLEVBQUUsZ0JBQWdCLGFBQ3ZDLFlBQVksYUFDWixnQkFBZ0IsRUFBRSxnQkFBZ0I7eUdBR2pDLGFBQWEsYUFGYixDQUFDLGNBQWMsQ0FBQyxZQUZqQixZQUFZOzs0RkFJWCxhQUFhO2tCQU56QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi9wb3BvdmVyLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckRpcmVjdGl2ZV0sXHJcbiAgcHJvdmlkZXJzOiBbUG9wb3ZlclNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wb3Zlck1vZHVsZSB7fVxyXG4iXX0=
|