@yoyoboot/l-52abp-ng-form-generator
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.
128 lines • 16.6 kB
JavaScript
import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
import { DatePickerBase } from '../date-picker-base';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import * as moment from 'moment';
import * as i0 from "@angular/core";
import * as i1 from "ng-zorro-antd/date-picker";
import * as i2 from "@angular/forms";
export class RangePickerComponent extends DatePickerBase {
constructor() {
super();
/**
* 展示的日期格式,见nzFormat特别说明
*/
this.nzFormat = 'yyyy-MM-dd';
/**
* 点击确定按钮的回调
*/
this.nzOnOk = new EventEmitter();
/**
* 时间发生变化的回调
*/
this.ngModelChange = new EventEmitter();
/**
* 待选日期发生变化的回调
*/
this.nzOnCalendarChange = new EventEmitter();
}
/**
* 点击确定按钮的回调
* @param event
*/
onNzOk(event) {
if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {
const eArr = [moment(event[0]), moment(event[1])];
this.nzOnOk.emit(eArr);
}
else {
this.nzOnOk.emit(undefined);
}
}
/**
* 时间发生变化的回调
* @param event
*/
onNgModelChangeChange(event) {
if (Array.isArray(event) && event.length === 2) {
this.ngModelChange.emit(event.map(o => {
return moment(o);
}));
}
else {
this.ngModelChange.emit(undefined);
}
}
/**
* 待选日期发生变化的回调
* @param event
*/
onNzOnCalendarChange(event) {
if (Array.isArray(event) && event.length === 2) {
this.nzOnCalendarChange.emit(event.map(o => {
return moment(o);
}));
}
else {
this.nzOnCalendarChange.emit(undefined);
}
}
registerOnChange(fn) {
this.ngModelChange.emit = fn;
}
registerOnTouched(fn) { }
setDisabledState(isDisabled) {
this.nzDisabled = isDisabled;
}
writeValue(obj) {
if (obj && Array.isArray(obj) && obj.length === 2 && moment.isMoment(obj[0]) && moment.isMoment(obj[1])) {
this.value = [obj[0].toDate(), obj[1].toDate()];
}
else {
this.value = obj;
}
}
}
RangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RangePickerComponent, selector: "d-range-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRanges: "nzRanges", nzRenderExtraFooter: "nzRenderExtraFooter", nzShowTime: "nzShowTime", nzPlaceHolder: "nzPlaceHolder" }, outputs: { nzOnOk: "nzOnOk", ngModelChange: "ngModelChange", nzOnCalendarChange: "nzOnCalendarChange" }, providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => RangePickerComponent),
multi: true
}
], usesInheritance: true, ngImport: i0, template: "<nz-range-picker\r\n [nzAllowClear]='nzAllowClear'\r\n [nzAutoFocus]='nzAutoFocus'\r\n [nzDateRender]='nzDateRender'\r\n [nzDisabled]='nzDisabled'\r\n [nzDisabledDate]='nzDisabledDate'\r\n [nzLocale]='nzLocale'\r\n [nzPopupStyle]='nzPopupStyle'\r\n [nzDropdownClassName]='nzDropdownClassName'\r\n [nzSize]='nzSize'\r\n [nzDisabledTime]='nzDisabledTime'\r\n [nzFormat]='nzFormat'\r\n [nzRenderExtraFooter]='nzRenderExtraFooter'\r\n [nzShowTime]='nzShowTime'\r\n [nzPlaceHolder]='nzPlaceHolder'\r\n [nzRanges]='nzRanges'\r\n [(ngModel)]='value'\r\n (nzOnOk)='onNzOk($event)'\r\n (ngModelChange)='onNgModelChangeChange($event)'\r\n (nzOnCalendarChange)='onNzOnCalendarChange($event)'\r\n (nzOnOpenChange)='onNzOnOpenChange($event)'\r\n>\r\n</nz-range-picker>\r\n", components: [{ type: i1.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, decorators: [{
type: Component,
args: [{
selector: 'd-range-picker',
templateUrl: './range-picker.component.html',
styles: [],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => RangePickerComponent),
multi: true
}
]
}]
}], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
type: Input
}], nzDisabledTime: [{
type: Input
}], nzFormat: [{
type: Input
}], nzRanges: [{
type: Input
}], nzRenderExtraFooter: [{
type: Input
}], nzShowTime: [{
type: Input
}], nzPlaceHolder: [{
type: Input
}], nzOnOk: [{
type: Output
}], ngModelChange: [{
type: Output
}], nzOnCalendarChange: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2wtNTJhYnAtbmctZm9ybS1nZW5lcmF0b3Ivc3JjL3NoYXJlZC9kYXRlLXBpY2tlci9yYW5nZS1waWNrZXIvcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2wtNTJhYnAtbmctZm9ybS1nZW5lcmF0b3Ivc3JjL3NoYXJlZC9kYXRlLXBpY2tlci9yYW5nZS1waWNrZXIvcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFlakMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUF3RHREO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF6Q1Y7O1dBRUc7UUFDTSxhQUFRLEdBQUcsWUFBWSxDQUFDO1FBc0JqQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV2RDs7V0FFRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUluRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQXFCO1FBQzFCLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1B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RSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjswRUFVVSxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckJhc2UgfSBmcm9tICcuLi9kYXRlLXBpY2tlci1iYXNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgQ29tcGF0aWJsZURhdGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2RhdGUtcGlja2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1yYW5nZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYW5nZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFuZ2VQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlUGlja2VyQmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAvKipcclxuICAgKiDlhoXpg6jnlKjnmoTlgLxcclxuICAgKi9cclxuICB2YWx1ZTogRGF0ZVtdO1xyXG5cclxuICAvKipcclxuICAgKiDml6XmnJ8gTW9tZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgbmdNb2RlbDogbW9tZW50Lk1vbWVudFtdO1xyXG5cclxuICAvKipcclxuICAgKiDkuI3lj6/pgInmi6nnmoTml7bpl7RcclxuICAgKi9cclxuICBASW5wdXQoKSBuekRpc2FibGVkVGltZTogKGN1cnJlbnQ6IERhdGUpID0+IHsgbnpEaXNhYmxlZEhvdXJzOyBuekRpc2FibGVkTWludXRlczsgbnpEaXNhYmxlZFNlY29uZHMgfTtcclxuXHJcbiAgLyoqXHJcbiAgICog5bGV56S655qE5pel5pyf5qC85byP77yM6KeBbnpGb3JtYXTnibnliKvor7TmmI5cclxuICAgKi9cclxuICBASW5wdXQoKSBuekZvcm1hdCA9ICd5eXl5LU1NLWRkJztcclxuXHJcbiAgLyoqXHJcbiAgICog6aKE6K6+5pe26Ze06IyD5Zu05b+r5o236YCJ5oupXHJcbiAgICovXHJcbiAgQElucHV0KCkgbnpSYW5nZXM6IHsgW2tleTogc3RyaW5nXTogRGF0ZVtdIH0gfCB7IFtrZXk6IHN0cmluZ106ICgpID0+IERhdGVbXSB9O1xyXG5cclxuICAvKipcclxuICAgKiDlnKjpnaLmnb/kuK3mt7vliqDpop3lpJbnmoTpobXohJpcclxuICAgKi9cclxuICBASW5wdXQoKSBuelJlbmRlckV4dHJhRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgKCgpID0+IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmcpO1xyXG5cclxuICAvKipcclxuICAgKiDlop7liqDml7bpl7TpgInmi6nlip/og71cclxuICAgKi9cclxuICBASW5wdXQoKSBuelNob3dUaW1lOiBvYmplY3QgfCBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiDovpPlhaXmoYbmj5DnpLrmloflrZdcclxuICAgKi9cclxuICBASW5wdXQoKSBuelBsYWNlSG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIOeCueWHu+ehruWumuaMiemSrueahOWbnuiwg1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBuek9uT2sgPSBuZXcgRXZlbnRFbWl0dGVyPG1vbWVudC5Nb21lbnRbXT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICog5pe26Ze05Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG1vbWVudC5Nb21lbnRbXT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICog5b6F6YCJ5pel5pyf5Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG56T25DYWxlbmRhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bW9tZW50Lk1vbWVudFtdPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDngrnlh7vnoa7lrprmjInpkq7nmoTlm57osINcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBvbk56T2soZXZlbnQ6IENvbXBhdGlibGVEYXRlKSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgbW9tZW50LmlzRGF0ZShldmVudFswXSAmJiBtb21lbnQuaXNEYXRlKGV2ZW50WzFdKSkpIHtcclxuICAgICAgY29uc3QgZUFyciA9IFttb21lbnQoZXZlbnRbMF0pLCBtb21lbnQoZXZlbnRbMV0pXTtcclxuICAgICAgdGhpcy5uek9uT2suZW1pdChlQXJyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubnpPbk9rLmVtaXQodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaXtumXtOWPkeeUn+WPmOWMlueahOWbnuiwg1xyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIG9uTmdNb2RlbENoYW5nZUNoYW5nZShldmVudDogRGF0ZVtdKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkgJiYgZXZlbnQubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KFxyXG4gICAgICAgIGV2ZW50Lm1hcChvID0+IHtcclxuICAgICAgICAgIHJldHVybiBtb21lbnQobyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlvoXpgInml6XmnJ/lj5HnlJ/lj5jljJbnmoTlm57osINcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBvbk56T25DYWxlbmRhckNoYW5nZShldmVudDogRGF0ZVtdKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkgJiYgZXZlbnQubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHRoaXMubnpPbkNhbGVuZGFyQ2hhbmdlLmVtaXQoXHJcbiAgICAgICAgZXZlbnQubWFwKG8gPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG1vbWVudChvKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5uek9uQ2FsZW5kYXJDaGFuZ2UuZW1pdCh1bmRlZmluZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLm56RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikgJiYgb2JqLmxlbmd0aCA9PT0gMiAmJiBtb21lbnQuaXNNb21lbnQob2JqWzBdKSAmJiBtb21lbnQuaXNNb21lbnQob2JqWzFdKSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gW29ialswXS50b0RhdGUoKSwgb2JqWzFdLnRvRGF0ZSgpXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuei1yYW5nZS1waWNrZXJcclxuICBbbnpBbGxvd0NsZWFyXT0nbnpBbGxvd0NsZWFyJ1xyXG4gIFtuekF1dG9Gb2N1c109J256QXV0b0ZvY3VzJ1xyXG4gIFtuekRhdGVSZW5kZXJdPSduekRhdGVSZW5kZXInXHJcbiAgW256RGlzYWJsZWRdPSduekRpc2FibGVkJ1xyXG4gIFtuekRpc2FibGVkRGF0ZV09J256RGlzYWJsZWREYXRlJ1xyXG4gIFtuekxvY2FsZV09J256TG9jYWxlJ1xyXG4gIFtuelBvcHVwU3R5bGVdPSduelBvcHVwU3R5bGUnXHJcbiAgW256RHJvcGRvd25DbGFzc05hbWVdPSduekRyb3Bkb3duQ2xhc3NOYW1lJ1xyXG4gIFtuelNpemVdPSduelNpemUnXHJcbiAgW256RGlzYWJsZWRUaW1lXT0nbnpEaXNhYmxlZFRpbWUnXHJcbiAgW256Rm9ybWF0XT0nbnpGb3JtYXQnXHJcbiAgW256UmVuZGVyRXh0cmFGb290ZXJdPSduelJlbmRlckV4dHJhRm9vdGVyJ1xyXG4gIFtuelNob3dUaW1lXT0nbnpTaG93VGltZSdcclxuICBbbnpQbGFjZUhvbGRlcl09J256UGxhY2VIb2xkZXInXHJcbiAgW256UmFuZ2VzXT0nbnpSYW5nZXMnXHJcbiAgWyhuZ01vZGVsKV09J3ZhbHVlJ1xyXG4gIChuek9uT2spPSdvbk56T2soJGV2ZW50KSdcclxuICAobmdNb2RlbENoYW5nZSk9J29uTmdNb2RlbENoYW5nZUNoYW5nZSgkZXZlbnQpJ1xyXG4gIChuek9uQ2FsZW5kYXJDaGFuZ2UpPSdvbk56T25DYWxlbmRhckNoYW5nZSgkZXZlbnQpJ1xyXG4gIChuek9uT3BlbkNoYW5nZSk9J29uTnpPbk9wZW5DaGFuZ2UoJGV2ZW50KSdcclxuPlxyXG48L256LXJhbmdlLXBpY2tlcj5cclxuIl19