  <div class="page-content">
    <div class="container-fluid">
      <div class="row mt-2 mb-2">
        <div class="col-lg-6">
          <div class="col-6">
            <div class="mt-0 mb-2 d-sm-flex align-items-center justify-content-between font-edit-13">
                <h5 class="text-muted fw-bold mt-3">{{'permissionManagement' | translate}}</h5>
            </div>
        </div>
        <div class="card">
            <div class="card-body">
             <form [formGroup]="permission">
                
                <div class="form-group row mb-2">
                    <label for="userCode" class="form-label font-edit-13">{{ 'userCode' |
                        translate
                        }}</label>
                    <div class="input-group">
                        <select class="form-select" id="userCode" formControlName="userCode" (change)="onUserChange()">
                            <option selected disabled value="">{{ 'choose' |
                                translate }}
                            </option>
                            <option *ngFor="let user of users" [value]="user.userId">
                                {{user.userName}}
                            </option>
                        </select>
                    </div>
                 
                </div> 
                
             </form> 
            </div>
          </div>
          <div class="card" *ngIf="showPermissions">
            <div class="card-body">
                <h4 class="card-title">{{ 'permissions' | translate}}</h4>
                <hr>
                <ul>
                    <li *ngFor="let node of permissions">
                      <input 
                        type="checkbox" 
                        [checked]="node.checked" 
                        (change)="toggleNode(node, $event)">
                        {{node.name | translate}}
                      <span (click)="toggleExpand(node)">
                        <span *ngIf="node.children && node.children.length">
                          <span *ngIf="node.expanded"><i class="bx bx-chevron-down"></i></span>
                          <span *ngIf="!node.expanded"><i class="bx bx-chevron-right"></i></span>
                        </span>
                      </span>
                      <ul *ngIf="node.children && node.children.length > 0 && node.expanded">
                        <ng-container *ngTemplateOutlet="treeTemplate; context: { $implicit: node.children }"></ng-container>
                      </ul>
                      <ul *ngIf="node.buttons && node.buttons.length > 0 && node.expanded">
                        <ng-container *ngTemplateOutlet="treeTemplate; context: { $implicit: node.buttons }"></ng-container>
                      </ul>
                    </li>
                </ul>
                  
                  <ng-template #treeTemplate let-nodes>
                    <ul>
                      <li *ngFor="let node of nodes">
                        <input 
                          type="checkbox" 
                          [checked]="node.checked" 
                          (change)="toggleNode(node, $event)">
                          {{node.name | translate}}
                        <span (click)="toggleExpand(node)">
                            <span *ngIf="node.children && node.children.length">
                              <span *ngIf="node.expanded"><i class="bx bx-chevron-down"></i></span>
                              <span *ngIf="!node.expanded"><i class="bx bx-chevron-right"></i></span>
                            </span>
                            <span *ngIf="node.buttons && node.buttons.length">
                              <span *ngIf="node.expanded"><i class="bx bx-chevron-down"></i></span>
                              <span *ngIf="!node.expanded"><i class="bx bx-chevron-right"></i></span>
                            </span>
                          </span>
                        <ul *ngIf="node.children && node.children.length > 0 && node.expanded">
                          <ng-container *ngTemplateOutlet="treeTemplate; context: { $implicit: node.children }"></ng-container>
                        </ul>
                        <ul *ngIf="node.buttons && node.buttons.length > 0 && node.expanded">
                          <ng-container *ngTemplateOutlet="treeTemplate; context: { $implicit: node.buttons }"></ng-container>
                        </ul>
                      </li>
                    </ul>
                  </ng-template>
                  <div class="row float-end me-4 mb-3 mt-2 font-edit-13">
                    <button type="button" class="btn btn-primary font-edit-13 px-3 btn-sm" (click)="savePermissions()">{{ 'save' | translate }}</button>
                  </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>