ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
904 lines (895 loc) • 40.4 kB
JavaScript
import * as i0 from '@angular/core';
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, ElementRef, ViewChildren, Optional, NgModule } from '@angular/core';
import { Observable, merge, fromEvent, Subject, of } from 'rxjs';
import { startWith, switchMap, takeUntil } from 'rxjs/operators';
import * as i1$1 from 'ng-zorro-antd/checkbox';
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
import * as i2$1 from 'ng-zorro-antd/empty';
import { NzEmptyModule } from 'ng-zorro-antd/empty';
import * as i1 from 'ng-zorro-antd/core/transition-patch';
import * as i2 from 'ng-zorro-antd/icon';
import { NzIconModule } from 'ng-zorro-antd/icon';
import * as i3 from '@angular/forms';
import { FormsModule } from '@angular/forms';
import * as i4 from '@angular/common';
import { CommonModule } from '@angular/common';
import { __decorate } from 'tslib';
import { toArray, InputBoolean } from 'ng-zorro-antd/core/util';
import * as i1$2 from 'ng-zorro-antd/i18n';
import { NzI18nModule } from 'ng-zorro-antd/i18n';
import * as i2$2 from '@angular/cdk/bidi';
import { BidiModule } from '@angular/cdk/bidi';
import * as i4$1 from 'ng-zorro-antd/button';
import { NzButtonModule } from 'ng-zorro-antd/button';
import * as i6 from 'ng-zorro-antd/core/wave';
import { NzInputModule } from 'ng-zorro-antd/input';
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzTransferSearchComponent {
// endregion
constructor(cdr) {
this.cdr = cdr;
this.disabled = false;
this.valueChanged = new EventEmitter();
this.valueClear = new EventEmitter();
}
_handle() {
this.valueChanged.emit(this.value);
}
_clear() {
if (this.disabled) {
return;
}
this.value = '';
this.valueClear.emit();
}
ngOnChanges() {
this.cdr.detectChanges();
}
}
NzTransferSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferSearchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
NzTransferSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: NzTransferSearchComponent, selector: "[nz-transfer-search]", inputs: { placeholder: "placeholder", value: "value", disabled: "disabled" }, outputs: { valueChanged: "valueChanged", valueClear: "valueClear" }, exportAs: ["nzTransferSearch"], usesOnChanges: true, ngImport: i0, template: `
<span class="ant-input-prefix">
<i nz-icon nzType="search"></i>
</span>
<input
[(ngModel)]="value"
(ngModelChange)="_handle()"
[disabled]="disabled"
[placeholder]="placeholder"
class="ant-input"
[ngClass]="{ 'ant-input-disabled': disabled }"
/>
<span *ngIf="value && value.length > 0" class="ant-input-suffix" (click)="_clear()">
<i nz-icon nzType="close-circle" class="ant-input-clear-icon"></i>
</span>
`, isInline: true, directives: [{ type: i1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferSearchComponent, decorators: [{
type: Component,
args: [{
selector: '[nz-transfer-search]',
exportAs: 'nzTransferSearch',
preserveWhitespaces: false,
template: `
<span class="ant-input-prefix">
<i nz-icon nzType="search"></i>
</span>
<input
[(ngModel)]="value"
(ngModelChange)="_handle()"
[disabled]="disabled"
[placeholder]="placeholder"
class="ant-input"
[ngClass]="{ 'ant-input-disabled': disabled }"
/>
<span *ngIf="value && value.length > 0" class="ant-input-suffix" (click)="_clear()">
<i nz-icon nzType="close-circle" class="ant-input-clear-icon"></i>
</span>
`,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
type: Input
}], value: [{
type: Input
}], disabled: [{
type: Input
}], valueChanged: [{
type: Output
}], valueClear: [{
type: Output
}] } });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzTransferListComponent {
// #endregion
constructor(ngZone, cdr) {
this.ngZone = ngZone;
this.cdr = cdr;
// #region fields
this.direction = 'left';
this.titleText = '';
this.showSelectAll = true;
this.dataSource = [];
this.itemUnit = '';
this.itemsUnit = '';
this.filter = '';
this.disabled = false;
this.renderList = null;
this.render = null;
this.footer = null;
// events
this.handleSelectAll = new EventEmitter();
this.handleSelect = new EventEmitter();
this.filterChange = new EventEmitter();
this.stat = {
checkAll: false,
checkHalf: false,
checkCount: 0,
shownCount: 0
};
this.onItemSelect = (item) => {
if (this.disabled || item.disabled) {
return;
}
item.checked = !item.checked;
this.updateCheckStatus();
this.handleSelect.emit(item);
};
this.onItemSelectAll = (status) => {
this.dataSource.forEach(item => {
if (!item.disabled && !item.hide) {
item.checked = status;
}
});
this.updateCheckStatus();
this.handleSelectAll.emit(status);
};
}
get validData() {
return this.dataSource.filter(w => !w.hide);
}
updateCheckStatus() {
const validCount = this.dataSource.filter(w => !w.disabled).length;
this.stat.checkCount = this.dataSource.filter(w => w.checked && !w.disabled).length;
this.stat.shownCount = this.validData.length;
this.stat.checkAll = validCount > 0 && validCount === this.stat.checkCount;
this.stat.checkHalf = this.stat.checkCount > 0 && !this.stat.checkAll;
}
// #endregion
// #region search
handleFilter(value) {
this.filter = value;
this.dataSource.forEach(item => {
item.hide = value.length > 0 && !this.matchFilter(value, item);
});
this.stat.shownCount = this.validData.length;
this.filterChange.emit({ direction: this.direction, value });
}
handleClear() {
this.handleFilter('');
}
matchFilter(text, item) {
if (this.filterOption) {
return this.filterOption(text, item);
}
return item.title.includes(text);
}
markForCheck() {
this.updateCheckStatus();
this.cdr.markForCheck();
}
ngAfterViewInit() {
this.checkboxes.changes
.pipe(startWith(this.checkboxes), switchMap(() => {
const checkboxes = this.checkboxes.toArray();
// Caretaker note: we explicitly should call `subscribe()` within the root zone.
// `runOutsideAngular(() => fromEvent(...))` will just create an observable within the root zone,
// but `addEventListener` is called when the `fromEvent` is subscribed.
return new Observable(subscriber => this.ngZone.runOutsideAngular(() => merge(...checkboxes.map(checkbox => fromEvent(checkbox.nativeElement, 'click'))).subscribe(subscriber)));
}))
.subscribe(event => {
event.stopPropagation();
});
}
}
NzTransferListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferListComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
NzTransferListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: NzTransferListComponent, selector: "nz-transfer-list", inputs: { direction: "direction", titleText: "titleText", showSelectAll: "showSelectAll", dataSource: "dataSource", itemUnit: "itemUnit", itemsUnit: "itemsUnit", filter: "filter", disabled: "disabled", showSearch: "showSearch", searchPlaceholder: "searchPlaceholder", notFoundContent: "notFoundContent", filterOption: "filterOption", renderList: "renderList", render: "render", footer: "footer" }, outputs: { handleSelectAll: "handleSelectAll", handleSelect: "handleSelect", filterChange: "filterChange" }, host: { properties: { "class.ant-transfer-list-with-footer": "!!footer" }, classAttribute: "ant-transfer-list" }, viewQueries: [{ propertyName: "checkboxes", predicate: ["checkboxes"], descendants: true, read: ElementRef }], exportAs: ["nzTransferList"], ngImport: i0, template: `
<ng-template #defaultRenderList>
<ul *ngIf="stat.shownCount > 0" class="ant-transfer-list-content">
<li
*ngFor="let item of validData"
(click)="onItemSelect(item)"
class="ant-transfer-list-content-item"
[ngClass]="{ 'ant-transfer-list-content-item-disabled': disabled || item.disabled }"
>
<label
#checkboxes
nz-checkbox
[nzChecked]="item.checked"
(nzCheckedChange)="onItemSelect(item)"
[nzDisabled]="disabled || item.disabled"
>
<ng-container *ngIf="!render; else renderContainer">{{ item.title }}</ng-container>
<ng-template
#renderContainer
[ngTemplateOutlet]="render"
[ngTemplateOutletContext]="{ $implicit: item }"
></ng-template>
</label>
</li>
</ul>
<div *ngIf="stat.shownCount === 0" class="ant-transfer-list-body-not-found">
<nz-embed-empty [nzComponentName]="'transfer'" [specificContent]="notFoundContent"></nz-embed-empty>
</div>
</ng-template>
<div class="ant-transfer-list-header">
<label
*ngIf="showSelectAll"
class="ant-transfer-list-checkbox"
nz-checkbox
[nzChecked]="stat.checkAll"
(nzCheckedChange)="onItemSelectAll($event)"
[nzIndeterminate]="stat.checkHalf"
[nzDisabled]="stat.shownCount === 0 || disabled"
></label>
<span class="ant-transfer-list-header-selected">
<span>
{{ (stat.checkCount > 0 ? stat.checkCount + '/' : '') + stat.shownCount }}
{{ validData.length > 1 ? itemsUnit : itemUnit }}
</span>
</span>
<span *ngIf="titleText" class="ant-transfer-list-header-title">{{ titleText }}</span>
</div>
<div
class="{{ showSearch ? 'ant-transfer-list-body ant-transfer-list-body-with-search' : 'ant-transfer-list-body' }}"
[ngClass]="{ 'ant-transfer__nodata': stat.shownCount === 0 }"
>
<div *ngIf="showSearch" class="ant-transfer-list-body-search-wrapper">
<span
nz-transfer-search
class="ant-input-affix-wrapper ant-transfer-list-search"
(valueChanged)="handleFilter($event)"
(valueClear)="handleClear()"
[placeholder]="searchPlaceholder"
[disabled]="disabled"
[value]="filter"
></span>
</div>
<ng-container *ngIf="renderList; else defaultRenderList">
<div class="ant-transfer-list-body-customize-wrapper">
<ng-container
*ngTemplateOutlet="
renderList;
context: {
$implicit: validData,
direction: direction,
disabled: disabled,
onItemSelectAll: onItemSelectAll,
onItemSelect: onItemSelect,
stat: stat
}
"
></ng-container>
</div>
</ng-container>
</div>
<div *ngIf="footer" class="ant-transfer-list-footer">
<ng-template [ngTemplateOutlet]="footer" [ngTemplateOutletContext]="{ $implicit: direction }"></ng-template>
</div>
`, isInline: true, components: [{ type: i1$1.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: i2$1.NzEmbedEmptyComponent, selector: "nz-embed-empty", inputs: ["nzComponentName", "specificContent"], exportAs: ["nzEmbedEmpty"] }, { type: NzTransferSearchComponent, selector: "[nz-transfer-search]", inputs: ["placeholder", "value", "disabled"], outputs: ["valueChanged", "valueClear"], exportAs: ["nzTransferSearch"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferListComponent, decorators: [{
type: Component,
args: [{
selector: 'nz-transfer-list',
exportAs: 'nzTransferList',
preserveWhitespaces: false,
template: `
<ng-template #defaultRenderList>
<ul *ngIf="stat.shownCount > 0" class="ant-transfer-list-content">
<li
*ngFor="let item of validData"
(click)="onItemSelect(item)"
class="ant-transfer-list-content-item"
[ngClass]="{ 'ant-transfer-list-content-item-disabled': disabled || item.disabled }"
>
<label
#checkboxes
nz-checkbox
[nzChecked]="item.checked"
(nzCheckedChange)="onItemSelect(item)"
[nzDisabled]="disabled || item.disabled"
>
<ng-container *ngIf="!render; else renderContainer">{{ item.title }}</ng-container>
<ng-template
#renderContainer
[ngTemplateOutlet]="render"
[ngTemplateOutletContext]="{ $implicit: item }"
></ng-template>
</label>
</li>
</ul>
<div *ngIf="stat.shownCount === 0" class="ant-transfer-list-body-not-found">
<nz-embed-empty [nzComponentName]="'transfer'" [specificContent]="notFoundContent"></nz-embed-empty>
</div>
</ng-template>
<div class="ant-transfer-list-header">
<label
*ngIf="showSelectAll"
class="ant-transfer-list-checkbox"
nz-checkbox
[nzChecked]="stat.checkAll"
(nzCheckedChange)="onItemSelectAll($event)"
[nzIndeterminate]="stat.checkHalf"
[nzDisabled]="stat.shownCount === 0 || disabled"
></label>
<span class="ant-transfer-list-header-selected">
<span>
{{ (stat.checkCount > 0 ? stat.checkCount + '/' : '') + stat.shownCount }}
{{ validData.length > 1 ? itemsUnit : itemUnit }}
</span>
</span>
<span *ngIf="titleText" class="ant-transfer-list-header-title">{{ titleText }}</span>
</div>
<div
class="{{ showSearch ? 'ant-transfer-list-body ant-transfer-list-body-with-search' : 'ant-transfer-list-body' }}"
[ngClass]="{ 'ant-transfer__nodata': stat.shownCount === 0 }"
>
<div *ngIf="showSearch" class="ant-transfer-list-body-search-wrapper">
<span
nz-transfer-search
class="ant-input-affix-wrapper ant-transfer-list-search"
(valueChanged)="handleFilter($event)"
(valueClear)="handleClear()"
[placeholder]="searchPlaceholder"
[disabled]="disabled"
[value]="filter"
></span>
</div>
<ng-container *ngIf="renderList; else defaultRenderList">
<div class="ant-transfer-list-body-customize-wrapper">
<ng-container
*ngTemplateOutlet="
renderList;
context: {
$implicit: validData,
direction: direction,
disabled: disabled,
onItemSelectAll: onItemSelectAll,
onItemSelect: onItemSelect,
stat: stat
}
"
></ng-container>
</div>
</ng-container>
</div>
<div *ngIf="footer" class="ant-transfer-list-footer">
<ng-template [ngTemplateOutlet]="footer" [ngTemplateOutletContext]="{ $implicit: direction }"></ng-template>
</div>
`,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
host: {
class: 'ant-transfer-list',
'[class.ant-transfer-list-with-footer]': '!!footer'
}
}]
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { direction: [{
type: Input
}], titleText: [{
type: Input
}], showSelectAll: [{
type: Input
}], dataSource: [{
type: Input
}], itemUnit: [{
type: Input
}], itemsUnit: [{
type: Input
}], filter: [{
type: Input
}], disabled: [{
type: Input
}], showSearch: [{
type: Input
}], searchPlaceholder: [{
type: Input
}], notFoundContent: [{
type: Input
}], filterOption: [{
type: Input
}], renderList: [{
type: Input
}], render: [{
type: Input
}], footer: [{
type: Input
}], handleSelectAll: [{
type: Output
}], handleSelect: [{
type: Output
}], filterChange: [{
type: Output
}], checkboxes: [{
type: ViewChildren,
args: ['checkboxes', { read: ElementRef }]
}] } });
class NzTransferComponent {
// #endregion
constructor(cdr, i18n, directionality) {
this.cdr = cdr;
this.i18n = i18n;
this.directionality = directionality;
this.unsubscribe$ = new Subject();
this.leftFilter = '';
this.rightFilter = '';
this.dir = 'ltr';
// #region fields
this.nzDisabled = false;
this.nzDataSource = [];
this.nzTitles = ['', ''];
this.nzOperations = [];
this.nzListStyle = {};
this.nzShowSelectAll = true;
this.nzCanMove = (arg) => of(arg.list);
this.nzRenderList = null;
this.nzRender = null;
this.nzFooter = null;
this.nzShowSearch = false;
this.nzTargetKeys = [];
this.nzSelectedKeys = [];
// events
this.nzChange = new EventEmitter();
this.nzSearchChange = new EventEmitter();
this.nzSelectChange = new EventEmitter();
// #endregion
// #region process data
// left
this.leftDataSource = [];
// right
this.rightDataSource = [];
this.handleLeftSelectAll = (checked) => this.handleSelect('left', checked);
this.handleRightSelectAll = (checked) => this.handleSelect('right', checked);
this.handleLeftSelect = (item) => this.handleSelect('left', !!item.checked, item);
this.handleRightSelect = (item) => this.handleSelect('right', !!item.checked, item);
// #endregion
// #region operation
this.leftActive = false;
this.rightActive = false;
this.moveToLeft = () => this.moveTo('left');
this.moveToRight = () => this.moveTo('right');
}
splitDataSource() {
this.leftDataSource = [];
this.rightDataSource = [];
this.nzDataSource.forEach(record => {
if (record.direction === 'right') {
record.direction = 'right';
this.rightDataSource.push(record);
}
else {
record.direction = 'left';
this.leftDataSource.push(record);
}
});
}
getCheckedData(direction) {
return this[direction === 'left' ? 'leftDataSource' : 'rightDataSource'].filter(w => w.checked);
}
handleSelect(direction, checked, item) {
const list = this.getCheckedData(direction);
this.updateOperationStatus(direction, list.length);
this.nzSelectChange.emit({ direction, checked, list, item });
}
handleFilterChange(ret) {
this.nzSearchChange.emit(ret);
}
updateOperationStatus(direction, count) {
this[direction === 'right' ? 'leftActive' : 'rightActive'] =
(typeof count === 'undefined' ? this.getCheckedData(direction).filter(w => !w.disabled).length : count) > 0;
}
moveTo(direction) {
const oppositeDirection = direction === 'left' ? 'right' : 'left';
this.updateOperationStatus(oppositeDirection, 0);
const datasource = direction === 'left' ? this.rightDataSource : this.leftDataSource;
const moveList = datasource.filter(item => item.checked === true && !item.disabled);
this.nzCanMove({ direction, list: moveList }).subscribe(newMoveList => this.truthMoveTo(direction, newMoveList.filter(i => !!i)), () => moveList.forEach(i => (i.checked = false)));
}
truthMoveTo(direction, list) {
const oppositeDirection = direction === 'left' ? 'right' : 'left';
const datasource = direction === 'left' ? this.rightDataSource : this.leftDataSource;
const targetDatasource = direction === 'left' ? this.leftDataSource : this.rightDataSource;
for (const item of list) {
item.checked = false;
item.hide = false;
item.direction = direction;
datasource.splice(datasource.indexOf(item), 1);
}
targetDatasource.splice(0, 0, ...list);
this.updateOperationStatus(oppositeDirection);
this.nzChange.emit({
from: oppositeDirection,
to: direction,
list
});
this.markForCheckAllList();
}
markForCheckAllList() {
if (!this.lists) {
return;
}
this.lists.forEach(i => i.markForCheck());
}
handleNzTargetKeys() {
const keys = toArray(this.nzTargetKeys);
const hasOwnKey = (e) => e.hasOwnProperty('key');
this.leftDataSource.forEach(e => {
if (hasOwnKey(e) && keys.indexOf(e.key) !== -1 && !e.disabled) {
e.checked = true;
}
});
this.moveToRight();
}
handleNzSelectedKeys() {
const keys = toArray(this.nzSelectedKeys);
this.nzDataSource.forEach(e => {
if (keys.indexOf(e.key) !== -1) {
e.checked = true;
}
});
const term = (ld) => ld.disabled === false && ld.checked === true;
this.rightActive = this.leftDataSource.some(term);
this.leftActive = this.rightDataSource.some(term);
}
ngOnInit() {
this.i18n.localeChange.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
this.locale = this.i18n.getLocaleData('Transfer');
this.markForCheckAllList();
});
this.dir = this.directionality.value;
this.directionality.change?.pipe(takeUntil(this.unsubscribe$)).subscribe((direction) => {
this.dir = direction;
this.cdr.detectChanges();
});
}
ngOnChanges(changes) {
if (changes.nzDataSource) {
this.splitDataSource();
this.updateOperationStatus('left');
this.updateOperationStatus('right');
this.cdr.detectChanges();
this.markForCheckAllList();
}
if (changes.nzTargetKeys) {
this.handleNzTargetKeys();
}
if (changes.nzSelectedKeys) {
this.handleNzSelectedKeys();
}
}
ngOnDestroy() {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
}
NzTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.NzI18nService }, { token: i2$2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Component });
NzTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: NzTransferComponent, selector: "nz-transfer", inputs: { nzDisabled: "nzDisabled", nzDataSource: "nzDataSource", nzTitles: "nzTitles", nzOperations: "nzOperations", nzListStyle: "nzListStyle", nzShowSelectAll: "nzShowSelectAll", nzItemUnit: "nzItemUnit", nzItemsUnit: "nzItemsUnit", nzCanMove: "nzCanMove", nzRenderList: "nzRenderList", nzRender: "nzRender", nzFooter: "nzFooter", nzShowSearch: "nzShowSearch", nzFilterOption: "nzFilterOption", nzSearchPlaceholder: "nzSearchPlaceholder", nzNotFoundContent: "nzNotFoundContent", nzTargetKeys: "nzTargetKeys", nzSelectedKeys: "nzSelectedKeys" }, outputs: { nzChange: "nzChange", nzSearchChange: "nzSearchChange", nzSelectChange: "nzSelectChange" }, host: { properties: { "class.ant-transfer-rtl": "dir === 'rtl'", "class.ant-transfer-disabled": "nzDisabled", "class.ant-transfer-customize-list": "nzRenderList" }, classAttribute: "ant-transfer" }, viewQueries: [{ propertyName: "lists", predicate: NzTransferListComponent, descendants: true }], exportAs: ["nzTransfer"], usesOnChanges: true, ngImport: i0, template: `
<nz-transfer-list
class="ant-transfer-list"
[ngStyle]="nzListStyle"
data-direction="left"
direction="left"
[titleText]="nzTitles[0]"
[showSelectAll]="nzShowSelectAll"
[dataSource]="leftDataSource"
[filter]="leftFilter"
[filterOption]="nzFilterOption"
(filterChange)="handleFilterChange($event)"
[renderList]="nzRenderList && nzRenderList[0]"
[render]="nzRender"
[disabled]="nzDisabled"
[showSearch]="nzShowSearch"
[searchPlaceholder]="nzSearchPlaceholder || locale?.searchPlaceholder"
[notFoundContent]="nzNotFoundContent"
[itemUnit]="nzItemUnit || locale?.itemUnit"
[itemsUnit]="nzItemsUnit || locale?.itemsUnit"
[footer]="nzFooter"
(handleSelect)="handleLeftSelect($event)"
(handleSelectAll)="handleLeftSelectAll($event)"
></nz-transfer-list>
<div *ngIf="dir !== 'rtl'" class="ant-transfer-operation">
<button
nz-button
(click)="moveToLeft()"
[disabled]="nzDisabled || !leftActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="left"></i>
<span *ngIf="nzOperations[1]">{{ nzOperations[1] }}</span>
</button>
<button
nz-button
(click)="moveToRight()"
[disabled]="nzDisabled || !rightActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="right"></i>
<span *ngIf="nzOperations[0]">{{ nzOperations[0] }}</span>
</button>
</div>
<div *ngIf="dir === 'rtl'" class="ant-transfer-operation">
<button
nz-button
(click)="moveToRight()"
[disabled]="nzDisabled || !rightActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="left"></i>
<span *ngIf="nzOperations[0]">{{ nzOperations[0] }}</span>
</button>
<button
nz-button
(click)="moveToLeft()"
[disabled]="nzDisabled || !leftActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="right"></i>
<span *ngIf="nzOperations[1]">{{ nzOperations[1] }}</span>
</button>
</div>
<nz-transfer-list
class="ant-transfer-list"
[ngStyle]="nzListStyle"
data-direction="right"
direction="right"
[titleText]="nzTitles[1]"
[showSelectAll]="nzShowSelectAll"
[dataSource]="rightDataSource"
[filter]="rightFilter"
[filterOption]="nzFilterOption"
(filterChange)="handleFilterChange($event)"
[renderList]="nzRenderList && nzRenderList[1]"
[render]="nzRender"
[disabled]="nzDisabled"
[showSearch]="nzShowSearch"
[searchPlaceholder]="nzSearchPlaceholder || locale?.searchPlaceholder"
[notFoundContent]="nzNotFoundContent"
[itemUnit]="nzItemUnit || locale?.itemUnit"
[itemsUnit]="nzItemsUnit || locale?.itemsUnit"
[footer]="nzFooter"
(handleSelect)="handleRightSelect($event)"
(handleSelectAll)="handleRightSelectAll($event)"
></nz-transfer-list>
`, isInline: true, components: [{ type: NzTransferListComponent, selector: "nz-transfer-list", inputs: ["direction", "titleText", "showSelectAll", "dataSource", "itemUnit", "itemsUnit", "filter", "disabled", "showSearch", "searchPlaceholder", "notFoundContent", "filterOption", "renderList", "render", "footer"], outputs: ["handleSelectAll", "handleSelect", "filterChange"], exportAs: ["nzTransferList"] }, { type: i4$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
__decorate([
InputBoolean()
], NzTransferComponent.prototype, "nzDisabled", void 0);
__decorate([
InputBoolean()
], NzTransferComponent.prototype, "nzShowSelectAll", void 0);
__decorate([
InputBoolean()
], NzTransferComponent.prototype, "nzShowSearch", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferComponent, decorators: [{
type: Component,
args: [{
selector: 'nz-transfer',
exportAs: 'nzTransfer',
preserveWhitespaces: false,
template: `
<nz-transfer-list
class="ant-transfer-list"
[ngStyle]="nzListStyle"
data-direction="left"
direction="left"
[titleText]="nzTitles[0]"
[showSelectAll]="nzShowSelectAll"
[dataSource]="leftDataSource"
[filter]="leftFilter"
[filterOption]="nzFilterOption"
(filterChange)="handleFilterChange($event)"
[renderList]="nzRenderList && nzRenderList[0]"
[render]="nzRender"
[disabled]="nzDisabled"
[showSearch]="nzShowSearch"
[searchPlaceholder]="nzSearchPlaceholder || locale?.searchPlaceholder"
[notFoundContent]="nzNotFoundContent"
[itemUnit]="nzItemUnit || locale?.itemUnit"
[itemsUnit]="nzItemsUnit || locale?.itemsUnit"
[footer]="nzFooter"
(handleSelect)="handleLeftSelect($event)"
(handleSelectAll)="handleLeftSelectAll($event)"
></nz-transfer-list>
<div *ngIf="dir !== 'rtl'" class="ant-transfer-operation">
<button
nz-button
(click)="moveToLeft()"
[disabled]="nzDisabled || !leftActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="left"></i>
<span *ngIf="nzOperations[1]">{{ nzOperations[1] }}</span>
</button>
<button
nz-button
(click)="moveToRight()"
[disabled]="nzDisabled || !rightActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="right"></i>
<span *ngIf="nzOperations[0]">{{ nzOperations[0] }}</span>
</button>
</div>
<div *ngIf="dir === 'rtl'" class="ant-transfer-operation">
<button
nz-button
(click)="moveToRight()"
[disabled]="nzDisabled || !rightActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="left"></i>
<span *ngIf="nzOperations[0]">{{ nzOperations[0] }}</span>
</button>
<button
nz-button
(click)="moveToLeft()"
[disabled]="nzDisabled || !leftActive"
[nzType]="'primary'"
[nzSize]="'small'"
>
<i nz-icon nzType="right"></i>
<span *ngIf="nzOperations[1]">{{ nzOperations[1] }}</span>
</button>
</div>
<nz-transfer-list
class="ant-transfer-list"
[ngStyle]="nzListStyle"
data-direction="right"
direction="right"
[titleText]="nzTitles[1]"
[showSelectAll]="nzShowSelectAll"
[dataSource]="rightDataSource"
[filter]="rightFilter"
[filterOption]="nzFilterOption"
(filterChange)="handleFilterChange($event)"
[renderList]="nzRenderList && nzRenderList[1]"
[render]="nzRender"
[disabled]="nzDisabled"
[showSearch]="nzShowSearch"
[searchPlaceholder]="nzSearchPlaceholder || locale?.searchPlaceholder"
[notFoundContent]="nzNotFoundContent"
[itemUnit]="nzItemUnit || locale?.itemUnit"
[itemsUnit]="nzItemsUnit || locale?.itemsUnit"
[footer]="nzFooter"
(handleSelect)="handleRightSelect($event)"
(handleSelectAll)="handleRightSelectAll($event)"
></nz-transfer-list>
`,
host: {
class: 'ant-transfer',
'[class.ant-transfer-rtl]': `dir === 'rtl'`,
'[class.ant-transfer-disabled]': `nzDisabled`,
'[class.ant-transfer-customize-list]': `nzRenderList`
},
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$2.NzI18nService }, { type: i2$2.Directionality, decorators: [{
type: Optional
}] }]; }, propDecorators: { lists: [{
type: ViewChildren,
args: [NzTransferListComponent]
}], nzDisabled: [{
type: Input
}], nzDataSource: [{
type: Input
}], nzTitles: [{
type: Input
}], nzOperations: [{
type: Input
}], nzListStyle: [{
type: Input
}], nzShowSelectAll: [{
type: Input
}], nzItemUnit: [{
type: Input
}], nzItemsUnit: [{
type: Input
}], nzCanMove: [{
type: Input
}], nzRenderList: [{
type: Input
}], nzRender: [{
type: Input
}], nzFooter: [{
type: Input
}], nzShowSearch: [{
type: Input
}], nzFilterOption: [{
type: Input
}], nzSearchPlaceholder: [{
type: Input
}], nzNotFoundContent: [{
type: Input
}], nzTargetKeys: [{
type: Input
}], nzSelectedKeys: [{
type: Input
}], nzChange: [{
type: Output
}], nzSearchChange: [{
type: Output
}], nzSelectChange: [{
type: Output
}] } });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
class NzTransferModule {
}
NzTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
NzTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferModule, declarations: [NzTransferComponent, NzTransferListComponent, NzTransferSearchComponent], imports: [BidiModule,
CommonModule,
FormsModule,
NzCheckboxModule,
NzButtonModule,
NzInputModule,
NzI18nModule,
NzIconModule,
NzEmptyModule], exports: [NzTransferComponent] });
NzTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferModule, imports: [[
BidiModule,
CommonModule,
FormsModule,
NzCheckboxModule,
NzButtonModule,
NzInputModule,
NzI18nModule,
NzIconModule,
NzEmptyModule
]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzTransferModule, decorators: [{
type: NgModule,
args: [{
imports: [
BidiModule,
CommonModule,
FormsModule,
NzCheckboxModule,
NzButtonModule,
NzInputModule,
NzI18nModule,
NzIconModule,
NzEmptyModule
],
declarations: [NzTransferComponent, NzTransferListComponent, NzTransferSearchComponent],
exports: [NzTransferComponent]
}]
}] });
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
/**
* Generated bundle index. Do not edit.
*/
export { NzTransferComponent, NzTransferListComponent, NzTransferModule, NzTransferSearchComponent };
//# sourceMappingURL=ng-zorro-antd-transfer.mjs.map