ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,597 lines (1,593 loc) • 64.7 kB
JavaScript
import { __decorate, __metadata, __spread } from 'tslib';
import { CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, Renderer2, ChangeDetectorRef, ViewChild, Input, Output, Directive, HostListener, NgModule } from '@angular/core';
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
import { slideMotion } from 'ng-zorro-antd/core/animation';
import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';
import { warn } from 'ng-zorro-antd/core/logger';
import { isNil, InputBoolean, isNotNil } from 'ng-zorro-antd/core/util';
import { CommonModule } from '@angular/common';
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
import { NzOverlayModule } from 'ng-zorro-antd/core/overlay';
import { DateHelperService, NzI18nModule } from 'ng-zorro-antd/i18n';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
/**
* @fileoverview added by tsickle
* Generated from: time-picker.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var NZ_CONFIG_COMPONENT_NAME = 'timePicker';
var NzTimePickerComponent = /** @class */ (function () {
function NzTimePickerComponent(nzConfigService, element, renderer, cdr) {
this.nzConfigService = nzConfigService;
this.element = element;
this.renderer = renderer;
this.cdr = cdr;
this.isInit = false;
this.focused = false;
this.value = null;
this.overlayPositions = [
{
originX: 'start',
originY: 'bottom',
overlayX: 'start',
overlayY: 'top',
offsetX: 0,
offsetY: 3
}
];
this.nzSize = null;
this.nzPlaceHolder = '';
this.nzOpen = false;
this.nzOpenChange = new EventEmitter();
this.nzHideDisabledOptions = false;
this.nzDisabled = false;
this.nzAutoFocus = false;
}
/**
* @param {?} value
* @return {?}
*/
NzTimePickerComponent.prototype.setValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.value = value ? new Date(value) : null;
if (this._onChange) {
this._onChange(this.value);
}
if (this._onTouched) {
this._onTouched();
}
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.open = /**
* @return {?}
*/
function () {
if (this.nzDisabled) {
return;
}
this.focus();
this.nzOpen = true;
this.nzOpenChange.emit(this.nzOpen);
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.close = /**
* @return {?}
*/
function () {
this.nzOpen = false;
this.cdr.markForCheck();
this.nzOpenChange.emit(this.nzOpen);
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.updateAutoFocus = /**
* @return {?}
*/
function () {
if (this.isInit && !this.nzDisabled) {
if (this.nzAutoFocus) {
this.renderer.setAttribute(this.inputRef.nativeElement, 'autofocus', 'autofocus');
}
else {
this.renderer.removeAttribute(this.inputRef.nativeElement, 'autofocus');
}
}
};
/**
* @param {?} event
* @return {?}
*/
NzTimePickerComponent.prototype.onClickClearBtn = /**
* @param {?} event
* @return {?}
*/
function (event) {
event.stopPropagation();
this.setValue(null);
};
/**
* @param {?} value
* @return {?}
*/
NzTimePickerComponent.prototype.onFocus = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.focused = value;
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.focus = /**
* @return {?}
*/
function () {
if (this.inputRef.nativeElement) {
this.inputRef.nativeElement.focus();
}
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.blur = /**
* @return {?}
*/
function () {
if (this.inputRef.nativeElement) {
this.inputRef.nativeElement.blur();
}
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.inputSize = Math.max(8, this.nzFormat.length) + 2;
this.origin = new CdkOverlayOrigin(this.element);
};
/**
* @param {?} changes
* @return {?}
*/
NzTimePickerComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var nzUse12Hours = changes.nzUse12Hours, nzFormat = changes.nzFormat, nzDisabled = changes.nzDisabled, nzAutoFocus = changes.nzAutoFocus;
if (nzUse12Hours && !nzUse12Hours.previousValue && nzUse12Hours.currentValue && !nzFormat) {
this.nzFormat = 'h:mm:ss a';
}
if (nzDisabled) {
/** @type {?} */
var value = nzDisabled.currentValue;
/** @type {?} */
var input = (/** @type {?} */ (this.inputRef.nativeElement));
if (value) {
this.renderer.setAttribute(input, 'disabled', '');
}
else {
this.renderer.removeAttribute(input, 'disabled');
}
}
if (nzAutoFocus) {
this.updateAutoFocus();
}
};
/**
* @return {?}
*/
NzTimePickerComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.isInit = true;
this.updateAutoFocus();
};
/**
* @param {?} time
* @return {?}
*/
NzTimePickerComponent.prototype.writeValue = /**
* @param {?} time
* @return {?}
*/
function (time) {
if (time instanceof Date) {
this.value = time;
}
else if (isNil(time)) {
this.value = null;
}
else {
warn('Non-Date type is not recommended for time-picker, use "Date" type.');
this.value = new Date(time);
}
this.cdr.markForCheck();
};
/**
* @param {?} fn
* @return {?}
*/
NzTimePickerComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
NzTimePickerComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onTouched = fn;
};
/**
* @param {?} isDisabled
* @return {?}
*/
NzTimePickerComponent.prototype.setDisabledState = /**
* @param {?} isDisabled
* @return {?}
*/
function (isDisabled) {
this.nzDisabled = isDisabled;
this.cdr.markForCheck();
};
NzTimePickerComponent.decorators = [
{ type: Component, args: [{
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'nz-time-picker',
exportAs: 'nzTimePicker',
template: "\n <div class=\"ant-picker-input\">\n <input\n #inputElement\n type=\"text\"\n [size]=\"inputSize\"\n [nzTime]=\"nzFormat\"\n [placeholder]=\"nzPlaceHolder || ('TimePicker.placeholder' | nzI18n)\"\n [(ngModel)]=\"value\"\n [disabled]=\"nzDisabled\"\n (focus)=\"onFocus(true)\"\n (blur)=\"onFocus(false)\"\n />\n <span class=\"ant-picker-suffix\">\n <ng-container *nzStringTemplateOutlet=\"nzSuffixIcon\">\n <i nz-icon [nzType]=\"nzSuffixIcon\"></i>\n </ng-container>\n </span>\n <span *ngIf=\"nzAllowEmpty && value\" class=\"ant-picker-clear\" (click)=\"onClickClearBtn($event)\">\n <i nz-icon nzType=\"close-circle\" nzTheme=\"fill\" [attr.aria-label]=\"nzClearText\" [attr.title]=\"nzClearText\"></i>\n </span>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"nzOpen\"\n [cdkConnectedOverlayOffsetY]=\"-2\"\n (detach)=\"close()\"\n (backdropClick)=\"close()\"\n >\n <div [@slideMotion]=\"'bottom'\" class=\"ant-picker-dropdown\">\n <div class=\"ant-picker-panel-container\">\n <div tabindex=\"-1\" class=\"ant-picker-panel\">\n <nz-time-picker-panel\n [ngClass]=\"nzPopupClassName\"\n [format]=\"nzFormat\"\n [nzHourStep]=\"nzHourStep\"\n [nzMinuteStep]=\"nzMinuteStep\"\n [nzSecondStep]=\"nzSecondStep\"\n [nzDisabledHours]=\"nzDisabledHours\"\n [nzDisabledMinutes]=\"nzDisabledMinutes\"\n [nzDisabledSeconds]=\"nzDisabledSeconds\"\n [nzPlaceHolder]=\"nzPlaceHolder || ('TimePicker.placeholder' | nzI18n)\"\n [nzHideDisabledOptions]=\"nzHideDisabledOptions\"\n [nzUse12Hours]=\"nzUse12Hours\"\n [nzDefaultOpenValue]=\"nzDefaultOpenValue\"\n [nzAddOn]=\"nzAddOn\"\n [nzClearText]=\"nzClearText\"\n [nzAllowEmpty]=\"nzAllowEmpty\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n (closePanel)=\"close()\"\n >\n </nz-time-picker-panel>\n </div>\n </div>\n </div>\n </ng-template>\n ",
host: {
'[class.ant-picker]': "true",
'[class.ant-picker-large]': "nzSize === 'large'",
'[class.ant-picker-small]': "nzSize === 'small'",
'[class.ant-picker-disabled]': "nzDisabled",
'[class.ant-picker-focused]': "focused",
'(click)': 'open()'
},
animations: [slideMotion],
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: NzTimePickerComponent, multi: true }]
}] }
];
/** @nocollapse */
NzTimePickerComponent.ctorParameters = function () { return [
{ type: NzConfigService },
{ type: ElementRef },
{ type: Renderer2 },
{ type: ChangeDetectorRef }
]; };
NzTimePickerComponent.propDecorators = {
inputRef: [{ type: ViewChild, args: ['inputElement', { static: true },] }],
nzSize: [{ type: Input }],
nzHourStep: [{ type: Input }],
nzMinuteStep: [{ type: Input }],
nzSecondStep: [{ type: Input }],
nzClearText: [{ type: Input }],
nzPopupClassName: [{ type: Input }],
nzPlaceHolder: [{ type: Input }],
nzAddOn: [{ type: Input }],
nzDefaultOpenValue: [{ type: Input }],
nzDisabledHours: [{ type: Input }],
nzDisabledMinutes: [{ type: Input }],
nzDisabledSeconds: [{ type: Input }],
nzFormat: [{ type: Input }],
nzOpen: [{ type: Input }],
nzUse12Hours: [{ type: Input }],
nzSuffixIcon: [{ type: Input }],
nzOpenChange: [{ type: Output }],
nzHideDisabledOptions: [{ type: Input }],
nzAllowEmpty: [{ type: Input }],
nzDisabled: [{ type: Input }],
nzAutoFocus: [{ type: Input }]
};
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 1),
__metadata("design:type", Number)
], NzTimePickerComponent.prototype, "nzHourStep", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 1),
__metadata("design:type", Number)
], NzTimePickerComponent.prototype, "nzMinuteStep", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 1),
__metadata("design:type", Number)
], NzTimePickerComponent.prototype, "nzSecondStep", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 'clear'),
__metadata("design:type", String)
], NzTimePickerComponent.prototype, "nzClearText", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME),
__metadata("design:type", String)
], NzTimePickerComponent.prototype, "nzPopupClassName", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 'HH:mm:ss'),
__metadata("design:type", String)
], NzTimePickerComponent.prototype, "nzFormat", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, false), InputBoolean(),
__metadata("design:type", Boolean)
], NzTimePickerComponent.prototype, "nzUse12Hours", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, 'clock-circle'),
__metadata("design:type", Object)
], NzTimePickerComponent.prototype, "nzSuffixIcon", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzTimePickerComponent.prototype, "nzHideDisabledOptions", void 0);
__decorate([
WithConfig(NZ_CONFIG_COMPONENT_NAME, true), InputBoolean(),
__metadata("design:type", Boolean)
], NzTimePickerComponent.prototype, "nzAllowEmpty", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzTimePickerComponent.prototype, "nzDisabled", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzTimePickerComponent.prototype, "nzAutoFocus", void 0);
return NzTimePickerComponent;
}());
if (false) {
/** @type {?} */
NzTimePickerComponent.ngAcceptInputType_nzUse12Hours;
/** @type {?} */
NzTimePickerComponent.ngAcceptInputType_nzHideDisabledOptions;
/** @type {?} */
NzTimePickerComponent.ngAcceptInputType_nzAllowEmpty;
/** @type {?} */
NzTimePickerComponent.ngAcceptInputType_nzDisabled;
/** @type {?} */
NzTimePickerComponent.ngAcceptInputType_nzAutoFocus;
/**
* @type {?}
* @private
*/
NzTimePickerComponent.prototype._onChange;
/**
* @type {?}
* @private
*/
NzTimePickerComponent.prototype._onTouched;
/** @type {?} */
NzTimePickerComponent.prototype.isInit;
/** @type {?} */
NzTimePickerComponent.prototype.focused;
/** @type {?} */
NzTimePickerComponent.prototype.value;
/** @type {?} */
NzTimePickerComponent.prototype.origin;
/** @type {?} */
NzTimePickerComponent.prototype.inputSize;
/** @type {?} */
NzTimePickerComponent.prototype.overlayPositions;
/** @type {?} */
NzTimePickerComponent.prototype.inputRef;
/** @type {?} */
NzTimePickerComponent.prototype.nzSize;
/** @type {?} */
NzTimePickerComponent.prototype.nzHourStep;
/** @type {?} */
NzTimePickerComponent.prototype.nzMinuteStep;
/** @type {?} */
NzTimePickerComponent.prototype.nzSecondStep;
/** @type {?} */
NzTimePickerComponent.prototype.nzClearText;
/** @type {?} */
NzTimePickerComponent.prototype.nzPopupClassName;
/** @type {?} */
NzTimePickerComponent.prototype.nzPlaceHolder;
/** @type {?} */
NzTimePickerComponent.prototype.nzAddOn;
/** @type {?} */
NzTimePickerComponent.prototype.nzDefaultOpenValue;
/** @type {?} */
NzTimePickerComponent.prototype.nzDisabledHours;
/** @type {?} */
NzTimePickerComponent.prototype.nzDisabledMinutes;
/** @type {?} */
NzTimePickerComponent.prototype.nzDisabledSeconds;
/** @type {?} */
NzTimePickerComponent.prototype.nzFormat;
/** @type {?} */
NzTimePickerComponent.prototype.nzOpen;
/** @type {?} */
NzTimePickerComponent.prototype.nzUse12Hours;
/** @type {?} */
NzTimePickerComponent.prototype.nzSuffixIcon;
/** @type {?} */
NzTimePickerComponent.prototype.nzOpenChange;
/** @type {?} */
NzTimePickerComponent.prototype.nzHideDisabledOptions;
/** @type {?} */
NzTimePickerComponent.prototype.nzAllowEmpty;
/** @type {?} */
NzTimePickerComponent.prototype.nzDisabled;
/** @type {?} */
NzTimePickerComponent.prototype.nzAutoFocus;
/** @type {?} */
NzTimePickerComponent.prototype.nzConfigService;
/**
* @type {?}
* @private
*/
NzTimePickerComponent.prototype.element;
/**
* @type {?}
* @private
*/
NzTimePickerComponent.prototype.renderer;
/** @type {?} */
NzTimePickerComponent.prototype.cdr;
}
/**
* @fileoverview added by tsickle
* Generated from: time-holder.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var TimeHolder = /** @class */ (function () {
function TimeHolder() {
this.selected12Hours = undefined;
this._use12Hours = false;
this._changes = new Subject();
}
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
TimeHolder.prototype.setMinutes = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
function (value, disabled) {
if (value !== (/** @type {?} */ (this)).minutes && !disabled) {
(/** @type {?} */ (this)).initValue();
(/** @type {?} */ (this)).value.setMinutes(value);
(/** @type {?} */ (this)).update();
}
return (/** @type {?} */ (this));
};
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
TimeHolder.prototype.setHours = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
function (value, disabled) {
if (value !== (/** @type {?} */ (this)).hours && !disabled) {
(/** @type {?} */ (this)).initValue();
if ((/** @type {?} */ (this))._use12Hours) {
if ((/** @type {?} */ (this)).selected12Hours === 'PM' && value !== 12) {
(/** @type {?} */ (this)).value.setHours(((/** @type {?} */ (value))) + 12);
}
else if ((/** @type {?} */ (this)).selected12Hours === 'AM' && value === 12) {
(/** @type {?} */ (this)).value.setHours(0);
}
else {
(/** @type {?} */ (this)).value.setHours(value);
}
}
else {
(/** @type {?} */ (this)).value.setHours(value);
}
(/** @type {?} */ (this)).update();
}
return (/** @type {?} */ (this));
};
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
TimeHolder.prototype.setSeconds = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?} disabled
* @return {THIS}
*/
function (value, disabled) {
if (value !== (/** @type {?} */ (this)).seconds && !disabled) {
(/** @type {?} */ (this)).initValue();
(/** @type {?} */ (this)).value.setSeconds(value);
(/** @type {?} */ (this)).update();
}
return (/** @type {?} */ (this));
};
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @return {THIS}
*/
TimeHolder.prototype.setUse12Hours = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @return {THIS}
*/
function (value) {
(/** @type {?} */ (this))._use12Hours = value;
return (/** @type {?} */ (this));
};
Object.defineProperty(TimeHolder.prototype, "changes", {
get: /**
* @return {?}
*/
function () {
return this._changes.asObservable();
},
enumerable: true,
configurable: true
});
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?=} use12Hours
* @return {THIS}
*/
TimeHolder.prototype.setValue = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @param {?=} use12Hours
* @return {THIS}
*/
function (value, use12Hours) {
if (isNotNil(use12Hours)) {
(/** @type {?} */ (this))._use12Hours = (/** @type {?} */ (use12Hours));
}
if (value !== (/** @type {?} */ (this)).value) {
(/** @type {?} */ (this))._value = value;
if (isNotNil((/** @type {?} */ (this)).value)) {
if ((/** @type {?} */ (this))._use12Hours && isNotNil((/** @type {?} */ (this)).hours)) {
(/** @type {?} */ (this)).selected12Hours = (/** @type {?} */ (this)).hours >= 12 ? 'PM' : 'AM';
}
}
else {
(/** @type {?} */ (this))._clear();
}
}
return (/** @type {?} */ (this));
};
/**
* @return {?}
*/
TimeHolder.prototype.initValue = /**
* @return {?}
*/
function () {
if (isNil(this.value)) {
this.setValue(new Date(), this._use12Hours);
}
};
/**
* @return {?}
*/
TimeHolder.prototype.clear = /**
* @return {?}
*/
function () {
this._clear();
this.update();
};
Object.defineProperty(TimeHolder.prototype, "isEmpty", {
get: /**
* @return {?}
*/
function () {
return !(isNotNil(this.hours) || isNotNil(this.minutes) || isNotNil(this.seconds));
},
enumerable: true,
configurable: true
});
/**
* @private
* @return {?}
*/
TimeHolder.prototype._clear = /**
* @private
* @return {?}
*/
function () {
this._value = undefined;
this.selected12Hours = undefined;
};
/**
* @private
* @return {?}
*/
TimeHolder.prototype.update = /**
* @private
* @return {?}
*/
function () {
if (this.isEmpty) {
this._value = undefined;
}
else {
if (isNotNil(this.hours)) {
(/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours)));
}
if (isNotNil(this.minutes)) {
(/** @type {?} */ (this.value)).setMinutes((/** @type {?} */ (this.minutes)));
}
if (isNotNil(this.seconds)) {
(/** @type {?} */ (this.value)).setSeconds((/** @type {?} */ (this.seconds)));
}
if (this._use12Hours) {
if (this.selected12Hours === 'PM' && (/** @type {?} */ (this.hours)) < 12) {
(/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours)) + 12);
}
if (this.selected12Hours === 'AM' && (/** @type {?} */ (this.hours)) >= 12) {
(/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours)) - 12);
}
}
}
this.changed();
};
/**
* @return {?}
*/
TimeHolder.prototype.changed = /**
* @return {?}
*/
function () {
this._changes.next(this.value);
};
Object.defineProperty(TimeHolder.prototype, "viewHours", {
/**
* @description
* UI view hours
* Get viewHours which is selected in `time-picker-panel` and its range is [12, 1, 2, ..., 11]
*/
get: /**
* \@description
* UI view hours
* Get viewHours which is selected in `time-picker-panel` and its range is [12, 1, 2, ..., 11]
* @return {?}
*/
function () {
return this._use12Hours && isNotNil(this.hours) ? this.calculateViewHour((/** @type {?} */ (this.hours))) : this.hours;
},
enumerable: true,
configurable: true
});
/**
* @param {?} value
* @return {?}
*/
TimeHolder.prototype.setSelected12Hours = /**
* @param {?} value
* @return {?}
*/
function (value) {
if ((/** @type {?} */ (value)).toUpperCase() !== this.selected12Hours) {
this.selected12Hours = (/** @type {?} */ (value)).toUpperCase();
this.update();
}
};
Object.defineProperty(TimeHolder.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this._value || this._defaultOpenValue;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TimeHolder.prototype, "hours", {
get: /**
* @return {?}
*/
function () {
var _a;
return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getHours();
},
enumerable: true,
configurable: true
});
Object.defineProperty(TimeHolder.prototype, "minutes", {
get: /**
* @return {?}
*/
function () {
var _a;
return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getMinutes();
},
enumerable: true,
configurable: true
});
Object.defineProperty(TimeHolder.prototype, "seconds", {
get: /**
* @return {?}
*/
function () {
var _a;
return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getSeconds();
},
enumerable: true,
configurable: true
});
/**
* @template THIS
* @this {THIS}
* @param {?} value
* @return {THIS}
*/
TimeHolder.prototype.setDefaultOpenValue = /**
* @template THIS
* @this {THIS}
* @param {?} value
* @return {THIS}
*/
function (value) {
(/** @type {?} */ (this))._defaultOpenValue = value;
return (/** @type {?} */ (this));
};
/**
* @private
* @param {?} value
* @return {?}
*/
TimeHolder.prototype.calculateViewHour = /**
* @private
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var selected12Hours = this.selected12Hours;
if (selected12Hours === 'PM' && value > 12) {
return value - 12;
}
if (selected12Hours === 'AM' && value === 0) {
return 12;
}
return value;
};
return TimeHolder;
}());
if (false) {
/** @type {?} */
TimeHolder.prototype.selected12Hours;
/**
* @type {?}
* @private
*/
TimeHolder.prototype._value;
/**
* @type {?}
* @private
*/
TimeHolder.prototype._use12Hours;
/**
* @type {?}
* @private
*/
TimeHolder.prototype._defaultOpenValue;
/**
* @type {?}
* @private
*/
TimeHolder.prototype._changes;
}
/**
* @fileoverview added by tsickle
* Generated from: time-value-accessor.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzTimeValueAccessorDirective = /** @class */ (function () {
function NzTimeValueAccessorDirective(dateHelper, elementRef) {
this.dateHelper = dateHelper;
this.elementRef = elementRef;
}
/**
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.keyup = /**
* @return {?}
*/
function () {
this.changed();
};
/**
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.blur = /**
* @return {?}
*/
function () {
this.touched();
};
/**
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.changed = /**
* @return {?}
*/
function () {
if (this._onChange) {
/** @type {?} */
var value = this.dateHelper.parseTime(this.elementRef.nativeElement.value, this.nzTime);
this._onChange((/** @type {?} */ (value)));
}
};
/**
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.touched = /**
* @return {?}
*/
function () {
if (this._onTouch) {
this._onTouch();
}
};
/**
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.setRange = /**
* @return {?}
*/
function () {
this.elementRef.nativeElement.focus();
this.elementRef.nativeElement.setSelectionRange(0, this.elementRef.nativeElement.value.length);
};
/**
* @param {?} value
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.elementRef.nativeElement.value = this.dateHelper.format(value, this.nzTime);
};
/**
* @param {?} fn
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
NzTimeValueAccessorDirective.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onTouch = fn;
};
NzTimeValueAccessorDirective.decorators = [
{ type: Directive, args: [{
selector: 'input[nzTime]',
exportAs: 'nzTime',
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: NzTimeValueAccessorDirective, multi: true }]
},] }
];
/** @nocollapse */
NzTimeValueAccessorDirective.ctorParameters = function () { return [
{ type: DateHelperService },
{ type: ElementRef }
]; };
NzTimeValueAccessorDirective.propDecorators = {
nzTime: [{ type: Input }],
keyup: [{ type: HostListener, args: ['keyup',] }],
blur: [{ type: HostListener, args: ['blur',] }]
};
return NzTimeValueAccessorDirective;
}());
if (false) {
/**
* @type {?}
* @private
*/
NzTimeValueAccessorDirective.prototype._onChange;
/**
* @type {?}
* @private
*/
NzTimeValueAccessorDirective.prototype._onTouch;
/** @type {?} */
NzTimeValueAccessorDirective.prototype.nzTime;
/**
* @type {?}
* @private
*/
NzTimeValueAccessorDirective.prototype.dateHelper;
/**
* @type {?}
* @private
*/
NzTimeValueAccessorDirective.prototype.elementRef;
}
/**
* @fileoverview added by tsickle
* Generated from: time-picker-panel.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} length
* @param {?=} step
* @param {?=} start
* @return {?}
*/
function makeRange(length, step, start) {
if (step === void 0) { step = 1; }
if (start === void 0) { start = 0; }
return new Array(Math.ceil(length / step)).fill(0).map((/**
* @param {?} _
* @param {?} i
* @return {?}
*/
function (_, i) { return (i + start) * step; }));
}
var NzTimePickerPanelComponent = /** @class */ (function () {
function NzTimePickerPanelComponent(cdr, dateHelper) {
this.cdr = cdr;
this.dateHelper = dateHelper;
this._nzHourStep = 1;
this._nzMinuteStep = 1;
this._nzSecondStep = 1;
this.unsubscribe$ = new Subject();
this._format = 'HH:mm:ss';
this._allowEmpty = true;
this.time = new TimeHolder();
this.hourEnabled = true;
this.minuteEnabled = true;
this.secondEnabled = true;
this.firstScrolled = false;
this.enabledColumns = 3;
this.nzInDatePicker = false; // If inside a date-picker, more diff works need to be done
this.nzHideDisabledOptions = false;
this.nzUse12Hours = false;
this.closePanel = new EventEmitter();
}
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzAllowEmpty", {
get: /**
* @return {?}
*/
function () {
return this._allowEmpty;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._allowEmpty = value;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzDisabledHours", {
get: /**
* @return {?}
*/
function () {
return this._disabledHours;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._disabledHours = value;
if (!!this._disabledHours) {
this.buildHours();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzDisabledMinutes", {
get: /**
* @return {?}
*/
function () {
return this._disabledMinutes;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._disabledMinutes = value;
this.buildMinutes();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzDisabledSeconds", {
get: /**
* @return {?}
*/
function () {
return this._disabledSeconds;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._disabledSeconds = value;
this.buildSeconds();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "format", {
get: /**
* @return {?}
*/
function () {
return this._format;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._format = value;
this.enabledColumns = 0;
/** @type {?} */
var charSet = new Set(value);
this.hourEnabled = charSet.has('H') || charSet.has('h');
this.minuteEnabled = charSet.has('m');
this.secondEnabled = charSet.has('s');
if (this.hourEnabled) {
this.enabledColumns++;
}
if (this.minuteEnabled) {
this.enabledColumns++;
}
if (this.secondEnabled) {
this.enabledColumns++;
}
if (this.nzUse12Hours) {
this.build12Hours();
}
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzHourStep", {
get: /**
* @return {?}
*/
function () {
return this._nzHourStep;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._nzHourStep = value;
this.buildHours();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzMinuteStep", {
get: /**
* @return {?}
*/
function () {
return this._nzMinuteStep;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._nzMinuteStep = value;
this.buildMinutes();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTimePickerPanelComponent.prototype, "nzSecondStep", {
get: /**
* @return {?}
*/
function () {
return this._nzSecondStep;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (isNotNil(value)) {
this._nzSecondStep = value;
this.buildSeconds();
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.selectInputRange = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout((/**
* @return {?}
*/
function () {
if (_this.nzTimeValueAccessorDirective) {
_this.nzTimeValueAccessorDirective.setRange();
}
}));
};
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.buildHours = /**
* @return {?}
*/
function () {
var _a;
/** @type {?} */
var hourRanges = 24;
/** @type {?} */
var disabledHours = (_a = this.nzDisabledHours) === null || _a === void 0 ? void 0 : _a.call(this);
/** @type {?} */
var startIndex = 0;
if (this.nzUse12Hours) {
hourRanges = 12;
if (disabledHours) {
if (this.time.selected12Hours === 'PM') {
/**
* Filter and transform hours which greater or equal to 12
* [0, 1, 2, ..., 12, 13, 14, 15, ..., 23] => [12, 1, 2, 3, ..., 11]
*/
disabledHours = disabledHours.filter((/**
* @param {?} i
* @return {?}
*/
function (i) { return i >= 12; })).map((/**
* @param {?} i
* @return {?}
*/
function (i) { return (i > 12 ? i - 12 : i); }));
}
else {
/**
* Filter and transform hours which less than 12
* [0, 1, 2,..., 12, 13, 14, 15, ...23] => [12, 1, 2, 3, ..., 11]
*/
disabledHours = disabledHours.filter((/**
* @param {?} i
* @return {?}
*/
function (i) { return i < 12 || i === 24; })).map((/**
* @param {?} i
* @return {?}
*/
function (i) { return (i === 24 || i === 0 ? 12 : i); }));
}
}
startIndex = 1;
}
this.hourRange = makeRange(hourRanges, this.nzHourStep, startIndex).map((/**
* @param {?} r
* @return {?}
*/
function (r) {
return {
index: r,
disabled: disabledHours && disabledHours.indexOf(r) !== -1
};
}));
if (this.nzUse12Hours && this.hourRange[this.hourRange.length - 1].index === 12) {
/** @type {?} */
var temp = __spread(this.hourRange);
temp.unshift(temp[temp.length - 1]);
temp.splice(temp.length - 1, 1);
this.hourRange = temp;
}
};
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.buildMinutes = /**
* @return {?}
*/
function () {
var _this = this;
this.minuteRange = makeRange(60, this.nzMinuteStep).map((/**
* @param {?} r
* @return {?}
*/
function (r) {
return {
index: r,
disabled: _this.nzDisabledMinutes && _this.nzDisabledMinutes((/** @type {?} */ (_this.time.hours))).indexOf(r) !== -1
};
}));
};
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.buildSeconds = /**
* @return {?}
*/
function () {
var _this = this;
this.secondRange = makeRange(60, this.nzSecondStep).map((/**
* @param {?} r
* @return {?}
*/
function (r) {
return {
index: r,
disabled: _this.nzDisabledSeconds && _this.nzDisabledSeconds((/** @type {?} */ (_this.time.hours)), (/** @type {?} */ (_this.time.minutes))).indexOf(r) !== -1
};
}));
};
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.build12Hours = /**
* @return {?}
*/
function () {
/** @type {?} */
var isUpperFormat = this._format.includes('A');
this.use12HoursRange = [
{
index: 0,
value: isUpperFormat ? 'AM' : 'am'
},
{
index: 1,
value: isUpperFormat ? 'PM' : 'pm'
}
];
};
/**
* @return {?}
*/
NzTimePickerPanelComponent.prototype.buildTimes = /**
* @return {?}
*/
function () {
this.buildHours();
this.buildMinutes();
this.buildSeconds();
this.build12Hours();
};
/**
* @param {?=} delay
* @return {?}
*/
NzTimePickerPanelComponent.prototype.scrollToTime = /**
* @param {?=} delay
* @return {?}
*/
function (delay) {
if (delay === void 0) { delay = 0; }
if (this.hourEnabled && this.hourListElement) {
this.scrollToSelected(this.hourListElement.nativeElement, (/** @type {?} */ (this.time.viewHours)), delay, 'hour');
}
if (this.minuteEnabled && this.minuteListElement) {
this.scrollToSelected(this.minuteListElement.nativeElement, (/** @type {?} */ (this.time.minutes)), delay, 'minute');
}
if (this.secondEnabled && this.secondListElement) {
this.scrollToSelected(this.secondListElement.nativeElement, (/** @type {?} */ (this.time.seconds)), delay, 'second');
}
if (this.nzUse12Hours && this.use12HoursListElement) {
/** @type {?} */
var selectedHours = this.time.selected12Hours;
/** @type {?} */
var index = selectedHours === 'AM' ? 0 : 1;
this.scrollToSelected(this.use12HoursListElement.nativeElement, index, delay, '12-hour');
}
};
/**
* @param {?} hour
* @return {?}
*/
NzTimePickerPanelComponent.prototype.selectHour = /**
* @param {?} hour
* @return {?}
*/
function (hour) {
this.time.setHours(hour.index, hour.disabled);
if (!!this._disabledMinutes) {
this.buildMinutes();
}
if (this._disabledSeconds || this._disabledMinutes) {
this.buildSeconds();
}
};
/**
* @param {?} minute
* @return {?}
*/
NzTimePickerPanelComponent.prototype.selectMinute = /**
* @param {?} minute
* @return {?}
*/
function (minute) {
this.time.setMinutes(minute.index, minute.disabled);
if (!!this._disabledSeconds) {
this.buildSeconds();
}
};
/**
* @param {?} second
* @return {?}
*/
NzTimePickerPanelComponent.prototype.selectSecond = /**
* @param {?} second
* @return {?}
*/
function (second) {
this.time.setSeconds(second.index, second.disabled);
};
/**
* @param {?} value
* @return {?}
*/
NzTimePickerPanelComponent.prototype.select12Hours = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.time.setSelected12Hours(value.value);
if (!!this._disabledHours) {
this.buildHours();
}
if (!!this._disabledMinutes) {
this.buildMinutes();
}
if (!!this._disabledSeconds) {
this.buildSeconds();
}
};
/**
* @param {?} instance
* @param {?} index
* @param {?=} duration
* @param {?=} unit
* @return {?}
*/
NzTimePickerPanelComponent.prototype.scrollToSelected = /**
* @param {?} instance
* @param {?} index
* @param {?=} duration
* @param {?=} unit
* @return {?}
*/
function (instance, index, duration, unit) {
if (duration === void 0) { duration = 0; }
if (!instance) {
return;
}
/** @type {?} */
var transIndex = this.translateIndex(index, unit);
/** @type {?} */
var currentOption = (/** @type {?} */ ((instance.children[transIndex] || instance.children[0])));
this.scrollTo(instance, currentOption.offsetTop, duration);
};
/**
* @param {?} index
* @param {?} unit
* @return {?}
*/
NzTimePickerPanelComponent.prototype.translateIndex = /**
* @param {?} index
* @param {?} unit
* @return {?}
*/
function (index, unit) {
var _a, _b, _c;
if (unit === 'hour') {
return this.calcIndex((_a = this.nzDisabledHours) === null || _a === void 0 ? void 0 : _a.call(this), this.hourRange.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.index; })).indexOf(index));
}
else if (unit === 'minute') {
return this.calcIndex((_b = this.nzDisabledMinutes) === null || _b === void 0 ? void 0 : _b.call(this, (/** @type {?} */ (this.time.hours))), this.minuteRange.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.index; })).indexOf(index));
}
else if (unit === 'second') {
// second
return this.calcIndex((_c = this.nzDisabledSeconds) === null || _c === void 0 ? void 0 : _c.call(this, (/** @type {?} */ (this.time.hours)), (/** @type {?} */ (this.time.minutes))), this.secondRange.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.index; })).indexOf(index));
}
else {
// 12-hour
return this.calcIndex([], this.use12HoursRange.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.index; })).indexOf(index));
}
};
/**
* @param {?} element
* @param {?} to
* @param {?} duration
* @return {?}
*/
NzTimePickerPanelComponent.prototype.scrollTo = /**
* @param {?} element
* @param {?} to
* @param {?} duration
* @return {?}
*/
function (element, to, duration) {
var _this = this;
if (duration <= 0) {
element.scrollTop = to;
return;
}
/** @type {?} */
var difference = to - element.scrollTop;
/** @type {?} */
var perTick = (difference / duration) * 10;
reqAnimFrame((/**
* @return {?}
*/
function () {
element.scrollTop = element.scrollTop + perTick;
if (element.scrollTop === to) {
return;
}
_this.scrollTo(element, to, duration - 10);
}));
};
/**
* @param {?} array
* @param {?} index
* @return {?}
*/
NzTimePickerPanelComponent.prototype.calcIndex = /**
* @param {?} array
* @param {?} index
* @return {?}
*/
function (array, index) {
if ((array === null || array === void 0 ? void 0 : array.length) && this.nzHideDisabledOptions) {
return (index -
array.reduce((/**
* @param {?} pre
* @param {?} value
* @return {?}
*/
function (pre, value) {
return pre + (value < index ? 1 : 0);
}), 0));
}
else {
return index;
}
};
/**
* @protected
* @return {?}
*/
NzTimePickerPanelComponent.prototype.changed = /**
* @protected
* @return {?}
*/
function () {
if (this.onChange) {
this.onChange((/** @type {?} */ (this.time.value)));
}
};
/**
* @protected
* @return {?}
*/
NzTimePickerPanelComponent.prototype.touched = /**
* @protected
* @return {?}
*/
function () {
if (this.onTouch) {
this.onTouch();
}
};
/**
* @param {?} value
* @return {?}
*/
NzTimePickerPanelComponent.prototype.timeDisabled = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var hour = value.getHours();
/** @type {?} */
var minute = value.getMinutes();
/** @type {?} */
var second = value.getSeconds();
return ((this.nzDisabledHours && this.nzDisabledHours().indexOf(hour)) > -1 ||
(this.nzDisabledMinutes && this.nzDisabledMinutes(hour).indexOf(minute)) > -1 ||
(this.nzDisabledSeconds && this.nzDisabledSeconds(hour, minute).indexOf(second)) > -1);
};
/**
* @r