import { Component, Input } from '@angular/core';
import { gettext } from '@c8y/ngx-components';
import { pull, defaultsDeep } from 'lodash-es';
import { ControlContainer, NgForm } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@c8y/ngx-components";
import * as i3 from "@angular/common";
import * as i4 from "ngx-bootstrap/popover";
import * as i5 from "./dynamic-access-mapping.component";
import * as i6 from "./inventory-roles-mapping.component";
export class AccessMappingComponent {
    constructor(controlContainer) {
        this.controlContainer = controlContainer;
        this.USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP = gettext('The access mapping will be executed only once during the first login, then the administrator can edit the user roles. During the next login, these mappings will not be executed.');
        this.USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION = gettext('Use dynamic access mapping only on user creation');
        this.UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP = gettext('The access mapping will be executed only once during the first login, then the administrator can edit the user roles. During the next login only the roles listed in the access mappings will be updated.');
        this.UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION = gettext('Roles selected in the rules below will be reassigned to a user on each log in and other ones will be unchanged');
        this.CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP = gettext('The access mapping will be executed during the first login. The administrator cannot edit the SSO user roles. During the next login all the roles will be cleared and the mapping will be executed again.');
        this.CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION = gettext('Roles selected in the rules below will be reassigned to a user on each log in and other ones will be cleared');
        this.RETRIVE_FROM_ACCESS_TOKEN = gettext('Retrieve from Access token');
        this.RETRIVE_FROM_ID_TOKEN = gettext('Retrieve from ID token');
    }
    ngOnChanges() {
        if (this.templateModel && this.apps && this.groups) {
            this.setDynamicMapping();
        }
    }
    addAccessMapping() {
        const emptyMapping = {
            when: {
                operator: 'AND',
                childPredicates: [{ parameterPath: '', operator: 'EQ', value: '' }]
            },
            thenGroups: [],
            thenApplications: []
        };
        this.templateModel.onNewUser.dynamicMapping.mappings.push(emptyMapping);
    }
    addInventoryMapping() {
        const emptyInventoryMapping = {
            when: {
                operator: 'AND',
                childPredicates: [{ parameterPath: '', operator: 'EQ', value: '' }]
            },
            thenInventoryRoles: []
        };
        this.templateModel.onNewUser.dynamicMapping.inventoryMappings.push(emptyInventoryMapping);
    }
    onRemove(accessMapping) {
        pull(this.templateModel.onNewUser.dynamicMapping.mappings, accessMapping);
    }
    onRemoveInventoryMapping(inventoryMapping) {
        pull(this.templateModel.onNewUser.dynamicMapping.inventoryMappings, inventoryMapping);
    }
    setDynamicMappingConfiguration(mapRolesOnlyForNewUser, manageRolesOnlyFromAccessMapping = false) {
        this.dynamicMappingConfiguration.mapRolesOnlyForNewUser = mapRolesOnlyForNewUser;
        this.dynamicMappingConfiguration.manageRolesOnlyFromAccessMapping =
            manageRolesOnlyFromAccessMapping;
        this.controlContainer.control.markAsDirty();
    }
    get mapRolesOnlyForNewUser() {
        return this.dynamicMappingConfiguration.mapRolesOnlyForNewUser;
    }
    get manageRolesOnlyFromAccessMapping() {
        return this.dynamicMappingConfiguration.manageRolesOnlyFromAccessMapping;
    }
    get mapFromIdToken() {
        return this.dynamicMappingConfiguration.mapFromIdToken;
    }
    setMapFromIdToken(mapFromIdToken) {
        this.dynamicMappingConfiguration.mapFromIdToken = mapFromIdToken;
        this.controlContainer.control.markAsDirty();
    }
    get dynamicMappingConfiguration() {
        return this.templateModel.onNewUser.dynamicMapping.configuration;
    }
    setDynamicMapping() {
        defaultsDeep(this.templateModel.onNewUser, {
            dynamicMapping: {
                mappings: [],
                inventoryMappings: [],
                configuration: {
                    mapRolesOnlyForNewUser: false,
                    manageRolesOnlyFromAccessMapping: false
                }
            }
        });
        const { configuration } = this.templateModel.onNewUser.dynamicMapping;
        const { mapRolesOnlyForNewUser, manageRolesOnlyFromAccessMapping, mapFromIdToken } = configuration;
        configuration.mapFromIdToken =
            mapFromIdToken !== undefined
                ? mapFromIdToken
                : mapRolesOnlyForNewUser === false && manageRolesOnlyFromAccessMapping === false;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessMappingComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccessMappingComponent, selector: "c8y-sso-access-mapping", inputs: { apps: "apps", groups: "groups", inventoryRoles: "inventoryRoles", templateModel: "templateModel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-24\">\n  <div class=\"row\">\n    <div class=\"col-xs-12 col-sm-3 col-md-2\">\n      <div\n        class=\"h4 text-normal text-right text-left-xs\"\n        translate\n      >\n        Access mapping\n      </div>\n    </div>\n\n    <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n      <fieldset class=\"c8y-fieldset p-24\">\n        <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n        <c8y-form-group>\n          <label\n            title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingSource\"\n              data-cy=\"dynamic-access-mapping-from-access-token\"\n              [checked]=\"!mapFromIdToken\"\n              (change)=\"setMapFromIdToken(false)\"\n            />\n            <span></span>\n            <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n          </label>\n          <label\n            title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingSource\"\n              data-cy=\"dynamic-access-mapping-from-id-token\"\n              [checked]=\"mapFromIdToken\"\n              (change)=\"setMapFromIdToken(true)\"\n            />\n            <span></span>\n            <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n          </label>\n        </c8y-form-group>\n      </fieldset>\n\n      <fieldset class=\"c8y-fieldset p-24\">\n        <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n        <c8y-form-group>\n          <label\n            title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n              [checked]=\"mapRolesOnlyForNewUser\"\n              (change)=\"setDynamicMappingConfiguration(true)\"\n            />\n            <span></span>\n            <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n            <button\n              class=\"btn-help\"\n              type=\"button\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n          <label\n            title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n              [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n              (change)=\"setDynamicMappingConfiguration(false, true)\"\n            />\n            <span></span>\n            <span>\n              {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n            </span>\n            <button\n              type=\"button\"\n              class=\"btn-help\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n          <label\n            title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n              [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n              (change)=\"setDynamicMappingConfiguration(false, false)\"\n            />\n            <span></span>\n            <span>\n              {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n            </span>\n            <button\n              class=\"btn-help\"\n              type=\"button\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n        </c8y-form-group>\n      </fieldset>\n      <fieldset class=\"c8y-fieldset p-16\">\n        <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n        <c8y-ui-empty-state\n          *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n          [icon]=\"'list'\"\n          [title]=\"'No access mapping rules defined.' | translate\"\n          [subtitle]=\"'Click below to add a new mapping.' | translate\"\n          [horizontal]=\"true\"\n        ></c8y-ui-empty-state>\n        <div\n          *ngFor=\"\n            let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n            index as idx\n          \"\n        >\n          <c8y-sso-dynamic-access-mapping\n            [accessMapping]=\"accessMapping\"\n            (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n            [apps]=\"apps\"\n            [groups]=\"groups\"\n            [accessMappingIndex]=\"idx\"\n          ></c8y-sso-dynamic-access-mapping>\n        </div>\n        <div class=\"p-t-16\">\n          <button\n            id=\"add-access-mapping-button\"\n            class=\"btn btn-default\"\n            type=\"button\"\n            title=\"{{ 'Add access mapping' | translate }}\"\n            (click)=\"addAccessMapping()\"\n          >\n            <i\n              c8yIcon=\"plus-circle\"\n              class=\"m-r-4\"\n            ></i>\n            {{ 'Add access mapping' | translate }}\n          </button>\n        </div>\n      </fieldset>\n      <fieldset class=\"c8y-fieldset p-16\">\n        <legend>\n          {{ 'Inventory roles mapping' | translate }}\n        </legend>\n        <c8y-ui-empty-state\n          *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n          [icon]=\"'list'\"\n          [title]=\"'No inventory roles mapping rules defined.' | translate\"\n          [subtitle]=\"'Click below to add a new mapping.' | translate\"\n          [horizontal]=\"true\"\n        ></c8y-ui-empty-state>\n        <ng-container\n          *ngFor=\"\n            let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n            index as idx\n          \"\n        >\n          <c8y-sso-inventory-roles-mapping\n            [inventoryRoles]=\"inventoryRoles\"\n            [inventoryMapping]=\"inventoryMapping\"\n            (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n            [inventoryMappingIndex]=\"idx\"\n          ></c8y-sso-inventory-roles-mapping>\n        </ng-container>\n        <div class=\"p-t-16\">\n          <button\n            id=\"add-inventory-mapping-button\"\n            class=\"btn btn-default\"\n            type=\"button\"\n            title=\"{{ 'Add inventory roles mapping' | translate }}\"\n            (click)=\"addInventoryMapping()\"\n          >\n            <i\n              c8yIcon=\"plus-circle\"\n              class=\"m-r-4\"\n            ></i>\n            {{ 'Add inventory roles mapping' | translate }}\n          </button>\n        </div>\n      </fieldset>\n    </div>\n  </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.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: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i5.DynamicAccessMappingComponent, selector: "c8y-sso-dynamic-access-mapping", inputs: ["groups", "apps", "accessMapping", "accessMappingIndex"], outputs: ["onRemoveAccessMapping"] }, { kind: "component", type: i6.InventoryRolesMappingComponent, selector: "c8y-sso-inventory-roles-mapping", inputs: ["inventoryMapping", "inventoryMappingIndex", "inventoryRoles"], outputs: ["onRemoveInventoryMapping"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessMappingComponent, decorators: [{
            type: Component,
            args: [{ selector: 'c8y-sso-access-mapping', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"p-24\">\n  <div class=\"row\">\n    <div class=\"col-xs-12 col-sm-3 col-md-2\">\n      <div\n        class=\"h4 text-normal text-right text-left-xs\"\n        translate\n      >\n        Access mapping\n      </div>\n    </div>\n\n    <div class=\"col-xs-12 col-sm-9 col-md-10 col-lg-9\">\n      <fieldset class=\"c8y-fieldset p-24\">\n        <legend>{{ 'Source of dynamic access mapping' | translate }}</legend>\n        <c8y-form-group>\n          <label\n            title=\"{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingSource\"\n              data-cy=\"dynamic-access-mapping-from-access-token\"\n              [checked]=\"!mapFromIdToken\"\n              (change)=\"setMapFromIdToken(false)\"\n            />\n            <span></span>\n            <span>{{ RETRIVE_FROM_ACCESS_TOKEN | translate }}</span>\n          </label>\n          <label\n            title=\"{{ RETRIVE_FROM_ID_TOKEN | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingSource\"\n              data-cy=\"dynamic-access-mapping-from-id-token\"\n              [checked]=\"mapFromIdToken\"\n              (change)=\"setMapFromIdToken(true)\"\n            />\n            <span></span>\n            <span>{{ RETRIVE_FROM_ID_TOKEN | translate }}</span>\n          </label>\n        </c8y-form-group>\n      </fieldset>\n\n      <fieldset class=\"c8y-fieldset p-24\">\n        <legend>{{ 'Dynamic access mapping principle' | translate }}</legend>\n        <c8y-form-group>\n          <label\n            title=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--on-user-creation\"\n              [checked]=\"mapRolesOnlyForNewUser\"\n              (change)=\"setDynamicMappingConfiguration(true)\"\n            />\n            <span></span>\n            <span>{{ USE_ACCESS_MAPPING_ON_USER_CREATION_OPTION | translate }}</span>\n            <button\n              class=\"btn-help\"\n              type=\"button\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ USE_ACCESS_MAPPING_ON_USER_CREATION_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n          <label\n            title=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-unchanged\"\n              [checked]=\"!mapRolesOnlyForNewUser && manageRolesOnlyFromAccessMapping\"\n              (change)=\"setDynamicMappingConfiguration(false, true)\"\n            />\n            <span></span>\n            <span>\n              {{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_OPTION | translate }}\n            </span>\n            <button\n              type=\"button\"\n              class=\"btn-help\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ UPDATE_ROLES_LISTED_IN_ACCESS_MAPPING_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n          <label\n            title=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\"\n            class=\"c8y-radio input-sm\"\n          >\n            <input\n              type=\"radio\"\n              name=\"dynamicAccessMappingConfiguration\"\n              data-cy=\"c8y-inventory-roles-mapping--other-ones-will-be-cleared\"\n              [checked]=\"!mapRolesOnlyForNewUser && !manageRolesOnlyFromAccessMapping\"\n              (change)=\"setDynamicMappingConfiguration(false, false)\"\n            />\n            <span></span>\n            <span>\n              {{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_OPTION | translate }}\n            </span>\n            <button\n              class=\"btn-help\"\n              type=\"button\"\n              [attr.aria-label]=\"'Help' | translate\"\n              popover=\"{{ CLEAR_AND_UPDATED_ROLES_ON_EACH_LOG_IN_TOOLTIP | translate }}\"\n              placement=\"right\"\n              triggers=\"focus\"\n              container=\"body\"\n            ></button>\n          </label>\n        </c8y-form-group>\n      </fieldset>\n      <fieldset class=\"c8y-fieldset p-16\">\n        <legend>{{ 'Dynamic access mapping' | translate }}</legend>\n        <c8y-ui-empty-state\n          *ngIf=\"templateModel.onNewUser.dynamicMapping.mappings.length === 0\"\n          [icon]=\"'list'\"\n          [title]=\"'No access mapping rules defined.' | translate\"\n          [subtitle]=\"'Click below to add a new mapping.' | translate\"\n          [horizontal]=\"true\"\n        ></c8y-ui-empty-state>\n        <div\n          *ngFor=\"\n            let accessMapping of templateModel.onNewUser.dynamicMapping.mappings;\n            index as idx\n          \"\n        >\n          <c8y-sso-dynamic-access-mapping\n            [accessMapping]=\"accessMapping\"\n            (onRemoveAccessMapping)=\"onRemove(accessMapping)\"\n            [apps]=\"apps\"\n            [groups]=\"groups\"\n            [accessMappingIndex]=\"idx\"\n          ></c8y-sso-dynamic-access-mapping>\n        </div>\n        <div class=\"p-t-16\">\n          <button\n            id=\"add-access-mapping-button\"\n            class=\"btn btn-default\"\n            type=\"button\"\n            title=\"{{ 'Add access mapping' | translate }}\"\n            (click)=\"addAccessMapping()\"\n          >\n            <i\n              c8yIcon=\"plus-circle\"\n              class=\"m-r-4\"\n            ></i>\n            {{ 'Add access mapping' | translate }}\n          </button>\n        </div>\n      </fieldset>\n      <fieldset class=\"c8y-fieldset p-16\">\n        <legend>\n          {{ 'Inventory roles mapping' | translate }}\n        </legend>\n        <c8y-ui-empty-state\n          *ngIf=\"templateModel.onNewUser.dynamicMapping.inventoryMappings.length === 0\"\n          [icon]=\"'list'\"\n          [title]=\"'No inventory roles mapping rules defined.' | translate\"\n          [subtitle]=\"'Click below to add a new mapping.' | translate\"\n          [horizontal]=\"true\"\n        ></c8y-ui-empty-state>\n        <ng-container\n          *ngFor=\"\n            let inventoryMapping of templateModel.onNewUser.dynamicMapping.inventoryMappings;\n            index as idx\n          \"\n        >\n          <c8y-sso-inventory-roles-mapping\n            [inventoryRoles]=\"inventoryRoles\"\n            [inventoryMapping]=\"inventoryMapping\"\n            (onRemoveInventoryMapping)=\"onRemoveInventoryMapping(inventoryMapping)\"\n            [inventoryMappingIndex]=\"idx\"\n          ></c8y-sso-inventory-roles-mapping>\n        </ng-container>\n        <div class=\"p-t-16\">\n          <button\n            id=\"add-inventory-mapping-button\"\n            class=\"btn btn-default\"\n            type=\"button\"\n            title=\"{{ 'Add inventory roles mapping' | translate }}\"\n            (click)=\"addInventoryMapping()\"\n          >\n            <i\n              c8yIcon=\"plus-circle\"\n              class=\"m-r-4\"\n            ></i>\n            {{ 'Add inventory roles mapping' | translate }}\n          </button>\n        </div>\n      </fieldset>\n    </div>\n  </div>\n</div>\n" }]
        }], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { apps: [{
                type: Input
            }], groups: [{
                type: Input
            }], inventoryRoles: [{
                type: Input
            }], templateModel: [{
                type: Input
            }] } });
//# sourceMappingURL=data:application/json;base64, 