{"version":3,"file":"ng-devui-transfer.mjs","sources":["../../devui/transfer/transfer.types.ts","../../devui/transfer/transfer.component.ts","../../devui/transfer/transfer.component.html","../../devui/transfer/transfer.module.ts","../../devui/transfer/ng-devui-transfer.ts"],"sourcesContent":["export enum TransferDirection {\r\n  SOURCE = 0,\r\n  TARGET = 1,\r\n}\r\n\r\nexport interface TransferDataFormat {\r\n  name: string;\r\n  value: any;\r\n  id?: number | string;\r\n  checked?: boolean;\r\n  disabled?: boolean;\r\n}\r\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\nimport { Observable, Subscription } from 'rxjs';\nimport { TransferDataFormat, TransferDirection } from './transfer.types';\n\n@Component({\n  selector: 'd-transfer',\n  templateUrl: './transfer.component.html',\n  styleUrls: ['./transfer.component.scss'],\n  preserveWhitespaces: false,\n})\nexport class TransferComponent implements OnInit, OnChanges, OnDestroy {\n  static ID_SEED = 0;\n  id: number;\n\n  @Input() sourceOption: Array<TransferDataFormat> = [];\n  @Input() targetOption: Array<TransferDataFormat> = [];\n  @Input() titles = { source: 'source', target: 'target' };\n  @Input() height = '320px';\n  @Input() isSearch = false;\n  @Input() disabled = false;\n  @Input() isSourceDroppable = false;\n  @Input() isTargetDroppable = false;\n  @Input() showOptionTitle = false;\n  @Input() beforeTransfer: (sourceOption, targetOption) => boolean | Promise<boolean> | Observable<boolean>;\n  @Input() virtualScroll = false;\n\n  // 自定义\n  @Input() customSourceCheckedLen = 0;\n  @Input() customTargetCheckedLen = 0;\n  @Input() noResultTemplate: TemplateRef<any>;\n\n  @Output() transferToTarget = new EventEmitter<any>();\n  @Output() transferToSource = new EventEmitter<any>();\n  @Output() searching = new EventEmitter<any>();\n  @Output() transferring = new EventEmitter<any>();\n  @Output() afterTransfer = new EventEmitter<any>();\n\n  @ContentChild('sourceTemplate') sourceCustomViewTemplate: TemplateRef<any>;\n  @ContentChild('targetTemplate') targetCustomViewTemplate: TemplateRef<any>;\n  @ViewChild(CdkVirtualScrollViewport) virtualScrollViewport: CdkVirtualScrollViewport;\n\n  transferDirection: any = TransferDirection;\n\n  sourceDisplayOption = [];\n  sourceDisplayOptionLen = 0;\n  sourceCheckedLen = 0;\n  sourceHalfChecked = false;\n  sourceAllChecked = false;\n  sourceCanTransfer = false;\n\n  targetDisplayOption = [];\n  targetDisplayOptionLen = 0;\n  targetCheckedLen = 0;\n  targetHalfChecked = false;\n  targetAllChecked = false;\n  targetCanTransfer = false;\n\n  sourceSearchText = '';\n  targetSearchText = '';\n\n  itemSize = 36;\n  minBuffer = parseInt(this.height, 10) * 2;\n  maxBuffer = parseInt(this.height, 10) * 3;\n\n  i18nCommonText: I18nInterface['common'];\n  i18nSubscription: Subscription;\n\n  constructor(private i18n: I18nService) {\n    this.id = TransferComponent.ID_SEED++;\n  }\n\n  ngOnInit() {\n    this.setI18nText();\n    this.sourceDisplayOption = this.sourceOption;\n    this.sourceDisplayOptionLen = this.sourceDisplayOption.length;\n    this.targetDisplayOption = this.targetOption;\n    this.targetDisplayOptionLen = this.targetDisplayOption.length;\n  }\n\n  canChange() {\n    let changeResult = Promise.resolve(true);\n\n    if (this.beforeTransfer) {\n      const result: any = this.beforeTransfer(this.sourceOption, this.targetOption);\n      if (typeof result !== 'undefined') {\n        if (result.then) {\n          changeResult = result;\n        } else if (result.subscribe) {\n          changeResult = (result as Observable<boolean>).toPromise();\n        } else {\n          changeResult = Promise.resolve(result);\n        }\n      }\n    }\n\n    return changeResult;\n  }\n\n  setI18nText() {\n    this.i18nCommonText = this.i18n.getI18nText().common;\n    this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\n      this.i18nCommonText = data.common;\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes && changes.customSourceCheckedLen) {\n      this.targetCanTransfer = !!(this.customSourceCheckedLen > 0);\n    }\n    if (changes && changes.customTargetCheckedLen) {\n      this.sourceCanTransfer = !!(this.customTargetCheckedLen > 0);\n    }\n\n    if (changes && (changes.sourceOption || changes.targetOption)) {\n      this.sourceDisplayOption = this.sourceOption;\n      this.sourceDisplayOptionLen = this.sourceDisplayOption ? this.sourceDisplayOption.length : 0;\n      this.targetDisplayOption = this.targetOption;\n      this.targetDisplayOptionLen = this.targetDisplayOption ? this.targetDisplayOption.length : 0;\n    }\n  }\n\n  checkboxChange(direction: TransferDirection, event: any) {\n    if (direction === TransferDirection.SOURCE) {\n      this.sourceDisplayOption.filter(item => item.checked).length > 0 ? this.targetCanTransfer = true : this.targetCanTransfer = false;\n      this.listTotalCheck(direction);\n    } else if (direction === TransferDirection.TARGET) {\n      this.targetDisplayOption.filter(item => item.checked).length > 0 ? this.sourceCanTransfer = true : this.sourceCanTransfer = false;\n      this.listTotalCheck(direction);\n    }\n  }\n\n  listTotalCheck(direction?: TransferDirection) {\n    if (direction === TransferDirection.SOURCE || !direction) {\n      const sourceLen = this.sourceDisplayOption.filter(item => item.checked).length;\n      this.sourceCheckedLen = sourceLen;\n      if (sourceLen === 0) {\n        this.sourceAllChecked = false;\n        this.sourceHalfChecked = false;\n      } else {\n        if (sourceLen !== this.sourceDisplayOption.length) {\n          this.sourceAllChecked = false;\n          this.sourceHalfChecked = true;\n        } else {\n          this.sourceAllChecked = true;\n          this.sourceHalfChecked = false;\n        }\n      }\n    }\n    if (direction === TransferDirection.TARGET || !direction) {\n      const rightLen = this.targetDisplayOption.filter(item => item.checked).length;\n      this.targetCheckedLen = rightLen;\n      if (rightLen === 0) {\n        this.targetAllChecked = false;\n        this.targetHalfChecked = false;\n      } else {\n        if (rightLen !== this.targetDisplayOption.length) {\n          this.targetAllChecked = false;\n          this.targetHalfChecked = true;\n        } else {\n          this.targetAllChecked = true;\n          this.targetHalfChecked = false;\n        }\n      }\n    }\n    this.sourceDisplayOptionLen = this.sourceDisplayOption.length;\n    this.targetDisplayOptionLen = this.targetDisplayOption.length;\n  }\n\n  transferTo(direction: TransferDirection) {\n    this.canChange().then(val => {\n      if (!val) {\n        return;\n      }\n\n      if (this.transferring.observers.length) {\n        this.transferring.emit(direction);\n        setTimeout(() => {\n          this.transferHandle(direction);\n        });\n      } else {\n        const changeData = [];\n        if (direction === TransferDirection.TARGET) {\n          // 对源数据更改\n          this.sourceDisplayOption.filter(item => item.checked === true).forEach(item => {\n            const tmp = { name: item.name, value: item.value, id: item.id, checked: false };\n            this.targetOption.push(tmp);\n            changeData.push(tmp);\n            this.sourceOption.splice(this.sourceOption.indexOf(item), 1);\n          });\n        } else if (direction === TransferDirection.SOURCE) {\n          this.targetDisplayOption.filter(item => item.checked === true).forEach(item => {\n            const tmp = { name: item.name, value: item.value, id: item.id, checked: false };\n            this.sourceOption.push(tmp);\n            changeData.push(tmp);\n            this.targetOption.splice(this.targetOption.indexOf(item), 1);\n          });\n          this.targetOption = this.targetOption.filter(item => item.checked !== true);\n        }\n\n        this.transferHandle(direction, changeData);\n      }\n    });\n  }\n\n  transferHandle(direction: TransferDirection, changeData?: object) {\n    if (direction === TransferDirection.TARGET) {\n      this.targetCanTransfer = false;\n\n      if (this.sourceCustomViewTemplate) {\n        this.transferToTarget.next({});\n      } else {\n        changeData === undefined\n          ? this.transferToTarget.next({ sourceOption: this.sourceOption, targetOption: this.targetOption })\n          : this.transferToTarget.next({ sourceOption: this.sourceOption, targetOption: this.targetOption, changeData });\n      }\n      if (this.isSearch && this.sourceSearchText !== '') {\n        this.sourceSearchText = '';\n      }\n    } else if (direction === TransferDirection.SOURCE) {\n      this.sourceCanTransfer = false;\n\n      if (this.targetCustomViewTemplate) {\n        this.transferToSource.next({});\n      } else {\n        changeData === undefined\n          ? this.transferToSource.next({ sourceOption: this.sourceOption, targetOption: this.targetOption })\n          : this.transferToSource.next({ sourceOption: this.sourceOption, targetOption: this.targetOption, changeData });\n      }\n      if (this.isSearch && this.targetSearchText !== '') {\n        this.targetSearchText = '';\n      }\n    }\n\n    this.targetDisplayOption = [...this.targetOption];\n    this.sourceDisplayOption = [...this.sourceOption];\n    this.listTotalCheck(TransferDirection.TARGET);\n    this.listTotalCheck(TransferDirection.SOURCE);\n    this.afterTransfer.emit(direction);\n  }\n\n  checkAll(direction: TransferDirection, event: any) {\n    if (direction === TransferDirection.SOURCE) {\n      if (event) {\n        this.sourceHalfChecked = false;\n        this.sourceCheckedLen = this.sourceDisplayOption.filter(item => item.disabled !== true).length;\n      } else {\n        this.sourceCheckedLen = 0;\n      }\n      this.targetCanTransfer = event;\n      this.sourceDisplayOption.forEach(item => {\n        if (item.checked !== event && item.disabled !== true) {\n          item.checked = event;\n        }\n      });\n    } else if (direction === TransferDirection.TARGET) {\n      if (event) {\n        this.targetHalfChecked = false;\n        this.targetCheckedLen = this.targetDisplayOption.filter(item => item.disabled !== true).length;\n      } else {\n        this.targetCheckedLen = 0;\n      }\n      this.sourceCanTransfer = event;\n      this.targetDisplayOption.forEach(item => {\n        if (item.checked !== event && item.disabled !== true) {\n          item.checked = event;\n        }\n      });\n    }\n  }\n\n  search(direction: TransferDirection, keyword: any) {\n    if (this.searching.observers.length) {\n      this.searching.emit({direction, keyword});\n    } else {\n      if (keyword !== '') {\n        if (direction === TransferDirection.SOURCE) {\n          this.sourceDisplayOption = this.sourceOption.filter(item => item.name.includes(keyword));\n        } else if (direction === TransferDirection.TARGET) {\n          this.targetDisplayOption = this.targetOption.filter(item => item.name.includes(keyword));\n        }\n      } else {\n        if (direction === TransferDirection.SOURCE) {\n          this.sourceDisplayOption = this.sourceOption;\n        } else if (direction === TransferDirection.TARGET) {\n          this.targetDisplayOption = this.targetOption;\n        }\n      }\n      this.listTotalCheck(direction);\n    }\n  }\n\n  onDrop(direction: TransferDirection, e: any) {\n    let index = e.dropIndex;\n    const fromIndex = e.dragFromIndex;\n    if (-1 !== index) {\n      if (-1 !== fromIndex && index > fromIndex) {\n        index--;\n      }\n      if (direction === TransferDirection.SOURCE) {\n        this.sourceOption.splice(index, 0, fromIndex === -1 ? e.dragData : this.sourceOption.splice(fromIndex, 1)[0]);\n        this.sourceDisplayOption = [...this.sourceOption];\n        this.transferToSource.next({ sourceOption: this.sourceOption, targetOption: this.targetOption });\n      } else {\n        this.targetOption.splice(index, 0, fromIndex === -1 ? e.dragData : this.targetOption.splice(fromIndex, 1)[0]);\n        this.targetDisplayOption = [...this.targetOption];\n        this.transferToTarget.next({ sourceOption: this.sourceOption, targetOption: this.targetOption });\n      }\n    } else {\n      if (direction === TransferDirection.SOURCE) {\n        this.sourceOption.push(e.dragData);\n        this.sourceDisplayOption = [...this.sourceOption];\n        this.transferToSource.next({ sourceOption: this.sourceOption, targetOption: this.targetOption });\n      } else {\n        this.targetOption.push(e.dragData);\n        this.targetDisplayOption = [...this.targetOption];\n        this.transferToTarget.next({ sourceOption: this.sourceOption, targetOption: this.targetOption });\n      }\n    }\n  }\n\n  trackByFn(index, item) {\n    return index;\n  }\n\n  ngOnDestroy() {\n    if (this.i18nSubscription) {\n      this.i18nSubscription.unsubscribe();\n    }\n  }\n}\n","<div class=\"devui-transfer-container\">\n  <div class=\"devui-transfer-source\">\n    <div class=\"devui-transfer-left\">\n      <ng-container *ngIf=\"!sourceCustomViewTemplate\">\n        <div class=\"devui-transfer-title\">\n          <d-checkbox\n            [labelTemplate]=\"sourceLabel\"\n            [disabled]=\"disabled || sourceDisplayOptionLen === 0\"\n            [isShowTitle]=\"false\"\n            (change)=\"checkAll(transferDirection.SOURCE, $event)\"\n            [halfchecked]=\"sourceHalfChecked\"\n            [(ngModel)]=\"sourceAllChecked\"\n          >\n          </d-checkbox>\n          <ng-template #sourceLabel>\n            <span [style.font-weight]=\"600\">{{ titles.source }}</span>\n          </ng-template>\n          <span class=\"devui-transfer-num\">{{ sourceCheckedLen }}/{{ sourceDisplayOptionLen }}</span>\n        </div>\n        <div class=\"devui-transfer-content\" [class.disabled]=\"disabled\">\n          <div class=\"devui-transfer-search\" *ngIf=\"isSearch\">\n            <d-search\n              style=\"width: 100%\"\n              [styleType]=\"'gray'\"\n              [placeholder]=\"i18nCommonText?.searchPlaceholder\"\n              [iconPosition]=\"'left'\"\n              [(ngModel)]=\"sourceSearchText\"\n              (searchFn)=\"search(transferDirection.SOURCE, $event)\"\n            ></d-search>\n          </div>\n          <ng-container *ngIf=\"sourceDisplayOptionLen === 0\">\n            <ng-template\n              [ngTemplateOutlet]=\"noResultTemplate || noResultDefaultTemplate\"\n              [ngTemplateOutletContext]=\"{ position: 'source', sourceKeyword: sourceSearchText, targetKeyword: targetSearchText }\"\n            ></ng-template>\n          </ng-container>\n          <ul\n            class=\"devui-scrollbar\"\n            *ngIf=\"!virtualScroll; else sourceScrollViewTpl\"\n            [id]=\"'default-left-' + id\"\n            dDroppable\n            [dropScope]=\"'transfer-source-' + id\"\n            (dropEvent)=\"onDrop(transferDirection.SOURCE, $event)\"\n            [ngStyle]=\"{ height: height }\"\n            dSortable\n            #sourceTransfer\n          >\n            <ng-container *ngFor=\"let item of sourceDisplayOption; let index = index; trackBy: trackByFn\">\n              <ng-template [ngTemplateOutlet]=\"sourceItemTpl\" [ngTemplateOutletContext]=\"{ item: item, index: index }\"></ng-template>\n            </ng-container>\n          </ul>\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"sourceCustomViewTemplate\">\n        <ng-template [ngTemplateOutlet]=\"sourceCustomViewTemplate\" [ngTemplateOutletContext]=\"{ $implicit: this }\"></ng-template>\n      </ng-container>\n    </div>\n  </div>\n  <div class=\"devui-transfer-option\">\n    <div class=\"devui-transfer-op\">\n      <svg\n        *ngIf=\"!sourceCanTransfer || disabled\"\n        width=\"36px\"\n        height=\"36px\"\n        viewBox=\"0 0 36 36\"\n        class=\"devui-transfer-default-svg\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g transform=\"translate(-942.000000, -542.000000)\">\n            <g\n              transform=\"translate(960.000000, 560.000000) scale(-1, 1) translate(-960.000000, -560.000000) translate(942.000000, 542.000000)\"\n            >\n              <circle stroke=\"\" fill=\"\" cx=\"18\" cy=\"18\" r=\"17.5\"></circle>\n              <path\n                d=\"M20,22.003961 C20,22.2801034 20.2238576,22.503961 20.5,22.503961 C20.7761424,22.503961 21,22.2801034 21,22.003961 L21,13.503961 L12.5,13.503961 C12.2238576,13.503961 12,13.7278187 12,14.003961 C12,14.2801034 12.2238576,14.503961 12.5,14.503961 L20,14.503961 L20,22.003961 Z\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(16.500000, 18.003961) rotate(-315.000000) translate(-16.500000, -18.003961) \"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </svg>\n      <svg\n        *ngIf=\"sourceCanTransfer && !disabled\"\n        [class.disabled]=\"disabled\"\n        (click)=\"transferTo(transferDirection.SOURCE)\"\n        width=\"36px\"\n        height=\"36px\"\n        class=\"devui-transfer-active-svg\"\n        viewBox=\"0 0 36 36\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g transform=\"translate(-942.000000, -1086.000000)\">\n            <g transform=\"translate(942.000000, 1086.000000)\">\n              <circle fill=\"#5170FF\" cx=\"18\" cy=\"18\" r=\"18\"></circle>\n              <path\n                d=\"M23,22.003961 C23,22.2801034 23.2238576,22.503961 23.5,22.503961 C23.7761424,22.503961 24,22.2801034 24,22.003961 L24,13.503961 L15.5,13.503961 C15.2238576,13.503961 15,13.7278187 15,14.003961 C15,14.2801034 15.2238576,14.503961 15.5,14.503961 L23,14.503961 L23,22.003961 Z\"\n                fill=\"#FFFFFF\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(19.500000, 18.003961) scale(-1, 1) rotate(-315.000000) translate(-19.500000, -18.003961) \"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </div>\n    <div class=\"devui-transfer-op\" style=\"margin-top: 12px\">\n      <svg\n        width=\"36px\"\n        *ngIf=\"!targetCanTransfer || disabled\"\n        height=\"36px\"\n        viewBox=\"0 0 36 36\"\n        class=\"devui-transfer-default-svg\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g transform=\"translate(-942.000000, -1030.000000)\">\n            <g transform=\"translate(942.000000, 1030.000000)\">\n              <circle stroke=\"\" fill=\"\" cx=\"18\" cy=\"18\" r=\"17.5\"></circle>\n              <path\n                d=\"M20,22.003961 C20,22.2801034 20.2238576,22.503961 20.5,22.503961 C20.7761424,22.503961 21,22.2801034 21,22.003961 L21,13.503961 L12.5,13.503961 C12.2238576,13.503961 12,13.7278187 12,14.003961 C12,14.2801034 12.2238576,14.503961 12.5,14.503961 L20,14.503961 L20,22.003961 Z\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(16.500000, 18.003961) rotate(-315.000000) translate(-16.500000, -18.003961) \"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </svg>\n      <svg\n        width=\"36px\"\n        [class.disabled]=\"disabled\"\n        *ngIf=\"targetCanTransfer && !disabled\"\n        (click)=\"transferTo(transferDirection.TARGET)\"\n        height=\"36px\"\n        viewBox=\"0 0 36 36\"\n        version=\"1.1\"\n        class=\"devui-transfer-active-svg\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g transform=\"translate(-942.000000, -486.000000)\">\n            <g\n              id=\"transfer_icon/right-activated\"\n              transform=\"translate(960.000000, 504.000000) scale(-1, 1) translate(-960.000000, -504.000000) translate(942.000000, 486.000000)\"\n            >\n              <circle fill=\"#5170FF\" cx=\"18\" cy=\"18\" r=\"18\"></circle>\n              <path\n                d=\"M23,22.003961 C23,22.2801034 23.2238576,22.503961 23.5,22.503961 C23.7761424,22.503961 24,22.2801034 24,22.003961 L24,13.503961 L15.5,13.503961 C15.2238576,13.503961 15,13.7278187 15,14.003961 C15,14.2801034 15.2238576,14.503961 15.5,14.503961 L23,14.503961 L23,22.003961 Z\"\n                fill=\"#FFFFFF\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(19.500000, 18.003961) scale(-1, 1) rotate(-315.000000) translate(-19.500000, -18.003961) \"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </svg>\n    </div>\n  </div>\n  <div class=\"devui-transfer-target\">\n    <div class=\"devui-transfer-right\">\n      <ng-container *ngIf=\"!targetCustomViewTemplate\">\n        <div class=\"devui-transfer-title\">\n          <d-checkbox\n            [disabled]=\"disabled || targetDisplayOptionLen === 0\"\n            [labelTemplate]=\"targetLabel\"\n            [isShowTitle]=\"false\"\n            (change)=\"checkAll(transferDirection.TARGET, $event)\"\n            [halfchecked]=\"targetHalfChecked\"\n            [(ngModel)]=\"targetAllChecked\"\n          >\n          </d-checkbox>\n          <ng-template #targetLabel>\n            <span [style.font-weight]=\"600\">{{ titles.target }}</span>\n          </ng-template>\n          <span class=\"devui-transfer-num\">{{ targetCheckedLen }}/{{ targetDisplayOptionLen }}</span>\n        </div>\n        <div class=\"devui-transfer-content\" [class.disabled]=\"disabled\">\n          <div class=\"devui-transfer-search\" *ngIf=\"isSearch\" [class.disabled]=\"disabled\">\n            <d-search\n              style=\"width: 100%\"\n              [styleType]=\"'gray'\"\n              [placeholder]=\"i18nCommonText?.searchPlaceholder\"\n              [iconPosition]=\"'left'\"\n              [(ngModel)]=\"targetSearchText\"\n              (searchFn)=\"search(transferDirection.TARGET, $event)\"\n            ></d-search>\n          </div>\n          <ng-container *ngIf=\"targetDisplayOptionLen === 0\">\n            <ng-template\n              [ngTemplateOutlet]=\"noResultTemplate || noResultDefaultTemplate\"\n              [ngTemplateOutletContext]=\"{ position: 'target', sourceKeyword: sourceSearchText, targetKeyword: targetSearchText }\"\n            ></ng-template>\n          </ng-container>\n          <ul\n            class=\"devui-scrollbar\"\n            *ngIf=\"!virtualScroll; else targetScrollViewTpl\"\n            dDroppable\n            dSortable\n            [dropScope]=\"'transfer-target-' + id\"\n            (dropEvent)=\"onDrop(transferDirection.TARGET, $event)\"\n            [ngStyle]=\"{ height: height }\"\n            #targetTransfer\n          >\n            <ng-container *ngFor=\"let item of targetDisplayOption; let index = index; trackBy: trackByFn\">\n              <ng-template [ngTemplateOutlet]=\"targetItemTpl\" [ngTemplateOutletContext]=\"{ item: item, index: index }\"></ng-template>\n            </ng-container>\n          </ul>\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"targetCustomViewTemplate\">\n        <ng-template [ngTemplateOutlet]=\"targetCustomViewTemplate\" [ngTemplateOutletContext]=\"{ $implicit: this }\"></ng-template>\n      </ng-container>\n    </div>\n  </div>\n</div>\n\n<!--Source Item模板-->\n<ng-template #sourceItemTpl let-item=\"item\" let-index=\"index\">\n  <li\n    dDraggable\n    [dragScope]=\"'transfer-source-' + id\"\n    [dragHandle]=\"'.devui-transfer-drag-handle, .devui-transfer-drag-handle *'\"\n    [dragData]=\"item\"\n  >\n    <span class=\"devui-transfer-drag-wrap\" [ngClass]=\"{ 'devui-transfer-drag-handle': isSourceDroppable }\">\n      <svg\n        *ngIf=\"isSourceDroppable\"\n        [class.disabled]=\"disabled\"\n        class=\"devui-transfer-drag-ico\"\n        width=\"16px\"\n        height=\"16px\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g fill=\"#CACFD8\" fill-rule=\"nonzero\">\n            <path\n              d=\"M5.5,0 C6.32842712,-1.3527075e-16 7,0.596953667 7,1.33333333 C7,2.069713 6.32842712,2.66666667 5.5,2.66666667 C4.67157288,2.66666667 4,2.069713 4,1.33333333 C4,0.596953667 4.67157288,1.3527075e-16 5.5,0 Z M5.5,4.44444444 C6.32842712,4.44444444 7,5.04139811 7,5.77777778 C7,6.51415744 6.32842712,7.11111111 5.5,7.11111111 C4.67157288,7.11111111 4,6.51415744 4,5.77777778 C4,5.04139811 4.67157288,4.44444444 5.5,4.44444444 Z M5.5,8.88888889 C6.32842712,8.88888889 7,9.48584256 7,10.2222222 C7,10.9586019 6.32842712,11.5555556 5.5,11.5555556 C4.67157288,11.5555556 4,10.9586019 4,10.2222222 C4,9.48584256 4.67157288,8.88888889 5.5,8.88888889 Z M5.5,13.3333333 C6.32842712,13.3333333 7,13.930287 7,14.6666667 C7,15.4030463 6.32842712,16 5.5,16 C4.67157288,16 4,15.4030463 4,14.6666667 C4,13.930287 4.67157288,13.3333333 5.5,13.3333333 Z M10.5,0 C11.3284271,-1.3527075e-16 12,0.596953667 12,1.33333333 C12,2.069713 11.3284271,2.66666667 10.5,2.66666667 C9.67157288,2.66666667 9,2.069713 9,1.33333333 C9,0.596953667 9.67157288,1.3527075e-16 10.5,0 Z M10.5,4.44444444 C11.3284271,4.44444444 12,5.04139811 12,5.77777778 C12,6.51415744 11.3284271,7.11111111 10.5,7.11111111 C9.67157288,7.11111111 9,6.51415744 9,5.77777778 C9,5.04139811 9.67157288,4.44444444 10.5,4.44444444 Z M10.5,8.88888889 C11.3284271,8.88888889 12,9.48584256 12,10.2222222 C12,10.9586019 11.3284271,11.5555556 10.5,11.5555556 C9.67157288,11.5555556 9,10.9586019 9,10.2222222 C9,9.48584256 9.67157288,8.88888889 10.5,8.88888889 Z M10.5,13.3333333 C11.3284271,13.3333333 12,13.930287 12,14.6666667 C12,15.4030463 11.3284271,16 10.5,16 C9.67157288,16 9,15.4030463 9,14.6666667 C9,13.930287 9.67157288,13.3333333 10.5,13.3333333 Z\"\n            ></path>\n          </g>\n        </g>\n      </svg>\n    </span>\n    <d-checkbox\n      dPopover\n      [controlled]=\"showOptionTitle\"\n      [trigger]=\"'hover'\"\n      [content]=\"item['name']\"\n      [popMaxWidth]=\"400\"\n      [label]=\"item['name']\"\n      [isShowTitle]=\"false\"\n      [(ngModel)]=\"item['checked']\"\n      [disabled]=\"item['disabled'] || disabled\"\n      (change)=\"checkboxChange(transferDirection.SOURCE, $event)\"\n    >\n    </d-checkbox>\n  </li>\n</ng-template>\n\n<!--Source虚拟滚动模板-->\n<ng-template #sourceScrollViewTpl>\n  <cdk-virtual-scroll-viewport\n    class=\"devui-scrollbar\"\n    [ngStyle]=\"{\n      height: height,\n      width: '100%'\n    }\"\n    [itemSize]=\"itemSize\"\n    [minBufferPx]=\"minBuffer\"\n    [maxBufferPx]=\"maxBuffer\"\n    #sourceTransfer\n  >\n    <ng-container *cdkVirtualFor=\"let item of sourceDisplayOption; let index = index\">\n      <ng-template [ngTemplateOutlet]=\"sourceItemTpl\" [ngTemplateOutletContext]=\"{ item: item, index: index }\"></ng-template>\n    </ng-container>\n  </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<!--Target Item模板-->\n<ng-template #targetItemTpl let-item=\"item\" let-index=\"index\">\n  <li\n    dDraggable\n    [dragScope]=\"'transfer-target-' + id\"\n    [dragHandle]=\"'.devui-transfer-drag-handle, .devui-transfer-drag-handle *'\"\n    [dragData]=\"item\"\n  >\n    <span class=\"devui-transfer-drag-wrap\" [ngClass]=\"{ 'devui-transfer-drag-handle': isTargetDroppable }\">\n      <svg\n        *ngIf=\"isTargetDroppable\"\n        [class.disabled]=\"disabled\"\n        class=\"devui-transfer-drag-ico\"\n        width=\"16px\"\n        height=\"16px\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g fill=\"#CACFD8\" fill-rule=\"nonzero\">\n            <path\n              d=\"M5.5,0 C6.32842712,-1.3527075e-16 7,0.596953667 7,1.33333333 C7,2.069713 6.32842712,2.66666667 5.5,2.66666667 C4.67157288,2.66666667 4,2.069713 4,1.33333333 C4,0.596953667 4.67157288,1.3527075e-16 5.5,0 Z M5.5,4.44444444 C6.32842712,4.44444444 7,5.04139811 7,5.77777778 C7,6.51415744 6.32842712,7.11111111 5.5,7.11111111 C4.67157288,7.11111111 4,6.51415744 4,5.77777778 C4,5.04139811 4.67157288,4.44444444 5.5,4.44444444 Z M5.5,8.88888889 C6.32842712,8.88888889 7,9.48584256 7,10.2222222 C7,10.9586019 6.32842712,11.5555556 5.5,11.5555556 C4.67157288,11.5555556 4,10.9586019 4,10.2222222 C4,9.48584256 4.67157288,8.88888889 5.5,8.88888889 Z M5.5,13.3333333 C6.32842712,13.3333333 7,13.930287 7,14.6666667 C7,15.4030463 6.32842712,16 5.5,16 C4.67157288,16 4,15.4030463 4,14.6666667 C4,13.930287 4.67157288,13.3333333 5.5,13.3333333 Z M10.5,0 C11.3284271,-1.3527075e-16 12,0.596953667 12,1.33333333 C12,2.069713 11.3284271,2.66666667 10.5,2.66666667 C9.67157288,2.66666667 9,2.069713 9,1.33333333 C9,0.596953667 9.67157288,1.3527075e-16 10.5,0 Z M10.5,4.44444444 C11.3284271,4.44444444 12,5.04139811 12,5.77777778 C12,6.51415744 11.3284271,7.11111111 10.5,7.11111111 C9.67157288,7.11111111 9,6.51415744 9,5.77777778 C9,5.04139811 9.67157288,4.44444444 10.5,4.44444444 Z M10.5,8.88888889 C11.3284271,8.88888889 12,9.48584256 12,10.2222222 C12,10.9586019 11.3284271,11.5555556 10.5,11.5555556 C9.67157288,11.5555556 9,10.9586019 9,10.2222222 C9,9.48584256 9.67157288,8.88888889 10.5,8.88888889 Z M10.5,13.3333333 C11.3284271,13.3333333 12,13.930287 12,14.6666667 C12,15.4030463 11.3284271,16 10.5,16 C9.67157288,16 9,15.4030463 9,14.6666667 C9,13.930287 9.67157288,13.3333333 10.5,13.3333333 Z\"\n            ></path>\n          </g>\n        </g>\n      </svg>\n    </span>\n    <d-checkbox\n      dPopover\n      [controlled]=\"showOptionTitle\"\n      [trigger]=\"'hover'\"\n      [content]=\"item['name']\"\n      [popMaxWidth]=\"400\"\n      [label]=\"item['name']\"\n      [isShowTitle]=\"false\"\n      [(ngModel)]=\"item['checked']\"\n      [disabled]=\"item['disabled'] || disabled\"\n      (change)=\"checkboxChange(transferDirection.TARGET, $event)\"\n    >\n    </d-checkbox>\n  </li>\n</ng-template>\n\n<!--Target虚拟滚动模板-->\n<ng-template #targetScrollViewTpl>\n  <cdk-virtual-scroll-viewport\n    [ngStyle]=\"{\n      height: height,\n      width: '100%'\n    }\"\n    [itemSize]=\"itemSize\"\n    [minBufferPx]=\"minBuffer\"\n    [maxBufferPx]=\"maxBuffer\"\n    #targetTransfer\n  >\n    <ng-container *cdkVirtualFor=\"let item of targetDisplayOption; let index = index\">\n      <ng-template [ngTemplateOutlet]=\"targetItemTpl\" [ngTemplateOutletContext]=\"{ item: item, index: index }\"></ng-template>\n    </ng-container>\n  </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<ng-template #noResultDefaultTemplate let-position=\"position\" let-sourceKeyword=\"sourceKeyword\" let-targetKeyword=\"targetKeyword\">\n  <div class=\"devui-no-data-tip\">\n    {{\n      (position === 'source' && sourceKeyword) || (position === 'target' && targetKeyword)\n        ? i18nCommonText?.noRecordsFound\n        : i18nCommonText?.noData\n    }}\n  </div>\n</ng-template>\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckBoxModule } from 'ng-devui/checkbox';\nimport { DragDropModule } from 'ng-devui/dragdrop';\nimport { PopoverModule } from 'ng-devui/popover';\nimport { SearchModule } from 'ng-devui/search';\nimport { TransferComponent } from './transfer.component';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, ScrollingModule, SearchModule, CheckBoxModule, DragDropModule, PopoverModule],\n  exports: [TransferComponent],\n  declarations: [TransferComponent],\n  providers: []\n})\nexport class TransferModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}