UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

51 lines 15.2 kB
import { Component, Input, Output, EventEmitter } from '@angular/core'; import { ControlContainer, NgForm } from '@angular/forms'; import * as i0 from "@angular/core"; import * as i1 from "@angular/forms"; import * as i2 from "@angular/common"; import * as i3 from "@c8y/ngx-components"; import * as i4 from "./child-predicates.component"; export class DynamicAccessMappingComponent { constructor(controlContainer) { this.controlContainer = controlContainer; this.onRemoveAccessMapping = new EventEmitter(); } ngOnChanges() { if (this.accessMapping && this.apps && this.groups) { this.setSelectedItems(); } } onRemoveAllChildPredicates() { this.onRemoveAccessMapping.emit(this.accessMapping); } getIds(selectedItems) { return selectedItems.map(item => parseInt(item.id, 10)); } setSelectedItems() { if (this.accessMapping) { if (this.accessMapping.thenGroups) { this.selectedGroups = this.groups.filter(item => this.accessMapping.thenGroups.includes(item.id)); } if (this.accessMapping.thenApplications) { this.selectedApps = this.apps.filter(item => this.accessMapping.thenApplications.includes(+item.id)); } } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicAccessMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: { groups: "groups", apps: "apps", accessMapping: "accessMapping", accessMappingIndex: "accessMappingIndex" }, outputs: { onRemoveAccessMapping: "onRemoveAccessMapping" }, usesOnChanges: true, ngImport: i0, template: "<fieldset class=\"c8y-fieldset p-8\">\n <div *ngIf=\"accessMapping.when.childPredicates.length != 0\">\n <c8y-sso-child-predicates\n [childPredicates]=\"accessMapping.when.childPredicates\"\n [accessMappingIndex]=\"'am' + accessMappingIndex\"\n (onRemoveAllChildPredicates)=\"onRemoveAllChildPredicates()\"\n ></c8y-sso-child-predicates>\n\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Provide access to' | translate }}\n </legend>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div\n title=\"{{ 'Default global roles' | translate }}\"\n class=\"form-group\"\n >\n <label\n [for]=\"'groups' + accessMappingIndex\"\n class=\"control-label\"\n >\n {{ 'Default global roles' | translate }}\n </label>\n <c8y-select-legacy\n [id]=\"'groups' + accessMappingIndex\"\n [items]=\"groups\"\n [selected]=\"selectedGroups\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"controlContainer.control.markAsDirty(); selectedGroups = $event; accessMapping.thenGroups = getIds($event)\"\n ></c8y-select-legacy>\n </div>\n </div>\n <div class=\"col-sm-6\">\n <div\n title=\"{{ 'Default applications' | translate }}\"\n class=\"form-group\"\n >\n <label\n [for]=\"'apps' + accessMappingIndex\"\n class=\"control-label\"\n >\n {{ 'Default applications' | translate }}\n </label>\n <c8y-select-legacy\n [id]=\"'apps' + accessMappingIndex\"\n [items]=\"apps\"\n [selected]=\"selectedApps\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"controlContainer.control.markAsDirty(); selectedApps = $event; accessMapping.thenApplications = getIds($event)\"\n ></c8y-select-legacy>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n</fieldset>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }, { kind: "component", type: i4.ChildPredicatesComponent, selector: "c8y-sso-child-predicates", inputs: ["childPredicates", "accessMappingIndex"], outputs: ["onRemoveAllChildPredicates"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicAccessMappingComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-sso-dynamic-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<fieldset class=\"c8y-fieldset p-8\">\n <div *ngIf=\"accessMapping.when.childPredicates.length != 0\">\n <c8y-sso-child-predicates\n [childPredicates]=\"accessMapping.when.childPredicates\"\n [accessMappingIndex]=\"'am' + accessMappingIndex\"\n (onRemoveAllChildPredicates)=\"onRemoveAllChildPredicates()\"\n ></c8y-sso-child-predicates>\n\n <fieldset class=\"c8y-fieldset p-16\">\n <legend>\n {{ 'Provide access to' | translate }}\n </legend>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div\n title=\"{{ 'Default global roles' | translate }}\"\n class=\"form-group\"\n >\n <label\n [for]=\"'groups' + accessMappingIndex\"\n class=\"control-label\"\n >\n {{ 'Default global roles' | translate }}\n </label>\n <c8y-select-legacy\n [id]=\"'groups' + accessMappingIndex\"\n [items]=\"groups\"\n [selected]=\"selectedGroups\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"controlContainer.control.markAsDirty(); selectedGroups = $event; accessMapping.thenGroups = getIds($event)\"\n ></c8y-select-legacy>\n </div>\n </div>\n <div class=\"col-sm-6\">\n <div\n title=\"{{ 'Default applications' | translate }}\"\n class=\"form-group\"\n >\n <label\n [for]=\"'apps' + accessMappingIndex\"\n class=\"control-label\"\n >\n {{ 'Default applications' | translate }}\n </label>\n <c8y-select-legacy\n [id]=\"'apps' + accessMappingIndex\"\n [items]=\"apps\"\n [selected]=\"selectedApps\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"controlContainer.control.markAsDirty(); selectedApps = $event; accessMapping.thenApplications = getIds($event)\"\n ></c8y-select-legacy>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n</fieldset>\n" }] }], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { groups: [{ type: Input }], apps: [{ type: Input }], accessMapping: [{ type: Input }], onRemoveAccessMapping: [{ type: Output }], accessMappingIndex: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9hdXRoLWNvbmZpZ3VyYXRpb24vc3NvLWNvbmZpZ3VyYXRpb24vdGVtcGxhdGUtcGFydHMvYWNjZXNzLW1hcHBpbmcvZHluYW1pYy1hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9hdXRoLWNvbmZpZ3VyYXRpb24vc3NvLWNvbmZpZ3VyYXRpb24vdGVtcGxhdGUtcGFydHMvYWNjZXNzLW1hcHBpbmcvZHluYW1pYy1hY2Nlc3MtbWFwcGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBUzFELE1BQU0sT0FBTyw2QkFBNkI7SUFZeEMsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKM0MsMEJBQXFCLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFJMUIsQ0FBQztJQUV6RCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYTtRQUNsQixPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2hELENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3ZELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBekNVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDhRQ1YxQyxvbUVBeURBLHFvQkRqRGlCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDOzs0RkFFeEQsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLGdDQUFnQyxpQkFFM0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7cUZBRzFELE1BQU07c0JBQWQsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiwgSVVzZXJHcm91cCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFjY2Vzc01hcHBpbmcgfSBmcm9tICcuLi8uLi9zc28tY29uZmlndXJhdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zc28tZHluYW1pYy1hY2Nlc3MtbWFwcGluZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWFjY2Vzcy1tYXBwaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQWNjZXNzTWFwcGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGdyb3VwczogSVVzZXJHcm91cFtdO1xuICBzZWxlY3RlZEdyb3VwczogSVVzZXJHcm91cFtdO1xuXG4gIEBJbnB1dCgpIGFwcHM6IElBcHBsaWNhdGlvbltdO1xuICBzZWxlY3RlZEFwcHM6IElBcHBsaWNhdGlvbltdO1xuXG4gIEBJbnB1dCgpIGFjY2Vzc01hcHBpbmc6IEFjY2Vzc01hcHBpbmc7XG4gIEBPdXRwdXQoKSBvblJlbW92ZUFjY2Vzc01hcHBpbmc6IEV2ZW50RW1pdHRlcjxBY2Nlc3NNYXBwaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBhY2Nlc3NNYXBwaW5nSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2Nlc3NNYXBwaW5nICYmIHRoaXMuYXBwcyAmJiB0aGlzLmdyb3Vwcykge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgb25SZW1vdmVBbGxDaGlsZFByZWRpY2F0ZXMoKSB7XG4gICAgdGhpcy5vblJlbW92ZUFjY2Vzc01hcHBpbmcuZW1pdCh0aGlzLmFjY2Vzc01hcHBpbmcpO1xuICB9XG5cbiAgZ2V0SWRzKHNlbGVjdGVkSXRlbXMpIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRJdGVtcy5tYXAoaXRlbSA9PiBwYXJzZUludChpdGVtLmlkLCAxMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEl0ZW1zKCkge1xuICAgIGlmICh0aGlzLmFjY2Vzc01hcHBpbmcpIHtcbiAgICAgIGlmICh0aGlzLmFjY2Vzc01hcHBpbmcudGhlbkdyb3Vwcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy5ncm91cHMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgICB0aGlzLmFjY2Vzc01hcHBpbmcudGhlbkdyb3Vwcy5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYWNjZXNzTWFwcGluZy50aGVuQXBwbGljYXRpb25zKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBzID0gdGhpcy5hcHBzLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgdGhpcy5hY2Nlc3NNYXBwaW5nLnRoZW5BcHBsaWNhdGlvbnMuaW5jbHVkZXMoK2l0ZW0uaWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC04XCI+XG4gIDxkaXYgKm5nSWY9XCJhY2Nlc3NNYXBwaW5nLndoZW4uY2hpbGRQcmVkaWNhdGVzLmxlbmd0aCAhPSAwXCI+XG4gICAgPGM4eS1zc28tY2hpbGQtcHJlZGljYXRlc1xuICAgICAgW2NoaWxkUHJlZGljYXRlc109XCJhY2Nlc3NNYXBwaW5nLndoZW4uY2hpbGRQcmVkaWNhdGVzXCJcbiAgICAgIFthY2Nlc3NNYXBwaW5nSW5kZXhdPVwiJ2FtJyArIGFjY2Vzc01hcHBpbmdJbmRleFwiXG4gICAgICAob25SZW1vdmVBbGxDaGlsZFByZWRpY2F0ZXMpPVwib25SZW1vdmVBbGxDaGlsZFByZWRpY2F0ZXMoKVwiXG4gICAgPjwvYzh5LXNzby1jaGlsZC1wcmVkaWNhdGVzPlxuXG4gICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMTZcIj5cbiAgICAgIDxsZWdlbmQ+XG4gICAgICAgIHt7ICdQcm92aWRlIGFjY2VzcyB0bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGVnZW5kPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0aXRsZT1cInt7ICdEZWZhdWx0IGdsb2JhbCByb2xlcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgW2Zvcl09XCInZ3JvdXBzJyArIGFjY2Vzc01hcHBpbmdJbmRleFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdEZWZhdWx0IGdsb2JhbCByb2xlcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8Yzh5LXNlbGVjdC1sZWdhY3lcbiAgICAgICAgICAgICAgW2lkXT1cIidncm91cHMnICsgYWNjZXNzTWFwcGluZ0luZGV4XCJcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cImdyb3Vwc1wiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEdyb3Vwc1wiXG4gICAgICAgICAgICAgIFtkaXNhYmxlQXBwbHlPbk5vU2VsZWN0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbENvbnRhaW5lci5jb250cm9sLm1hcmtBc0RpcnR5KCk7IHNlbGVjdGVkR3JvdXBzID0gJGV2ZW50OyBhY2Nlc3NNYXBwaW5nLnRoZW5Hcm91cHMgPSBnZXRJZHMoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jOHktc2VsZWN0LWxlZ2FjeT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0RlZmF1bHQgYXBwbGljYXRpb25zJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBbZm9yXT1cIidhcHBzJyArIGFjY2Vzc01hcHBpbmdJbmRleFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdEZWZhdWx0IGFwcGxpY2F0aW9ucycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8Yzh5LXNlbGVjdC1sZWdhY3lcbiAgICAgICAgICAgICAgW2lkXT1cIidhcHBzJyArIGFjY2Vzc01hcHBpbmdJbmRleFwiXG4gICAgICAgICAgICAgIFtpdGVtc109XCJhcHBzXCJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkQXBwc1wiXG4gICAgICAgICAgICAgIFtkaXNhYmxlQXBwbHlPbk5vU2VsZWN0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbENvbnRhaW5lci5jb250cm9sLm1hcmtBc0RpcnR5KCk7IHNlbGVjdGVkQXBwcyA9ICRldmVudDsgYWNjZXNzTWFwcGluZy50aGVuQXBwbGljYXRpb25zID0gZ2V0SWRzKCRldmVudClcIlxuICAgICAgICAgICAgPjwvYzh5LXNlbGVjdC1sZWdhY3k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbiAgPC9kaXY+XG48L2ZpZWxkc2V0PlxuIl19