tango-app-ui-manage-settings 3.7.51 → 3.7.52
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/components/configurations/trax-configuration/trax-configuration.component.mjs
CHANGED
|
@@ -127,10 +127,10 @@ export class TraxConfigurationComponent {
|
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxConfigurationComponent, deps: [{ token: i1.ClientApiService }, { token: i2.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxConfigurationComponent, selector: "lib-trax-configuration", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxConfigurationComponent, selector: "lib-trax-configuration", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!isDisabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" [disabled]=\"!canSave\" (click)=\"onSubmit()\">\r\n <span>{{ saving ? 'Saving\u2026' : 'Save Changes' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".trax-config .tc-block{margin-top:20px;margin-bottom:8px}.trax-config .tc-block+.tc-block{margin-top:36px}.trax-config .tc-title{color:#101828;font-size:16px;font-weight:600;line-height:24px}.trax-config .tc-help{color:#667085;font-size:14px;line-height:20px;margin-top:4px;max-width:760px}.trax-config .tc-label{display:block;color:#344054;font-size:14px;font-weight:500;line-height:20px;margin-bottom:6px}.trax-config .tc-label--pass{color:#027a48}.trax-config .tc-label--fail{color:#b42318}.trax-config .form-control{min-height:44px;border-radius:8px}.trax-config .tc-preview{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px}.trax-config .tc-preview--chips{flex-wrap:nowrap;height:44px;padding:0 8px;border-radius:8px;background:#f9fafb}.trax-config .tc-chip{display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:20px;white-space:nowrap}.trax-config .tc-chip--pass{background:#ecfdf3;color:#027a48}.trax-config .tc-chip--fail{background:#fef3f2;color:#b42318}.trax-config .tc-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.trax-config .tc-chip-mark{flex-shrink:0}.trax-config .tc-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.trax-config .tc-presets-label{color:#667085;font-size:14px}.trax-config .tc-preset{padding:8px 16px;border-radius:999px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.trax-config .tc-preset.is-on{border-color:#b2ddff;background:#eff8ff;color:#175cd3}.trax-config .tc-preset:disabled{cursor:default;opacity:.7}.trax-config.is-readonly .form-control:disabled{background:#f9fafb;color:#344054}.trax-config .footer-seperator{border-top:1px solid #EAECF0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
131
131
|
}
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxConfigurationComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
|
-
args: [{ selector: 'lib-trax-configuration', template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n
|
|
134
|
+
args: [{ selector: 'lib-trax-configuration', template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!isDisabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" [disabled]=\"!canSave\" (click)=\"onSubmit()\">\r\n <span>{{ saving ? 'Saving\u2026' : 'Save Changes' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".trax-config .tc-block{margin-top:20px;margin-bottom:8px}.trax-config .tc-block+.tc-block{margin-top:36px}.trax-config .tc-title{color:#101828;font-size:16px;font-weight:600;line-height:24px}.trax-config .tc-help{color:#667085;font-size:14px;line-height:20px;margin-top:4px;max-width:760px}.trax-config .tc-label{display:block;color:#344054;font-size:14px;font-weight:500;line-height:20px;margin-bottom:6px}.trax-config .tc-label--pass{color:#027a48}.trax-config .tc-label--fail{color:#b42318}.trax-config .form-control{min-height:44px;border-radius:8px}.trax-config .tc-preview{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px}.trax-config .tc-preview--chips{flex-wrap:nowrap;height:44px;padding:0 8px;border-radius:8px;background:#f9fafb}.trax-config .tc-chip{display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:20px;white-space:nowrap}.trax-config .tc-chip--pass{background:#ecfdf3;color:#027a48}.trax-config .tc-chip--fail{background:#fef3f2;color:#b42318}.trax-config .tc-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.trax-config .tc-chip-mark{flex-shrink:0}.trax-config .tc-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.trax-config .tc-presets-label{color:#667085;font-size:14px}.trax-config .tc-preset{padding:8px 16px;border-radius:999px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.trax-config .tc-preset.is-on{border-color:#b2ddff;background:#eff8ff;color:#175cd3}.trax-config .tc-preset:disabled{cursor:default;opacity:.7}.trax-config.is-readonly .form-control:disabled{background:#f9fafb;color:#344054}.trax-config .footer-seperator{border-top:1px solid #EAECF0}\n"] }]
|
|
135
135
|
}], ctorParameters: () => [{ type: i1.ClientApiService }, { type: i2.ToastService }] });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvdHJheC1jb25maWd1cmF0aW9uL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3RyYXgtY29uZmlndXJhdGlvbi90cmF4LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBVzFDLE1BQU0sUUFBUSxHQUFlO0lBQzNCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLHNCQUFzQixFQUFFLG9CQUFvQjtDQUM3QyxDQUFDO0FBRUY7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFrQmpCO0lBQW1DO0lBakJ2RCxNQUFNLEdBQWUsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQzVCLE9BQU8sR0FBMEM7UUFDeEQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDOUIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7UUFDNUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtLQUNqRCxDQUFDO0lBQ0YsK0VBQStFO0lBQ3RFLGVBQWUsR0FB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LENBQUM7WUFDM0ksQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBOUdVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLDhEQzdCdkMsMHZKQXNGQTs7NEZEekRhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmF4Q29uZmlnIHtcclxuICBwYXNzTGFiZWw6IHN0cmluZztcclxuICBmYWlsTGFiZWw6IHN0cmluZztcclxuICByZW1hcmtzTGFiZWw6IHN0cmluZztcclxuICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRTOiBUcmF4Q29uZmlnID0ge1xyXG4gIHBhc3NMYWJlbDogJ1Bhc3MnLFxyXG4gIGZhaWxMYWJlbDogJ0ZhaWwnLFxyXG4gIHJlbWFya3NMYWJlbDogJ1JlbWFya3MnLFxyXG4gIGFkZGl0aW9uYWxSZW1hcmtzTGFiZWw6ICdBZGRpdGlvbmFsIFJlbWFya3MnXHJcbn07XHJcblxyXG4vKipcclxuICogTWFuYWdlIC0+IFNldHRpbmdzIC0+IFRyYXggQ29uZmlndXJhdGlvbi4gUmVuYW1lcyB0aGUgdHdvIHNjb3Jpbmcgb3V0Y29tZXMgKFBhc3MgLyBGYWlsKVxyXG4gKiBhbmQgdGhlIHR3byBmcmVlLXRleHQgcmVtYXJrIGZpZWxkcyBmb3IgdGhlIHdob2xlIGNsaWVudC4gUmVhZCBhbmQgc2F2ZWQgdGhyb3VnaCB0aGVcclxuICogVHJheCBBUEkgKC90cmF4L2F1ZGl0L3NldHRpbmdzKTsgdGhlIEF1ZGl0IG1vZHVsZSByZWFkcyB0aGUgc2FtZSBkb2N1bWVudC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyYXgtY29uZmlndXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBjb25maWc6IFRyYXhDb25maWcgPSB7IC4uLkRFRkFVTFRTIH07XHJcbiAgcmVhZG9ubHkgcHJlc2V0czogQXJyYXk8eyBwYXNzOiBzdHJpbmc7IGZhaWw6IHN0cmluZyB9PiA9IFtcclxuICAgIHsgcGFzczogJ1Bhc3MnLCBmYWlsOiAnRmFpbCcgfSxcclxuICAgIHsgcGFzczogJ0NvbXBsaWFudCcsIGZhaWw6ICdOb24tQ29tcGxpYW50JyB9LFxyXG4gICAgeyBwYXNzOiAnU2F0aXNmYWN0b3J5JywgZmFpbDogJ1Vuc2F0aXNmYWN0b3J5JyB9XHJcbiAgXTtcclxuICAvKiogUGFzcyBtYXJrIHNob3duIGluIHRoZSBwcmV2aWV3OyBwZXItYXVkaXQgcGFzcyBtYXJrcyBsaXZlIG9uIGVhY2ggYXVkaXQuICovXHJcbiAgcmVhZG9ubHkgcHJldmlld1Bhc3NNYXJrID0gNzU7XHJcblxyXG4gIGNsaWVudElkID0gJyc7XHJcbiAgaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHNhdmVkOiBUcmF4Q29uZmlnID0geyAuLi5ERUZBVUxUUyB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgdHM6IFRvYXN0U2VydmljZSkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZT8uY2xpZW50SWQgJiYgZS5jbGllbnRJZCAhPT0gdGhpcy5jbGllbnRJZCkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlLmNsaWVudElkO1xyXG4gICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpZW50SWQpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFRyYXhDb25maWcodGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXM/LmRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZWQgPSB0aGlzLnBpY2socmVzLmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5jb25maWcgPSB7IC4uLnRoaXMuc2F2ZWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaWNrKHNyYzogYW55KTogVHJheENvbmZpZyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXNzTGFiZWw6IHNyYz8ucGFzc0xhYmVsIHx8IERFRkFVTFRTLnBhc3NMYWJlbCxcclxuICAgICAgZmFpbExhYmVsOiBzcmM/LmZhaWxMYWJlbCB8fCBERUZBVUxUUy5mYWlsTGFiZWwsXHJcbiAgICAgIHJlbWFya3NMYWJlbDogc3JjPy5yZW1hcmtzTGFiZWwgfHwgREVGQVVMVFMucmVtYXJrc0xhYmVsLFxyXG4gICAgICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiBzcmM/LmFkZGl0aW9uYWxSZW1hcmtzTGFiZWwgfHwgREVGQVVMVFMuYWRkaXRpb25hbFJlbWFya3NMYWJlbFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhdGhpcy5pc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4udGhpcy5zYXZlZCB9O1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFwcGx5UHJlc2V0KHA6IHsgcGFzczogc3RyaW5nOyBmYWlsOiBzdHJpbmcgfSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgeyByZXR1cm47IH1cclxuICAgIHRoaXMuY29uZmlnLnBhc3NMYWJlbCA9IHAucGFzcztcclxuICAgIHRoaXMuY29uZmlnLmZhaWxMYWJlbCA9IHAuZmFpbDtcclxuICB9XHJcblxyXG4gIGlzUHJlc2V0KHA6IHsgcGFzczogc3RyaW5nOyBmYWlsOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBhc3NMYWJlbC50cmltKCkgPT09IHAucGFzcyAmJiB0aGlzLmNvbmZpZy5mYWlsTGFiZWwudHJpbSgpID09PSBwLmZhaWw7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2F2ZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGMgPSB0aGlzLmNvbmZpZztcclxuICAgIHJldHVybiAhdGhpcy5zYXZpbmcgJiYgW2MucGFzc0xhYmVsLCBjLmZhaWxMYWJlbCwgYy5yZW1hcmtzTGFiZWwsIGMuYWRkaXRpb25hbFJlbWFya3NMYWJlbF1cclxuICAgICAgLmV2ZXJ5KHYgPT4gdi50cmltKCkubGVuZ3RoID4gMCAmJiB2LnRyaW0oKS5sZW5ndGggPD0gNDApO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2FuU2F2ZSB8fCAhdGhpcy5jbGllbnRJZCkgeyByZXR1cm47IH1cclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBwYXNzTGFiZWw6IHRoaXMuY29uZmlnLnBhc3NMYWJlbC50cmltKCksXHJcbiAgICAgIGZhaWxMYWJlbDogdGhpcy5jb25maWcuZmFpbExhYmVsLnRyaW0oKSxcclxuICAgICAgcmVtYXJrc0xhYmVsOiB0aGlzLmNvbmZpZy5yZW1hcmtzTGFiZWwudHJpbSgpLFxyXG4gICAgICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiB0aGlzLmNvbmZpZy5hZGRpdGlvbmFsUmVtYXJrc0xhYmVsLnRyaW0oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlVHJheENvbmZpZyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAocmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZWQgPSB0aGlzLnBpY2socmVzLmRhdGEgfHwgcGF5bG9hZCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZyA9IHsgLi4udGhpcy5zYXZlZCB9O1xyXG4gICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KCdUcmF4IGNvbmZpZ3VyYXRpb24gc2F2ZWQnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KHJlcz8ubWVzc2FnZSB8fCAnQ291bGQgbm90IHNhdmUgdGhlIFRyYXggY29uZmlndXJhdGlvbicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8uZXJyb3I/LmVycm9yIHx8IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0NvdWxkIG5vdCBzYXZlIHRoZSBUcmF4IGNvbmZpZ3VyYXRpb24nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZUZvcm0oKVwiICpuZ0lmPVwiaXNEaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBhbGlnbi1pdGVtcy1lbmRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBkPVwiTTE0LjE2NyAyLjVhMi4zNTcgMi4zNTcgMCAxIDEgMy4zMzMgMy4zMzNMNi4yNSAxNy4wODMgMi41IDE3LjVsLjQxNy0zLjc1TDE0LjE2NyAyLjVaXCJcclxuICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgPC9zdmc+PC9zcGFuPkVkaXQgRGV0YWlsczwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgdHJheC1jb25maWdcIiBbY2xhc3MuaXMtcmVhZG9ubHldPVwiaXNEaXNhYmxlZFwiPlxyXG4gIDwhLS0gQXVkaXQgTGFiZWxzIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGMtYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy10aXRsZVwiPkF1ZGl0IExhYmVsczwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRjLWhlbHBcIj5SZW5hbWUgdGhlIHR3byBzY29yaW5nIG91dGNvbWVzLiBUaGVzZSBsYWJlbHMgcmVwbGFjZSBQYXNzIGFuZCBGYWlsIGV2ZXJ5d2hlcmUgaW4gdGhlIEF1ZGl0XHJcbiAgICAgIG1vZHVsZSDigJQgZGFzaGJvYXJkcywgc3RvcmUgbGlzdHMsIGdhbGxlcnkgZmlsdGVycywgcmVwb3J0cyBhbmQgZXhwb3J0cy48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGctNCBtdC0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsIHRjLWxhYmVsLS1wYXNzXCIgZm9yPVwidHJheFBhc3NMYWJlbFwiPkF0IG9yIGFib3ZlIHRoZSBwYXNzIG1hcms8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhQYXNzTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5wYXNzTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIlBhc3NcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsIHRjLWxhYmVsLS1mYWlsXCIgZm9yPVwidHJheEZhaWxMYWJlbFwiPkJlbG93IHRoZSBwYXNzIG1hcms8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhGYWlsTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5mYWlsTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIkZhaWxcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0Yy1sYWJlbFwiPlByZXZpZXc8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGMtcHJldmlldyB0Yy1wcmV2aWV3LS1jaGlwc1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwIHRjLWNoaXAtLXBhc3NcIiBbdGl0bGVdPVwiKGNvbmZpZy5wYXNzTGFiZWwudHJpbSgpIHx8ICdQYXNzJykgKyAnIOKJpSAnICsgcHJldmlld1Bhc3NNYXJrICsgJyUnXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGMtY2hpcC1uYW1lXCI+e3sgY29uZmlnLnBhc3NMYWJlbC50cmltKCkgfHwgJ1Bhc3MnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRjLWNoaXAtbWFya1wiPuKJpSB7eyBwcmV2aWV3UGFzc01hcmsgfX0lPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwIHRjLWNoaXAtLWZhaWxcIiBbdGl0bGVdPVwiKGNvbmZpZy5mYWlsTGFiZWwudHJpbSgpIHx8ICdGYWlsJykgKyAnIDwgJyArIHByZXZpZXdQYXNzTWFyayArICclJ1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRjLWNoaXAtbmFtZVwiPnt7IGNvbmZpZy5mYWlsTGFiZWwudHJpbSgpIHx8ICdGYWlsJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwLW1hcmtcIj4mbHQ7IHt7IHByZXZpZXdQYXNzTWFyayB9fSU8L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRjLXByZXNldHMgbXQtNFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRjLXByZXNldHMtbGFiZWxcIj5QcmVzZXRzPC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRjLXByZXNldFwiICpuZ0Zvcj1cImxldCBwIG9mIHByZXNldHNcIiBbY2xhc3MuaXMtb25dPVwiaXNQcmVzZXQocClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgKGNsaWNrKT1cImFwcGx5UHJlc2V0KHApXCI+e3sgcC5wYXNzIH19IC8ge3sgcC5mYWlsIH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBSZW1hcmsgRmllbGRzIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGMtYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy10aXRsZVwiPlJlbWFyayBGaWVsZHM8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy1oZWxwXCI+UmVuYW1lIHRoZSB0d28gZnJlZS10ZXh0IGZpZWxkcyBhdWRpdG9ycyBmaWxsIGluIHRoZSBtb2JpbGUgYXBwLiBUaGUgbmFtZXMgYXBwbHkgdG8gdGhlIG1vYmlsZVxyXG4gICAgICBmb3JtLCB0aGUgR2FsbGVyeSwgZXhwb3J0cyBhbmQgQ1NWIGRvd25sb2Fkcy48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGctNCBtdC0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsXCIgZm9yPVwidHJheFJlbWFya3NMYWJlbFwiPlJlbWFya3MgZmllbGQ8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhSZW1hcmtzTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5yZW1hcmtzTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIlJlbWFya3NcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsXCIgZm9yPVwidHJheEFkZGl0aW9uYWxSZW1hcmtzTGFiZWxcIj5BZGRpdGlvbmFsIFJlbWFya3MgZmllbGQ8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhBZGRpdGlvbmFsUmVtYXJrc0xhYmVsXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjQwXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmFkZGl0aW9uYWxSZW1hcmtzTGFiZWxcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIHBsYWNlaG9sZGVyPVwiQWRkaXRpb25hbCBSZW1hcmtzXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGMtbGFiZWxcIj5QcmV2aWV3PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRjLXByZXZpZXcgdGMtcHJldmlldy0tdGV4dFwiPlxyXG4gICAgICAgICAgPGRpdj48ZW0+e3sgY29uZmlnLnJlbWFya3NMYWJlbC50cmltKCkgfHwgJ1JlbWFya3MnIH19OjwvZW0+IERvb3IgbWF0dCB3b3JuIG91dCBhdCB0aGUgZWRnZXM8L2Rpdj5cclxuICAgICAgICAgIDxkaXY+PGVtPnt7IGNvbmZpZy5hZGRpdGlvbmFsUmVtYXJrc0xhYmVsLnRyaW0oKSB8fCAnQWRkaXRpb25hbCBSZW1hcmtzJyB9fTo8L2VtPiBSZXBsYWNlZCBvbiAxMiBBdWc8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFpc0Rpc2FibGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItNSB3LTEwMCBmb290ZXItc2VwZXJhdG9yXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG10LTEgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00XCIgW2Rpc2FibGVkXT1cIiFjYW5TYXZlXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICA8c3Bhbj57eyBzYXZpbmcgPyAnU2F2aW5n4oCmJyA6ICdTYXZlIENoYW5nZXMnIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvdHJheC1jb25maWd1cmF0aW9uL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3RyYXgtY29uZmlndXJhdGlvbi90cmF4LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBVzFDLE1BQU0sUUFBUSxHQUFlO0lBQzNCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLHNCQUFzQixFQUFFLG9CQUFvQjtDQUM3QyxDQUFDO0FBRUY7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFrQmpCO0lBQW1DO0lBakJ2RCxNQUFNLEdBQWUsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQzVCLE9BQU8sR0FBMEM7UUFDeEQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDOUIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7UUFDNUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtLQUNqRCxDQUFDO0lBQ0YsK0VBQStFO0lBQ3RFLGVBQWUsR0FB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LENBQUM7WUFDM0ksQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBOUdVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLDhEQzdCdkMsczJJQStFQTs7NEZEbERhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmF4Q29uZmlnIHtcclxuICBwYXNzTGFiZWw6IHN0cmluZztcclxuICBmYWlsTGFiZWw6IHN0cmluZztcclxuICByZW1hcmtzTGFiZWw6IHN0cmluZztcclxuICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRTOiBUcmF4Q29uZmlnID0ge1xyXG4gIHBhc3NMYWJlbDogJ1Bhc3MnLFxyXG4gIGZhaWxMYWJlbDogJ0ZhaWwnLFxyXG4gIHJlbWFya3NMYWJlbDogJ1JlbWFya3MnLFxyXG4gIGFkZGl0aW9uYWxSZW1hcmtzTGFiZWw6ICdBZGRpdGlvbmFsIFJlbWFya3MnXHJcbn07XHJcblxyXG4vKipcclxuICogTWFuYWdlIC0+IFNldHRpbmdzIC0+IFRyYXggQ29uZmlndXJhdGlvbi4gUmVuYW1lcyB0aGUgdHdvIHNjb3Jpbmcgb3V0Y29tZXMgKFBhc3MgLyBGYWlsKVxyXG4gKiBhbmQgdGhlIHR3byBmcmVlLXRleHQgcmVtYXJrIGZpZWxkcyBmb3IgdGhlIHdob2xlIGNsaWVudC4gUmVhZCBhbmQgc2F2ZWQgdGhyb3VnaCB0aGVcclxuICogVHJheCBBUEkgKC90cmF4L2F1ZGl0L3NldHRpbmdzKTsgdGhlIEF1ZGl0IG1vZHVsZSByZWFkcyB0aGUgc2FtZSBkb2N1bWVudC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyYXgtY29uZmlndXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RyYXgtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBjb25maWc6IFRyYXhDb25maWcgPSB7IC4uLkRFRkFVTFRTIH07XHJcbiAgcmVhZG9ubHkgcHJlc2V0czogQXJyYXk8eyBwYXNzOiBzdHJpbmc7IGZhaWw6IHN0cmluZyB9PiA9IFtcclxuICAgIHsgcGFzczogJ1Bhc3MnLCBmYWlsOiAnRmFpbCcgfSxcclxuICAgIHsgcGFzczogJ0NvbXBsaWFudCcsIGZhaWw6ICdOb24tQ29tcGxpYW50JyB9LFxyXG4gICAgeyBwYXNzOiAnU2F0aXNmYWN0b3J5JywgZmFpbDogJ1Vuc2F0aXNmYWN0b3J5JyB9XHJcbiAgXTtcclxuICAvKiogUGFzcyBtYXJrIHNob3duIGluIHRoZSBwcmV2aWV3OyBwZXItYXVkaXQgcGFzcyBtYXJrcyBsaXZlIG9uIGVhY2ggYXVkaXQuICovXHJcbiAgcmVhZG9ubHkgcHJldmlld1Bhc3NNYXJrID0gNzU7XHJcblxyXG4gIGNsaWVudElkID0gJyc7XHJcbiAgaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHNhdmVkOiBUcmF4Q29uZmlnID0geyAuLi5ERUZBVUxUUyB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgdHM6IFRvYXN0U2VydmljZSkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZT8uY2xpZW50SWQgJiYgZS5jbGllbnRJZCAhPT0gdGhpcy5jbGllbnRJZCkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlLmNsaWVudElkO1xyXG4gICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpZW50SWQpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFRyYXhDb25maWcodGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXM/LmRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZWQgPSB0aGlzLnBpY2socmVzLmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5jb25maWcgPSB7IC4uLnRoaXMuc2F2ZWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaWNrKHNyYzogYW55KTogVHJheENvbmZpZyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXNzTGFiZWw6IHNyYz8ucGFzc0xhYmVsIHx8IERFRkFVTFRTLnBhc3NMYWJlbCxcclxuICAgICAgZmFpbExhYmVsOiBzcmM/LmZhaWxMYWJlbCB8fCBERUZBVUxUUy5mYWlsTGFiZWwsXHJcbiAgICAgIHJlbWFya3NMYWJlbDogc3JjPy5yZW1hcmtzTGFiZWwgfHwgREVGQVVMVFMucmVtYXJrc0xhYmVsLFxyXG4gICAgICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiBzcmM/LmFkZGl0aW9uYWxSZW1hcmtzTGFiZWwgfHwgREVGQVVMVFMuYWRkaXRpb25hbFJlbWFya3NMYWJlbFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhdGhpcy5pc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4udGhpcy5zYXZlZCB9O1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFwcGx5UHJlc2V0KHA6IHsgcGFzczogc3RyaW5nOyBmYWlsOiBzdHJpbmcgfSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkgeyByZXR1cm47IH1cclxuICAgIHRoaXMuY29uZmlnLnBhc3NMYWJlbCA9IHAucGFzcztcclxuICAgIHRoaXMuY29uZmlnLmZhaWxMYWJlbCA9IHAuZmFpbDtcclxuICB9XHJcblxyXG4gIGlzUHJlc2V0KHA6IHsgcGFzczogc3RyaW5nOyBmYWlsOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBhc3NMYWJlbC50cmltKCkgPT09IHAucGFzcyAmJiB0aGlzLmNvbmZpZy5mYWlsTGFiZWwudHJpbSgpID09PSBwLmZhaWw7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2F2ZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGMgPSB0aGlzLmNvbmZpZztcclxuICAgIHJldHVybiAhdGhpcy5zYXZpbmcgJiYgW2MucGFzc0xhYmVsLCBjLmZhaWxMYWJlbCwgYy5yZW1hcmtzTGFiZWwsIGMuYWRkaXRpb25hbFJlbWFya3NMYWJlbF1cclxuICAgICAgLmV2ZXJ5KHYgPT4gdi50cmltKCkubGVuZ3RoID4gMCAmJiB2LnRyaW0oKS5sZW5ndGggPD0gNDApO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2FuU2F2ZSB8fCAhdGhpcy5jbGllbnRJZCkgeyByZXR1cm47IH1cclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBwYXNzTGFiZWw6IHRoaXMuY29uZmlnLnBhc3NMYWJlbC50cmltKCksXHJcbiAgICAgIGZhaWxMYWJlbDogdGhpcy5jb25maWcuZmFpbExhYmVsLnRyaW0oKSxcclxuICAgICAgcmVtYXJrc0xhYmVsOiB0aGlzLmNvbmZpZy5yZW1hcmtzTGFiZWwudHJpbSgpLFxyXG4gICAgICBhZGRpdGlvbmFsUmVtYXJrc0xhYmVsOiB0aGlzLmNvbmZpZy5hZGRpdGlvbmFsUmVtYXJrc0xhYmVsLnRyaW0oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlVHJheENvbmZpZyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAocmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZWQgPSB0aGlzLnBpY2socmVzLmRhdGEgfHwgcGF5bG9hZCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZyA9IHsgLi4udGhpcy5zYXZlZCB9O1xyXG4gICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KCdUcmF4IGNvbmZpZ3VyYXRpb24gc2F2ZWQnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KHJlcz8ubWVzc2FnZSB8fCAnQ291bGQgbm90IHNhdmUgdGhlIFRyYXggY29uZmlndXJhdGlvbicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8uZXJyb3I/LmVycm9yIHx8IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0NvdWxkIG5vdCBzYXZlIHRoZSBUcmF4IGNvbmZpZ3VyYXRpb24nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZUZvcm0oKVwiICpuZ0lmPVwiaXNEaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBhbGlnbi1pdGVtcy1lbmRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBkPVwiTTE0LjE2NyAyLjVhMi4zNTcgMi4zNTcgMCAxIDEgMy4zMzMgMy4zMzNMNi4yNSAxNy4wODMgMi41IDE3LjVsLjQxNy0zLjc1TDE0LjE2NyAyLjVaXCJcclxuICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgPC9zdmc+PC9zcGFuPkVkaXQgRGV0YWlsczwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgdHJheC1jb25maWdcIiBbY2xhc3MuaXMtcmVhZG9ubHldPVwiaXNEaXNhYmxlZFwiPlxyXG4gIDwhLS0gQXVkaXQgTGFiZWxzIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGMtYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy10aXRsZVwiPkF1ZGl0IExhYmVsczwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRjLWhlbHBcIj5SZW5hbWUgdGhlIHR3byBzY29yaW5nIG91dGNvbWVzLiBUaGVzZSBsYWJlbHMgcmVwbGFjZSBQYXNzIGFuZCBGYWlsIGV2ZXJ5d2hlcmUgaW4gdGhlIEF1ZGl0XHJcbiAgICAgIG1vZHVsZSDigJQgZGFzaGJvYXJkcywgc3RvcmUgbGlzdHMsIGdhbGxlcnkgZmlsdGVycywgcmVwb3J0cyBhbmQgZXhwb3J0cy48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGctNCBtdC0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsIHRjLWxhYmVsLS1wYXNzXCIgZm9yPVwidHJheFBhc3NMYWJlbFwiPkF0IG9yIGFib3ZlIHRoZSBwYXNzIG1hcms8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhQYXNzTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5wYXNzTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIlBhc3NcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsIHRjLWxhYmVsLS1mYWlsXCIgZm9yPVwidHJheEZhaWxMYWJlbFwiPkJlbG93IHRoZSBwYXNzIG1hcms8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhGYWlsTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5mYWlsTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIkZhaWxcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0Yy1sYWJlbFwiPlByZXZpZXc8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGMtcHJldmlldyB0Yy1wcmV2aWV3LS1jaGlwc1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwIHRjLWNoaXAtLXBhc3NcIiBbdGl0bGVdPVwiKGNvbmZpZy5wYXNzTGFiZWwudHJpbSgpIHx8ICdQYXNzJykgKyAnIOKJpSAnICsgcHJldmlld1Bhc3NNYXJrICsgJyUnXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGMtY2hpcC1uYW1lXCI+e3sgY29uZmlnLnBhc3NMYWJlbC50cmltKCkgfHwgJ1Bhc3MnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRjLWNoaXAtbWFya1wiPuKJpSB7eyBwcmV2aWV3UGFzc01hcmsgfX0lPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwIHRjLWNoaXAtLWZhaWxcIiBbdGl0bGVdPVwiKGNvbmZpZy5mYWlsTGFiZWwudHJpbSgpIHx8ICdGYWlsJykgKyAnIDwgJyArIHByZXZpZXdQYXNzTWFyayArICclJ1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRjLWNoaXAtbmFtZVwiPnt7IGNvbmZpZy5mYWlsTGFiZWwudHJpbSgpIHx8ICdGYWlsJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0Yy1jaGlwLW1hcmtcIj4mbHQ7IHt7IHByZXZpZXdQYXNzTWFyayB9fSU8L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRjLXByZXNldHMgbXQtNFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRjLXByZXNldHMtbGFiZWxcIj5QcmVzZXRzPC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRjLXByZXNldFwiICpuZ0Zvcj1cImxldCBwIG9mIHByZXNldHNcIiBbY2xhc3MuaXMtb25dPVwiaXNQcmVzZXQocClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgKGNsaWNrKT1cImFwcGx5UHJlc2V0KHApXCI+e3sgcC5wYXNzIH19IC8ge3sgcC5mYWlsIH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBSZW1hcmsgRmllbGRzIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGMtYmxvY2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy10aXRsZVwiPlJlbWFyayBGaWVsZHM8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0Yy1oZWxwXCI+UmVuYW1lIHRoZSB0d28gZnJlZS10ZXh0IGZpZWxkcyBhdWRpdG9ycyBmaWxsIGluIHRoZSBtb2JpbGUgYXBwLiBUaGUgbmFtZXMgYXBwbHkgdG8gdGhlIG1vYmlsZVxyXG4gICAgICBmb3JtLCB0aGUgR2FsbGVyeSwgZXhwb3J0cyBhbmQgQ1NWIGRvd25sb2Fkcy48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGctNCBtdC0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsXCIgZm9yPVwidHJheFJlbWFya3NMYWJlbFwiPlJlbWFya3MgZmllbGQ8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhSZW1hcmtzTGFiZWxcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNDBcIiBbKG5nTW9kZWwpXT1cImNvbmZpZy5yZW1hcmtzTGFiZWxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBwbGFjZWhvbGRlcj1cIlJlbWFya3NcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRjLWxhYmVsXCIgZm9yPVwidHJheEFkZGl0aW9uYWxSZW1hcmtzTGFiZWxcIj5BZGRpdGlvbmFsIFJlbWFya3MgZmllbGQ8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBpZD1cInRyYXhBZGRpdGlvbmFsUmVtYXJrc0xhYmVsXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjQwXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnLmFkZGl0aW9uYWxSZW1hcmtzTGFiZWxcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIHBsYWNlaG9sZGVyPVwiQWRkaXRpb25hbCBSZW1hcmtzXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhaXNEaXNhYmxlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTUgdy0xMDAgZm9vdGVyLXNlcGVyYXRvclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtdC0xIG1lLTRcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNFwiIFtkaXNhYmxlZF09XCIhY2FuU2F2ZVwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgc2F2aW5nID8gJ1NhdmluZ+KApicgOiAnU2F2ZSBDaGFuZ2VzJyB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -12020,11 +12020,11 @@ class TraxConfigurationComponent {
|
|
|
12020
12020
|
});
|
|
12021
12021
|
}
|
|
12022
12022
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxConfigurationComponent, deps: [{ token: ClientApiService }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12023
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxConfigurationComponent, selector: "lib-trax-configuration", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n
|
|
12023
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxConfigurationComponent, selector: "lib-trax-configuration", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!isDisabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" [disabled]=\"!canSave\" (click)=\"onSubmit()\">\r\n <span>{{ saving ? 'Saving\u2026' : 'Save Changes' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".trax-config .tc-block{margin-top:20px;margin-bottom:8px}.trax-config .tc-block+.tc-block{margin-top:36px}.trax-config .tc-title{color:#101828;font-size:16px;font-weight:600;line-height:24px}.trax-config .tc-help{color:#667085;font-size:14px;line-height:20px;margin-top:4px;max-width:760px}.trax-config .tc-label{display:block;color:#344054;font-size:14px;font-weight:500;line-height:20px;margin-bottom:6px}.trax-config .tc-label--pass{color:#027a48}.trax-config .tc-label--fail{color:#b42318}.trax-config .form-control{min-height:44px;border-radius:8px}.trax-config .tc-preview{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px}.trax-config .tc-preview--chips{flex-wrap:nowrap;height:44px;padding:0 8px;border-radius:8px;background:#f9fafb}.trax-config .tc-chip{display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:20px;white-space:nowrap}.trax-config .tc-chip--pass{background:#ecfdf3;color:#027a48}.trax-config .tc-chip--fail{background:#fef3f2;color:#b42318}.trax-config .tc-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.trax-config .tc-chip-mark{flex-shrink:0}.trax-config .tc-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.trax-config .tc-presets-label{color:#667085;font-size:14px}.trax-config .tc-preset{padding:8px 16px;border-radius:999px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.trax-config .tc-preset.is-on{border-color:#b2ddff;background:#eff8ff;color:#175cd3}.trax-config .tc-preset:disabled{cursor:default;opacity:.7}.trax-config.is-readonly .form-control:disabled{background:#f9fafb;color:#344054}.trax-config .footer-seperator{border-top:1px solid #EAECF0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
12024
12024
|
}
|
|
12025
12025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxConfigurationComponent, decorators: [{
|
|
12026
12026
|
type: Component,
|
|
12027
|
-
args: [{ selector: 'lib-trax-configuration', template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n
|
|
12027
|
+
args: [{ selector: 'lib-trax-configuration', template: "<div class=\"d-flex justify-content-end\">\r\n <button (click)=\"toggleForm()\" *ngIf=\"isDisabled\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M14.167 2.5a2.357 2.357 0 1 1 3.333 3.333L6.25 17.083 2.5 17.5l.417-3.75L14.167 2.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>Edit Details</button>\r\n</div>\r\n\r\n<div class=\"row trax-config\" [class.is-readonly]=\"isDisabled\">\r\n <!-- Audit Labels -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Audit Labels</div>\r\n <div class=\"tc-help\">Rename the two scoring outcomes. These labels replace Pass and Fail everywhere in the Audit\r\n module \u2014 dashboards, store lists, gallery filters, reports and exports.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--pass\" for=\"traxPassLabel\">At or above the pass mark</label>\r\n <input id=\"traxPassLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.passLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Pass\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label tc-label--fail\" for=\"traxFailLabel\">Below the pass mark</label>\r\n <input id=\"traxFailLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.failLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Fail\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tc-label\">Preview</div>\r\n <div class=\"tc-preview tc-preview--chips\">\r\n <span class=\"tc-chip tc-chip--pass\" [title]=\"(config.passLabel.trim() || 'Pass') + ' \u2265 ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.passLabel.trim() || 'Pass' }}</span>\r\n <span class=\"tc-chip-mark\">\u2265 {{ previewPassMark }}%</span>\r\n </span>\r\n <span class=\"tc-chip tc-chip--fail\" [title]=\"(config.failLabel.trim() || 'Fail') + ' < ' + previewPassMark + '%'\">\r\n <span class=\"tc-chip-name\">{{ config.failLabel.trim() || 'Fail' }}</span>\r\n <span class=\"tc-chip-mark\">< {{ previewPassMark }}%</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tc-presets mt-4\">\r\n <span class=\"tc-presets-label\">Presets</span>\r\n <button type=\"button\" class=\"tc-preset\" *ngFor=\"let p of presets\" [class.is-on]=\"isPreset(p)\"\r\n [disabled]=\"isDisabled\" (click)=\"applyPreset(p)\">{{ p.pass }} / {{ p.fail }}</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Remark Fields -->\r\n <div class=\"col-12 tc-block\">\r\n <div class=\"tc-title\">Remark Fields</div>\r\n <div class=\"tc-help\">Rename the two free-text fields auditors fill in the mobile app. The names apply to the mobile\r\n form, the Gallery, exports and CSV downloads.</div>\r\n\r\n <div class=\"row g-4 mt-1\">\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxRemarksLabel\">Remarks field</label>\r\n <input id=\"traxRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\" [(ngModel)]=\"config.remarksLabel\"\r\n [disabled]=\"isDisabled\" placeholder=\"Remarks\">\r\n </div>\r\n <div class=\"col-md-4\">\r\n <label class=\"tc-label\" for=\"traxAdditionalRemarksLabel\">Additional Remarks field</label>\r\n <input id=\"traxAdditionalRemarksLabel\" type=\"text\" class=\"form-control\" maxlength=\"40\"\r\n [(ngModel)]=\"config.additionalRemarksLabel\" [disabled]=\"isDisabled\" placeholder=\"Additional Remarks\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!isDisabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" [disabled]=\"!canSave\" (click)=\"onSubmit()\">\r\n <span>{{ saving ? 'Saving\u2026' : 'Save Changes' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".trax-config .tc-block{margin-top:20px;margin-bottom:8px}.trax-config .tc-block+.tc-block{margin-top:36px}.trax-config .tc-title{color:#101828;font-size:16px;font-weight:600;line-height:24px}.trax-config .tc-help{color:#667085;font-size:14px;line-height:20px;margin-top:4px;max-width:760px}.trax-config .tc-label{display:block;color:#344054;font-size:14px;font-weight:500;line-height:20px;margin-bottom:6px}.trax-config .tc-label--pass{color:#027a48}.trax-config .tc-label--fail{color:#b42318}.trax-config .form-control{min-height:44px;border-radius:8px}.trax-config .tc-preview{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px}.trax-config .tc-preview--chips{flex-wrap:nowrap;height:44px;padding:0 8px;border-radius:8px;background:#f9fafb}.trax-config .tc-chip{display:inline-flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;line-height:20px;white-space:nowrap}.trax-config .tc-chip--pass{background:#ecfdf3;color:#027a48}.trax-config .tc-chip--fail{background:#fef3f2;color:#b42318}.trax-config .tc-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.trax-config .tc-chip-mark{flex-shrink:0}.trax-config .tc-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.trax-config .tc-presets-label{color:#667085;font-size:14px}.trax-config .tc-preset{padding:8px 16px;border-radius:999px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.trax-config .tc-preset.is-on{border-color:#b2ddff;background:#eff8ff;color:#175cd3}.trax-config .tc-preset:disabled{cursor:default;opacity:.7}.trax-config.is-readonly .form-control:disabled{background:#f9fafb;color:#344054}.trax-config .footer-seperator{border-top:1px solid #EAECF0}\n"] }]
|
|
12028
12028
|
}], ctorParameters: () => [{ type: ClientApiService }, { type: i4.ToastService }] });
|
|
12029
12029
|
|
|
12030
12030
|
class ConfigurationsComponent {
|