{"version":3,"file":"ngx-duallistbox-material.mjs","sources":["../../../projects/ngx-duallistbox-material/src/lib/ngx-duallistbox-material.service.ts","../../../projects/ngx-duallistbox-material/src/lib/ngx-duallistbox-material.component.ts","../../../projects/ngx-duallistbox-material/src/lib/ngx-duallistbox-material.component.html","../../../projects/ngx-duallistbox-material/src/lib/ngx-duallistbox-material.module.ts","../../../projects/ngx-duallistbox-material/src/public-api.ts","../../../projects/ngx-duallistbox-material/src/ngx-duallistbox-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxDuallistboxMaterialService {\n\n  constructor() { }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnInit,\n  Output,\n  EventEmitter,\n} from '@angular/core';\n\n@Component({\n  selector: 'ngx-duallistbox-material',\n  templateUrl: './ngx-duallistbox-material.component.html',\n  styleUrls: ['./ngx-duallistbox-material.component.scss'],\n})\nexport class NgxDuallistboxMaterialComponent implements OnInit {\n  checked: boolean = false;\n\n  @Input() dualListConfigData: any;\n  @Input() dualListData: any;\n  @Output() dualListEmitSelData: EventEmitter<any> = new EventEmitter();\n\n  libDualListData: any;\n  libIncStartNumber: number = Math.floor(1000 + Math.random() * 9000);\n  libsrchTxtLeft: string = '';\n  libsrchTxtRight: string = '';\n  libIsMoveAllLeftBtnDisable: boolean = false;\n  libIsMoveAllRightBtnDisable: boolean = false;\n  libIsMoveLeftBtnDisable: boolean = false;\n  libIsMoveRightBtnDisable: boolean = false;\n  libSelLeftArr: Array<any> = [];\n  libSelRightArr: Array<any> = [];\n  libSelLeftOpt: boolean = false;\n  libSelRightOpt: boolean = false;\n  libSelAllLeft: boolean = false;\n  libSelAllRight: boolean = false;\n  libSelListArr: Array<any> = [];\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    this.libUpdateInitData();\n  }\n\n  ngAfterContentChecked() {\n    this.cdr.detectChanges();\n    // call or add here your code\n  }\n\n  libUpdateInitData() {\n    this.libDualListData = structuredClone(this.dualListData);\n    this.libDualListData.map((val: any) => {\n      val.libId = this.libIncStartNumber++;\n      val.libShowList = true;\n      val.checked = false;\n      val.libSelOpt = false;\n    });\n  }\n\n  libMoveAllElement(moveDirection: string) {\n    this.libDualListData.map((val: any) => {\n      val.selected = moveDirection === 'left' ? false : true;\n      val.libSelOpt = false;\n    });\n    this.libSelRightArr = [];\n    this.libSelLeftArr = [];\n    this.libSelAllLeft = false;\n    this.libSelAllRight = false;\n    this.libGetSelListdata();\n  }\n\n  libSrchDualList(e: any, srchListPos: string) {\n    const srchTxtVal = e ? e.target.value : '';\n    let selCondition: boolean;\n\n    if (srchListPos === 'left') {\n      selCondition = false;\n      this.libSelLeftOpt = false;\n      this.libSelLeftArr = [];\n      this.libSelAllLeft = false;\n    } else {\n      selCondition = true;\n      this.libSelRightOpt = false;\n      this.libSelRightArr = [];\n      this.libSelAllRight = false;\n    }\n    this.libDualListData.map((val: any) => {\n      if (srchListPos === 'left') {\n        val.libSelOpt = false;\n      }\n      if (srchListPos === 'right') {\n        val.libSelOpt = false;\n      }\n      if (\n        srchTxtVal &&\n        val.label.toLowerCase().includes(srchTxtVal.toLowerCase()) &&\n        val.selected === selCondition\n      ) {\n        val.libShowList = true;\n      } else if (\n        srchTxtVal &&\n        !val.label.toLowerCase().includes(srchTxtVal.toLowerCase()) &&\n        val.selected === selCondition\n      ) {\n        val.libShowList = false;\n      }\n    });\n    this.libCheckAllBtnStatus();\n  }\n\n  libCheckAllBtnStatus() {\n    this.libIsMoveAllRightBtnDisable = true;\n    for (let i = 0; i < this.libDualListData.length; i++) {\n      if (\n        !this.libDualListData[i]['selected'] &&\n        this.libDualListData[i]['libShowList']\n      ) {\n        this.libIsMoveAllRightBtnDisable = false;\n        break;\n      }\n    }\n\n    this.libIsMoveAllLeftBtnDisable = true;\n    for (let i = 0; i < this.libDualListData.length; i++) {\n      if (\n        this.libDualListData[i]['selected'] &&\n        this.libDualListData[i]['libShowList']\n      ) {\n        this.libIsMoveAllLeftBtnDisable = false;\n        break;\n      }\n    }\n\n    if (this.libSelAllLeft || this.libSelAllRight) {\n      this.libIsMoveAllRightBtnDisable = true;\n      this.libIsMoveAllLeftBtnDisable = true;\n    } else {\n      this.libIsMoveAllRightBtnDisable = false;\n      this.libIsMoveAllLeftBtnDisable = false;\n    }\n    return '';\n  }\n\n  libSelListData(libId: any, listPos: string) {\n    let oprName: string;\n    if (listPos === 'left') {\n      const dataIndex = this.libSelLeftArr.indexOf(libId);\n\n      if (dataIndex > -1) {\n        oprName = 'remove';\n        this.libSelLeftArr.splice(dataIndex, 1);\n      } else {\n        oprName = 'add';\n        this.libSelLeftArr.push(libId);\n      }\n    }\n\n    if (listPos === 'right') {\n      const dataIndex = this.libSelRightArr.indexOf(libId);\n      if (dataIndex > -1) {\n        oprName = 'remove';\n        this.libSelRightArr.splice(dataIndex, 1);\n      } else {\n        oprName = 'add';\n        this.libSelRightArr.push(libId);\n      }\n    }\n    let libSelCheckLeftCount = 0;\n    let libSelCheckRightCount = 0;\n    this.libDualListData.map((val: any) => {\n      if (val.libId === libId) {\n        val.libSelOpt = oprName === 'add' ? true : false;\n      }\n      if (!val.selected) {\n        libSelCheckLeftCount = libSelCheckLeftCount + 1;\n      } else {\n        libSelCheckRightCount = libSelCheckRightCount + 1;\n      }\n    });\n\n    this.libSelAllLeft =\n      this.libSelLeftArr.length === libSelCheckLeftCount ? true : false;\n    this.libSelAllRight =\n      this.libSelRightArr.length === libSelCheckRightCount ? true : false;\n  }\n\n  libSelectAll(listPos: string) {\n    if (listPos === 'left') {\n      this.libSelLeftArr = [];\n      this.libSelLeftOpt = this.libSelAllLeft;\n      this.libDualListData.map((val: any) => {\n        if (!val.selected) {\n          val.libSelOpt = this.libSelAllLeft;\n          this.libSelLeftArr.push(val.libId);\n        }\n      });\n      if (!this.libSelAllLeft) {\n        this.libSelLeftArr = [];\n      }\n    }\n    if (listPos === 'right') {\n      this.libSelRightArr = [];\n      this.libSelRightOpt = this.libSelAllRight;\n      this.libDualListData.map((val: any) => {\n        if (val.selected) {\n          val.libSelOpt = this.libSelAllRight;\n          this.libSelRightArr.push(val.libId);\n        }\n      });\n      if (!this.libSelAllRight) {\n        this.libSelRightArr = [];\n      }\n    }\n  }\n\n  libMoveSelElement(listPos: string) {\n    this.libDualListData.map((val: any) => {\n      if (listPos === 'right' && this.libSelLeftArr.includes(val.libId)) {\n        val.selected = true;\n      }\n      if (listPos === 'left' && this.libSelRightArr.includes(val.libId)) {\n        val.selected = false;\n      }\n      val.libSelOpt = false;\n    });\n    this.libSelRightArr = [];\n    this.libSelLeftArr = [];\n    this.libSelAllLeft = false;\n    this.libSelAllRight = false;\n    this.libSrchDualList('', listPos);\n    this.libGetSelListdata();\n  }\n\n  libGetSelListdata() {\n    this.libSelListArr = [];\n    this.libDualListData.map((val: any) => {\n      if (val.selected) {\n        this.libSelListArr.push({\n          label: val.label,\n          value: val.value,\n        });\n      }\n    });\n    this.dualListEmitSelData.emit(this.libSelListArr);\n  }\n}\n","<div class=\"ngx-duallistbox-main-holder-cls\">\r\n  <mat-card class=\"ngx-duallistbox-list-holder-cls\">\r\n    <mat-card-header class=\"ngx-duallistbox-search-holder-cls\">\r\n      <mat-checkbox\r\n        class=\"ngx-duallistbox-select-all-checkbox-cls\"\r\n        (click)=\"libSelectAll('left')\"\r\n        [(ngModel)]=\"libSelAllLeft\"\r\n      ></mat-checkbox>\r\n      <mat-form-field appearance=\"outline\" class=\"ngx-duallistbox-search-cls\">\r\n        <input\r\n          autocomplete=\"off\"\r\n          [(ngModel)]=\"libsrchTxtLeft\"\r\n          (keyup)=\"libSrchDualList($event, 'left')\"\r\n          type=\"text\"\r\n          matInput\r\n        />\r\n        <mat-icon matSuffix>search</mat-icon>\r\n      </mat-form-field>\r\n    </mat-card-header>\r\n    <mat-card-content class=\"ngx-duallistbox-content-list-holder-cls\">\r\n      <mat-selection-list #libLeftList>\r\n        <ng-container *ngFor=\"let val of libDualListData\">\r\n          <ng-container *ngIf=\"!val.selected && val.libShowList\">\r\n            <mat-list-option\r\n              id=\"libId{{ val.libId }}\"\r\n              [selected]=\"val.libSelOpt || libSelLeftOpt\"\r\n              (click)=\"libSelListData(val.libId, 'left')\"\r\n              [checkboxPosition]=\"'before'\"\r\n              >{{ val.label }}</mat-list-option\r\n            >\r\n          </ng-container>\r\n        </ng-container>\r\n      </mat-selection-list>\r\n    </mat-card-content>\r\n    <mat-card-actions>\r\n      <mat-card-title>{{ libSelLeftArr.length }} item selected</mat-card-title>\r\n    </mat-card-actions>\r\n  </mat-card>\r\n\r\n  <div class=\"ngx-duallistbox-icon-holder-cls\">\r\n    <button\r\n      [disabled]=\"libIsMoveAllRightBtnDisable\"\r\n      [ngClass]=\"libCheckAllBtnStatus()\"\r\n      class=\"ngx-duallistbox-icon-btn-cls\"\r\n      mat-icon-button\r\n      (click)=\"libMoveAllElement('right')\"\r\n    >\r\n      <mat-icon\r\n        class=\"ngx-duallistbox-icon-cls\"\r\n        aria-hidden=\"true\"\r\n        fontIcon=\"keyboard_double_arrow_right\"\r\n      ></mat-icon>\r\n    </button>\r\n    <button\r\n      [disabled]=\"!(libLeftList.selectedOptions.selected.length > 0)\"\r\n      class=\"ngx-duallistbox-icon-btn-cls\"\r\n      mat-icon-button\r\n      (click)=\"libMoveSelElement('right')\"\r\n    >\r\n      <mat-icon\r\n        class=\"ngx-duallistbox-icon-cls\"\r\n        aria-hidden=\"true\"\r\n        fontIcon=\"chevron_right\"\r\n      ></mat-icon>\r\n    </button>\r\n    <button\r\n      [disabled]=\"!(libRightList.selectedOptions.selected.length > 0)\"\r\n      class=\"ngx-duallistbox-icon-btn-cls\"\r\n      mat-icon-button\r\n      (click)=\"libMoveSelElement('left')\"\r\n    >\r\n      <mat-icon\r\n        class=\"ngx-duallistbox-icon-cls\"\r\n        aria-hidden=\"true\"\r\n        fontIcon=\"chevron_left\"\r\n      ></mat-icon>\r\n    </button>\r\n    <button\r\n      [disabled]=\"libIsMoveAllLeftBtnDisable\"\r\n      class=\"ngx-duallistbox-icon-btn-cls\"\r\n      mat-icon-button\r\n      (click)=\"libMoveAllElement('left')\"\r\n    >\r\n      <mat-icon\r\n        class=\"ngx-duallistbox-icon-cls\"\r\n        aria-hidden=\"true\"\r\n        fontIcon=\"keyboard_double_arrow_left\"\r\n      ></mat-icon>\r\n    </button>\r\n  </div>\r\n\r\n  <mat-card class=\"ngx-duallistbox-list-holder-cls\">\r\n    <mat-card-header class=\"ngx-duallistbox-search-holder-cls\">\r\n      <mat-checkbox\r\n        class=\"ngx-duallistbox-select-all-checkbox-cls\"\r\n        (click)=\"libSelectAll('right')\"\r\n        [(ngModel)]=\"libSelAllRight\"\r\n      ></mat-checkbox>\r\n      <mat-form-field appearance=\"outline\" class=\"ngx-duallistbox-search-cls\">\r\n        <input\r\n          autocomplete=\"off\"\r\n          [(ngModel)]=\"libsrchTxtRight\"\r\n          (keyup)=\"libSrchDualList($event, 'right')\"\r\n          type=\"text\"\r\n          matInput\r\n        />\r\n        <mat-icon matSuffix>search</mat-icon>\r\n      </mat-form-field>\r\n    </mat-card-header>\r\n\r\n    <mat-card-content class=\"ngx-duallistbox-content-list-holder-cls\">\r\n      <mat-selection-list #libRightList>\r\n        <ng-container *ngFor=\"let val of libDualListData\">\r\n          <ng-container *ngIf=\"val.selected && val.libShowList\">\r\n            <mat-list-option\r\n              id=\"libId{{ val.libId }}\"\r\n              [selected]=\"val.libSelOpt || libSelRightOpt\"\r\n              (click)=\"libSelListData(val.libId, 'right')\"\r\n              [checkboxPosition]=\"'before'\"\r\n              >{{ val.label }}</mat-list-option\r\n            >\r\n          </ng-container>\r\n        </ng-container>\r\n      </mat-selection-list>\r\n    </mat-card-content>\r\n\r\n    <mat-card-actions>\r\n      <mat-card-title>{{ libSelRightArr.length }} item selected</mat-card-title>\r\n    </mat-card-actions>\r\n  </mat-card>\r\n</div>\r\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\n\nimport { NgxDuallistboxMaterialComponent } from './ngx-duallistbox-material.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  declarations: [NgxDuallistboxMaterialComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    MatIconModule,\n    MatCardModule,\n    MatButtonModule,\n    MatCheckboxModule,\n    MatInputModule,\n    MatListModule,\n  ],\n  exports: [NgxDuallistboxMaterialComponent],\n})\nexport class NgxDuallistboxMaterialModule {}\n","/*\n * Public API Surface of ngx-duallistbox-material\n */\n\nexport * from './lib/ngx-duallistbox-material.service';\nexport * from './lib/ngx-duallistbox-material.component';\nexport * from './lib/ngx-duallistbox-material.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}