@cqa-lib/cqa-ui 1.1.469 → 1.1.471
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/error-modal/error-modal.component.mjs +6 -3
- package/esm2020/lib/pagination/pagination.component.mjs +29 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +34 -4
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +33 -4
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/error-modal/error-modal.component.d.ts +2 -1
- package/lib/pagination/pagination.component.d.ts +3 -0
- package/lib/test-case-details/scroll-step/scroll-step.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import * as i3 from "@angular/common";
|
|
|
6
6
|
export class ErrorModalComponent {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.isOpen = false;
|
|
9
|
+
this.status = 'error';
|
|
9
10
|
this.title = 'Error';
|
|
10
11
|
this.errorMessage = '';
|
|
11
12
|
this.totalSteps = 0;
|
|
@@ -51,12 +52,14 @@ export class ErrorModalComponent {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
ErrorModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ErrorModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
ErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ErrorModalComponent, selector: "cqa-error-modal", inputs: { isOpen: "isOpen", title: "title", instructionalMessage: "instructionalMessage", errorMessage: "errorMessage", totalSteps: "totalSteps", completedSteps: "completedSteps", totalTime: "totalTime", appTime: "appTime", toolTime: "toolTime", buttons: "buttons", showLoading: "showLoading", loadingBadgeInlineStyles: "loadingBadgeInlineStyles" }, outputs: { buttonClick: "buttonClick", closeModal: "closeModal" }, ngImport: i0, template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div>\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n\n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n Error Message\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", components: [{ type: i1.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }, { type: i2.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
55
|
+
ErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ErrorModalComponent, selector: "cqa-error-modal", inputs: { isOpen: "isOpen", status: "status", title: "title", instructionalMessage: "instructionalMessage", errorMessage: "errorMessage", totalSteps: "totalSteps", completedSteps: "completedSteps", totalTime: "totalTime", appTime: "appTime", toolTime: "toolTime", buttons: "buttons", showLoading: "showLoading", loadingBadgeInlineStyles: "loadingBadgeInlineStyles" }, outputs: { buttonClick: "buttonClick", closeModal: "closeModal" }, ngImport: i0, template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div *ngIf=\"status === 'error'\">\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n <div *ngIf=\"status === 'success'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#AEE9D4\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#CFF2E5\" stroke-width=\"8\"/>\n <path d=\"M75.25 43.8549V46.4999C75.2465 52.6996 73.2389 58.732 69.5268 63.6976C65.8147 68.6632 60.5969 72.2957 54.6517 74.0536C48.7064 75.8114 42.3521 75.6003 36.5366 73.4518C30.7211 71.3033 25.7559 67.3324 22.3815 62.1314C19.0071 56.9305 17.4044 50.778 17.8123 44.5918C18.2202 38.4055 20.617 32.5168 24.6451 27.8039C28.6731 23.0911 34.1168 19.8066 40.164 18.4403C46.2113 17.074 52.5383 17.6991 58.2013 20.2224M75.25 23.4999L46.5 52.2786L37.875 43.6536\" stroke=\"#0DBD7D\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n \n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n {{ status === 'success' ? 'Details' : 'Error Message' }}\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", components: [{ type: i1.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }, { type: i2.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
55
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ErrorModalComponent, decorators: [{
|
|
56
57
|
type: Component,
|
|
57
|
-
args: [{ selector: 'cqa-error-modal', template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div>\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n\n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n Error Message\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", styles: [] }]
|
|
58
|
+
args: [{ selector: 'cqa-error-modal', template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div *ngIf=\"status === 'error'\">\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n <div *ngIf=\"status === 'success'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#AEE9D4\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#CFF2E5\" stroke-width=\"8\"/>\n <path d=\"M75.25 43.8549V46.4999C75.2465 52.6996 73.2389 58.732 69.5268 63.6976C65.8147 68.6632 60.5969 72.2957 54.6517 74.0536C48.7064 75.8114 42.3521 75.6003 36.5366 73.4518C30.7211 71.3033 25.7559 67.3324 22.3815 62.1314C19.0071 56.9305 17.4044 50.778 17.8123 44.5918C18.2202 38.4055 20.617 32.5168 24.6451 27.8039C28.6731 23.0911 34.1168 19.8066 40.164 18.4403C46.2113 17.074 52.5383 17.6991 58.2013 20.2224M75.25 23.4999L46.5 52.2786L37.875 43.6536\" stroke=\"#0DBD7D\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n \n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n {{ status === 'success' ? 'Details' : 'Error Message' }}\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", styles: [] }]
|
|
58
59
|
}], propDecorators: { isOpen: [{
|
|
59
60
|
type: Input
|
|
61
|
+
}], status: [{
|
|
62
|
+
type: Input
|
|
60
63
|
}], title: [{
|
|
61
64
|
type: Input
|
|
62
65
|
}], instructionalMessage: [{
|
|
@@ -84,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
84
87
|
}], closeModal: [{
|
|
85
88
|
type: Output
|
|
86
89
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lcnJvci1tb2RhbC9lcnJvci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBbUJ2RSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQVcsT0FBTyxDQUFDO1FBRXhCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDMUMsb0dBQW9HO1FBQzNGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXVDakQ7SUFyQ0MsZUFBZSxDQUFDLEtBQWlCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBRXpELElBQUksTUFBTSxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsTUFBd0I7UUFDcEMsSUFBSSxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2dIQXZEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix3ZENuQmhDLHd4SkFtR007MkZEaEZPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTW9kYWxCdXR0b24ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YXJpYW50OiBCdXR0b25WYXJpYW50O1xuICBpY29uPzogc3RyaW5nO1xuICBhY3Rpb246IHN0cmluZztcbiAgYnRuU2l6ZT86ICdzbScgfCAnbWQnIHwgJ2xnJztcbiAgZnVsbFdpZHRoPzogYm9vbGVhbjtcbiAgLyoqIFdoZW4gdHJ1ZSwgYnV0dG9uIGlzIGRpc2FibGVkIGFuZCBkb2VzIG5vdCBlbWl0IGNsaWNrICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWVycm9yLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBFcnJvck1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRXJyb3InO1xuICBASW5wdXQoKSBpbnN0cnVjdGlvbmFsTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdG90YWxTdGVwczogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29tcGxldGVkU3RlcHM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRvdGFsVGltZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGFwcFRpbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0b29sVGltZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ1dHRvbnM6IEVycm9yTW9kYWxCdXR0b25bXSA9IFtdO1xuICAvKiogV2hlbiB0cnVlLCBzaG93cyBhIGxvYWRpbmcgYmFkZ2UgaW5zdGVhZCBvZiBidXR0b25zIChlLmcuIHdoaWxlIHdhaXRpbmcgZm9yIGFzeW5jIGNvbXBsZXRpb24pICovXG4gIEBJbnB1dCgpIHNob3dMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBJbmxpbmUgc3R5bGVzIGZvciB0aGUgbG9hZGluZyBiYWRnZSAoZS5nLiBtaW4taGVpZ2h0IHRvIG1hdGNoIGJ1dHRvbikuIFBhc3MgZnJvbSBwYXJlbnQgZm9yIHJldXNhYmlsaXR5LiAqL1xuICBASW5wdXQoKSBsb2FkaW5nQmFkZ2VJbmxpbmVTdHlsZXM/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG9uQmFja2Ryb3BDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBcbiAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0IHx8IHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsLWJhY2tkcm9wJykpIHtcbiAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2soYnV0dG9uOiBFcnJvck1vZGFsQnV0dG9uKTogdm9pZCB7XG4gICAgaWYgKGJ1dHRvbi5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChidXR0b24uYWN0aW9uKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIGdldCBzdGVwc0JhY2tncm91bmRDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnY3FhLWJnLVsjRUUzRjNGMUFdJztcbiAgfVxuXG4gIGdldCBzdGVwc0JvcmRlckNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcjRkVDQUNBJztcbiAgfVxuXG4gIGdldCBoYXNUaW1pbmdEYXRhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnRvdGFsU3RlcHMgfHwgdGhpcy50b3RhbFRpbWUgfHwgdGhpcy5hcHBUaW1lIHx8IHRoaXMudG9vbFRpbWUpO1xuICB9XG5cbiAgZ2V0Tm9uVGV4dEJ1dHRvbnMoKTogRXJyb3JNb2RhbEJ1dHRvbltdIHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcihidXR0b24gPT4gYnV0dG9uLnZhcmlhbnQgIT09ICd0ZXh0Jyk7XG4gIH1cblxuICBnZXRUZXh0QnV0dG9ucygpOiBFcnJvck1vZGFsQnV0dG9uW10ge1xuICAgIHJldHVybiB0aGlzLmJ1dHRvbnMuZmlsdGVyKGJ1dHRvbiA9PiBidXR0b24udmFyaWFudCA9PT0gJ3RleHQnKTtcbiAgfVxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiaXNPcGVuXCJcbiAgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcCBjcWEtZml4ZWQgY3FhLWluc2V0LTAgY3FhLWJnLWJsYWNrIGNxYS1iZy1vcGFjaXR5LTUwIGNxYS16LVs5OTk5XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcC00XCJcbiAgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1yb3VuZGVkLWxnIGNxYS1iZy13aGl0ZSBjcWEtc2hhZG93LXhsIGNxYS13LWZ1bGwgY3FhLW1heC13LVs1MDBweF0gY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtcC02IGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLW1heC1oLVs4NXZoXSBjcWEtb3ZlcmZsb3cteS1hdXRvXCJcbiAgICBzdHlsZT1cImJveC1zaGFkb3c6IDBweCA4cHggOHB4IC00cHggIzEwMTgyODA4O1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjkzXCIgaGVpZ2h0PVwiOTNcIiB2aWV3Qm94PVwiMCAwIDkzIDkzXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiODVcIiBoZWlnaHQ9XCI4NVwiIHJ4PVwiNDIuNVwiIGZpbGw9XCIjRjE1RjVGXCIvPlxuICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjg1XCIgaGVpZ2h0PVwiODVcIiByeD1cIjQyLjVcIiBzdHJva2U9XCIjRkNEOUQ5XCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTMyLjM4MTUgNjIuNDQzN0g2MC42MTlDNjMuNTA2NSA2Mi40NDM3IDY1LjMwNjUgNTkuMzEyNSA2My44NjI3IDU2LjgxODhMNDkuNzQ0IDMyLjQyNUM0OC4zMDAyIDI5LjkzMTMgNDQuNzAwMiAyOS45MzEzIDQzLjI1NjUgMzIuNDI1TDI5LjEzNzcgNTYuODE4OEMyNy42OTQgNTkuMzEyNSAyOS40OTQgNjIuNDQzNyAzMi4zODE1IDYyLjQ0MzdaTTQ2LjUwMDIgNDkuMzE4OEM0NS40NjkgNDkuMzE4OCA0NC42MjUyIDQ4LjQ3NSA0NC42MjUyIDQ3LjQ0MzhWNDMuNjkzOEM0NC42MjUyIDQyLjY2MjUgNDUuNDY5IDQxLjgxODggNDYuNTAwMiA0MS44MTg4QzQ3LjUzMTUgNDEuODE4OCA0OC4zNzUyIDQyLjY2MjUgNDguMzc1MiA0My42OTM4VjQ3LjQ0MzhDNDguMzc1MiA0OC40NzUgNDcuNTMxNSA0OS4zMTg4IDQ2LjUwMDIgNDkuMzE4OFpNNDguMzc1MiA1Ni44MTg4SDQ0LjYyNTJWNTMuMDY4OEg0OC4zNzUyVjU2LjgxODhaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoMiBjbGFzcz1cImNxYS10ZXh0LVsyMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQ10gY3FhLW10LVsyMHB4XSBjcWEtbGVhZGluZy1bMjhweF1cIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDwhLS0gSW5zdHJ1Y3Rpb25hbCBNZXNzYWdlIC0tPlxuICAgICAgPHAgKm5nSWY9XCJpbnN0cnVjdGlvbmFsTWVzc2FnZVwiIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tdC0yIGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICB7eyBpbnN0cnVjdGlvbmFsTWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaGFzVGltaW5nRGF0YVwiIGNsYXNzPVwiY3FhLXJvdW5kZWQtbGcgY3FhLWJvcmRlciBjcWEtcC1bMTdweF0gY3FhLW15LTRcIiBbbmdDbGFzc109XCJzdGVwc0JhY2tncm91bmRDbGFzc1wiXG4gICAgICBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkO1wiIFtzdHlsZS5ib3JkZXItY29sb3JdPVwic3RlcHNCb3JkZXJDbGFzc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS1ncmlkIHNtOmNxYS1mbGV4IHNtOmNxYS1qdXN0aWZ5LWJldHdlZW4gc206Y3FhLWl0ZW1zLWNlbnRlciBjcWEtZ3JpZC1jb2xzLTIgc206Y3FhLWdyaWQtY29scy00IGNxYS1nYXAtNCBzbTpjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiICpuZ0lmPVwidG90YWxTdGVwc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tYi0xXCI+VG90YWwgU3RlcHM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTAxODI4XVwiPlxuICAgICAgICAgICAge3sgY29tcGxldGVkU3RlcHMgfX0gLyB7eyB0b3RhbFN0ZXBzIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJ0b3RhbFRpbWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNEE1NTY1XSBjcWEtbWItMVwiPlRvdGFsIFRpbWU8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTAxODI4XVwiPlxuICAgICAgICAgICAge3sgdG90YWxUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJhcHBUaW1lXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzRBNTU2NV0gY3FhLW1iLTFcIj5BcHAgVGltZTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxMDE4MjhdXCI+XG4gICAgICAgICAgICB7eyBhcHBUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJ0b29sVGltZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tYi0xXCI+VG9vbCBUaW1lPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzEwMTgyOF1cIj5cbiAgICAgICAgICAgIHt7IHRvb2xUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBTZWN0aW9uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImNxYS1teS00IGNxYS1wLTQgY3FhLXJvdW5kZWQtbGcgY3FhLWJnLXdoaXRlXCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0U1RTdFQjtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLW1iLTIgY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICAgIEVycm9yIE1lc3NhZ2VcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtd2hpdGVzcGFjZS1ub3JtYWwgY3FhLWJyZWFrLWFueXdoZXJlXCJcbiAgICAgICAgc3R5bGU9XCJ3b3JkLWJyZWFrOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XCI+XG4gICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEJ1dHRvbnMgKG9yIGxvYWRpbmcgYmFkZ2Ugd2hlbiBzaG93TG9hZGluZykgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVsyMHB4XVwiPlxuICAgICAgPGNxYS1iYWRnZVxuICAgICAgICAqbmdJZj1cInNob3dMb2FkaW5nXCJcbiAgICAgICAgbGFiZWw9XCJVcGRhdGluZyBTdGVwcy4uXCJcbiAgICAgICAgaWNvbj1cImF1dG9yZW5ld1wiXG4gICAgICAgIFtpc0xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtjZW50ZXJDb250ZW50XT1cInRydWVcIlxuICAgICAgICB2YXJpYW50PVwiaW5mb1wiXG4gICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICBbaW5saW5lU3R5bGVzXT1cImxvYWRpbmdCYWRnZUlubGluZVN0eWxlc1wiPlxuICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dMb2FkaW5nXCI+XG4gICAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbdmFyaWFudF09XCJidXR0b24udmFyaWFudFwiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgICBbaWNvbl09XCJidXR0b24uaWNvblwiXG4gICAgICAgICAgW2J0blNpemVdPVwiYnV0dG9uLmJ0blNpemUgfHwgJ2xnJ1wiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJidXR0b24uZnVsbFdpZHRoICE9PSB1bmRlZmluZWQgPyBidXR0b24uZnVsbFdpZHRoIDogdHJ1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljayhidXR0b24pXCI+XG4gICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lcnJvci1tb2RhbC9lcnJvci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBbUJ2RSxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTVcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQXdCLE9BQU8sQ0FBQztRQUN0QyxVQUFLLEdBQVcsT0FBTyxDQUFDO1FBRXhCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDMUMsb0dBQW9HO1FBQzNGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXVDakQ7SUFyQ0MsZUFBZSxDQUFDLEtBQWlCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBRXpELElBQUksTUFBTSxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsTUFBd0I7UUFDcEMsSUFBSSxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2dIQXhEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwwZUNuQmhDLHV4TEEwR007MkZEdkZPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uVmFyaWFudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBFcnJvck1vZGFsQnV0dG9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFyaWFudDogQnV0dG9uVmFyaWFudDtcbiAgaWNvbj86IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGJ0blNpemU/OiAnc20nIHwgJ21kJyB8ICdsZyc7XG4gIGZ1bGxXaWR0aD86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUsIGJ1dHRvbiBpcyBkaXNhYmxlZCBhbmQgZG9lcyBub3QgZW1pdCBjbGljayAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1lcnJvci1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lcnJvci1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGF0dXM6ICdlcnJvcicgfCAnc3VjY2VzcycgPSAnZXJyb3InO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ0Vycm9yJztcbiAgQElucHV0KCkgaW5zdHJ1Y3Rpb25hbE1lc3NhZ2U/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRvdGFsU3RlcHM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGNvbXBsZXRlZFN0ZXBzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFRpbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBhcHBUaW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdG9vbFRpbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBidXR0b25zOiBFcnJvck1vZGFsQnV0dG9uW10gPSBbXTtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvd3MgYSBsb2FkaW5nIGJhZGdlIGluc3RlYWQgb2YgYnV0dG9ucyAoZS5nLiB3aGlsZSB3YWl0aW5nIGZvciBhc3luYyBjb21wbGV0aW9uKSAqL1xuICBASW5wdXQoKSBzaG93TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogSW5saW5lIHN0eWxlcyBmb3IgdGhlIGxvYWRpbmcgYmFkZ2UgKGUuZy4gbWluLWhlaWdodCB0byBtYXRjaCBidXR0b24pLiBQYXNzIGZyb20gcGFyZW50IGZvciByZXVzYWJpbGl0eS4gKi9cbiAgQElucHV0KCkgbG9hZGluZ0JhZGdlSW5saW5lU3R5bGVzPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvbkJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKHRhcmdldCA9PT0gY3VycmVudFRhcmdldCB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1iYWNrZHJvcCcpKSB7XG4gICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkJ1dHRvbkNsaWNrKGJ1dHRvbjogRXJyb3JNb2RhbEJ1dHRvbik6IHZvaWQge1xuICAgIGlmIChidXR0b24uZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoYnV0dG9uLmFjdGlvbik7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gIH1cblxuICBnZXQgc3RlcHNCYWNrZ3JvdW5kQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2NxYS1iZy1bI0VFM0YzRjFBXSc7XG4gIH1cblxuICBnZXQgc3RlcHNCb3JkZXJDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnI0ZFQ0FDQSc7XG4gIH1cblxuICBnZXQgaGFzVGltaW5nRGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy50b3RhbFN0ZXBzIHx8IHRoaXMudG90YWxUaW1lIHx8IHRoaXMuYXBwVGltZSB8fCB0aGlzLnRvb2xUaW1lKTtcbiAgfVxuXG4gIGdldE5vblRleHRCdXR0b25zKCk6IEVycm9yTW9kYWxCdXR0b25bXSB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9ucy5maWx0ZXIoYnV0dG9uID0+IGJ1dHRvbi52YXJpYW50ICE9PSAndGV4dCcpO1xuICB9XG5cbiAgZ2V0VGV4dEJ1dHRvbnMoKTogRXJyb3JNb2RhbEJ1dHRvbltdIHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25zLmZpbHRlcihidXR0b24gPT4gYnV0dG9uLnZhcmlhbnQgPT09ICd0ZXh0Jyk7XG4gIH1cbn1cblxuIiwiPGRpdiAqbmdJZj1cImlzT3BlblwiXG4gIGNsYXNzPVwibW9kYWwtYmFja2Ryb3AgY3FhLWZpeGVkIGNxYS1pbnNldC0wIGNxYS1iZy1ibGFjayBjcWEtYmctb3BhY2l0eS01MCBjcWEtei1bOTk5OV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXAtNFwiXG4gIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtcm91bmRlZC1sZyBjcWEtYmctd2hpdGUgY3FhLXNoYWRvdy14bCBjcWEtdy1mdWxsIGNxYS1tYXgtdy1bNTAwcHhdIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLXAtNiBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1tYXgtaC1bODV2aF0gY3FhLW92ZXJmbG93LXktYXV0b1wiXG4gICAgc3R5bGU9XCJib3gtc2hhZG93OiAwcHggOHB4IDhweCAtNHB4ICMxMDE4MjgwODtcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMgPT09ICdlcnJvcidcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjkzXCIgaGVpZ2h0PVwiOTNcIiB2aWV3Qm94PVwiMCAwIDkzIDkzXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiODVcIiBoZWlnaHQ9XCI4NVwiIHJ4PVwiNDIuNVwiIGZpbGw9XCIjRjE1RjVGXCIvPlxuICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjg1XCIgaGVpZ2h0PVwiODVcIiByeD1cIjQyLjVcIiBzdHJva2U9XCIjRkNEOUQ5XCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTMyLjM4MTUgNjIuNDQzN0g2MC42MTlDNjMuNTA2NSA2Mi40NDM3IDY1LjMwNjUgNTkuMzEyNSA2My44NjI3IDU2LjgxODhMNDkuNzQ0IDMyLjQyNUM0OC4zMDAyIDI5LjkzMTMgNDQuNzAwMiAyOS45MzEzIDQzLjI1NjUgMzIuNDI1TDI5LjEzNzcgNTYuODE4OEMyNy42OTQgNTkuMzEyNSAyOS40OTQgNjIuNDQzNyAzMi4zODE1IDYyLjQ0MzdaTTQ2LjUwMDIgNDkuMzE4OEM0NS40NjkgNDkuMzE4OCA0NC42MjUyIDQ4LjQ3NSA0NC42MjUyIDQ3LjQ0MzhWNDMuNjkzOEM0NC42MjUyIDQyLjY2MjUgNDUuNDY5IDQxLjgxODggNDYuNTAwMiA0MS44MTg4QzQ3LjUzMTUgNDEuODE4OCA0OC4zNzUyIDQyLjY2MjUgNDguMzc1MiA0My42OTM4VjQ3LjQ0MzhDNDguMzc1MiA0OC40NzUgNDcuNTMxNSA0OS4zMTg4IDQ2LjUwMDIgNDkuMzE4OFpNNDguMzc1MiA1Ni44MTg4SDQ0LjYyNTJWNTMuMDY4OEg0OC4zNzUyVjU2LjgxODhaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzID09PSAnc3VjY2VzcydcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5M1wiIGhlaWdodD1cIjkzXCIgdmlld0JveD1cIjAgMCA5MyA5M1wiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiODVcIiBoZWlnaHQ9XCI4NVwiIHJ4PVwiNDIuNVwiIGZpbGw9XCIjQUVFOUQ0XCIvPlxuICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjg1XCIgaGVpZ2h0PVwiODVcIiByeD1cIjQyLjVcIiBzdHJva2U9XCIjQ0ZGMkU1XCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTc1LjI1IDQzLjg1NDlWNDYuNDk5OUM3NS4yNDY1IDUyLjY5OTYgNzMuMjM4OSA1OC43MzIgNjkuNTI2OCA2My42OTc2QzY1LjgxNDcgNjguNjYzMiA2MC41OTY5IDcyLjI5NTcgNTQuNjUxNyA3NC4wNTM2QzQ4LjcwNjQgNzUuODExNCA0Mi4zNTIxIDc1LjYwMDMgMzYuNTM2NiA3My40NTE4QzMwLjcyMTEgNzEuMzAzMyAyNS43NTU5IDY3LjMzMjQgMjIuMzgxNSA2Mi4xMzE0QzE5LjAwNzEgNTYuOTMwNSAxNy40MDQ0IDUwLjc3OCAxNy44MTIzIDQ0LjU5MThDMTguMjIwMiAzOC40MDU1IDIwLjYxNyAzMi41MTY4IDI0LjY0NTEgMjcuODAzOUMyOC42NzMxIDIzLjA5MTEgMzQuMTE2OCAxOS44MDY2IDQwLjE2NCAxOC40NDAzQzQ2LjIxMTMgMTcuMDc0IDUyLjUzODMgMTcuNjk5MSA1OC4yMDEzIDIwLjIyMjRNNzUuMjUgMjMuNDk5OUw0Ni41IDUyLjI3ODZMMzcuODc1IDQzLjY1MzZcIiBzdHJva2U9XCIjMERCRDdEXCIgc3Ryb2tlLXdpZHRoPVwiNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiBcbiAgICAgIDxoMiBjbGFzcz1cImNxYS10ZXh0LVsyMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQ10gY3FhLW10LVsyMHB4XSBjcWEtbGVhZGluZy1bMjhweF1cIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDwhLS0gSW5zdHJ1Y3Rpb25hbCBNZXNzYWdlIC0tPlxuICAgICAgPHAgKm5nSWY9XCJpbnN0cnVjdGlvbmFsTWVzc2FnZVwiIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tdC0yIGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICB7eyBpbnN0cnVjdGlvbmFsTWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaGFzVGltaW5nRGF0YVwiIGNsYXNzPVwiY3FhLXJvdW5kZWQtbGcgY3FhLWJvcmRlciBjcWEtcC1bMTdweF0gY3FhLW15LTRcIiBbbmdDbGFzc109XCJzdGVwc0JhY2tncm91bmRDbGFzc1wiXG4gICAgICBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkO1wiIFtzdHlsZS5ib3JkZXItY29sb3JdPVwic3RlcHNCb3JkZXJDbGFzc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS1ncmlkIHNtOmNxYS1mbGV4IHNtOmNxYS1qdXN0aWZ5LWJldHdlZW4gc206Y3FhLWl0ZW1zLWNlbnRlciBjcWEtZ3JpZC1jb2xzLTIgc206Y3FhLWdyaWQtY29scy00IGNxYS1nYXAtNCBzbTpjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiICpuZ0lmPVwidG90YWxTdGVwc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tYi0xXCI+VG90YWwgU3RlcHM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTAxODI4XVwiPlxuICAgICAgICAgICAge3sgY29tcGxldGVkU3RlcHMgfX0gLyB7eyB0b3RhbFN0ZXBzIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJ0b3RhbFRpbWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNEE1NTY1XSBjcWEtbWItMVwiPlRvdGFsIFRpbWU8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTAxODI4XVwiPlxuICAgICAgICAgICAge3sgdG90YWxUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJhcHBUaW1lXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzRBNTU2NV0gY3FhLW1iLTFcIj5BcHAgVGltZTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxMDE4MjhdXCI+XG4gICAgICAgICAgICB7eyBhcHBUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgKm5nSWY9XCJ0b29sVGltZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tYi0xXCI+VG9vbCBUaW1lPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzEwMTgyOF1cIj5cbiAgICAgICAgICAgIHt7IHRvb2xUaW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBTZWN0aW9uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImNxYS1teS00IGNxYS1wLTQgY3FhLXJvdW5kZWQtbGcgY3FhLWJnLXdoaXRlXCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0U1RTdFQjtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLW1iLTIgY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IHN0YXR1cyA9PT0gJ3N1Y2Nlc3MnID8gJ0RldGFpbHMnIDogJ0Vycm9yIE1lc3NhZ2UnIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtdGV4dC1bIzExMTgyN10gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXdoaXRlc3BhY2Utbm9ybWFsIGNxYS1icmVhay1hbnl3aGVyZVwiXG4gICAgICAgIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDsgd2hpdGUtc3BhY2U6IHByZS1saW5lO1wiPlxuICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBCdXR0b25zIChvciBsb2FkaW5nIGJhZGdlIHdoZW4gc2hvd0xvYWRpbmcpIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bMjBweF1cIj5cbiAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgKm5nSWY9XCJzaG93TG9hZGluZ1wiXG4gICAgICAgIGxhYmVsPVwiVXBkYXRpbmcgU3RlcHMuLlwiXG4gICAgICAgIGljb249XCJhdXRvcmVuZXdcIlxuICAgICAgICBbaXNMb2FkaW5nXT1cInRydWVcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbY2VudGVyQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgdmFyaWFudD1cImluZm9cIlxuICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgW2lubGluZVN0eWxlc109XCJsb2FkaW5nQmFkZ2VJbmxpbmVTdHlsZXNcIj5cbiAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93TG9hZGluZ1wiPlxuICAgICAgICA8Y3FhLWJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiYnV0dG9uLnZhcmlhbnRcIlxuICAgICAgICAgIFt0ZXh0XT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgW2ljb25dPVwiYnV0dG9uLmljb25cIlxuICAgICAgICAgIFtidG5TaXplXT1cImJ1dHRvbi5idG5TaXplIHx8ICdsZydcIlxuICAgICAgICAgIFtmdWxsV2lkdGhdPVwiYnV0dG9uLmZ1bGxXaWR0aCAhPT0gdW5kZWZpbmVkID8gYnV0dG9uLmZ1bGxXaWR0aCA6IHRydWVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b24uZGlzYWJsZWQgPz8gZmFsc2VcIlxuICAgICAgICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soYnV0dG9uKVwiPlxuICAgICAgICA8L2NxYS1idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -13,6 +13,7 @@ export class PaginationComponent {
|
|
|
13
13
|
this.paginate = new EventEmitter();
|
|
14
14
|
// Local UI state for custom page-size dropdown
|
|
15
15
|
this.pageSizeOpen = false;
|
|
16
|
+
this.pageSizeMenuPosition = 'down';
|
|
16
17
|
this.pagesOption = {
|
|
17
18
|
placeholder: 'Choose page',
|
|
18
19
|
disabled: false,
|
|
@@ -53,6 +54,28 @@ export class PaginationComponent {
|
|
|
53
54
|
}
|
|
54
55
|
togglePageSizeMenu() {
|
|
55
56
|
this.pageSizeOpen = !this.pageSizeOpen;
|
|
57
|
+
if (this.pageSizeOpen) {
|
|
58
|
+
this.updatePageSizeMenuPosition();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updatePageSizeMenuPosition() {
|
|
62
|
+
if (!this.pageSizeDropdownContainer?.nativeElement) {
|
|
63
|
+
this.pageSizeMenuPosition = 'down';
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const triggerRect = this.pageSizeDropdownContainer.nativeElement.getBoundingClientRect();
|
|
67
|
+
const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
|
|
68
|
+
const estimatedOptionHeight = 32;
|
|
69
|
+
const estimatedMenuHeight = Math.min(170, this.pageSizeOptions.length * estimatedOptionHeight + 10);
|
|
70
|
+
const gap = 8;
|
|
71
|
+
const requiredSpace = estimatedMenuHeight + gap;
|
|
72
|
+
const spaceBelow = viewportHeight - triggerRect.bottom;
|
|
73
|
+
this.pageSizeMenuPosition = spaceBelow >= requiredSpace ? 'down' : 'up';
|
|
74
|
+
}
|
|
75
|
+
onWindowResize() {
|
|
76
|
+
if (this.pageSizeOpen) {
|
|
77
|
+
this.updatePageSizeMenuPosition();
|
|
78
|
+
}
|
|
56
79
|
}
|
|
57
80
|
onDocumentClick(event) {
|
|
58
81
|
if (this.pageSizeOpen) {
|
|
@@ -92,10 +115,10 @@ export class PaginationComponent {
|
|
|
92
115
|
}
|
|
93
116
|
}
|
|
94
117
|
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PaginationComponent, selector: "cqa-pagination", inputs: { totalElements: "totalElements", totalPages: "totalPages", pageIndex: "pageIndex", pageSize: "pageSize", pageItemCount: "pageItemCount", pageSizeOptions: "pageSizeOptions" }, outputs: { pageIndexChange: "pageIndexChange", pageSizeChange: "pageSizeChange", paginate: "paginate" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "pageSizeDropdownContainer", first: true, predicate: ["pageSizeDropdownContainer"], descendants: true }], ngImport: i0, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-
|
|
118
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PaginationComponent, selector: "cqa-pagination", inputs: { totalElements: "totalElements", totalPages: "totalPages", pageIndex: "pageIndex", pageSize: "pageSize", pageItemCount: "pageItemCount", pageSizeOptions: "pageSizeOptions" }, outputs: { pageIndexChange: "pageIndexChange", pageSizeChange: "pageSizeChange", paginate: "paginate" }, host: { listeners: { "window:resize": "onWindowResize()", "document:click": "onDocumentClick($event)" }, classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "pageSizeDropdownContainer", first: true, predicate: ["pageSizeDropdownContainer"], descendants: true }], ngImport: i0, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-left-0 cqa-w-[75px] cqa-max-h-[170px] cqa-overflow-auto cqa-rounded-lg cqa-border cqa-border-[#E5E7EB] cqa-bg-white cqa-shadow-[0px_4px_6px_-1px_rgba(0,0,0,0.1)] cqa-p-[5px]\"\n [style.top]=\"pageSizeMenuPosition === 'down' ? 'calc(100% + 8px)' : null\"\n [style.bottom]=\"pageSizeMenuPosition === 'up' ? 'calc(100% + 8px)' : null\"\n role=\"listbox\"\n [attr.aria-activedescendant]=\"'pagesize-' + pageSize\"\n >\n <button\n *ngFor=\"let size of pageSizeOptions\"\n type=\"button\"\n class=\"cqa-w-full cqa-px-2 cqa-py-[6px] hover:cqa-bg-[#F7F8FA] cqa-text-left cqa-rounded-md cqa-text-black-100\"\n [attr.id]=\"'pagesize-' + size\"\n role=\"option\"\n [attr.aria-selected]=\"pageSize === size\"\n (click)=\"selectPageSize(size)\"\n >\n {{ size }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"pagination-right cqa-flex cqa-items-center cqa-gap-[21px]\" *ngIf=\"showRangeAndControls\">\n <div class=\"pagination-range\">\n {{ getStartItem() }}–{{ getEndItem() }} of {{ totalElements }}\n </div>\n <div class=\"pagination-controls cqa-flex cqa-items-stretch cqa-gap-[3.5px]\">\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex === 0\" (click)=\"goToPage(pageIndex - 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.75 10.5L5.25 7L8.75 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex >= computedTotalPages - 1\" (click)=\"goToPage(pageIndex + 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.25 10.5L8.75 7L5.25 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n</div>", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
96
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
97
120
|
type: Component,
|
|
98
|
-
args: [{ selector: 'cqa-pagination', host: { class: 'cqa-ui-root' }, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-
|
|
121
|
+
args: [{ selector: 'cqa-pagination', host: { class: 'cqa-ui-root' }, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-left-0 cqa-w-[75px] cqa-max-h-[170px] cqa-overflow-auto cqa-rounded-lg cqa-border cqa-border-[#E5E7EB] cqa-bg-white cqa-shadow-[0px_4px_6px_-1px_rgba(0,0,0,0.1)] cqa-p-[5px]\"\n [style.top]=\"pageSizeMenuPosition === 'down' ? 'calc(100% + 8px)' : null\"\n [style.bottom]=\"pageSizeMenuPosition === 'up' ? 'calc(100% + 8px)' : null\"\n role=\"listbox\"\n [attr.aria-activedescendant]=\"'pagesize-' + pageSize\"\n >\n <button\n *ngFor=\"let size of pageSizeOptions\"\n type=\"button\"\n class=\"cqa-w-full cqa-px-2 cqa-py-[6px] hover:cqa-bg-[#F7F8FA] cqa-text-left cqa-rounded-md cqa-text-black-100\"\n [attr.id]=\"'pagesize-' + size\"\n role=\"option\"\n [attr.aria-selected]=\"pageSize === size\"\n (click)=\"selectPageSize(size)\"\n >\n {{ size }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"pagination-right cqa-flex cqa-items-center cqa-gap-[21px]\" *ngIf=\"showRangeAndControls\">\n <div class=\"pagination-range\">\n {{ getStartItem() }}–{{ getEndItem() }} of {{ totalElements }}\n </div>\n <div class=\"pagination-controls cqa-flex cqa-items-stretch cqa-gap-[3.5px]\">\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex === 0\" (click)=\"goToPage(pageIndex - 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.75 10.5L5.25 7L8.75 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex >= computedTotalPages - 1\" (click)=\"goToPage(pageIndex + 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.25 10.5L8.75 7L5.25 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
99
122
|
}], propDecorators: { totalElements: [{
|
|
100
123
|
type: Input
|
|
101
124
|
}], totalPages: [{
|
|
@@ -117,8 +140,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
117
140
|
}], pageSizeDropdownContainer: [{
|
|
118
141
|
type: ViewChild,
|
|
119
142
|
args: ['pageSizeDropdownContainer', { static: false }]
|
|
143
|
+
}], onWindowResize: [{
|
|
144
|
+
type: HostListener,
|
|
145
|
+
args: ['window:resize']
|
|
120
146
|
}], onDocumentClick: [{
|
|
121
147
|
type: HostListener,
|
|
122
148
|
args: ['document:click', ['$event']]
|
|
123
149
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7OztBQWE1RyxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT1csa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFMUIsY0FBUyxHQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDakMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUFXLENBQUMsQ0FBQyxDQUFDLGtEQUFrRDtRQUM3RSxvQkFBZSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRTFELCtDQUErQztRQUMvQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixnQkFBVyxHQUFHO1lBQ1osV0FBVyxFQUFFLGFBQWE7WUFDMUIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtnQkFDckIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFB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QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkNoYW5nZSB7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSB0b3RhbEVsZW1lbnRzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFBhZ2VzPzogbnVtYmVyIHwgbnVsbDtcbiAgQElucHV0KCkgcGFnZUluZGV4OiBudW1iZXIgPSAwOyAvLyAwLWJhc2VkXG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgcGFnZUl0ZW1Db3VudDogbnVtYmVyID0gMDsgLy8gbnVtYmVyIG9mIGl0ZW1zIGN1cnJlbnRseSByZW5kZXJlZCBvbiB0aGlzIHBhZ2VcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDQwLCA2MCwgODBdO1xuXG4gIEBPdXRwdXQoKSBwYWdlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwYWdpbmF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbkNoYW5nZT4oKTtcblxuICAvLyBMb2NhbCBVSSBzdGF0ZSBmb3IgY3VzdG9tIHBhZ2Utc2l6ZSBkcm9wZG93blxuICBwYWdlU2l6ZU9wZW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdwYWdlU2l6ZURyb3Bkb3duQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2VTaXplRHJvcGRvd25Db250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIHBhZ2VzT3B0aW9uID0ge1xuICAgIHBsYWNlaG9sZGVyOiAnQ2hvb3NlIHBhZ2UnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyBpZDogMSwgbmFtZTogJzEwJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJzIwJyB9LFxuICAgICAgeyBpZDogMywgbmFtZTogJzMwJyB9LFxuICAgICAgeyBpZDogNCwgbmFtZTogJzQwJyB9LFxuICAgIF0sXG4gIH1cbiAgXG5cbiAgZ2V0IGNvbXB1dGVkVG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgIT0gbnVsbCAmJiB0aGlzLnRvdGFsUGFnZXMgPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy50b3RhbFBhZ2VzO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlU2l6ZSA+IDAgJiYgdGhpcy50b3RhbEVsZW1lbnRzID49IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heCgxLCBNYXRoLmNlaWwodGhpcy50b3RhbEVsZW1lbnRzIC8gdGhpcy5wYWdlU2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldFN0YXJ0SXRlbSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy50b3RhbEVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFnZUluZGV4ICogdGhpcy5wYWdlU2l6ZSArIDE7XG4gIH1cblxuICBnZXRFbmRJdGVtKCk6IG51bWJlciB7XG4gICAgY29uc3QgZW5kID0gdGhpcy5nZXRTdGFydEl0ZW0oKSArIHRoaXMucGFnZUl0ZW1Db3VudCAtIDE7XG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4oZW5kLCB0aGlzLnRvdGFsRWxlbWVudHMpO1xuICB9XG5cbiAgZ2V0IHNob3dSYW5nZUFuZENvbnRyb2xzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdGFsRWxlbWVudHMgPiB0aGlzLnBhZ2VTaXplO1xuICB9XG5cbiAgdG9nZ2xlUGFnZVNpemVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZVNpemVPcGVuID0gIXRoaXMucGFnZVNpemVPcGVuO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYWdlU2l6ZU9wZW4pIHtcbiAgICAgIGlmICh0aGlzLnBhZ2VTaXplRHJvcGRvd25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMucGFnZVNpemVEcm9wZG93bkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RQYWdlU2l6ZShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYWdlU2l6ZSAhPT0gc2l6ZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHNpemU7XG4gICAgICB0aGlzLm9uUGFnZVNpemVDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIG9uUGFnZVNpemVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSAwO1xuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VTaXplKTtcbiAgICB0aGlzLnBhZ2VJbmRleENoYW5nZS5lbWl0KHRoaXMucGFnZUluZGV4KTtcbiAgICB0aGlzLnBhZ2luYXRlLmVtaXQoeyBwYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9KTtcbiAgfVxuXG4gIGdvVG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsYXN0SW5kZXggPSBNYXRoLm1heCgwLCB0aGlzLmNvbXB1dGVkVG90YWxQYWdlcyAtIDEpO1xuICAgIGNvbnN0IG5leHQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihpbmRleCwgbGFzdEluZGV4KSk7XG4gICAgaWYgKG5leHQgPT09IHRoaXMucGFnZUluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGFnZUluZGV4ID0gbmV4dDtcbiAgICB0aGlzLnBhZ2VJbmRleENoYW5nZS5lbWl0KHRoaXMucGFnZUluZGV4KTtcbiAgICB0aGlzLnBhZ2luYXRlLmVtaXQoeyBwYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9KTtcbiAgfVxufVxuXG5cbiIsIjwhLS0gQm90dG9tIFBhZ2luYXRpb24gLS0+XG48ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiA+XG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXItcGFnaW5hdGlvbiBjcWEtdGV4dC1ncmV5LTMwMCBjcWEtdGV4dC1bMTIuM3B4XSBjcWEtbGVhZGluZy1bMTcuNXB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1mbGV4LXdyYXAgY3FhLWJnLXN1cmZhY2UtZGVmYXVsdCBjcWEtcHgtWzIxcHhdIGNxYS1weS1bMTVweF1cIiAqbmdJZj1cInBhZ2VJdGVtQ291bnQgJiYgdG90YWxFbGVtZW50c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWluZm8gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs3cHhdIGNxYS1yZWxhdGl2ZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJyb3dzLWxhYmVsXCI+Um93cyBwZXIgcGFnZTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcmVsYXRpdmVcIiAjcGFnZVNpemVEcm9wZG93bkNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBDdXN0b20gU2VsZWN0IFRyaWdnZXIgLS0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzE5cHhdIGNxYS1iZy13aGl0ZSBjcWEtdGV4dC1ibGFjay0xMDAgY3FhLXJvdW5kZWQtWzVweF0gY3FhLXB4LVsxMS41cHhdIGNxYS1weS1bNi43NXB4XVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhZ2VTaXplTWVudSgpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInBhZ2VTaXplT3BlblwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZVNpemUgfX1cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBvcGFjaXR5PVwiMC41XCI+PHBhdGggZD1cIk0zLjUgNS4yNUw3IDguNzVMMTAuNSA1LjI1XCIgc3Ryb2tlPVwiIzcxNzE4MlwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPCEtLSBEcm9wZG93biBNZW51IC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJwYWdlU2l6ZU9wZW5cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS16LVsxMDBdIGNxYS1ib3R0b20tW2NhbGMoMTAwJSs4cHgpXSBjcWEtbGVmdC0wIGNxYS13LVs3NXB4XSBjcWEtbWF4LWgtWzE3MHB4XSBjcWEtb3ZlcmZsb3ctYXV0byBjcWEtcm91bmRlZC1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1iZy13aGl0ZSBjcWEtc2hhZG93LVswcHhfNHB4XzZweF8tMXB4X3JnYmEoMCwwLDAsMC4xKV0gY3FhLXAtWzVweF1cIlxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ3BhZ2VzaXplLScgKyBwYWdlU2l6ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB4LTIgY3FhLXB5LVs2cHhdIGhvdmVyOmNxYS1iZy1bI0Y3RjhGQV0gY3FhLXRleHQtbGVmdCBjcWEtcm91bmRlZC1tZCBjcWEtdGV4dC1ibGFjay0xMDBcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3BhZ2VzaXplLScgKyBzaXplXCJcbiAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJwYWdlU2l6ZSA9PT0gc2l6ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGFnZVNpemUoc2l6ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHNpemUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLXJpZ2h0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bMjFweF1cIiAqbmdJZj1cInNob3dSYW5nZUFuZENvbnRyb2xzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1yYW5nZVwiPlxuICAgICAgICB7eyBnZXRTdGFydEl0ZW0oKSB9fSZuZGFzaDt7eyBnZXRFbmRJdGVtKCkgfX0gb2Yge3sgdG90YWxFbGVtZW50cyB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1jb250cm9scyBjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLVszLjVweF1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBhZ2luYXRpb24tYnRuIGNxYS13LVsyOHB4XSBjcWEtaC1bMjhweF0gY3FhLW1pbi13LVsyOHB4XSBjcWEtcm91bmRlZC1bNXB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1iZy1bI0Y3RjhGQV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIiBbZGlzYWJsZWRdPVwicGFnZUluZGV4ID09PSAwXCIgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VJbmRleCAtIDEpXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk04Ljc1IDEwLjVMNS4yNSA3TDguNzUgMy41XCIgc3Ryb2tlPVwiIzgzODM4NFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnaW5hdGlvbi1idG4gY3FhLXctWzI4cHhdIGNxYS1oLVsyOHB4XSBjcWEtbWluLXctWzI4cHhdIGNxYS1yb3VuZGVkLVs1cHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLWJnLVsjRjdGOEZBXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiIFtkaXNhYmxlZF09XCJwYWdlSW5kZXggPj0gY29tcHV0ZWRUb3RhbFBhZ2VzIC0gMVwiIChjbGljayk9XCJnb1RvUGFnZShwYWdlSW5kZXggKyAxKVwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS4yNSAxMC41TDguNzUgN0w1LjI1IDMuNVwiIHN0cm9rZT1cIiM4MzgzODRcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7OztBQWE1RyxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT1csa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFMUIsY0FBUyxHQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDakMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUFXLENBQUMsQ0FBQyxDQUFDLGtEQUFrRDtRQUM3RSxvQkFBZSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRTFELCtDQUErQztRQUMvQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix5QkFBb0IsR0FBa0IsTUFBTSxDQUFDO1FBSTdDLGdCQUFXLEdBQUc7WUFDWixXQUFXLEVBQUUsYUFBYTtZQUMxQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNyQixFQUFF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eyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ2hhbmdlIHtcbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRvdGFsRWxlbWVudHM6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRvdGFsUGFnZXM/OiBudW1iZXIgfCBudWxsO1xuICBASW5wdXQoKSBwYWdlSW5kZXg6IG51bWJlciA9IDA7IC8vIDAtYmFzZWRcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuICBASW5wdXQoKSBwYWdlSXRlbUNvdW50OiBudW1iZXIgPSAwOyAvLyBudW1iZXIgb2YgaXRlbXMgY3VycmVudGx5IHJlbmRlcmVkIG9uIHRoaXMgcGFnZVxuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgNDAsIDYwLCA4MF07XG5cbiAgQE91dHB1dCgpIHBhZ2VJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHBhZ2luYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uQ2hhbmdlPigpO1xuXG4gIC8vIExvY2FsIFVJIHN0YXRlIGZvciBjdXN0b20gcGFnZS1zaXplIGRyb3Bkb3duXG4gIHBhZ2VTaXplT3BlbiA9IGZhbHNlO1xuICBwYWdlU2l6ZU1lbnVQb3NpdGlvbjogJ3VwJyB8ICdkb3duJyA9ICdkb3duJztcblxuICBAVmlld0NoaWxkKCdwYWdlU2l6ZURyb3Bkb3duQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2VTaXplRHJvcGRvd25Db250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIHBhZ2VzT3B0aW9uID0ge1xuICAgIHBsYWNlaG9sZGVyOiAnQ2hvb3NlIHBhZ2UnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyBpZDogMSwgbmFtZTogJzEwJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJzIwJyB9LFxuICAgICAgeyBpZDogMywgbmFtZTogJzMwJyB9LFxuICAgICAgeyBpZDogNCwgbmFtZTogJzQwJyB9LFxuICAgIF0sXG4gIH1cbiAgXG5cbiAgZ2V0IGNvbXB1dGVkVG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgIT0gbnVsbCAmJiB0aGlzLnRvdGFsUGFnZXMgPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy50b3RhbFBhZ2VzO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlU2l6ZSA+IDAgJiYgdGhpcy50b3RhbEVsZW1lbnRzID49IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heCgxLCBNYXRoLmNlaWwodGhpcy50b3RhbEVsZW1lbnRzIC8gdGhpcy5wYWdlU2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldFN0YXJ0SXRlbSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy50b3RhbEVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFnZUluZGV4ICogdGhpcy5wYWdlU2l6ZSArIDE7XG4gIH1cblxuICBnZXRFbmRJdGVtKCk6IG51bWJlciB7XG4gICAgY29uc3QgZW5kID0gdGhpcy5nZXRTdGFydEl0ZW0oKSArIHRoaXMucGFnZUl0ZW1Db3VudCAtIDE7XG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4oZW5kLCB0aGlzLnRvdGFsRWxlbWVudHMpO1xuICB9XG5cbiAgZ2V0IHNob3dSYW5nZUFuZENvbnRyb2xzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdGFsRWxlbWVudHMgPiB0aGlzLnBhZ2VTaXplO1xuICB9XG5cbiAgdG9nZ2xlUGFnZVNpemVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZVNpemVPcGVuID0gIXRoaXMucGFnZVNpemVPcGVuO1xuICAgIGlmICh0aGlzLnBhZ2VTaXplT3Blbikge1xuICAgICAgdGhpcy51cGRhdGVQYWdlU2l6ZU1lbnVQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFnZVNpemVNZW51UG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBhZ2VTaXplRHJvcGRvd25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMucGFnZVNpemVNZW51UG9zaXRpb24gPSAnZG93bic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlclJlY3QgPSB0aGlzLnBhZ2VTaXplRHJvcGRvd25Db250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDA7XG4gICAgY29uc3QgZXN0aW1hdGVkT3B0aW9uSGVpZ2h0ID0gMzI7XG4gICAgY29uc3QgZXN0aW1hdGVkTWVudUhlaWdodCA9IE1hdGgubWluKDE3MCwgdGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoICogZXN0aW1hdGVkT3B0aW9uSGVpZ2h0ICsgMTApO1xuICAgIGNvbnN0IGdhcCA9IDg7XG4gICAgY29uc3QgcmVxdWlyZWRTcGFjZSA9IGVzdGltYXRlZE1lbnVIZWlnaHQgKyBnYXA7XG4gICAgY29uc3Qgc3BhY2VCZWxvdyA9IHZpZXdwb3J0SGVpZ2h0IC0gdHJpZ2dlclJlY3QuYm90dG9tO1xuXG4gICAgdGhpcy5wYWdlU2l6ZU1lbnVQb3NpdGlvbiA9IHNwYWNlQmVsb3cgPj0gcmVxdWlyZWRTcGFjZSA/ICdkb3duJyA6ICd1cCc7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnZVNpemVPcGVuKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhZ2VTaXplTWVudVBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYWdlU2l6ZU9wZW4pIHtcbiAgICAgIGlmICh0aGlzLnBhZ2VTaXplRHJvcGRvd25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMucGFnZVNpemVEcm9wZG93bkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RQYWdlU2l6ZShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYWdlU2l6ZSAhPT0gc2l6ZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHNpemU7XG4gICAgICB0aGlzLm9uUGFnZVNpemVDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5wYWdlU2l6ZU9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIG9uUGFnZVNpemVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSAwO1xuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VTaXplKTtcbiAgICB0aGlzLnBhZ2VJbmRleENoYW5nZS5lbWl0KHRoaXMucGFnZUluZGV4KTtcbiAgICB0aGlzLnBhZ2luYXRlLmVtaXQoeyBwYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9KTtcbiAgfVxuXG4gIGdvVG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsYXN0SW5kZXggPSBNYXRoLm1heCgwLCB0aGlzLmNvbXB1dGVkVG90YWxQYWdlcyAtIDEpO1xuICAgIGNvbnN0IG5leHQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihpbmRleCwgbGFzdEluZGV4KSk7XG4gICAgaWYgKG5leHQgPT09IHRoaXMucGFnZUluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGFnZUluZGV4ID0gbmV4dDtcbiAgICB0aGlzLnBhZ2VJbmRleENoYW5nZS5lbWl0KHRoaXMucGFnZUluZGV4KTtcbiAgICB0aGlzLnBhZ2luYXRlLmVtaXQoeyBwYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9KTtcbiAgfVxufVxuXG5cbiIsIjwhLS0gQm90dG9tIFBhZ2luYXRpb24gLS0+XG48ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiA+XG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXItcGFnaW5hdGlvbiBjcWEtdGV4dC1ncmV5LTMwMCBjcWEtdGV4dC1bMTIuM3B4XSBjcWEtbGVhZGluZy1bMTcuNXB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1mbGV4LXdyYXAgY3FhLWJnLXN1cmZhY2UtZGVmYXVsdCBjcWEtcHgtWzIxcHhdIGNxYS1weS1bMTVweF1cIiAqbmdJZj1cInBhZ2VJdGVtQ291bnQgJiYgdG90YWxFbGVtZW50c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWluZm8gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs3cHhdIGNxYS1yZWxhdGl2ZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJyb3dzLWxhYmVsXCI+Um93cyBwZXIgcGFnZTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcmVsYXRpdmVcIiAjcGFnZVNpemVEcm9wZG93bkNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBDdXN0b20gU2VsZWN0IFRyaWdnZXIgLS0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzE5cHhdIGNxYS1iZy13aGl0ZSBjcWEtdGV4dC1ibGFjay0xMDAgY3FhLXJvdW5kZWQtWzVweF0gY3FhLXB4LVsxMS41cHhdIGNxYS1weS1bNi43NXB4XVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhZ2VTaXplTWVudSgpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInBhZ2VTaXplT3BlblwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZVNpemUgfX1cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBvcGFjaXR5PVwiMC41XCI+PHBhdGggZD1cIk0zLjUgNS4yNUw3IDguNzVMMTAuNSA1LjI1XCIgc3Ryb2tlPVwiIzcxNzE4MlwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPCEtLSBEcm9wZG93biBNZW51IC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJwYWdlU2l6ZU9wZW5cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS16LVsxMDBdIGNxYS1sZWZ0LTAgY3FhLXctWzc1cHhdIGNxYS1tYXgtaC1bMTcwcHhdIGNxYS1vdmVyZmxvdy1hdXRvIGNxYS1yb3VuZGVkLWxnIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLWJnLXdoaXRlIGNxYS1zaGFkb3ctWzBweF80cHhfNnB4Xy0xcHhfcmdiYSgwLDAsMCwwLjEpXSBjcWEtcC1bNXB4XVwiXG4gICAgICAgICAgW3N0eWxlLnRvcF09XCJwYWdlU2l6ZU1lbnVQb3NpdGlvbiA9PT0gJ2Rvd24nID8gJ2NhbGMoMTAwJSArIDhweCknIDogbnVsbFwiXG4gICAgICAgICAgW3N0eWxlLmJvdHRvbV09XCJwYWdlU2l6ZU1lbnVQb3NpdGlvbiA9PT0gJ3VwJyA/ICdjYWxjKDEwMCUgKyA4cHgpJyA6IG51bGxcIlxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ3BhZ2VzaXplLScgKyBwYWdlU2l6ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB4LTIgY3FhLXB5LVs2cHhdIGhvdmVyOmNxYS1iZy1bI0Y3RjhGQV0gY3FhLXRleHQtbGVmdCBjcWEtcm91bmRlZC1tZCBjcWEtdGV4dC1ibGFjay0xMDBcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3BhZ2VzaXplLScgKyBzaXplXCJcbiAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJwYWdlU2l6ZSA9PT0gc2l6ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGFnZVNpemUoc2l6ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHNpemUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLXJpZ2h0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bMjFweF1cIiAqbmdJZj1cInNob3dSYW5nZUFuZENvbnRyb2xzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1yYW5nZVwiPlxuICAgICAgICB7eyBnZXRTdGFydEl0ZW0oKSB9fSZuZGFzaDt7eyBnZXRFbmRJdGVtKCkgfX0gb2Yge3sgdG90YWxFbGVtZW50cyB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1jb250cm9scyBjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLVszLjVweF1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBhZ2luYXRpb24tYnRuIGNxYS13LVsyOHB4XSBjcWEtaC1bMjhweF0gY3FhLW1pbi13LVsyOHB4XSBjcWEtcm91bmRlZC1bNXB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1iZy1bI0Y3RjhGQV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIiBbZGlzYWJsZWRdPVwicGFnZUluZGV4ID09PSAwXCIgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VJbmRleCAtIDEpXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk04Ljc1IDEwLjVMNS4yNSA3TDguNzUgMy41XCIgc3Ryb2tlPVwiIzgzODM4NFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnaW5hdGlvbi1idG4gY3FhLXctWzI4cHhdIGNxYS1oLVsyOHB4XSBjcWEtbWluLXctWzI4cHhdIGNxYS1yb3VuZGVkLVs1cHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLWJnLVsjRjdGOEZBXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiIFtkaXNhYmxlZF09XCJwYWdlSW5kZXggPj0gY29tcHV0ZWRUb3RhbFBhZ2VzIC0gMVwiIChjbGljayk9XCJnb1RvUGFnZShwYWdlSW5kZXggKyAxKVwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS4yNSAxMC41TDguNzUgN0w1LjI1IDMuNVwiIHN0cm9rZT1cIiM4MzgzODRcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -1646,6 +1646,7 @@ class PaginationComponent {
|
|
|
1646
1646
|
this.paginate = new EventEmitter();
|
|
1647
1647
|
// Local UI state for custom page-size dropdown
|
|
1648
1648
|
this.pageSizeOpen = false;
|
|
1649
|
+
this.pageSizeMenuPosition = 'down';
|
|
1649
1650
|
this.pagesOption = {
|
|
1650
1651
|
placeholder: 'Choose page',
|
|
1651
1652
|
disabled: false,
|
|
@@ -1686,6 +1687,29 @@ class PaginationComponent {
|
|
|
1686
1687
|
}
|
|
1687
1688
|
togglePageSizeMenu() {
|
|
1688
1689
|
this.pageSizeOpen = !this.pageSizeOpen;
|
|
1690
|
+
if (this.pageSizeOpen) {
|
|
1691
|
+
this.updatePageSizeMenuPosition();
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
updatePageSizeMenuPosition() {
|
|
1695
|
+
var _a;
|
|
1696
|
+
if (!((_a = this.pageSizeDropdownContainer) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
|
|
1697
|
+
this.pageSizeMenuPosition = 'down';
|
|
1698
|
+
return;
|
|
1699
|
+
}
|
|
1700
|
+
const triggerRect = this.pageSizeDropdownContainer.nativeElement.getBoundingClientRect();
|
|
1701
|
+
const viewportHeight = window.innerHeight || document.documentElement.clientHeight || 0;
|
|
1702
|
+
const estimatedOptionHeight = 32;
|
|
1703
|
+
const estimatedMenuHeight = Math.min(170, this.pageSizeOptions.length * estimatedOptionHeight + 10);
|
|
1704
|
+
const gap = 8;
|
|
1705
|
+
const requiredSpace = estimatedMenuHeight + gap;
|
|
1706
|
+
const spaceBelow = viewportHeight - triggerRect.bottom;
|
|
1707
|
+
this.pageSizeMenuPosition = spaceBelow >= requiredSpace ? 'down' : 'up';
|
|
1708
|
+
}
|
|
1709
|
+
onWindowResize() {
|
|
1710
|
+
if (this.pageSizeOpen) {
|
|
1711
|
+
this.updatePageSizeMenuPosition();
|
|
1712
|
+
}
|
|
1689
1713
|
}
|
|
1690
1714
|
onDocumentClick(event) {
|
|
1691
1715
|
var _a;
|
|
@@ -1726,10 +1750,10 @@ class PaginationComponent {
|
|
|
1726
1750
|
}
|
|
1727
1751
|
}
|
|
1728
1752
|
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1729
|
-
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PaginationComponent, selector: "cqa-pagination", inputs: { totalElements: "totalElements", totalPages: "totalPages", pageIndex: "pageIndex", pageSize: "pageSize", pageItemCount: "pageItemCount", pageSizeOptions: "pageSizeOptions" }, outputs: { pageIndexChange: "pageIndexChange", pageSizeChange: "pageSizeChange", paginate: "paginate" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "pageSizeDropdownContainer", first: true, predicate: ["pageSizeDropdownContainer"], descendants: true }], ngImport: i0, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-
|
|
1753
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PaginationComponent, selector: "cqa-pagination", inputs: { totalElements: "totalElements", totalPages: "totalPages", pageIndex: "pageIndex", pageSize: "pageSize", pageItemCount: "pageItemCount", pageSizeOptions: "pageSizeOptions" }, outputs: { pageIndexChange: "pageIndexChange", pageSizeChange: "pageSizeChange", paginate: "paginate" }, host: { listeners: { "window:resize": "onWindowResize()", "document:click": "onDocumentClick($event)" }, classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "pageSizeDropdownContainer", first: true, predicate: ["pageSizeDropdownContainer"], descendants: true }], ngImport: i0, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-left-0 cqa-w-[75px] cqa-max-h-[170px] cqa-overflow-auto cqa-rounded-lg cqa-border cqa-border-[#E5E7EB] cqa-bg-white cqa-shadow-[0px_4px_6px_-1px_rgba(0,0,0,0.1)] cqa-p-[5px]\"\n [style.top]=\"pageSizeMenuPosition === 'down' ? 'calc(100% + 8px)' : null\"\n [style.bottom]=\"pageSizeMenuPosition === 'up' ? 'calc(100% + 8px)' : null\"\n role=\"listbox\"\n [attr.aria-activedescendant]=\"'pagesize-' + pageSize\"\n >\n <button\n *ngFor=\"let size of pageSizeOptions\"\n type=\"button\"\n class=\"cqa-w-full cqa-px-2 cqa-py-[6px] hover:cqa-bg-[#F7F8FA] cqa-text-left cqa-rounded-md cqa-text-black-100\"\n [attr.id]=\"'pagesize-' + size\"\n role=\"option\"\n [attr.aria-selected]=\"pageSize === size\"\n (click)=\"selectPageSize(size)\"\n >\n {{ size }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"pagination-right cqa-flex cqa-items-center cqa-gap-[21px]\" *ngIf=\"showRangeAndControls\">\n <div class=\"pagination-range\">\n {{ getStartItem() }}–{{ getEndItem() }} of {{ totalElements }}\n </div>\n <div class=\"pagination-controls cqa-flex cqa-items-stretch cqa-gap-[3.5px]\">\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex === 0\" (click)=\"goToPage(pageIndex - 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.75 10.5L5.25 7L8.75 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex >= computedTotalPages - 1\" (click)=\"goToPage(pageIndex + 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.25 10.5L8.75 7L5.25 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n</div>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
1730
1754
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
1731
1755
|
type: Component,
|
|
1732
|
-
args: [{ selector: 'cqa-pagination', host: { class: 'cqa-ui-root' }, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-
|
|
1756
|
+
args: [{ selector: 'cqa-pagination', host: { class: 'cqa-ui-root' }, template: "<!-- Bottom Pagination -->\n<div class=\"cqa-ui-root\" >\n <div class=\"table-footer-pagination cqa-text-grey-300 cqa-text-[12.3px] cqa-leading-[17.5px] cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-bg-surface-default cqa-px-[21px] cqa-py-[15px]\" *ngIf=\"pageItemCount && totalElements\">\n <div class=\"pagination-info cqa-flex cqa-items-center cqa-gap-[7px] cqa-relative\">\n <span class=\"rows-label\">Rows per page</span>\n <div class=\"cqa-relative\" #pageSizeDropdownContainer>\n <!-- Custom Select Trigger -->\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[19px] cqa-bg-white cqa-text-black-100 cqa-rounded-[5px] cqa-px-[11.5px] cqa-py-[6.75px]\"\n (click)=\"togglePageSizeMenu()\"\n [attr.aria-expanded]=\"pageSizeOpen\"\n aria-haspopup=\"listbox\"\n >\n {{ pageSize }}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g opacity=\"0.5\"><path d=\"M3.5 5.25L7 8.75L10.5 5.25\" stroke=\"#717182\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>\n </button>\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"pageSizeOpen\"\n class=\"cqa-absolute cqa-z-[100] cqa-left-0 cqa-w-[75px] cqa-max-h-[170px] cqa-overflow-auto cqa-rounded-lg cqa-border cqa-border-[#E5E7EB] cqa-bg-white cqa-shadow-[0px_4px_6px_-1px_rgba(0,0,0,0.1)] cqa-p-[5px]\"\n [style.top]=\"pageSizeMenuPosition === 'down' ? 'calc(100% + 8px)' : null\"\n [style.bottom]=\"pageSizeMenuPosition === 'up' ? 'calc(100% + 8px)' : null\"\n role=\"listbox\"\n [attr.aria-activedescendant]=\"'pagesize-' + pageSize\"\n >\n <button\n *ngFor=\"let size of pageSizeOptions\"\n type=\"button\"\n class=\"cqa-w-full cqa-px-2 cqa-py-[6px] hover:cqa-bg-[#F7F8FA] cqa-text-left cqa-rounded-md cqa-text-black-100\"\n [attr.id]=\"'pagesize-' + size\"\n role=\"option\"\n [attr.aria-selected]=\"pageSize === size\"\n (click)=\"selectPageSize(size)\"\n >\n {{ size }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"pagination-right cqa-flex cqa-items-center cqa-gap-[21px]\" *ngIf=\"showRangeAndControls\">\n <div class=\"pagination-range\">\n {{ getStartItem() }}–{{ getEndItem() }} of {{ totalElements }}\n </div>\n <div class=\"pagination-controls cqa-flex cqa-items-stretch cqa-gap-[3.5px]\">\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex === 0\" (click)=\"goToPage(pageIndex - 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.75 10.5L5.25 7L8.75 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n <button class=\"pagination-btn cqa-w-[28px] cqa-h-[28px] cqa-min-w-[28px] cqa-rounded-[5px] cqa-border cqa-border-[#E5E7EB] cqa-bg-[#F7F8FA] cqa-flex cqa-items-center cqa-justify-center\" [disabled]=\"pageIndex >= computedTotalPages - 1\" (click)=\"goToPage(pageIndex + 1)\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.25 10.5L8.75 7L5.25 3.5\" stroke=\"#838384\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
1733
1757
|
}], propDecorators: { totalElements: [{
|
|
1734
1758
|
type: Input
|
|
1735
1759
|
}], totalPages: [{
|
|
@@ -1751,6 +1775,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
1751
1775
|
}], pageSizeDropdownContainer: [{
|
|
1752
1776
|
type: ViewChild,
|
|
1753
1777
|
args: ['pageSizeDropdownContainer', { static: false }]
|
|
1778
|
+
}], onWindowResize: [{
|
|
1779
|
+
type: HostListener,
|
|
1780
|
+
args: ['window:resize']
|
|
1754
1781
|
}], onDocumentClick: [{
|
|
1755
1782
|
type: HostListener,
|
|
1756
1783
|
args: ['document:click', ['$event']]
|
|
@@ -20102,6 +20129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
20102
20129
|
class ErrorModalComponent {
|
|
20103
20130
|
constructor() {
|
|
20104
20131
|
this.isOpen = false;
|
|
20132
|
+
this.status = 'error';
|
|
20105
20133
|
this.title = 'Error';
|
|
20106
20134
|
this.errorMessage = '';
|
|
20107
20135
|
this.totalSteps = 0;
|
|
@@ -20147,12 +20175,14 @@ class ErrorModalComponent {
|
|
|
20147
20175
|
}
|
|
20148
20176
|
}
|
|
20149
20177
|
ErrorModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ErrorModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20150
|
-
ErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ErrorModalComponent, selector: "cqa-error-modal", inputs: { isOpen: "isOpen", title: "title", instructionalMessage: "instructionalMessage", errorMessage: "errorMessage", totalSteps: "totalSteps", completedSteps: "completedSteps", totalTime: "totalTime", appTime: "appTime", toolTime: "toolTime", buttons: "buttons", showLoading: "showLoading", loadingBadgeInlineStyles: "loadingBadgeInlineStyles" }, outputs: { buttonClick: "buttonClick", closeModal: "closeModal" }, ngImport: i0, template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div>\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n\n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n Error Message\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", components: [{ type: BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }, { type: ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
20178
|
+
ErrorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ErrorModalComponent, selector: "cqa-error-modal", inputs: { isOpen: "isOpen", status: "status", title: "title", instructionalMessage: "instructionalMessage", errorMessage: "errorMessage", totalSteps: "totalSteps", completedSteps: "completedSteps", totalTime: "totalTime", appTime: "appTime", toolTime: "toolTime", buttons: "buttons", showLoading: "showLoading", loadingBadgeInlineStyles: "loadingBadgeInlineStyles" }, outputs: { buttonClick: "buttonClick", closeModal: "closeModal" }, ngImport: i0, template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div *ngIf=\"status === 'error'\">\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n <div *ngIf=\"status === 'success'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#AEE9D4\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#CFF2E5\" stroke-width=\"8\"/>\n <path d=\"M75.25 43.8549V46.4999C75.2465 52.6996 73.2389 58.732 69.5268 63.6976C65.8147 68.6632 60.5969 72.2957 54.6517 74.0536C48.7064 75.8114 42.3521 75.6003 36.5366 73.4518C30.7211 71.3033 25.7559 67.3324 22.3815 62.1314C19.0071 56.9305 17.4044 50.778 17.8123 44.5918C18.2202 38.4055 20.617 32.5168 24.6451 27.8039C28.6731 23.0911 34.1168 19.8066 40.164 18.4403C46.2113 17.074 52.5383 17.6991 58.2013 20.2224M75.25 23.4999L46.5 52.2786L37.875 43.6536\" stroke=\"#0DBD7D\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n \n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n {{ status === 'success' ? 'Details' : 'Error Message' }}\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", components: [{ type: BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }, { type: ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
20151
20179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ErrorModalComponent, decorators: [{
|
|
20152
20180
|
type: Component,
|
|
20153
|
-
args: [{ selector: 'cqa-error-modal', template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div>\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n\n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n Error Message\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", styles: [] }]
|
|
20181
|
+
args: [{ selector: 'cqa-error-modal', template: "<div *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-[9999] cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div\n class=\"cqa-rounded-lg cqa-bg-white cqa-shadow-xl cqa-w-full cqa-max-w-[500px] cqa-overflow-hidden cqa-p-6 cqa-flex cqa-flex-col cqa-gap-2 cqa-max-h-[85vh] cqa-overflow-y-auto\"\n style=\"box-shadow: 0px 8px 8px -4px #10182808;\" (click)=\"$event.stopPropagation()\">\n\n <div class=\"cqa-flex cqa-flex-col cqa-items-center\">\n <div *ngIf=\"status === 'error'\">\n <svg width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#F15F5F\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#FCD9D9\" stroke-width=\"8\"/>\n <path d=\"M32.3815 62.4437H60.619C63.5065 62.4437 65.3065 59.3125 63.8627 56.8188L49.744 32.425C48.3002 29.9313 44.7002 29.9313 43.2565 32.425L29.1377 56.8188C27.694 59.3125 29.494 62.4437 32.3815 62.4437ZM46.5002 49.3188C45.469 49.3188 44.6252 48.475 44.6252 47.4438V43.6938C44.6252 42.6625 45.469 41.8188 46.5002 41.8188C47.5315 41.8188 48.3752 42.6625 48.3752 43.6938V47.4438C48.3752 48.475 47.5315 49.3188 46.5002 49.3188ZM48.3752 56.8188H44.6252V53.0688H48.3752V56.8188Z\" fill=\"white\"/>\n </svg>\n </div>\n <div *ngIf=\"status === 'success'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"93\" height=\"93\" viewBox=\"0 0 93 93\" fill=\"none\">\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" fill=\"#AEE9D4\"/>\n <rect x=\"4\" y=\"4\" width=\"85\" height=\"85\" rx=\"42.5\" stroke=\"#CFF2E5\" stroke-width=\"8\"/>\n <path d=\"M75.25 43.8549V46.4999C75.2465 52.6996 73.2389 58.732 69.5268 63.6976C65.8147 68.6632 60.5969 72.2957 54.6517 74.0536C48.7064 75.8114 42.3521 75.6003 36.5366 73.4518C30.7211 71.3033 25.7559 67.3324 22.3815 62.1314C19.0071 56.9305 17.4044 50.778 17.8123 44.5918C18.2202 38.4055 20.617 32.5168 24.6451 27.8039C28.6731 23.0911 34.1168 19.8066 40.164 18.4403C46.2113 17.074 52.5383 17.6991 58.2013 20.2224M75.25 23.4999L46.5 52.2786L37.875 43.6536\" stroke=\"#0DBD7D\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n \n <h2 class=\"cqa-text-[22px] cqa-font-semibold cqa-text-[#0B0B0C] cqa-mt-[20px] cqa-leading-[28px]\">\n {{ title }}\n </h2>\n\n <!-- Instructional Message -->\n <p *ngIf=\"instructionalMessage\" class=\"cqa-text-sm cqa-text-[#4A5565] cqa-mt-2 cqa-text-center\">\n {{ instructionalMessage }}\n </p>\n </div>\n\n <!-- <div *ngIf=\"hasTimingData\" class=\"cqa-rounded-lg cqa-border cqa-p-[17px] cqa-my-4\" [ngClass]=\"stepsBackgroundClass\"\n style=\"border: 1px solid;\" [style.border-color]=\"stepsBorderClass\">\n <div\n class=\"cqa-grid sm:cqa-flex sm:cqa-justify-between sm:cqa-items-center cqa-grid-cols-2 sm:cqa-grid-cols-4 cqa-gap-4 sm:cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalSteps\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Steps</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ completedSteps }} / {{ totalSteps }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"totalTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Total Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ totalTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"appTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">App Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ appTime }}\n </span>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col\" *ngIf=\"toolTime\">\n <span class=\"cqa-text-xs cqa-text-[#4A5565] cqa-mb-1\">Tool Time</span>\n <span class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#101828]\">\n {{ toolTime }}\n </span>\n </div>\n </div>\n </div> -->\n\n <!-- Error Message Section -->\n <div *ngIf=\"errorMessage\" class=\"cqa-my-4 cqa-p-4 cqa-rounded-lg cqa-bg-white\"\n style=\"border: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-xs cqa-text-[#9CA3AF] cqa-mb-2 cqa-font-medium\">\n {{ status === 'success' ? 'Details' : 'Error Message' }}\n </div>\n <div class=\"cqa-text-sm cqa-text-[#111827] cqa-font-semibold cqa-whitespace-normal cqa-break-anywhere\"\n style=\"word-break: break-word; white-space: pre-line;\">\n {{ errorMessage }}\n </div>\n </div>\n\n <!-- Buttons (or loading badge when showLoading) -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[20px]\">\n <cqa-badge\n *ngIf=\"showLoading\"\n label=\"Updating Steps..\"\n icon=\"autorenew\"\n [isLoading]=\"true\"\n [fullWidth]=\"true\"\n [centerContent]=\"true\"\n variant=\"info\"\n size=\"medium\"\n [inlineStyles]=\"loadingBadgeInlineStyles\">\n </cqa-badge>\n <ng-container *ngIf=\"!showLoading\">\n <cqa-button\n *ngFor=\"let button of buttons; let i = index\"\n [variant]=\"button.variant\"\n [text]=\"button.label\"\n [icon]=\"button.icon\"\n [btnSize]=\"button.btnSize || 'lg'\"\n [fullWidth]=\"button.fullWidth !== undefined ? button.fullWidth : true\"\n [disabled]=\"button.disabled ?? false\"\n (clicked)=\"onButtonClick(button)\">\n </cqa-button>\n </ng-container>\n </div>\n </div>\n</div>", styles: [] }]
|
|
20154
20182
|
}], propDecorators: { isOpen: [{
|
|
20155
20183
|
type: Input
|
|
20184
|
+
}], status: [{
|
|
20185
|
+
type: Input
|
|
20156
20186
|
}], title: [{
|
|
20157
20187
|
type: Input
|
|
20158
20188
|
}], instructionalMessage: [{
|