@cqa-lib/cqa-ui 1.0.25 → 1.0.26

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.
@@ -73,30 +73,18 @@ export class TestDistributionCardComponent {
73
73
  }
74
74
  return '#4F46E5'; // default
75
75
  }
76
- /**
77
- * Filter items to only show those with value > 0
78
- */
79
- get visibleItems() {
80
- return this.items.filter(item => item.value > 0);
81
- }
82
76
  /**
83
77
  * Filter segments to only show those with value > 0
84
78
  */
85
79
  get visibleSegments() {
86
80
  return this.segments.filter(segment => segment.value > 0);
87
81
  }
88
- /**
89
- * Filter children items to only show those with value > 0
90
- */
91
- getVisibleChildren(children) {
92
- return children?.filter(ch => ch.value > 0) || [];
93
- }
94
82
  }
95
83
  TestDistributionCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of visibleItems\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"getVisibleChildren(it.children).length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of getVisibleChildren(it.children)\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
+ TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, decorators: [{
98
86
  type: Component,
99
- args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of visibleItems\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"getVisibleChildren(it.children).length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of getVisibleChildren(it.children)\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
87
+ args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
100
88
  }], propDecorators: { title: [{
101
89
  type: Input
102
90
  }], segments: [{
@@ -104,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
104
92
  }], items: [{
105
93
  type: Input
106
94
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUE2QjFFLE1BQU0sT0FBTyw2QkFBNkI7SUFOMUM7UUFPVyxVQUFLLEdBQVcsbUJBQW1CLENBQUM7UUFDcEMsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFDckMsVUFBSyxHQUF1QixFQUFFLENBQUM7S0FpR3pDO0lBL0ZDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUE0QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7UUFFL0QsaURBQWlEO1FBQ2pELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLE9B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Q2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLFFBQWtDO1FBQ25ELE9BQU8sUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7OzBIQW5HVSw2QkFBNkI7OEdBQTdCLDZCQUE2QixvSUM3QjFDLHcxSUE0RE07MkZEL0JPLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uU2VnbWVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBUYWlsd2luZC1saWtlIGNsYXNzIG9yIGhleCBiZyBjb2xvciAqL1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkNoaWxkSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uSXRlbSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7IC8vIHVzZWQgZm9yIGljb24vYWNjZW50IGlmIGRlc2lyZWRcbiAgY2hpbGRyZW4/OiBEaXN0cmlidXRpb25DaGlsZEl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRlc3QtZGlzdHJpYnV0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0RGlzdHJpYnV0aW9uQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnVGVzdCBEaXN0cmlidXRpb24nO1xuICBASW5wdXQoKSBzZWdtZW50czogRGlzdHJpYnV0aW9uU2VnbWVudFtdID0gW107XG4gIEBJbnB1dCgpIGl0ZW1zOiBEaXN0cmlidXRpb25JdGVtW10gPSBbXTtcblxuICB0b3RhbFNlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVNlZ21lbnRzLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyAocy52YWx1ZSB8fCAwKSwgMCkgfHwgMTtcbiAgfVxuXG4gIHNlZ21lbnRXaWR0aChzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy52aXNpYmxlU2VnbWVudHM7XG4gICAgY29uc3QgbWluV2lkdGhQY3QgPSA4OyAvLyBNaW5pbXVtIDglIHRvIGVuc3VyZSBsYWJlbCBpcyB2aXNpYmxlXG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5hdHVyYWwgcGVyY2VudGFnZXMgZm9yIGFsbCBzZWdtZW50c1xuICAgIGNvbnN0IG5hdHVyYWxXaWR0aHMgPSBzZWdtZW50cy5tYXAocyA9PiAoe1xuICAgICAgc2VnbWVudDogcyxcbiAgICAgIG5hdHVyYWxQY3Q6IChzLnZhbHVlIC8gdG90YWwpICogMTAwLFxuICAgICAgbmVlZHNNaW5pbXVtOiAocy52YWx1ZSAvIHRvdGFsKSAqIDEwMCA8IG1pbldpZHRoUGN0XG4gICAgfSkpO1xuICAgIFxuICAgIC8vIENvdW50IGhvdyBtYW55IHNlZ21lbnRzIG5lZWQgbWluaW11bSB3aWR0aFxuICAgIGNvbnN0IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+IHcubmVlZHNNaW5pbXVtKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWxNaW5pbXVtV2lkdGggPSBzZWdtZW50c05lZWRpbmdNaW5pbXVtICogbWluV2lkdGhQY3Q7XG4gICAgXG4gICAgLy8gRmluZCBjdXJyZW50IHNlZ21lbnRcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSBuYXR1cmFsV2lkdGhzLmZpbmQodyA9PiB3LnNlZ21lbnQgPT09IHNlZ21lbnQpO1xuICAgIGlmICghY3VycmVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gJzAlJztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IG5lZWRzIG1pbmltdW0sIGdpdmUgaXQgbWluaW11bSB3aWR0aFxuICAgIGlmIChjdXJyZW50V2lkdGgubmVlZHNNaW5pbXVtKSB7XG4gICAgICByZXR1cm4gbWluV2lkdGhQY3QgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBzZWdtZW50cyB0aGF0IGRvbid0IG5lZWQgbWluaW11bSwgZGlzdHJpYnV0ZSByZW1haW5pbmcgc3BhY2UgcHJvcG9ydGlvbmFsbHlcbiAgICAvLyBSZW1haW5pbmcgc3BhY2UgPSAxMDAlIC0gKHNlZ21lbnRzIG5lZWRpbmcgbWluaW11bSAqIG1pbldpZHRoUGN0KVxuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gMTAwIC0gdG90YWxNaW5pbXVtV2lkdGg7XG4gICAgY29uc3Qgc2VnbWVudHNBYm92ZU1pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+ICF3Lm5lZWRzTWluaW11bSk7XG4gICAgY29uc3QgdG90YWxOYXR1cmFsQWJvdmVNaW5pbXVtID0gc2VnbWVudHNBYm92ZU1pbmltdW0ucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcubmF0dXJhbFBjdCwgMCk7XG4gICAgXG4gICAgLy8gSWYgdGhlcmUncyBubyBuYXR1cmFsIHNwYWNlIGFib3ZlIG1pbmltdW0sIGp1c3QgdXNlIG5hdHVyYWwgcGVyY2VudGFnZVxuICAgIGlmICh0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPT09IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChtaW5XaWR0aFBjdCwgY3VycmVudFdpZHRoLm5hdHVyYWxQY3QpICsgJyUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBTY2FsZSB0aGUgbmF0dXJhbCBwZXJjZW50YWdlIHRvIGZpdCBpbiByZW1haW5pbmcgc3BhY2VcbiAgICBjb25zdCBzY2FsZWRQY3QgPSAoY3VycmVudFdpZHRoLm5hdHVyYWxQY3QgLyB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0pICogcmVtYWluaW5nU3BhY2U7XG4gICAgXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBzY2FsZWRQY3QpICsgJyUnO1xuICB9XG5cbiAgc2VnbWVudENvbG9yKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWdtZW50LmNvbG9yQ2xhc3MgfHwgZmFsbGJhY2s7XG4gIH1cblxuICBnZXRDaGlsZEljb24obGFiZWw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IGxhYmVsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdpb3MnIHx8IG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2FwcGxlJykge1xuICAgICAgcmV0dXJuICdhcHBsZSc7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdhbmRyb2lkJykge1xuICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWNvbkNvbG9yKGl0ZW06IERpc3RyaWJ1dGlvbkl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIFJldHVybiBjb2xvciBiYXNlZCBvbiBsYWJlbCBvciB1c2UgZGVmYXVsdFxuICAgIGNvbnN0IGxhYmVsID0gaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsYWJlbCA9PT0gJ3dlYicpIHtcbiAgICAgIHJldHVybiAnIzRGNDZFNSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHJldHVybiAnIzkzMzNFQSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ2FwaScpIHtcbiAgICAgIHJldHVybiAnIzA1OTY2OSc7XG4gICAgfVxuICAgIHJldHVybiAnIzRGNDZFNSc7IC8vIGRlZmF1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgaXRlbXMgdG8gb25seSBzaG93IHRob3NlIHdpdGggdmFsdWUgPiAwXG4gICAqL1xuICBnZXQgdmlzaWJsZUl0ZW1zKCk6IERpc3RyaWJ1dGlvbkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS52YWx1ZSA+IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBzZWdtZW50cyB0byBvbmx5IHNob3cgdGhvc2Ugd2l0aCB2YWx1ZSA+IDBcbiAgICovXG4gIGdldCB2aXNpYmxlU2VnbWVudHMoKTogRGlzdHJpYnV0aW9uU2VnbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5maWx0ZXIoc2VnbWVudCA9PiBzZWdtZW50LnZhbHVlID4gMCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGNoaWxkcmVuIGl0ZW1zIHRvIG9ubHkgc2hvdyB0aG9zZSB3aXRoIHZhbHVlID4gMFxuICAgKi9cbiAgZ2V0VmlzaWJsZUNoaWxkcmVuKGNoaWxkcmVuPzogRGlzdHJpYnV0aW9uQ2hpbGRJdGVtW10pOiBEaXN0cmlidXRpb25DaGlsZEl0ZW1bXSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuPy5maWx0ZXIoY2ggPT4gY2gudmFsdWUgPiAwKSB8fCBbXTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgaWQ9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWJvcmRlci1kZWZhdWx0IGNxYS1weS1bMTQuNXB4XSBjcWEtcHgtWzE3cHhdIGNxYS1zaGFkb3ctY2FyZFwiPlxuICAgIDwhLS0gVGl0bGUgLS0+XG4gICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLTYgY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tYi0yXCI+e3sgdGl0bGUgfX08L2gzPlxuXG4gICAgPCEtLSBTdGFja2VkIHNlZ21lbnRzIHBpbGwgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtWzI0cHhdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLVsjRjNGNEY2XSBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1mbGV4IGNxYS1tYi0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIHZpc2libGVTZWdtZW50czsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXRleHQtd2hpdGUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgc2VnbWVudENvbG9yKHMsIGkgPT09IDAgPyAnY3FhLWJnLVsjNEY0NkU1XScgOiBpID09PSBzZWdtZW50cy5sZW5ndGggLSAxID8gJ2NxYS1iZy1bIzA1OTY2OV0nIDogJ2NxYS1iZy1bIzkzMzNFQV0nKSxcbiAgICAgICAgICAgIGkgPT09IDAgPyAnY3FhLXJvdW5kZWQtbC1mdWxsJyA6ICcnLFxuICAgICAgICAgICAgbGFzdCA/ICdjcWEtcm91bmRlZC1yLWZ1bGwnIDogJydcbiAgICAgICAgICBdXCIgW3N0eWxlLndpZHRoXT1cInNlZ21lbnRXaWR0aChzKVwiPlxuICAgICAgICAgIHt7IHMubGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSXRlbXMgbGlzdCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtWzZweF1cIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0IG9mIHZpc2libGVJdGVtc1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtWzZweF1cIj5cbiAgICAgICAgPCEtLSBQYXJlbnQgcm93IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXctWzRweF0gY3FhLWgtWzEycHhdIGNxYS1yb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWwtWzhweF0gY3FhLW1yLVs2cHhdXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0Lmljb25cIiBjbGFzcz1cImNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxNHB4XVwiIFtzdHlsZS5jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPnt7IGl0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1ib2xkXCI+e3sgaXQudmFsdWUgfCBudW1iZXIgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBDaGlsZHJlbiByb3dzIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0VmlzaWJsZUNoaWxkcmVuKGl0LmNoaWxkcmVuKS5sZW5ndGhcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2ggb2YgZ2V0VmlzaWJsZUNoaWxkcmVuKGl0LmNoaWxkcmVuKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZmxleC0xIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1iZy1bI0Y5RkFGQl1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM0QjU1NjNdXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDaGlsZEljb24oY2gubGFiZWwpIGFzIGljb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInYXBwbGUnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE2LjM2NSAxLjQzYzAgMS4xODItLjQzNSAyLjAxNC0xLjA4NiAyLjg0NS0uODIzLjk5LTEuOTgyIDEuNzA3LTMuMDc4IDEuNi0uMTMtMS4xMTUuNDMzLTIuMTU0IDEuMDktMi44Ny44MjUtLjkyNSAyLjE5Ni0xLjU5IDMuMDctMS41NzUtLjAwMy4wMDMuMDAzIDAgLjAwMyAwem0zLjIxNyA2LjA5NGMtLjA4Ni0uMDY3LTIuNjg0LTEuNTk4LTUuNDY4LS41MDctMS4zMzIuNTMtMi40MjkuNTQyLTMuNzg4LjAwNi0xLjk5Ny0uOC0zLjYzNS4xNTYtMy43MzUuMjA4LS4wODMuMDQ0LTEuOTQ4IDEuMTQzLTIuNCAzLjY2Ny0uNDMgMi4zNzUuNiA0LjkyIDEuNCA2LjUyLjcyMyAxLjQyMSAxLjcwNCAzLjEyNiAzLjA2NyAzLjA3IDEuMzUtLjA1MyAxLjc4LS44ODMgMy4zMjMtLjg4MyAxLjU0MiAwIDEuOTIuODgzIDMuMzYuODUzIDEuNDQtLjAyNiAyLjM1Mi0xLjQ0MyAzLjA3My0yLjg1NS42NzQtMS4zMjQuOTYzLTIuNjAzLjk4My0yLjY2OC0uMDIxLS4wMDktMS44OC0uNzItMS45MDMtMi44NTQtLjAyMS0xLjc4NiAxLjQ2My0yLjY0IDEuNTM0LTIuNjgyelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FuZHJvaWQnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE3LjYgOS40OGwxLjQyLTIuNDZhLjUuNSAwIDEwLS44Ni0uNWwtMS40NCAyLjUyQTExIDExIDAgMDAxNiA3aC04Yy0uMjQgMC0uNDguMDEtLjcyLjA0TDUuODQgNi41YS41LjUgMCAwMC0uODYuNWwxLjQyIDIuNDZBNyA3IDAgMDA0IDE1aC41YTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXY5LjVBMS41IDEuNSAwIDAwOC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxN2gydjIuNUExLjUgMS41IDAgMDAxNC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxMGgxdjMuNUExLjUgMS41IDAgMDAxOS41IDE1SDIwYTcgNyAwIDAwLTIuNC01LjUyek05IDVhLjc1Ljc1IDAgMTEtMS41IDBBLjc1Ljc1IDAgMDE5IDV6bTcuNSAwYS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXByLTFcIiBbbmdDbGFzc109XCJnZXRDaGlsZEljb24oY2gubGFiZWwpID8gJ2NxYS1wbC0wJyA6ICdjcWEtcGwtMidcIj57eyBjaC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj57eyBjaC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUE2QjFFLE1BQU0sT0FBTyw2QkFBNkI7SUFOMUM7UUFPVyxVQUFLLEdBQVcsbUJBQW1CLENBQUM7UUFDcEMsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFDckMsVUFBSyxHQUF1QixFQUFFLENBQUM7S0FtRnpDO0lBakZDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUE0QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7UUFFL0QsaURBQWlEO1FBQ2pELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLE9B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Q2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OzBIQXJGVSw2QkFBNkI7OEdBQTdCLDZCQUE2QixvSUM3QjFDLDB5SUE0RE07MkZEL0JPLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uU2VnbWVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBUYWlsd2luZC1saWtlIGNsYXNzIG9yIGhleCBiZyBjb2xvciAqL1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkNoaWxkSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uSXRlbSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7IC8vIHVzZWQgZm9yIGljb24vYWNjZW50IGlmIGRlc2lyZWRcbiAgY2hpbGRyZW4/OiBEaXN0cmlidXRpb25DaGlsZEl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRlc3QtZGlzdHJpYnV0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0RGlzdHJpYnV0aW9uQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnVGVzdCBEaXN0cmlidXRpb24nO1xuICBASW5wdXQoKSBzZWdtZW50czogRGlzdHJpYnV0aW9uU2VnbWVudFtdID0gW107XG4gIEBJbnB1dCgpIGl0ZW1zOiBEaXN0cmlidXRpb25JdGVtW10gPSBbXTtcblxuICB0b3RhbFNlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVNlZ21lbnRzLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyAocy52YWx1ZSB8fCAwKSwgMCkgfHwgMTtcbiAgfVxuXG4gIHNlZ21lbnRXaWR0aChzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy52aXNpYmxlU2VnbWVudHM7XG4gICAgY29uc3QgbWluV2lkdGhQY3QgPSA4OyAvLyBNaW5pbXVtIDglIHRvIGVuc3VyZSBsYWJlbCBpcyB2aXNpYmxlXG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5hdHVyYWwgcGVyY2VudGFnZXMgZm9yIGFsbCBzZWdtZW50c1xuICAgIGNvbnN0IG5hdHVyYWxXaWR0aHMgPSBzZWdtZW50cy5tYXAocyA9PiAoe1xuICAgICAgc2VnbWVudDogcyxcbiAgICAgIG5hdHVyYWxQY3Q6IChzLnZhbHVlIC8gdG90YWwpICogMTAwLFxuICAgICAgbmVlZHNNaW5pbXVtOiAocy52YWx1ZSAvIHRvdGFsKSAqIDEwMCA8IG1pbldpZHRoUGN0XG4gICAgfSkpO1xuICAgIFxuICAgIC8vIENvdW50IGhvdyBtYW55IHNlZ21lbnRzIG5lZWQgbWluaW11bSB3aWR0aFxuICAgIGNvbnN0IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+IHcubmVlZHNNaW5pbXVtKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWxNaW5pbXVtV2lkdGggPSBzZWdtZW50c05lZWRpbmdNaW5pbXVtICogbWluV2lkdGhQY3Q7XG4gICAgXG4gICAgLy8gRmluZCBjdXJyZW50IHNlZ21lbnRcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSBuYXR1cmFsV2lkdGhzLmZpbmQodyA9PiB3LnNlZ21lbnQgPT09IHNlZ21lbnQpO1xuICAgIGlmICghY3VycmVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gJzAlJztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IG5lZWRzIG1pbmltdW0sIGdpdmUgaXQgbWluaW11bSB3aWR0aFxuICAgIGlmIChjdXJyZW50V2lkdGgubmVlZHNNaW5pbXVtKSB7XG4gICAgICByZXR1cm4gbWluV2lkdGhQY3QgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBzZWdtZW50cyB0aGF0IGRvbid0IG5lZWQgbWluaW11bSwgZGlzdHJpYnV0ZSByZW1haW5pbmcgc3BhY2UgcHJvcG9ydGlvbmFsbHlcbiAgICAvLyBSZW1haW5pbmcgc3BhY2UgPSAxMDAlIC0gKHNlZ21lbnRzIG5lZWRpbmcgbWluaW11bSAqIG1pbldpZHRoUGN0KVxuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gMTAwIC0gdG90YWxNaW5pbXVtV2lkdGg7XG4gICAgY29uc3Qgc2VnbWVudHNBYm92ZU1pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+ICF3Lm5lZWRzTWluaW11bSk7XG4gICAgY29uc3QgdG90YWxOYXR1cmFsQWJvdmVNaW5pbXVtID0gc2VnbWVudHNBYm92ZU1pbmltdW0ucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcubmF0dXJhbFBjdCwgMCk7XG4gICAgXG4gICAgLy8gSWYgdGhlcmUncyBubyBuYXR1cmFsIHNwYWNlIGFib3ZlIG1pbmltdW0sIGp1c3QgdXNlIG5hdHVyYWwgcGVyY2VudGFnZVxuICAgIGlmICh0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPT09IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChtaW5XaWR0aFBjdCwgY3VycmVudFdpZHRoLm5hdHVyYWxQY3QpICsgJyUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBTY2FsZSB0aGUgbmF0dXJhbCBwZXJjZW50YWdlIHRvIGZpdCBpbiByZW1haW5pbmcgc3BhY2VcbiAgICBjb25zdCBzY2FsZWRQY3QgPSAoY3VycmVudFdpZHRoLm5hdHVyYWxQY3QgLyB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0pICogcmVtYWluaW5nU3BhY2U7XG4gICAgXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBzY2FsZWRQY3QpICsgJyUnO1xuICB9XG5cbiAgc2VnbWVudENvbG9yKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWdtZW50LmNvbG9yQ2xhc3MgfHwgZmFsbGJhY2s7XG4gIH1cblxuICBnZXRDaGlsZEljb24obGFiZWw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IGxhYmVsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdpb3MnIHx8IG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2FwcGxlJykge1xuICAgICAgcmV0dXJuICdhcHBsZSc7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdhbmRyb2lkJykge1xuICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWNvbkNvbG9yKGl0ZW06IERpc3RyaWJ1dGlvbkl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIFJldHVybiBjb2xvciBiYXNlZCBvbiBsYWJlbCBvciB1c2UgZGVmYXVsdFxuICAgIGNvbnN0IGxhYmVsID0gaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsYWJlbCA9PT0gJ3dlYicpIHtcbiAgICAgIHJldHVybiAnIzRGNDZFNSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHJldHVybiAnIzkzMzNFQSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ2FwaScpIHtcbiAgICAgIHJldHVybiAnIzA1OTY2OSc7XG4gICAgfVxuICAgIHJldHVybiAnIzRGNDZFNSc7IC8vIGRlZmF1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgc2VnbWVudHMgdG8gb25seSBzaG93IHRob3NlIHdpdGggdmFsdWUgPiAwXG4gICAqL1xuICBnZXQgdmlzaWJsZVNlZ21lbnRzKCk6IERpc3RyaWJ1dGlvblNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZmlsdGVyKHNlZ21lbnQgPT4gc2VnbWVudC52YWx1ZSA+IDApO1xuICB9XG59XG5cblxuIiwiPGRpdiBpZD1cImNxYS11aS1yb290XCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtWzhweF0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItYm9yZGVyLWRlZmF1bHQgY3FhLXB5LVsxNC41cHhdIGNxYS1weC1bMTdweF0gY3FhLXNoYWRvdy1jYXJkXCI+XG4gICAgPCEtLSBUaXRsZSAtLT5cbiAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTZweF0gY3FhLWxlYWRpbmctNiBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW1iLTJcIj57eyB0aXRsZSB9fTwvaDM+XG5cbiAgICA8IS0tIFN0YWNrZWQgc2VnbWVudHMgcGlsbCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1bMjRweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctWyNGM0Y0RjZdIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLWZsZXggY3FhLW1iLTJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgdmlzaWJsZVNlZ21lbnRzOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC13aGl0ZSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICAgICBzZWdtZW50Q29sb3IocywgaSA9PT0gMCA/ICdjcWEtYmctWyM0RjQ2RTVdJyA6IGkgPT09IHNlZ21lbnRzLmxlbmd0aCAtIDEgPyAnY3FhLWJnLVsjMDU5NjY5XScgOiAnY3FhLWJnLVsjOTMzM0VBXScpLFxuICAgICAgICAgICAgaSA9PT0gMCA/ICdjcWEtcm91bmRlZC1sLWZ1bGwnIDogJycsXG4gICAgICAgICAgICBsYXN0ID8gJ2NxYS1yb3VuZGVkLXItZnVsbCcgOiAnJ1xuICAgICAgICAgIF1cIiBbc3R5bGUud2lkdGhdPVwic2VnbWVudFdpZHRoKHMpXCI+XG4gICAgICAgICAge3sgcy5sYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJdGVtcyBsaXN0IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXNcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVs2cHhdXCI+XG4gICAgICAgIDwhLS0gUGFyZW50IHJvdyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS13LVs0cHhdIGNxYS1oLVsxMnB4XSBjcWEtcm91bmRlZC1mdWxsXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0SXRlbUljb25Db2xvcihpdClcIj48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1sLVs4cHhdIGNxYS1tci1bNnB4XVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdC5pY29uXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMTRweF1cIiBbc3R5bGUuY29sb3JdPVwiZ2V0SXRlbUljb25Db2xvcihpdClcIj5cbiAgICAgICAgICAgICAgICB7eyBpdC5pY29uIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBpdC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtYm9sZFwiPnt7IGl0LnZhbHVlIHwgbnVtYmVyIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQ2hpbGRyZW4gcm93cyAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIml0LmNoaWxkcmVuPy5sZW5ndGhcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2ggb2YgaXQuY2hpbGRyZW5cIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtMSBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYmctWyNGOUZBRkJdXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS10ZXh0LVsjNEI1NTYzXVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSBhcyBpY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FwcGxlJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNi4zNjUgMS40M2MwIDEuMTgyLS40MzUgMi4wMTQtMS4wODYgMi44NDUtLjgyMy45OS0xLjk4MiAxLjcwNy0zLjA3OCAxLjYtLjEzLTEuMTE1LjQzMy0yLjE1NCAxLjA5LTIuODcuODI1LS45MjUgMi4xOTYtMS41OSAzLjA3LTEuNTc1LS4wMDMuMDAzLjAwMyAwIC4wMDMgMHptMy4yMTcgNi4wOTRjLS4wODYtLjA2Ny0yLjY4NC0xLjU5OC01LjQ2OC0uNTA3LTEuMzMyLjUzLTIuNDI5LjU0Mi0zLjc4OC4wMDYtMS45OTctLjgtMy42MzUuMTU2LTMuNzM1LjIwOC0uMDgzLjA0NC0xLjk0OCAxLjE0My0yLjQgMy42NjctLjQzIDIuMzc1LjYgNC45MiAxLjQgNi41Mi43MjMgMS40MjEgMS43MDQgMy4xMjYgMy4wNjcgMy4wNyAxLjM1LS4wNTMgMS43OC0uODgzIDMuMzIzLS44ODMgMS41NDIgMCAxLjkyLjg4MyAzLjM2Ljg1MyAxLjQ0LS4wMjYgMi4zNTItMS40NDMgMy4wNzMtMi44NTUuNjc0LTEuMzI0Ljk2My0yLjYwMy45ODMtMi42NjgtLjAyMS0uMDA5LTEuODgtLjcyLTEuOTAzLTIuODU0LS4wMjEtMS43ODYgMS40NjMtMi42NCAxLjUzNC0yLjY4MnpcIi8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidhbmRyb2lkJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNy42IDkuNDhsMS40Mi0yLjQ2YS41LjUgMCAxMC0uODYtLjVsLTEuNDQgMi41MkExMSAxMSAwIDAwMTYgN2gtOGMtLjI0IDAtLjQ4LjAxLS43Mi4wNEw1Ljg0IDYuNWEuNS41IDAgMDAtLjg2LjVsMS40MiAyLjQ2QTcgNyAwIDAwNCAxNWguNWExLjUgMS41IDAgMDAxLjUtMS41VjEwaDF2OS41QTEuNSAxLjUgMCAwMDguNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTdoMnYyLjVBMS41IDEuNSAwIDAwMTQuNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXYzLjVBMS41IDEuNSAwIDAwMTkuNSAxNUgyMGE3IDcgMCAwMC0yLjQtNS41MnpNOSA1YS43NS43NSAwIDExLTEuNSAwQS43NS43NSAwIDAxOSA1em03LjUgMGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1wci0xXCIgW25nQ2xhc3NdPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSA/ICdjcWEtcGwtMCcgOiAnY3FhLXBsLTInXCI+e3sgY2gubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+e3sgY2gudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -2626,30 +2626,18 @@ class TestDistributionCardComponent {
2626
2626
  }
2627
2627
  return '#4F46E5'; // default
2628
2628
  }
2629
- /**
2630
- * Filter items to only show those with value > 0
2631
- */
2632
- get visibleItems() {
2633
- return this.items.filter(item => item.value > 0);
2634
- }
2635
2629
  /**
2636
2630
  * Filter segments to only show those with value > 0
2637
2631
  */
2638
2632
  get visibleSegments() {
2639
2633
  return this.segments.filter(segment => segment.value > 0);
2640
2634
  }
2641
- /**
2642
- * Filter children items to only show those with value > 0
2643
- */
2644
- getVisibleChildren(children) {
2645
- return (children === null || children === void 0 ? void 0 : children.filter(ch => ch.value > 0)) || [];
2646
- }
2647
2635
  }
2648
2636
  TestDistributionCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2649
- TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of visibleItems\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"getVisibleChildren(it.children).length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of getVisibleChildren(it.children)\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2637
+ TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2650
2638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, decorators: [{
2651
2639
  type: Component,
2652
- args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of visibleItems\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"getVisibleChildren(it.children).length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of getVisibleChildren(it.children)\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
2640
+ args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
2653
2641
  }], propDecorators: { title: [{
2654
2642
  type: Input
2655
2643
  }], segments: [{