@c8y/ngx-components 1018.0.6 → 1018.0.8
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/auth-configuration/sso-configuration/sso-configuration.model.d.ts +1 -0
- package/auth-configuration/sso-configuration/template-parts/external-token-config.component.d.ts +7 -6
- package/auth-configuration/sso-configuration/template-parts/external-token-config.model.d.ts +9 -7
- package/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.d.ts +8 -3
- package/esm2020/auth-configuration/sso-configuration/sso-configuration.model.mjs +1 -1
- package/esm2020/auth-configuration/sso-configuration/template-parts/external-token-config.component.mjs +6 -4
- package/esm2020/auth-configuration/sso-configuration/template-parts/external-token-config.model.mjs +13 -5
- package/esm2020/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.mjs +15 -5
- package/esm2020/auth-configuration/sso-configuration/templates/aad-template.component.mjs +3 -3
- package/esm2020/auth-configuration/sso-configuration/templates/custom-template.component.mjs +3 -3
- package/esm2020/auth-configuration/sso-configuration/templates/key-cloak-template.component.mjs +3 -3
- package/esm2020/core/properties-list/properties-list.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs +35 -17
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +2 -2
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs +35 -17
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +2 -2
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +3 -0
- package/package.json +1 -1
|
@@ -128,10 +128,10 @@ export class PropertiesListComponent {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
PropertiesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
-
PropertiesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: { properties: "properties", title: "title", icon: "icon", data: "data", groups: "groups", noParse: "noParse", emptyLabel: "emptyLabel" }, ngImport: i0, template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
|
|
131
|
+
PropertiesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: { properties: "properties", title: "title", icon: "icon", data: "data", groups: "groups", noParse: "noParse", emptyLabel: "emptyLabel" }, ngImport: i0, template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop.value)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
|
-
args: [{ selector: 'c8y-properties-list', template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n" }]
|
|
134
|
+
args: [{ selector: 'c8y-properties-list', template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop.value)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n" }]
|
|
135
135
|
}], propDecorators: { properties: [{
|
|
136
136
|
type: Input
|
|
137
137
|
}], title: [{
|
|
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
147
147
|
}], emptyLabel: [{
|
|
148
148
|
type: Input
|
|
149
149
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcHJvcGVydGllcy1saXN0L3Byb3BlcnRpZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3Byb3BlcnRpZXMtbGlzdC9wcm9wZXJ0aWVzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBR3hDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBc0RFOzs7V0FHRztRQUVILFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEI7OztXQUdHO1FBRUgsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQjs7OztXQUlHO1FBRUgsZUFBVSxHQUFXLElBQUksQ0FBQztRQUdsQixVQUFLLEdBQUcsRUFBRSxDQUFDO0tBbUVwQjtJQTNJQzs7T0FFRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQTJCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO1FBQ0QsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDLENBQUM7U0FDSixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFbEUsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBY0Q7O09BRUc7SUFDSCxJQUNJLElBQUksQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQTJCRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQThCLEVBQUU7UUFDdEQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQXdCO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUF3QjtRQUNsRCxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM3QjtZQUNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBd0I7UUFDMUMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdGLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUF3QjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztvSEEzSVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNk1DdEJwQywyN0NBMkNBOzJGRHJCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCOzhCQVEzQixVQUFVO3NCQURiLEtBQUs7Z0JBNkJOLEtBQUs7c0JBREosS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBT0YsSUFBSTtzQkFEUCxLQUFLO2dCQVdOLE1BQU07c0JBREwsS0FBSztnQkFRTixPQUFPO3NCQUROLEtBQUs7Z0JBU04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUHJvcGVydGllc0xpc3RJdGVtIH0gZnJvbSAnLi9wcm9wZXJ0aWVzLWxpc3QubW9kZWwnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBsaXN0IG9mIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8Yzh5LXByb3BlcnRpZXMtbGlzdFxuICogICBpY29uPVwiaW5mb1wiXG4gKiAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICogICBbZGF0YV09XCJvcHRpb25zXCJcbiAqICAgW2VtcHR5TGFiZWxdPVwiJy0nXCJcbiAqICAgW3RpdGxlXT1cIidBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzJyB8IHRyYW5zbGF0ZVwiXG4gKiA+PC9jOHktcHJvcGVydGllcy1saXN0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wcm9wZXJ0aWVzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0aWVzTGlzdENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyB0aGF0IHRoaXMgbGlzdCBzaG91bGQgZGlzcGxheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwcm9wZXJ0aWVzKGl0ZW1zOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXSkge1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLnBhcnNlUHJvcGVydGllcyhpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IHByb3BlcnRpZXMoKTogUHJvcGVydGllc0xpc3RJdGVtW10ge1xuICAgIGlmICh0aGlzLm5vUGFyc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzO1xuICAgIH1cbiAgICBjb25zdCBwcm9wc1dpdGhHcm91cHMgPSBbXG4gICAgICAuLi50aGlzLl9wcm9wZXJ0aWVzLFxuICAgICAgLi4udGhpcy5ncm91cHMubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIGtleTogZ3JvdXAsXG4gICAgICAgIGxhYmVsOiBncm91cCxcbiAgICAgICAgdmFsdWU6IGdyb3VwLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnXG4gICAgICB9KSlcbiAgICBdLmZpbHRlcihpdGVtID0+IGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzb3J0QnkocHJvcHNXaXRoR3JvdXBzLCBbJ2tleSddKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGljb24gd2hpY2ggaXMgZGlzcGxheWVkIG5leHQgdG8gdGhlIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvYmplY3Qgd2hlcmUgdGhlIHByb3BlcnRpZXMga2V5cyBhcmUgcmVzb2x2ZWQgZnJvbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKGRhdGE6IG9iamVjdCkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLnBhcnNlUHJvcGVydGllcyh0aGlzLl9wcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBhcnJheSBvZiBncm91cHMgdGhhdCBhcmUgc2hvd24uIElmIG5vUGFyc2UgaXMgc2V0IHRvIGZhbHNlLFxuICAgKiBlYWNoIGNvbXBsZXgga2V5IHdpbGwgZm9ybSBhIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRyaWVzIHRvIHBhcnNlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIGtleXMgYW5kIHR5cGVzLiBZb3UgY2FuXG4gICAqIGF2b2lkIHRoaXMgYnkgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBub1BhcnNlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIGxhYmVsIHRvIGRpc3BsYXkgYWxsIHByb3BlcnRpZXMgYnV0IHRoZSBlbXB0eSBvbmVzXG4gICAqIGdldCB0aGUgYGVtcHR5TGFiZWxgIGFzc2lnbmVkLiBJZiB0aGUgZW1wdHkgbGFiZWwgaXMgbm90IHNldCxcbiAgICogZGVmYXVsdHMgdG8gJ2M4eWRvbnRzaG93JyBhbmQgaXQgbm90IHJlbmRlcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eUxhYmVsOiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Byb3BlcnRpZXM6IFByb3BlcnRpZXNMaXN0SXRlbVtdO1xuICBwcml2YXRlIF9kYXRhID0ge307XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNlcnRhaW4gcHJvcGVydHkgaGFzIGFuIGdyb3VwIGFzc29jaWF0ZWQuXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBwcm9wZXJ0eSB0byB2ZXJpZnkuXG4gICAqL1xuICBoYXNHcm91cChpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0ua2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGtleVBhdGggPSBpdGVtLmtleS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBrZXlQYXRoLmxlbmd0aCA+IDEgJiYgdGhpcy5ncm91cHMuaW5jbHVkZXMoa2V5UGF0aFswXSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcHJvcGVydGllcyA9IHRoaXMucGFyc2VQcm9wZXJ0aWVzKHRoaXMuX3Byb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgaW4gdHJhY2tCeSB0byBhdm9pZCByZWNhbGN1bGF0aW9uIGFsbCB0aGUgdGltZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaWRlbnRpdHkoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQcm9wZXJ0aWVzKGl0ZW1zOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXSA9IFtdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IHRoaXMucGFyc2VQcm9wZXJ0eUl0ZW0oaXRlbSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVByb3BlcnR5SXRlbShpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pOiBQcm9wZXJ0aWVzTGlzdEl0ZW0ge1xuICAgIGlmICh0aGlzLm5vUGFyc2UpIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIGl0ZW0udmFsdWUgPSB0aGlzLnJlc29sdmVWYWx1ZUZyb21LZXkoaXRlbSk7XG4gICAgaXRlbS52YWx1ZSA9IGl0ZW0udHJhbnNmb3JtICYmIGl0ZW0udmFsdWUgPyBpdGVtLnRyYW5zZm9ybShpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XG4gICAgaXRlbS50eXBlID0gdGhpcy5yZXNvbHZlVHlwZShpdGVtKTtcbiAgICBpdGVtLnZhbHVlID0gdGhpcy5hdHRhY2hFbXB0eUxhYmVsKGl0ZW0pO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWVGcm9tS2V5KGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLmtleSAmJiB0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBrZXlQYXRoID0gaXRlbS5rZXkuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHJvb3RHcm91cCA9IGtleVBhdGhbMF07XG4gICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPiAxICYmICF0aGlzLmdyb3Vwcy5pbmNsdWRlcyhyb290R3JvdXApKSB7XG4gICAgICAgIHRoaXMuZ3JvdXBzLnB1c2gocm9vdEdyb3VwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXQodGhpcy5fZGF0YSwgaXRlbS5rZXkpO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVR5cGUoaXRlbTogUHJvcGVydGllc0xpc3RJdGVtKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyAnYXJyYXknIDogaXRlbS5hY3Rpb24gJiYgaXRlbS52YWx1ZSA/ICdsaW5rJyA6ICdzdHJpbmcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hFbXB0eUxhYmVsKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgfHwgaXRlbS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1wdHlMYWJlbDtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cbn1cbiIsIjxwIGNsYXNzPVwibS1iLThcIiAqbmdJZj1cInRpdGxlXCI+XG4gIDxpICpuZ0lmPVwiaWNvblwiIFtjOHlJY29uXT1cImljb25cIiBjbGFzcz1cInRleHQtaW5mbyBtLXItOFwiPjwvaT5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG48L3A+XG48dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIHNtYWxsXCI+XG4gIDxsaVxuICAgIGNsYXNzPVwicC10LTQgcC1iLTQgZC1mbGV4XCJcbiAgICAqbmdGb3I9XCJsZXQgcHJvcCBvZiBwcm9wZXJ0aWVzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBpZGVudGl0eVwiXG4gICAgW25nQ2xhc3NdPVwieydzZXBhcmF0b3ItdG9wLWJvdHRvbSc6IGkgPT09IDAsXG4gICAgICAgICAgICAgICAgJ3NlcGFyYXRvci1ib3R0b20nOiBpID4gMH1cIlxuICAgID5cbiAgICA8ZGl2XG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtLWwtMTYnOiBoYXNHcm91cChwcm9wKSxcbiAgICAgICAgbGVnZW5kOiBwcm9wLnR5cGUgPT09ICdncm91cCcsXG4gICAgICAgICdmb3JtLWJsb2NrJzogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnbS1iLTAnOiBwcm9wLnR5cGUgPT09ICdncm91cCcsXG4gICAgICAgICdtLXQtNCc6IHByb3AudHlwZSA9PT0gJ2dyb3VwJ1xuICAgICAgfVwiXG4gICAgICBjbGFzcz1cInNtYWxsIHRleHQtbWVkaXVtIHRleHQtbm93cmFwIG0tci00XCJcbiAgICA+XG4gICAgICB7eyBwcm9wLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gW25nU3dpdGNoXT1cInByb3AudHlwZVwiIGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInc3RyaW5nJ1wiIGNsYXNzPVwibS1sLWF1dG9cIj57eyBwcm9wLnZhbHVlIH19PC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiXG4gICAgICAgIChjbGljayk9XCJwcm9wLmFjdGlvbigkZXZlbnQsIHByb3ApXCJcbiAgICAgICAgY2xhc3M9XCJtLWwtYXV0byBwb2ludGVyIHRleHQtdHJ1bmNhdGUgbS1sLTRcIlxuICAgICAgPnt7IHByb3AudmFsdWUgfX08L2E+XG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2FycmF5J1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibGFiZWwgbGFiZWwtaW5mbyBtLWwtNFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb3BUYWcgb2YgcHJvcC52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKCRldmVudCwgcHJvcFRhZylcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIHBvaW50ZXI6IHByb3AuYWN0aW9uXG4gICAgICAgICAgfVwiXG4gICAgICAgID57eyBwcm9wVGFnIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvcHJvcGVydGllcy1saXN0L3Byb3BlcnRpZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3Byb3BlcnRpZXMtbGlzdC9wcm9wZXJ0aWVzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBR3hDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBc0RFOzs7V0FHRztRQUVILFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEI7OztXQUdHO1FBRUgsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQjs7OztXQUlHO1FBRUgsZUFBVSxHQUFXLElBQUksQ0FBQztRQUdsQixVQUFLLEdBQUcsRUFBRSxDQUFDO0tBbUVwQjtJQTNJQzs7T0FFRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQTJCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO1FBQ0QsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1os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QUcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBd0I7UUFDMUMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdGLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUF3QjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztvSEEzSVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNk1DdEJwQyxpOENBMkNBOzJGRHJCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCOzhCQVEzQixVQUFVO3NCQURiLEtBQUs7Z0JBNkJOLEtBQUs7c0JBREosS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBT0YsSUFBSTtzQkFEUCxLQUFLO2dCQVdOLE1BQU07c0JBREwsS0FBSztnQkFRTixPQUFPO3NCQUROLEtBQUs7Z0JBU04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgUHJvcGVydGllc0xpc3RJdGVtIH0gZnJvbSAnLi9wcm9wZXJ0aWVzLWxpc3QubW9kZWwnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBsaXN0IG9mIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8Yzh5LXByb3BlcnRpZXMtbGlzdFxuICogICBpY29uPVwiaW5mb1wiXG4gKiAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICogICBbZGF0YV09XCJvcHRpb25zXCJcbiAqICAgW2VtcHR5TGFiZWxdPVwiJy0nXCJcbiAqICAgW3RpdGxlXT1cIidBcHBsaWNhdGlvbiBwcm9wZXJ0aWVzJyB8IHRyYW5zbGF0ZVwiXG4gKiA+PC9jOHktcHJvcGVydGllcy1saXN0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wcm9wZXJ0aWVzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydGllcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0aWVzTGlzdENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyB0aGF0IHRoaXMgbGlzdCBzaG91bGQgZGlzcGxheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwcm9wZXJ0aWVzKGl0ZW1zOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXSkge1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLnBhcnNlUHJvcGVydGllcyhpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IHByb3BlcnRpZXMoKTogUHJvcGVydGllc0xpc3RJdGVtW10ge1xuICAgIGlmICh0aGlzLm5vUGFyc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzO1xuICAgIH1cbiAgICBjb25zdCBwcm9wc1dpdGhHcm91cHMgPSBbXG4gICAgICAuLi50aGlzLl9wcm9wZXJ0aWVzLFxuICAgICAgLi4udGhpcy5ncm91cHMubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIGtleTogZ3JvdXAsXG4gICAgICAgIGxhYmVsOiBncm91cCxcbiAgICAgICAgdmFsdWU6IGdyb3VwLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnXG4gICAgICB9KSlcbiAgICBdLmZpbHRlcihpdGVtID0+IGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzb3J0QnkocHJvcHNXaXRoR3JvdXBzLCBbJ2tleSddKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGljb24gd2hpY2ggaXMgZGlzcGxheWVkIG5leHQgdG8gdGhlIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvYmplY3Qgd2hlcmUgdGhlIHByb3BlcnRpZXMga2V5cyBhcmUgcmVzb2x2ZWQgZnJvbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKGRhdGE6IG9iamVjdCkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSB0aGlzLnBhcnNlUHJvcGVydGllcyh0aGlzLl9wcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBhcnJheSBvZiBncm91cHMgdGhhdCBhcmUgc2hvd24uIElmIG5vUGFyc2UgaXMgc2V0IHRvIGZhbHNlLFxuICAgKiBlYWNoIGNvbXBsZXgga2V5IHdpbGwgZm9ybSBhIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRyaWVzIHRvIHBhcnNlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIGtleXMgYW5kIHR5cGVzLiBZb3UgY2FuXG4gICAqIGF2b2lkIHRoaXMgYnkgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBub1BhcnNlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIGxhYmVsIHRvIGRpc3BsYXkgYWxsIHByb3BlcnRpZXMgYnV0IHRoZSBlbXB0eSBvbmVzXG4gICAqIGdldCB0aGUgYGVtcHR5TGFiZWxgIGFzc2lnbmVkLiBJZiB0aGUgZW1wdHkgbGFiZWwgaXMgbm90IHNldCxcbiAgICogZGVmYXVsdHMgdG8gJ2M4eWRvbnRzaG93JyBhbmQgaXQgbm90IHJlbmRlcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eUxhYmVsOiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgX3Byb3BlcnRpZXM6IFByb3BlcnRpZXNMaXN0SXRlbVtdO1xuICBwcml2YXRlIF9kYXRhID0ge307XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGNlcnRhaW4gcHJvcGVydHkgaGFzIGFuIGdyb3VwIGFzc29jaWF0ZWQuXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBwcm9wZXJ0eSB0byB2ZXJpZnkuXG4gICAqL1xuICBoYXNHcm91cChpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0ua2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGtleVBhdGggPSBpdGVtLmtleS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBrZXlQYXRoLmxlbmd0aCA+IDEgJiYgdGhpcy5ncm91cHMuaW5jbHVkZXMoa2V5UGF0aFswXSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcHJvcGVydGllcyA9IHRoaXMucGFyc2VQcm9wZXJ0aWVzKHRoaXMuX3Byb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgaW4gdHJhY2tCeSB0byBhdm9pZCByZWNhbGN1bGF0aW9uIGFsbCB0aGUgdGltZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaWRlbnRpdHkoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQcm9wZXJ0aWVzKGl0ZW1zOiBQcm9wZXJ0aWVzTGlzdEl0ZW1bXSA9IFtdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IHRoaXMucGFyc2VQcm9wZXJ0eUl0ZW0oaXRlbSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVByb3BlcnR5SXRlbShpdGVtOiBQcm9wZXJ0aWVzTGlzdEl0ZW0pOiBQcm9wZXJ0aWVzTGlzdEl0ZW0ge1xuICAgIGlmICh0aGlzLm5vUGFyc2UpIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIGl0ZW0udmFsdWUgPSB0aGlzLnJlc29sdmVWYWx1ZUZyb21LZXkoaXRlbSk7XG4gICAgaXRlbS52YWx1ZSA9IGl0ZW0udHJhbnNmb3JtICYmIGl0ZW0udmFsdWUgPyBpdGVtLnRyYW5zZm9ybShpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XG4gICAgaXRlbS50eXBlID0gdGhpcy5yZXNvbHZlVHlwZShpdGVtKTtcbiAgICBpdGVtLnZhbHVlID0gdGhpcy5hdHRhY2hFbXB0eUxhYmVsKGl0ZW0pO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWVGcm9tS2V5KGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLmtleSAmJiB0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBrZXlQYXRoID0gaXRlbS5rZXkuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHJvb3RHcm91cCA9IGtleVBhdGhbMF07XG4gICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPiAxICYmICF0aGlzLmdyb3Vwcy5pbmNsdWRlcyhyb290R3JvdXApKSB7XG4gICAgICAgIHRoaXMuZ3JvdXBzLnB1c2gocm9vdEdyb3VwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXQodGhpcy5fZGF0YSwgaXRlbS5rZXkpO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVR5cGUoaXRlbTogUHJvcGVydGllc0xpc3RJdGVtKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyAnYXJyYXknIDogaXRlbS5hY3Rpb24gJiYgaXRlbS52YWx1ZSA/ICdsaW5rJyA6ICdzdHJpbmcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hFbXB0eUxhYmVsKGl0ZW06IFByb3BlcnRpZXNMaXN0SXRlbSkge1xuICAgIGlmIChpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgfHwgaXRlbS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1wdHlMYWJlbDtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cbn1cbiIsIjxwIGNsYXNzPVwibS1iLThcIiAqbmdJZj1cInRpdGxlXCI+XG4gIDxpICpuZ0lmPVwiaWNvblwiIFtjOHlJY29uXT1cImljb25cIiBjbGFzcz1cInRleHQtaW5mbyBtLXItOFwiPjwvaT5cbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG48L3A+XG48dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIHNtYWxsXCI+XG4gIDxsaVxuICAgIGNsYXNzPVwicC10LTQgcC1iLTQgZC1mbGV4XCJcbiAgICAqbmdGb3I9XCJsZXQgcHJvcCBvZiBwcm9wZXJ0aWVzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBpZGVudGl0eVwiXG4gICAgW25nQ2xhc3NdPVwieydzZXBhcmF0b3ItdG9wLWJvdHRvbSc6IGkgPT09IDAsXG4gICAgICAgICAgICAgICAgJ3NlcGFyYXRvci1ib3R0b20nOiBpID4gMH1cIlxuICAgID5cbiAgICA8ZGl2XG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtLWwtMTYnOiBoYXNHcm91cChwcm9wKSxcbiAgICAgICAgbGVnZW5kOiBwcm9wLnR5cGUgPT09ICdncm91cCcsXG4gICAgICAgICdmb3JtLWJsb2NrJzogcHJvcC50eXBlID09PSAnZ3JvdXAnLFxuICAgICAgICAnbS1iLTAnOiBwcm9wLnR5cGUgPT09ICdncm91cCcsXG4gICAgICAgICdtLXQtNCc6IHByb3AudHlwZSA9PT0gJ2dyb3VwJ1xuICAgICAgfVwiXG4gICAgICBjbGFzcz1cInNtYWxsIHRleHQtbWVkaXVtIHRleHQtbm93cmFwIG0tci00XCJcbiAgICA+XG4gICAgICB7eyBwcm9wLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gW25nU3dpdGNoXT1cInByb3AudHlwZVwiIGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInc3RyaW5nJ1wiIGNsYXNzPVwibS1sLWF1dG9cIj57eyBwcm9wLnZhbHVlIH19PC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiXG4gICAgICAgIChjbGljayk9XCJwcm9wLmFjdGlvbigkZXZlbnQsIHByb3AudmFsdWUpXCJcbiAgICAgICAgY2xhc3M9XCJtLWwtYXV0byBwb2ludGVyIHRleHQtdHJ1bmNhdGUgbS1sLTRcIlxuICAgICAgPnt7IHByb3AudmFsdWUgfX08L2E+XG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2FycmF5J1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibGFiZWwgbGFiZWwtaW5mbyBtLWwtNFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb3BUYWcgb2YgcHJvcC52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKCRldmVudCwgcHJvcFRhZylcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIHBvaW50ZXI6IHByb3AuYWN0aW9uXG4gICAgICAgICAgfVwiXG4gICAgICAgID57eyBwcm9wVGFnIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
|
|
@@ -1115,8 +1115,9 @@ const validationMethodConfig = {
|
|
|
1115
1115
|
method: 'POST',
|
|
1116
1116
|
body: 'token=${accessToken}&client_id=${clientId}&client_secret=',
|
|
1117
1117
|
url: '',
|
|
1118
|
-
headers:
|
|
1119
|
-
|
|
1118
|
+
headers: {},
|
|
1119
|
+
operation: 'EXECUTE',
|
|
1120
|
+
requestParams: {}
|
|
1120
1121
|
}
|
|
1121
1122
|
},
|
|
1122
1123
|
[ValidationMethod.USERINFO]: {
|
|
@@ -1127,8 +1128,9 @@ const validationMethodConfig = {
|
|
|
1127
1128
|
url: '',
|
|
1128
1129
|
method: 'GET',
|
|
1129
1130
|
body: '',
|
|
1130
|
-
headers:
|
|
1131
|
-
|
|
1131
|
+
headers: { Authorization: 'Bearer ${accessToken}' },
|
|
1132
|
+
operation: 'EXECUTE',
|
|
1133
|
+
requestParams: {}
|
|
1132
1134
|
}
|
|
1133
1135
|
}
|
|
1134
1136
|
};
|
|
@@ -1140,9 +1142,14 @@ const defaultTokenValidationRequest = {
|
|
|
1140
1142
|
operation: 'EXECUTE',
|
|
1141
1143
|
requestParams: {}
|
|
1142
1144
|
};
|
|
1145
|
+
const defaultUserIdConfig = {
|
|
1146
|
+
jwtField: '',
|
|
1147
|
+
useConstantValue: true
|
|
1148
|
+
};
|
|
1143
1149
|
class ExternalToken {
|
|
1144
1150
|
constructor(externalTokenConfig) {
|
|
1145
1151
|
const _externalTokenConfig = Object.assign({ enabled: false }, externalTokenConfig);
|
|
1152
|
+
this.userOrAppIdConfig = _externalTokenConfig.userOrAppIdConfig || defaultUserIdConfig;
|
|
1146
1153
|
this.validationMethod = _externalTokenConfig.validationMethod || ValidationMethod.INTROSPECTION;
|
|
1147
1154
|
this.validationRequired = _externalTokenConfig.validationRequired;
|
|
1148
1155
|
this.enabled = _externalTokenConfig.enabled;
|
|
@@ -1155,6 +1162,7 @@ class ExternalToken {
|
|
|
1155
1162
|
return { enabled: this.enabled };
|
|
1156
1163
|
}
|
|
1157
1164
|
const externalTokenConfig = {
|
|
1165
|
+
userOrAppIdConfig: this.userOrAppIdConfig,
|
|
1158
1166
|
validationRequired: this.validationRequired,
|
|
1159
1167
|
enabled: this.enabled
|
|
1160
1168
|
};
|
|
@@ -1308,12 +1316,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1308
1316
|
}], shouldShow: [] } });
|
|
1309
1317
|
|
|
1310
1318
|
class UserIdConfigurationComponent {
|
|
1319
|
+
constructor() {
|
|
1320
|
+
this.withHeader = true;
|
|
1321
|
+
this.componentId = 0;
|
|
1322
|
+
}
|
|
1311
1323
|
shouldShow(field) {
|
|
1312
|
-
return field in this.
|
|
1324
|
+
return field in this.userIdConfig;
|
|
1325
|
+
}
|
|
1326
|
+
ngOnInit() {
|
|
1327
|
+
this.componentId = ++UserIdConfigurationComponent.id;
|
|
1313
1328
|
}
|
|
1314
1329
|
}
|
|
1330
|
+
UserIdConfigurationComponent.id = 0;
|
|
1315
1331
|
UserIdConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserIdConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1316
|
-
UserIdConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: {
|
|
1332
|
+
UserIdConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: { userIdConfig: "userIdConfig", withHeader: "withHeader" }, ngImport: i0, template: "<div class=\"col-md-12 p-t-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div *ngIf=\"withHeader\" class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>User ID</div>\n </div>\n <div [ngClass]=\"withHeader ? 'col-xs-12 col-sm-9 col-md-10 col-lg-9' : 'row'\">\n <div *ngIf=\"!withHeader\" class=\"legend form-block m-t-4\">\n <span translate>User/App ID</span>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group *ngIf=\"userIdConfig.useConstantValue\">\n <label [for]=\"'constantValue' + componentId\" class=\"control-label\" translate>\n Constant value\n </label>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"'constantValue' + componentId\"\n [name]=\"'constantValue' + componentId\"\n [(ngModel)]=\"userIdConfig.constantValue\"\n required\n />\n </c8y-form-group>\n <c8y-form-group *ngIf=\"!userIdConfig.useConstantValue\">\n <label [for]=\"'jwtField' + componentId\" class=\"control-label\" translate>\n JWT field\n </label>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"'jwtField' + componentId\"\n [name]=\"'jwtField' + componentId\"\n [(ngModel)]=\"userIdConfig.jwtField\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'upn' }\"\n required\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <div class=\"form-group\" *ngIf=\"shouldShow('useConstantValue')\">\n <label\n [for]=\"'useConstantValue' + componentId\"\n title=\"{{ 'Use constant value' | translate }}\"\n class=\"c8y-switch m-t-24\"\n >\n <input\n type=\"checkbox\"\n [name]=\"'useConstantValue' + componentId\"\n [id]=\"'useConstantValue' + componentId\"\n [(ngModel)]=\"userIdConfig.useConstantValue\"\n />\n <span></span>\n <span class=\"control-label\">{{ 'Use constant value' | translate }}</span>\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.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: i3$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
1317
1333
|
__decorate([
|
|
1318
1334
|
memoize(),
|
|
1319
1335
|
__metadata("design:type", Function),
|
|
@@ -1322,8 +1338,10 @@ __decorate([
|
|
|
1322
1338
|
], UserIdConfigurationComponent.prototype, "shouldShow", null);
|
|
1323
1339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserIdConfigurationComponent, decorators: [{
|
|
1324
1340
|
type: Component,
|
|
1325
|
-
args: [{ selector: 'c8y-user-id-configuration', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"col-md-12 p-t-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>User ID</div>\n </div>\n <div
|
|
1326
|
-
}], propDecorators: {
|
|
1341
|
+
args: [{ selector: 'c8y-user-id-configuration', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"col-md-12 p-t-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div *ngIf=\"withHeader\" class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>User ID</div>\n </div>\n <div [ngClass]=\"withHeader ? 'col-xs-12 col-sm-9 col-md-10 col-lg-9' : 'row'\">\n <div *ngIf=\"!withHeader\" class=\"legend form-block m-t-4\">\n <span translate>User/App ID</span>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group *ngIf=\"userIdConfig.useConstantValue\">\n <label [for]=\"'constantValue' + componentId\" class=\"control-label\" translate>\n Constant value\n </label>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"'constantValue' + componentId\"\n [name]=\"'constantValue' + componentId\"\n [(ngModel)]=\"userIdConfig.constantValue\"\n required\n />\n </c8y-form-group>\n <c8y-form-group *ngIf=\"!userIdConfig.useConstantValue\">\n <label [for]=\"'jwtField' + componentId\" class=\"control-label\" translate>\n JWT field\n </label>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"'jwtField' + componentId\"\n [name]=\"'jwtField' + componentId\"\n [(ngModel)]=\"userIdConfig.jwtField\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'upn' }\"\n required\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <div class=\"form-group\" *ngIf=\"shouldShow('useConstantValue')\">\n <label\n [for]=\"'useConstantValue' + componentId\"\n title=\"{{ 'Use constant value' | translate }}\"\n class=\"c8y-switch m-t-24\"\n >\n <input\n type=\"checkbox\"\n [name]=\"'useConstantValue' + componentId\"\n [id]=\"'useConstantValue' + componentId\"\n [(ngModel)]=\"userIdConfig.useConstantValue\"\n />\n <span></span>\n <span class=\"control-label\">{{ 'Use constant value' | translate }}</span>\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
1342
|
+
}], propDecorators: { userIdConfig: [{
|
|
1343
|
+
type: Input
|
|
1344
|
+
}], withHeader: [{
|
|
1327
1345
|
type: Input
|
|
1328
1346
|
}], shouldShow: [] } });
|
|
1329
1347
|
|
|
@@ -1669,14 +1687,14 @@ class ExternalTokenConfigComponent {
|
|
|
1669
1687
|
}
|
|
1670
1688
|
onValidationMethodChange(event) {
|
|
1671
1689
|
this.externalTokenConfig.validationMethod = event;
|
|
1672
|
-
this.externalTokenConfig.tokenValidationRequest = this.validationMethods[event].defaults;
|
|
1690
|
+
this.externalTokenConfig.tokenValidationRequest = new RequestConfiguration(this.validationMethods[event].defaults);
|
|
1673
1691
|
}
|
|
1674
1692
|
}
|
|
1675
1693
|
ExternalTokenConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExternalTokenConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1676
|
-
ExternalTokenConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExternalTokenConfigComponent, selector: "c8y-external-token-config", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"col-md-12 p-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>\n External token configuration\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9 p-0\" *ngIf=\"templateModel\">\n <div class=\"row p-l-4\">\n <div class=\"col-md-8\">\n <label\n for=\"enabled\"\n title=\"{{\n 'Allow authentication with access token from external AIM system' | translate\n }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"enabled\"\n name=\"enabled\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.enabled\"\n />\n <span></span>\n <span class=\"control-label\">\n {{ 'Allow authentication with access token from external AIM system' | translate }}\n </span>\n </label>\n </div>\n </div>\n
|
|
1694
|
+
ExternalTokenConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ExternalTokenConfigComponent, selector: "c8y-external-token-config", inputs: { templateModel: "templateModel" }, ngImport: i0, template: "<div class=\"col-md-12 p-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>\n External token configuration\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9 p-0\" *ngIf=\"templateModel\">\n <div class=\"row p-l-4\">\n <div class=\"col-md-8\">\n <label\n for=\"enabled\"\n title=\"{{\n 'Allow authentication with access token from external AIM system' | translate\n }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"enabled\"\n name=\"enabled\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.enabled\"\n />\n <span></span>\n <span class=\"control-label\">\n {{ 'Allow authentication with access token from external AIM system' | translate }}\n </span>\n </label>\n </div>\n </div>\n <ng-container *ngIf=\"externalTokenConfig.enabled\">\n <c8y-user-id-configuration\n [userIdConfig]=\"externalTokenConfig.userOrAppIdConfig\"\n [withHeader]=\"false\"\n ></c8y-user-id-configuration>\n <div class=\"row p-l-4\">\n <div class=\"col-sm-6\">\n <label\n for=\"validationRequired\"\n title=\"{{ 'Validate access token' | translate }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"validationRequired\"\n name=\"validationRequired\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.validationRequired\"\n />\n <span></span>\n <span class=\"control-label\">{{ 'Validate access token' | translate }}</span>\n </label>\n </div>\n </div>\n <ng-container *ngIf=\"externalTokenConfig.validationRequired\">\n <div class=\"row\">\n <div class=\"col-sm-6 m-t-16 m-l-8\">\n <label for=\"validationMethod\" class=\"control-label\" translate>\n Validation method\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"validationMethod\"\n name=\"validationMethod\"\n [ngModel]=\"externalTokenConfig.validationMethod\"\n (ngModelChange)=\"onValidationMethodChange($event)\"\n >\n <option\n *ngFor=\"let validationMethod of validationMethods | keyvalue\"\n [ngValue]=\"validationMethod.key\"\n >\n {{ validationMethod.value.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <c8y-request-configuration\n [templateModel]=\"externalTokenConfig\"\n [requestName]=\"'Token validation request' | translate\"\n [requestType]=\"'tokenValidationRequest'\"\n ></c8y-request-configuration>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6 m-l-8\">\n <c8y-form-group>\n <label\n for=\"accessTokenValidityCheckIntervalInMinutes\"\n class=\"control-label\"\n translate\n >\n Access token validation frequency\n </label>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"form-control\"\n id=\"accessTokenValidityCheckIntervalInMinutes\"\n name=\"accessTokenValidityCheckIntervalInMinutes\"\n [(ngModel)]=\"externalTokenConfig.accessTokenValidityCheckIntervalInMinutes\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '1' }\"\n step=\"1\"\n required\n [min]=\"1\"\n />\n <span class=\"input-group-addon\" translate>minutes</span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { 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: i1.MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "directive", type: i3$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.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: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: RequestConfigurationComponent, selector: "c8y-request-configuration", inputs: ["templateModel", "requestName", "requestType"] }, { kind: "component", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: ["userIdConfig", "withHeader"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
1677
1695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ExternalTokenConfigComponent, decorators: [{
|
|
1678
1696
|
type: Component,
|
|
1679
|
-
args: [{ selector: 'c8y-external-token-config', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"col-md-12 p-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>\n External token configuration\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9 p-0\" *ngIf=\"templateModel\">\n <div class=\"row p-l-4\">\n <div class=\"col-md-8\">\n <label\n for=\"enabled\"\n title=\"{{\n 'Allow authentication with access token from external AIM system' | translate\n }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"enabled\"\n name=\"enabled\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.enabled\"\n />\n <span></span>\n <span class=\"control-label\">\n {{ 'Allow authentication with access token from external AIM system' | translate }}\n </span>\n </label>\n </div>\n </div>\n
|
|
1697
|
+
args: [{ selector: 'c8y-external-token-config', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"col-md-12 p-16\">\n <div class=\"row m-l-8 m-r-8\">\n <div class=\"col-xs-12 col-sm-3 col-md-2\">\n <div class=\"h4 text-normal text-right text-left-xs\" translate>\n External token configuration\n </div>\n </div>\n\n <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9 p-0\" *ngIf=\"templateModel\">\n <div class=\"row p-l-4\">\n <div class=\"col-md-8\">\n <label\n for=\"enabled\"\n title=\"{{\n 'Allow authentication with access token from external AIM system' | translate\n }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"enabled\"\n name=\"enabled\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.enabled\"\n />\n <span></span>\n <span class=\"control-label\">\n {{ 'Allow authentication with access token from external AIM system' | translate }}\n </span>\n </label>\n </div>\n </div>\n <ng-container *ngIf=\"externalTokenConfig.enabled\">\n <c8y-user-id-configuration\n [userIdConfig]=\"externalTokenConfig.userOrAppIdConfig\"\n [withHeader]=\"false\"\n ></c8y-user-id-configuration>\n <div class=\"row p-l-4\">\n <div class=\"col-sm-6\">\n <label\n for=\"validationRequired\"\n title=\"{{ 'Validate access token' | translate }}\"\n class=\"c8y-switch\"\n >\n <input\n id=\"validationRequired\"\n name=\"validationRequired\"\n type=\"checkbox\"\n [(ngModel)]=\"externalTokenConfig.validationRequired\"\n />\n <span></span>\n <span class=\"control-label\">{{ 'Validate access token' | translate }}</span>\n </label>\n </div>\n </div>\n <ng-container *ngIf=\"externalTokenConfig.validationRequired\">\n <div class=\"row\">\n <div class=\"col-sm-6 m-t-16 m-l-8\">\n <label for=\"validationMethod\" class=\"control-label\" translate>\n Validation method\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"validationMethod\"\n name=\"validationMethod\"\n [ngModel]=\"externalTokenConfig.validationMethod\"\n (ngModelChange)=\"onValidationMethodChange($event)\"\n >\n <option\n *ngFor=\"let validationMethod of validationMethods | keyvalue\"\n [ngValue]=\"validationMethod.key\"\n >\n {{ validationMethod.value.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <c8y-request-configuration\n [templateModel]=\"externalTokenConfig\"\n [requestName]=\"'Token validation request' | translate\"\n [requestType]=\"'tokenValidationRequest'\"\n ></c8y-request-configuration>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-6 m-l-8\">\n <c8y-form-group>\n <label\n for=\"accessTokenValidityCheckIntervalInMinutes\"\n class=\"control-label\"\n translate\n >\n Access token validation frequency\n </label>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"form-control\"\n id=\"accessTokenValidityCheckIntervalInMinutes\"\n name=\"accessTokenValidityCheckIntervalInMinutes\"\n [(ngModel)]=\"externalTokenConfig.accessTokenValidityCheckIntervalInMinutes\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '1' }\"\n step=\"1\"\n required\n [min]=\"1\"\n />\n <span class=\"input-group-addon\" translate>minutes</span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
1680
1698
|
}], propDecorators: { templateModel: [{
|
|
1681
1699
|
type: Input
|
|
1682
1700
|
}] } });
|
|
@@ -1688,10 +1706,10 @@ class CustomTemplateComponent extends TemplateComponent {
|
|
|
1688
1706
|
}
|
|
1689
1707
|
}
|
|
1690
1708
|
CustomTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CustomTemplateComponent, deps: [{ token: CustomConfigurationMapper }], target: i0.ɵɵFactoryTarget.Component });
|
|
1691
|
-
CustomTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CustomTemplateComponent, selector: "c8y-custom-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Authorization request' | translate\"\n [requestType]=\"'authorizationRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Token request' | translate\"\n [requestType]=\"'tokenRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Refresh request' | translate\"\n [requestType]=\"'refreshRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-external-token-config\n [templateModel]=\"templateModel\">\n </c8y-external-token-config>\n <hr/>\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\"\n >\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [
|
|
1709
|
+
CustomTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CustomTemplateComponent, selector: "c8y-custom-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Authorization request' | translate\"\n [requestType]=\"'authorizationRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Token request' | translate\"\n [requestType]=\"'tokenRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Refresh request' | translate\"\n [requestType]=\"'refreshRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-external-token-config\n [templateModel]=\"templateModel\">\n </c8y-external-token-config>\n <hr/>\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\"\n >\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [userIdConfig]=\"templateModel.userIdConfig\">\n </c8y-user-id-configuration>\n <hr/>\n <c8y-sso-signature-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-signature-configuration>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BasicConfigurationComponent, selector: "c8y-basic-configuration", inputs: ["templateModel"] }, { kind: "component", type: RequestConfigurationComponent, selector: "c8y-request-configuration", inputs: ["templateModel", "requestName", "requestType"] }, { kind: "component", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: ["userIdConfig", "withHeader"] }, { kind: "component", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: ["templateModel"] }, { kind: "component", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: ["apps", "groups", "inventoryRoles", "templateModel"] }, { kind: "component", type: SignatureConfigurationComponent, selector: "c8y-sso-signature-configuration", inputs: ["templateModel"] }, { kind: "component", type: ExternalTokenConfigComponent, selector: "c8y-external-token-config", inputs: ["templateModel"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
1692
1710
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CustomTemplateComponent, decorators: [{
|
|
1693
1711
|
type: Component,
|
|
1694
|
-
args: [{ selector: 'c8y-custom-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Authorization request' | translate\"\n [requestType]=\"'authorizationRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Token request' | translate\"\n [requestType]=\"'tokenRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Refresh request' | translate\"\n [requestType]=\"'refreshRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-external-token-config\n [templateModel]=\"templateModel\">\n </c8y-external-token-config>\n <hr/>\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\"\n >\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [
|
|
1712
|
+
args: [{ selector: 'c8y-custom-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Authorization request' | translate\"\n [requestType]=\"'authorizationRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Token request' | translate\"\n [requestType]=\"'tokenRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Refresh request' | translate\"\n [requestType]=\"'refreshRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-external-token-config\n [templateModel]=\"templateModel\">\n </c8y-external-token-config>\n <hr/>\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\"\n >\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [userIdConfig]=\"templateModel.userIdConfig\">\n </c8y-user-id-configuration>\n <hr/>\n <c8y-sso-signature-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-signature-configuration>\n</div>\n" }]
|
|
1695
1713
|
}], ctorParameters: function () { return [{ type: CustomConfigurationMapper }]; } });
|
|
1696
1714
|
|
|
1697
1715
|
class KeyCloakConfigurationMapper {
|
|
@@ -1815,10 +1833,10 @@ class KeyCloakTemplateComponent extends TemplateComponent {
|
|
|
1815
1833
|
}
|
|
1816
1834
|
}
|
|
1817
1835
|
KeyCloakTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: KeyCloakTemplateComponent, deps: [{ token: KeyCloakConfigurationMapper }], target: i0.ɵɵFactoryTarget.Component });
|
|
1818
|
-
KeyCloakTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: KeyCloakTemplateComponent, selector: "c8y-key-cloak-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration [templateModel]=\"templateModel\"></c8y-basic-configuration>\n <hr/>\n <c8y-user-id-configuration [
|
|
1836
|
+
KeyCloakTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: KeyCloakTemplateComponent, selector: "c8y-key-cloak-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration [templateModel]=\"templateModel\"></c8y-basic-configuration>\n <hr/>\n <c8y-user-id-configuration [userIdConfig]=\"templateModel.userIdConfig\"></c8y-user-id-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping [templateModel]=\"templateModel\"></c8y-sso-user-data-mapping>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BasicConfigurationComponent, selector: "c8y-basic-configuration", inputs: ["templateModel"] }, { kind: "component", type: RequestConfigurationComponent, selector: "c8y-request-configuration", inputs: ["templateModel", "requestName", "requestType"] }, { kind: "component", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: ["userIdConfig", "withHeader"] }, { kind: "component", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: ["templateModel"] }, { kind: "component", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: ["apps", "groups", "inventoryRoles", "templateModel"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
1819
1837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: KeyCloakTemplateComponent, decorators: [{
|
|
1820
1838
|
type: Component,
|
|
1821
|
-
args: [{ selector: 'c8y-key-cloak-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration [templateModel]=\"templateModel\"></c8y-basic-configuration>\n <hr/>\n <c8y-user-id-configuration [
|
|
1839
|
+
args: [{ selector: 'c8y-key-cloak-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration [templateModel]=\"templateModel\"></c8y-basic-configuration>\n <hr/>\n <c8y-user-id-configuration [userIdConfig]=\"templateModel.userIdConfig\"></c8y-user-id-configuration>\n <hr/>\n <c8y-request-configuration\n [templateModel]=\"templateModel\"\n [requestName]=\"'Logout request' | translate\"\n [requestType]=\"'logoutRequest'\">\n </c8y-request-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping [templateModel]=\"templateModel\"></c8y-sso-user-data-mapping>\n</div>\n" }]
|
|
1822
1840
|
}], ctorParameters: function () { return [{ type: KeyCloakConfigurationMapper }]; } });
|
|
1823
1841
|
|
|
1824
1842
|
class AadConfigurationMapper {
|
|
@@ -2029,10 +2047,10 @@ class AadTemplateComponent extends TemplateComponent {
|
|
|
2029
2047
|
}
|
|
2030
2048
|
}
|
|
2031
2049
|
AadTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AadTemplateComponent, deps: [{ token: AadConfigurationMapper }], target: i0.ɵɵFactoryTarget.Component });
|
|
2032
|
-
AadTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AadTemplateComponent, selector: "c8y-aad-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-logout-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-logout-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [
|
|
2050
|
+
AadTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AadTemplateComponent, selector: "c8y-aad-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-logout-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-logout-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [userIdConfig]=\"templateModel.userIdConfig\">\n </c8y-user-id-configuration>\n <hr/>\n <c8y-sso-signature-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-signature-configuration>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BasicConfigurationComponent, selector: "c8y-basic-configuration", inputs: ["templateModel"] }, { kind: "component", type: UserIdConfigurationComponent, selector: "c8y-user-id-configuration", inputs: ["userIdConfig", "withHeader"] }, { kind: "component", type: UserDataMappingComponent, selector: "c8y-sso-user-data-mapping", inputs: ["templateModel"] }, { kind: "component", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: ["apps", "groups", "inventoryRoles", "templateModel"] }, { kind: "component", type: SignatureConfigurationComponent, selector: "c8y-sso-signature-configuration", inputs: ["templateModel"] }, { kind: "component", type: LogoutConfigurationComponent, selector: "c8y-sso-logout-configuration", inputs: ["templateModel"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
2033
2051
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AadTemplateComponent, decorators: [{
|
|
2034
2052
|
type: Component,
|
|
2035
|
-
args: [{ selector: 'c8y-aad-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-logout-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-logout-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [
|
|
2053
|
+
args: [{ selector: 'c8y-aad-template', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div *ngIf=\"templateModel\">\n <c8y-basic-configuration\n [templateModel]=\"templateModel\">\n </c8y-basic-configuration>\n <hr/>\n <c8y-sso-logout-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-logout-configuration>\n <hr/>\n <c8y-sso-access-mapping\n [templateModel]=\"templateModel\"\n [apps]=\"apps\"\n [groups]=\"groups\"\n [inventoryRoles]=\"inventoryRoles\">\n </c8y-sso-access-mapping>\n <hr/>\n <c8y-sso-user-data-mapping\n [templateModel]=\"templateModel\">\n </c8y-sso-user-data-mapping>\n <hr/>\n <c8y-user-id-configuration\n [userIdConfig]=\"templateModel.userIdConfig\">\n </c8y-user-id-configuration>\n <hr/>\n <c8y-sso-signature-configuration\n [templateModel]=\"templateModel\">\n </c8y-sso-signature-configuration>\n</div>\n" }]
|
|
2036
2054
|
}], ctorParameters: function () { return [{ type: AadConfigurationMapper }]; } });
|
|
2037
2055
|
|
|
2038
2056
|
class SsoConfigurationComponent {
|