master-control 0.4.78 → 0.4.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/annuity-calculator-radio/annuity-calculator-radio.component.mjs +91 -0
- package/esm2022/lib/annuity-premium-calculator/annuity-premium-calculator.component.mjs +225 -3
- package/esm2022/lib/dob/dob.component.mjs +2 -2
- package/esm2022/lib/master-control.component.mjs +6 -4
- package/esm2022/lib/medial-questions/medial-questions.component.mjs +6 -3
- package/esm2022/lib/radio/radio.component.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/master-control.mjs +322 -13
- package/fesm2022/master-control.mjs.map +1 -1
- package/lib/annuity-calculator-radio/annuity-calculator-radio.component.d.ts +25 -0
- package/lib/annuity-premium-calculator/annuity-premium-calculator.component.d.ts +7 -1
- package/master-control-0.4.79.tgz +0 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/master-control-0.4.78.tgz +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, forwardRef, input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
export class AnnuityCalculatorRadioComponent {
|
|
8
|
+
el;
|
|
9
|
+
constructor(el) {
|
|
10
|
+
this.el = el;
|
|
11
|
+
}
|
|
12
|
+
reactiveFormControlobject = input();
|
|
13
|
+
field = input.required();
|
|
14
|
+
inputValue = null;
|
|
15
|
+
onChange = () => { };
|
|
16
|
+
onTouched = () => { };
|
|
17
|
+
change = new EventEmitter();
|
|
18
|
+
growthRateChange = new EventEmitter();
|
|
19
|
+
value = null;
|
|
20
|
+
writeValue(value) {
|
|
21
|
+
this.value = value;
|
|
22
|
+
}
|
|
23
|
+
registerOnChange(fn) {
|
|
24
|
+
this.onChange = fn;
|
|
25
|
+
}
|
|
26
|
+
registerOnTouched(fn) {
|
|
27
|
+
this.onTouched = fn;
|
|
28
|
+
}
|
|
29
|
+
selectCard(card) {
|
|
30
|
+
if (card.disabled)
|
|
31
|
+
return;
|
|
32
|
+
this.value = card.value;
|
|
33
|
+
this.onChange(this.value);
|
|
34
|
+
this.onTouched();
|
|
35
|
+
this.growthRateChange.emit(card);
|
|
36
|
+
}
|
|
37
|
+
onRadioGroupChange(event) {
|
|
38
|
+
const newValue = event.value;
|
|
39
|
+
this.inputValue = newValue;
|
|
40
|
+
this.onChange(newValue);
|
|
41
|
+
this.onTouched();
|
|
42
|
+
this.change.emit(newValue);
|
|
43
|
+
console.log('Radio group changed:', newValue);
|
|
44
|
+
setTimeout(() => this.updateArrowPosition(), 0);
|
|
45
|
+
}
|
|
46
|
+
toggleRadio(value, event) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
this.inputValue = value;
|
|
50
|
+
if (this.reactiveFormControlobject && this.reactiveFormControlobject.setValue) {
|
|
51
|
+
this.reactiveFormControlobject.setValue(value);
|
|
52
|
+
}
|
|
53
|
+
this.onRadioGroupChange({ source: {}, value: value });
|
|
54
|
+
setTimeout(() => this.updateArrowPosition(), 0);
|
|
55
|
+
}
|
|
56
|
+
updateArrowPosition() {
|
|
57
|
+
const root = this.el.nativeElement;
|
|
58
|
+
const selected = root.querySelector('.radio-card-gender.selected');
|
|
59
|
+
const card = root.querySelector('.acr-card');
|
|
60
|
+
if (selected && card) {
|
|
61
|
+
const selectedRect = selected.getBoundingClientRect();
|
|
62
|
+
const cardRect = card.getBoundingClientRect();
|
|
63
|
+
const centerX = selectedRect.left + selectedRect.width / 2 - cardRect.left;
|
|
64
|
+
card.style.setProperty('--arrow-left', `${centerX}px`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnuityCalculatorRadioComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AnnuityCalculatorRadioComponent, isStandalone: true, selector: "lib-annuity-calculator-radio", inputs: { reactiveFormControlobject: { classPropertyName: "reactiveFormControlobject", publicName: "reactiveFormControlobject", isSignal: true, isRequired: false, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { change: "change", growthRateChange: "growthRateChange" }, providers: [
|
|
69
|
+
{
|
|
70
|
+
provide: NG_VALUE_ACCESSOR,
|
|
71
|
+
useExisting: forwardRef(() => AnnuityCalculatorRadioComponent),
|
|
72
|
+
multi: true
|
|
73
|
+
}
|
|
74
|
+
], ngImport: i0, template: "\n\n<div class=\"acr-wrapper\">\n\n <!-- Top Header Label -->\n <div class=\"acr-sub-label\" *ngIf=\"field() && field()?.isVisible\">\n {{ field()?.label }}\n <span class=\"error-message\" *ngIf=\"field()?.validators?.isRequired\">*</span>\n </div>\n\n <!-- Radio Option Cards -->\n <div class=\"radio-btn-group1\" *ngIf=\"field()?.configData?.isShowRadioOption\">\n <div\n class=\"radio-card-gender\"\n *ngFor=\"let data of field()?.options\"\n [class.selected]=\"inputValue === data.value\"\n [class.disable-radio-btn]=\"field()?.isDisable || data.disabled === true || data.disabled === 'true'\"\n (click)=\"(data.disabled === true || data.disabled === 'true') ? null : toggleRadio(data.value, $event)\"\n >\n <!-- Hidden native radio input \u2014 enables proper [id]/[name] binding for form semantics.\n Parent projects can bind (change)=\"myHandler($event)\" on the host component. -->\n <input\n type=\"radio\"\n style=\"position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;\"\n [id]=\"field()?.fieldName\"\n [name]=\"field()?.fieldName\"\n [value]=\"data.value\"\n [checked]=\"inputValue === data.value\"\n (growthRateChange)=\"toggleRadio(data.value, $event)\"\n />\n <span\n class=\"forRadioLabel\"\n [ngStyle]=\"{\n '--radio-button-font-weight': field()?.controlStyle?.fontWeight,\n '--radio-button-font-size': field()?.controlStyle?.fontSize,\n '--radio-button-font-color': field()?.controlStyle?.color\n }\"\n >{{ data.label }}</span>\n </div>\n </div>\n\n <!-- Card Container -->\n <div class=\"acr-card-container\" *ngIf=\"field()?.configData?.isShowCard\">\n\n <div class=\"acr-card\">\n <div class=\"acr-sub-label\" *ngIf=\"field()?.configData?.subLabel\">\n {{ field()?.configData?.subLabel }}\n </div>\n\n <div class=\"acr-cards-row\">\n <div\n class=\"acr-card-option\"\n *ngFor=\"let card of field()?.configData?.cardsValue\"\n [class.selected]=\"value === card.value\"\n [class.disabled]=\"card.disabled\"\n (click)=\"selectCard(card)\"\n >\n <!-- Hidden native radio input \u2014 enables proper [id]/[name] binding for form semantics. -->\n <input\n type=\"radio\"\n style=\"position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;\"\n [id]=\"field()?.fieldName\"\n [name]=\"field()?.fieldName\"\n [value]=\"card.value\"\n [checked]=\"value === card.value\"\n (change)=\"selectCard(card)\"\n />\n <div class=\"acr-card-main-value\" [innerHTML]=\"card.mainValue\"></div>\n <div class=\"acr-card-sub-value\" [innerHTML]=\"card.subValue\"></div>\n <div class=\"acr-card-rate\">{{ card.growthRate }}</div>\n <div class=\"acr-card-details\">\n <div class=\"acr-card-detail-row\">\n <span>Guaranteed </span>\n <span>:</span>\n <strong>{{ card.guaranteed }}</strong>\n </div>\n <div class=\"acr-card-detail-row\">\n <span>Variable </span>\n <span>:</span>\n <strong>{{ card.variable }}</strong>\n </div>\n </div>\n <div class=\"acr-card-type\">\n <button class=\"acr-card-type-btn\" [ngClass]=\"{\n 'btn-high': card.value === 'High',\n 'btn-medium': card.value === 'Medium',\n 'btn-low': card.value !== 'High' && card.value !== 'Medium'\n }\">{{ card.value }} variable</button>\n </div>\n </div>\n </div>\n <!-- Note \u2014 full width, vertically aligned with radio group and card container -->\n <div class=\"acr-note\" *ngIf=\"field()?.configData?.infoMessage\">\n <strong>Note:</strong> {{ field()?.configData?.infoMessage }}\n </div>\n </div>\n </div><!-- /acr-card-container -->\n\n</div>\n", styles: [".acr-wrapper{font-family:mulish!important;width:100%;display:flex;flex-direction:column}.forRadioLabel{font-size:var(--radio-button-font-size, 12px)!important;font-weight:var(--radio-button-font-weight, 400);cursor:pointer;color:var(--radio-button-font-color, #444444)}.required-star{color:red;margin-left:2px}.radio-btn-group1{display:flex;gap:4px;flex-wrap:wrap;padding-right:10px;padding-left:10px}.radio-card-gender{border:1px solid rgba(218,218,218,1);border-radius:4px;padding:6px 20px;cursor:pointer;max-width:auto;max-height:auto;display:flex;align-items:center;justify-content:center;flex:1;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.radio-card-gender.selected{border-color:#fb0;border-width:1.6px}.radio-card-gender.selected:after{content:\"\";position:absolute;bottom:-16px;left:50%;transform:translate(-50%);width:0;height:0;z-index:3}.radio-card-gender.selected:before{content:\"\";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #fff;z-index:4}.radio-card-gender:hover:not(.disable-radio-btn){border-color:#ffd600}.disable-radio-btn{opacity:.55;pointer-events:none;background:#f5f5f5}.acr-card-container{position:relative;width:100%;padding-top:22px;box-sizing:border-box;padding-right:10px;padding-left:10px}.acr-card{background:#fff;border:1px solid rgba(218,218,218,1);border-radius:14px;padding:20px 18px 16px;width:100%;position:relative;overflow:visible;box-sizing:border-box}.acr-card:after{content:\"\";position:absolute;bottom:100%;left:var(--arrow-left, 40px);transform:translate(-50%);transition:left .2s ease;border-width:14px;border-style:solid;border-color:transparent transparent rgba(218,218,218,1) transparent;z-index:2}.acr-card:before{content:\"\";position:absolute;bottom:100%;left:var(--arrow-left, 40px);transform:translate(-50%);transition:left .2s ease;border-width:12px;border-style:solid;border-color:transparent transparent rgba(255,255,255,1) transparent;z-index:3}.acr-sub-label{font-size:10px;font-weight:700;color:#444;margin-bottom:10px;padding-right:10px;padding-left:10px}.acr-cards-row{display:flex;gap:14px;flex-wrap:nowrap;margin-bottom:30px}.acr-card-option{background:#fff;border:2px solid #E0E0E0;border-radius:12px;padding:18px 16px 28px;flex:1 1 0;min-width:0;max-width:none;cursor:pointer;transition:border-color .18s,box-shadow .18s;display:flex;flex-direction:column;align-items:flex-start;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.acr-card-option.selected{border-color:#ffd600;box-shadow:0 0 0 1px #ffd600}.acr-card-option:hover:not(.disabled){border-color:#ffd600}.acr-card-option.disabled{opacity:.5;pointer-events:none}.acr-card-main-value{font-size:16px;font-weight:700;color:#444;margin-bottom:3px;line-height:20px}.acr-card-main-sub-value{font-size:16px;font-weight:400;color:#444;margin-bottom:3px;line-height:20px}.acr-card-sub-value{font-size:10px;font-weight:700;color:#444;line-height:14px}.acr-card-sub-sub-value{font-size:10px;font-weight:400;color:#444;line-height:14px}.acr-card-rate{background:linear-gradient(to right,#fb0,#fff7df,#fb0);color:#444;font-weight:700;font-size:10px;line-height:14px;padding:4px;margin-bottom:10px;margin-top:6px;width:100%;height:22px;text-align:center;box-sizing:border-box}.acr-card-details{width:100%;margin-bottom:14px;background-color:#f5f5f5;padding-left:10px;padding-right:10px;display:grid;grid-template-columns:max-content auto 1fr;column-gap:4px}.acr-card-detail-row{display:contents;font-size:10px;color:#444}.acr-card-detail-row span{font-weight:400;font-size:10px;line-height:14px;color:#444}.acr-card-detail-row strong{font-weight:700;color:#444;font-size:10px;line-height:14px;text-align:right}.acr-card-type{position:absolute;bottom:-14px;left:0;right:0;display:flex;justify-content:center}.acr-card-type-btn{border:none;border-radius:20px;padding:5px 22px;font-size:13px;font-weight:600;cursor:pointer;outline:none}.btn-high{background:#00946f;color:#fff;font-weight:700;font-size:10px;line-height:14px}.btn-medium{background:#66ccb2;color:#444;font-weight:700;font-size:10px;line-height:14px}.btn-low{background:#cef0e8;color:#444;font-weight:700;font-size:10px;line-height:14px}.acr-note{background:#ececec;color:#222;font-size:12px;border-radius:4px;padding:4px 8px;line-height:16px;width:100%;box-sizing:border-box;margin-top:8px;font-weight:400}.acr-note strong{font-weight:700;font-size:12px;line-height:16px;color:#222}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }] });
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnuityCalculatorRadioComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'lib-annuity-calculator-radio', imports: [CommonModule, MatRadioModule, ReactiveFormsModule,
|
|
79
|
+
FormsModule], standalone: true, providers: [
|
|
80
|
+
{
|
|
81
|
+
provide: NG_VALUE_ACCESSOR,
|
|
82
|
+
useExisting: forwardRef(() => AnnuityCalculatorRadioComponent),
|
|
83
|
+
multi: true
|
|
84
|
+
}
|
|
85
|
+
], template: "\n\n<div class=\"acr-wrapper\">\n\n <!-- Top Header Label -->\n <div class=\"acr-sub-label\" *ngIf=\"field() && field()?.isVisible\">\n {{ field()?.label }}\n <span class=\"error-message\" *ngIf=\"field()?.validators?.isRequired\">*</span>\n </div>\n\n <!-- Radio Option Cards -->\n <div class=\"radio-btn-group1\" *ngIf=\"field()?.configData?.isShowRadioOption\">\n <div\n class=\"radio-card-gender\"\n *ngFor=\"let data of field()?.options\"\n [class.selected]=\"inputValue === data.value\"\n [class.disable-radio-btn]=\"field()?.isDisable || data.disabled === true || data.disabled === 'true'\"\n (click)=\"(data.disabled === true || data.disabled === 'true') ? null : toggleRadio(data.value, $event)\"\n >\n <!-- Hidden native radio input \u2014 enables proper [id]/[name] binding for form semantics.\n Parent projects can bind (change)=\"myHandler($event)\" on the host component. -->\n <input\n type=\"radio\"\n style=\"position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;\"\n [id]=\"field()?.fieldName\"\n [name]=\"field()?.fieldName\"\n [value]=\"data.value\"\n [checked]=\"inputValue === data.value\"\n (growthRateChange)=\"toggleRadio(data.value, $event)\"\n />\n <span\n class=\"forRadioLabel\"\n [ngStyle]=\"{\n '--radio-button-font-weight': field()?.controlStyle?.fontWeight,\n '--radio-button-font-size': field()?.controlStyle?.fontSize,\n '--radio-button-font-color': field()?.controlStyle?.color\n }\"\n >{{ data.label }}</span>\n </div>\n </div>\n\n <!-- Card Container -->\n <div class=\"acr-card-container\" *ngIf=\"field()?.configData?.isShowCard\">\n\n <div class=\"acr-card\">\n <div class=\"acr-sub-label\" *ngIf=\"field()?.configData?.subLabel\">\n {{ field()?.configData?.subLabel }}\n </div>\n\n <div class=\"acr-cards-row\">\n <div\n class=\"acr-card-option\"\n *ngFor=\"let card of field()?.configData?.cardsValue\"\n [class.selected]=\"value === card.value\"\n [class.disabled]=\"card.disabled\"\n (click)=\"selectCard(card)\"\n >\n <!-- Hidden native radio input \u2014 enables proper [id]/[name] binding for form semantics. -->\n <input\n type=\"radio\"\n style=\"position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;\"\n [id]=\"field()?.fieldName\"\n [name]=\"field()?.fieldName\"\n [value]=\"card.value\"\n [checked]=\"value === card.value\"\n (change)=\"selectCard(card)\"\n />\n <div class=\"acr-card-main-value\" [innerHTML]=\"card.mainValue\"></div>\n <div class=\"acr-card-sub-value\" [innerHTML]=\"card.subValue\"></div>\n <div class=\"acr-card-rate\">{{ card.growthRate }}</div>\n <div class=\"acr-card-details\">\n <div class=\"acr-card-detail-row\">\n <span>Guaranteed </span>\n <span>:</span>\n <strong>{{ card.guaranteed }}</strong>\n </div>\n <div class=\"acr-card-detail-row\">\n <span>Variable </span>\n <span>:</span>\n <strong>{{ card.variable }}</strong>\n </div>\n </div>\n <div class=\"acr-card-type\">\n <button class=\"acr-card-type-btn\" [ngClass]=\"{\n 'btn-high': card.value === 'High',\n 'btn-medium': card.value === 'Medium',\n 'btn-low': card.value !== 'High' && card.value !== 'Medium'\n }\">{{ card.value }} variable</button>\n </div>\n </div>\n </div>\n <!-- Note \u2014 full width, vertically aligned with radio group and card container -->\n <div class=\"acr-note\" *ngIf=\"field()?.configData?.infoMessage\">\n <strong>Note:</strong> {{ field()?.configData?.infoMessage }}\n </div>\n </div>\n </div><!-- /acr-card-container -->\n\n</div>\n", styles: [".acr-wrapper{font-family:mulish!important;width:100%;display:flex;flex-direction:column}.forRadioLabel{font-size:var(--radio-button-font-size, 12px)!important;font-weight:var(--radio-button-font-weight, 400);cursor:pointer;color:var(--radio-button-font-color, #444444)}.required-star{color:red;margin-left:2px}.radio-btn-group1{display:flex;gap:4px;flex-wrap:wrap;padding-right:10px;padding-left:10px}.radio-card-gender{border:1px solid rgba(218,218,218,1);border-radius:4px;padding:6px 20px;cursor:pointer;max-width:auto;max-height:auto;display:flex;align-items:center;justify-content:center;flex:1;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.radio-card-gender.selected{border-color:#fb0;border-width:1.6px}.radio-card-gender.selected:after{content:\"\";position:absolute;bottom:-16px;left:50%;transform:translate(-50%);width:0;height:0;z-index:3}.radio-card-gender.selected:before{content:\"\";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #fff;z-index:4}.radio-card-gender:hover:not(.disable-radio-btn){border-color:#ffd600}.disable-radio-btn{opacity:.55;pointer-events:none;background:#f5f5f5}.acr-card-container{position:relative;width:100%;padding-top:22px;box-sizing:border-box;padding-right:10px;padding-left:10px}.acr-card{background:#fff;border:1px solid rgba(218,218,218,1);border-radius:14px;padding:20px 18px 16px;width:100%;position:relative;overflow:visible;box-sizing:border-box}.acr-card:after{content:\"\";position:absolute;bottom:100%;left:var(--arrow-left, 40px);transform:translate(-50%);transition:left .2s ease;border-width:14px;border-style:solid;border-color:transparent transparent rgba(218,218,218,1) transparent;z-index:2}.acr-card:before{content:\"\";position:absolute;bottom:100%;left:var(--arrow-left, 40px);transform:translate(-50%);transition:left .2s ease;border-width:12px;border-style:solid;border-color:transparent transparent rgba(255,255,255,1) transparent;z-index:3}.acr-sub-label{font-size:10px;font-weight:700;color:#444;margin-bottom:10px;padding-right:10px;padding-left:10px}.acr-cards-row{display:flex;gap:14px;flex-wrap:nowrap;margin-bottom:30px}.acr-card-option{background:#fff;border:2px solid #E0E0E0;border-radius:12px;padding:18px 16px 28px;flex:1 1 0;min-width:0;max-width:none;cursor:pointer;transition:border-color .18s,box-shadow .18s;display:flex;flex-direction:column;align-items:flex-start;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.acr-card-option.selected{border-color:#ffd600;box-shadow:0 0 0 1px #ffd600}.acr-card-option:hover:not(.disabled){border-color:#ffd600}.acr-card-option.disabled{opacity:.5;pointer-events:none}.acr-card-main-value{font-size:16px;font-weight:700;color:#444;margin-bottom:3px;line-height:20px}.acr-card-main-sub-value{font-size:16px;font-weight:400;color:#444;margin-bottom:3px;line-height:20px}.acr-card-sub-value{font-size:10px;font-weight:700;color:#444;line-height:14px}.acr-card-sub-sub-value{font-size:10px;font-weight:400;color:#444;line-height:14px}.acr-card-rate{background:linear-gradient(to right,#fb0,#fff7df,#fb0);color:#444;font-weight:700;font-size:10px;line-height:14px;padding:4px;margin-bottom:10px;margin-top:6px;width:100%;height:22px;text-align:center;box-sizing:border-box}.acr-card-details{width:100%;margin-bottom:14px;background-color:#f5f5f5;padding-left:10px;padding-right:10px;display:grid;grid-template-columns:max-content auto 1fr;column-gap:4px}.acr-card-detail-row{display:contents;font-size:10px;color:#444}.acr-card-detail-row span{font-weight:400;font-size:10px;line-height:14px;color:#444}.acr-card-detail-row strong{font-weight:700;color:#444;font-size:10px;line-height:14px;text-align:right}.acr-card-type{position:absolute;bottom:-14px;left:0;right:0;display:flex;justify-content:center}.acr-card-type-btn{border:none;border-radius:20px;padding:5px 22px;font-size:13px;font-weight:600;cursor:pointer;outline:none}.btn-high{background:#00946f;color:#fff;font-weight:700;font-size:10px;line-height:14px}.btn-medium{background:#66ccb2;color:#444;font-weight:700;font-size:10px;line-height:14px}.btn-low{background:#cef0e8;color:#444;font-weight:700;font-size:10px;line-height:14px}.acr-note{background:#ececec;color:#222;font-size:12px;border-radius:4px;padding:4px 8px;line-height:16px;width:100%;box-sizing:border-box;margin-top:8px;font-weight:400}.acr-note strong{font-weight:700;font-size:12px;line-height:16px;color:#222}\n"] }]
|
|
86
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { change: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], growthRateChange: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5udWl0eS1jYWxjdWxhdG9yLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvYW5udWl0eS1jYWxjdWxhdG9yLXJhZGlvL2FubnVpdHktY2FsY3VsYXRvci1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FubnVpdHktY2FsY3VsYXRvci1yYWRpby9hbm51aXR5LWNhbGN1bGF0b3ItcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBZ0J6RSxNQUFNLE9BQU8sK0JBQStCO0lBQ3RCO0lBQXBCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUNyQyx5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUNoRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ3BDLFVBQVUsR0FBUSxJQUFJLENBQUM7SUFFdkIsUUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN6QixTQUFTLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRWhCLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWpDLGdCQUFnQixHQUFHLElBQUksWUFB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Qix1Y0FSL0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO2dCQUM5RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbEJILHE0SEFtR0EsZ2dKRDFGWSxZQUFZLGtiQUFFLGNBQWMsOEJBQUUsbUJBQW1CLDhCQUN6RCxXQUFXOzs0RkFVRiwrQkFBK0I7a0JBZjNDLFNBQVM7K0JBQ0UsOEJBQThCLFdBRy9CLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxtQkFBbUI7d0JBQ3pELFdBQVcsQ0FBQyxjQUNGLElBQUksYUFDTDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsQ0FBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7K0VBV1MsTUFBTTtzQkFBZixNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIGlucHV0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlLCBNYXRSYWRpb0NoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hbm51aXR5LWNhbGN1bGF0b3ItcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5udWl0eS1jYWxjdWxhdG9yLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYW5udWl0eS1jYWxjdWxhdG9yLXJhZGlvLmNvbXBvbmVudC5jc3MnXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0UmFkaW9Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFubnVpdHlDYWxjdWxhdG9yUmFkaW9Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQW5udWl0eUNhbGN1bGF0b3JSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cbiAgIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICBpbnB1dFZhbHVlOiBhbnkgPSBudWxsO1xuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpIGdyb3d0aFJhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICB2YWx1ZTogYW55ID0gbnVsbDtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNlbGVjdENhcmQoY2FyZDogYW55KTogdm9pZCB7XG4gICAgaWYgKGNhcmQuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnZhbHVlID0gY2FyZC52YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5ncm93dGhSYXRlQ2hhbmdlLmVtaXQoY2FyZCk7XG4gIH1cbiAgb25SYWRpb0dyb3VwQ2hhbmdlKGV2ZW50OiBNYXRSYWRpb0NoYW5nZSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICBjb25zb2xlLmxvZygnUmFkaW8gZ3JvdXAgY2hhbmdlZDonLCBuZXdWYWx1ZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUFycm93UG9zaXRpb24oKSwgMCk7XG4gIH1cbiAgdG9nZ2xlUmFkaW8odmFsdWU6IGFueSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5yZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0ICYmIHRoaXMucmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdC5zZXRWYWx1ZSkge1xuICAgICAgdGhpcy5yZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5vblJhZGlvR3JvdXBDaGFuZ2UoeyBzb3VyY2U6IHt9IGFzIGFueSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVBcnJvd1Bvc2l0aW9uKCksIDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBcnJvd1Bvc2l0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2VsZWN0ZWQ6IEhUTUxFbGVtZW50ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcucmFkaW8tY2FyZC1nZW5kZXIuc2VsZWN0ZWQnKTtcbiAgICBjb25zdCBjYXJkOiBIVE1MRWxlbWVudCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmFjci1jYXJkJyk7XG4gICAgaWYgKHNlbGVjdGVkICYmIGNhcmQpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUmVjdCA9IHNlbGVjdGVkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY2FyZFJlY3QgPSBjYXJkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY2VudGVyWCA9IHNlbGVjdGVkUmVjdC5sZWZ0ICsgc2VsZWN0ZWRSZWN0LndpZHRoIC8gMiAtIGNhcmRSZWN0LmxlZnQ7XG4gICAgICBjYXJkLnN0eWxlLnNldFByb3BlcnR5KCctLWFycm93LWxlZnQnLCBgJHtjZW50ZXJYfXB4YCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIlxuXG48ZGl2IGNsYXNzPVwiYWNyLXdyYXBwZXJcIj5cblxuICA8IS0tIFRvcCBIZWFkZXIgTGFiZWwgLS0+XG4gIDxkaXYgY2xhc3M9XCJhY3Itc3ViLWxhYmVsXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiPlxuICAgIHt7IGZpZWxkKCk/LmxhYmVsIH19XG4gICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBSYWRpbyBPcHRpb24gQ2FyZHMgLS0+XG4gIDxkaXYgY2xhc3M9XCJyYWRpby1idG4tZ3JvdXAxXCIgKm5nSWY9XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pc1Nob3dSYWRpb09wdGlvblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmFkaW8tY2FyZC1nZW5kZXJcIlxuICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2YgZmllbGQoKT8ub3B0aW9uc1wiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaW5wdXRWYWx1ZSA9PT0gZGF0YS52YWx1ZVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZS1yYWRpby1idG5dPVwiZmllbGQoKT8uaXNEaXNhYmxlIHx8IGRhdGEuZGlzYWJsZWQgPT09IHRydWUgfHwgZGF0YS5kaXNhYmxlZCA9PT0gJ3RydWUnXCJcbiAgICAgIChjbGljayk9XCIoZGF0YS5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCBkYXRhLmRpc2FibGVkID09PSAndHJ1ZScpID8gbnVsbCA6IHRvZ2dsZVJhZGlvKGRhdGEudmFsdWUsICRldmVudClcIlxuICAgID5cbiAgICAgIDwhLS0gSGlkZGVuIG5hdGl2ZSByYWRpbyBpbnB1dCDigJQgZW5hYmxlcyBwcm9wZXIgW2lkXS9bbmFtZV0gYmluZGluZyBmb3IgZm9ybSBzZW1hbnRpY3MuXG4gICAgICAgICAgIFBhcmVudCBwcm9qZWN0cyBjYW4gYmluZCAoY2hhbmdlKT1cIm15SGFuZGxlcigkZXZlbnQpXCIgb24gdGhlIGhvc3QgY29tcG9uZW50LiAtLT5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgd2lkdGg6IDA7IGhlaWdodDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7XCJcbiAgICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhLnZhbHVlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaW5wdXRWYWx1ZSA9PT0gZGF0YS52YWx1ZVwiXG4gICAgICAgIChncm93dGhSYXRlQ2hhbmdlKT1cInRvZ2dsZVJhZGlvKGRhdGEudmFsdWUsICRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZm9yUmFkaW9MYWJlbFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAnLS1yYWRpby1idXR0b24tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQsXG4gICAgICAgICAgJy0tcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUsXG4gICAgICAgICAgJy0tcmFkaW8tYnV0dG9uLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yXG4gICAgICAgIH1cIlxuICAgICAgPnt7IGRhdGEubGFiZWwgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FyZCBDb250YWluZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJhY3ItY2FyZC1jb250YWluZXJcIiAqbmdJZj1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlzU2hvd0NhcmRcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3ItY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Itc3ViLWxhYmVsXCIgKm5nSWY9XCJmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJMYWJlbFwiPlxuICAgICAge3sgZmllbGQoKT8uY29uZmlnRGF0YT8uc3ViTGFiZWwgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3ItY2FyZHMtcm93XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWNyLWNhcmQtb3B0aW9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNhcmQgb2YgZmllbGQoKT8uY29uZmlnRGF0YT8uY2FyZHNWYWx1ZVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gY2FyZC52YWx1ZVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjYXJkLmRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhcmQoY2FyZClcIlxuICAgICAgPlxuICAgICAgICA8IS0tIEhpZGRlbiBuYXRpdmUgcmFkaW8gaW5wdXQg4oCUIGVuYWJsZXMgcHJvcGVyIFtpZF0vW25hbWVdIGJpbmRpbmcgZm9yIGZvcm0gc2VtYW50aWNzLiAtLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgd2lkdGg6IDA7IGhlaWdodDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7XCJcbiAgICAgICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICAgICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJ2YWx1ZSA9PT0gY2FyZC52YWx1ZVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RDYXJkKGNhcmQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjci1jYXJkLW1haW4tdmFsdWVcIiBbaW5uZXJIVE1MXT1cImNhcmQubWFpblZhbHVlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3ItY2FyZC1zdWItdmFsdWVcIiBbaW5uZXJIVE1MXT1cImNhcmQuc3ViVmFsdWVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjci1jYXJkLXJhdGVcIj57eyBjYXJkLmdyb3d0aFJhdGUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjci1jYXJkLWRldGFpbHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNyLWNhcmQtZGV0YWlsLXJvd1wiPlxuICAgICAgICAgICAgPHNwYW4+R3VhcmFudGVlZCA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj46PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBjYXJkLmd1YXJhbnRlZWQgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNyLWNhcmQtZGV0YWlsLXJvd1wiPlxuICAgICAgICAgICAgPHNwYW4+VmFyaWFibGUgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+Ojwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgY2FyZC52YXJpYWJsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjci1jYXJkLXR5cGVcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWNyLWNhcmQtdHlwZS1idG5cIiBbbmdDbGFzc109XCJ7XG4gICAgICAnYnRuLWhpZ2gnOiBjYXJkLnZhbHVlID09PSAnSGlnaCcsXG4gICAgICAnYnRuLW1lZGl1bSc6IGNhcmQudmFsdWUgPT09ICdNZWRpdW0nLFxuICAgICAgJ2J0bi1sb3cnOiBjYXJkLnZhbHVlICE9PSAnSGlnaCcgJiYgY2FyZC52YWx1ZSAhPT0gJ01lZGl1bSdcbiAgICB9XCI+e3sgY2FyZC52YWx1ZSB9fSB2YXJpYWJsZTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgICA8IS0tIE5vdGUg4oCUIGZ1bGwgd2lkdGgsIHZlcnRpY2FsbHkgYWxpZ25lZCB3aXRoIHJhZGlvIGdyb3VwIGFuZCBjYXJkIGNvbnRhaW5lciAtLT5cbiAgPGRpdiBjbGFzcz1cImFjci1ub3RlXCIgKm5nSWY9XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbmZvTWVzc2FnZVwiPlxuICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4ge3sgZmllbGQoKT8uY29uZmlnRGF0YT8uaW5mb01lc3NhZ2UgfX1cbiAgPC9kaXY+XG4gIDwvZGl2PlxuICA8L2Rpdj48IS0tIC9hY3ItY2FyZC1jb250YWluZXIgLS0+XG5cbjwvZGl2PlxuIl19
|