596 lines
26 KiB
JavaScript
596 lines
26 KiB
JavaScript
import { NgTemplateOutlet, DatePipe } from '@angular/common';
|
|
import * as i0 from '@angular/core';
|
|
import { EventEmitter, booleanAttribute, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, inject, ChangeDetectorRef, DestroyRef, forwardRef, NgModule } from '@angular/core';
|
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
import * as i2 from '@angular/forms';
|
|
import { FormsModule, FormBuilder, Validators, NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
import { of } from 'rxjs';
|
|
import { parseExpression } from 'cron-parser';
|
|
import { NzI18nService } from 'ng-zorro-antd/i18n';
|
|
import * as i1 from 'ng-zorro-antd/input';
|
|
import { NzInputModule } from 'ng-zorro-antd/input';
|
|
import * as i1$1 from 'ng-zorro-antd/icon';
|
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
|
|
/**
|
|
* 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 NzCronExpressionInputComponent {
|
|
value = '0';
|
|
label = 'second';
|
|
disabled = false;
|
|
focusEffect = new EventEmitter();
|
|
blurEffect = new EventEmitter();
|
|
getValue = new EventEmitter();
|
|
focusInputEffect(event) {
|
|
this.focusEffect.emit(this.label);
|
|
event.target.select();
|
|
}
|
|
blurInputEffect() {
|
|
this.blurEffect.emit();
|
|
}
|
|
setValue() {
|
|
this.getValue.emit({ label: this.label, value: this.value });
|
|
}
|
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.0", type: NzCronExpressionInputComponent, isStandalone: true, selector: "nz-cron-expression-input", inputs: { value: "value", label: "label", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { focusEffect: "focusEffect", blurEffect: "blurEffect", getValue: "getValue" }, exportAs: ["nzCronExpressionInput"], ngImport: i0, template: `
|
|
<div class="ant-cron-expression-input">
|
|
<input
|
|
nz-input
|
|
[(ngModel)]="value"
|
|
[name]="label"
|
|
[disabled]="disabled"
|
|
(focus)="focusInputEffect($event)"
|
|
(blur)="blurInputEffect()"
|
|
(ngModelChange)="setValue()"
|
|
/>
|
|
</div>
|
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled", "readonly"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
}
|
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionInputComponent, decorators: [{
|
|
type: Component,
|
|
args: [{
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
encapsulation: ViewEncapsulation.None,
|
|
selector: 'nz-cron-expression-input',
|
|
exportAs: 'nzCronExpressionInput',
|
|
template: `
|
|
<div class="ant-cron-expression-input">
|
|
<input
|
|
nz-input
|
|
[(ngModel)]="value"
|
|
[name]="label"
|
|
[disabled]="disabled"
|
|
(focus)="focusInputEffect($event)"
|
|
(blur)="blurInputEffect()"
|
|
(ngModelChange)="setValue()"
|
|
/>
|
|
</div>
|
|
`,
|
|
imports: [NzInputModule, FormsModule]
|
|
}]
|
|
}], propDecorators: { value: [{
|
|
type: Input
|
|
}], label: [{
|
|
type: Input
|
|
}], disabled: [{
|
|
type: Input,
|
|
args: [{ transform: booleanAttribute }]
|
|
}], focusEffect: [{
|
|
type: Output
|
|
}], blurEffect: [{
|
|
type: Output
|
|
}], getValue: [{
|
|
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 NzCronExpressionLabelComponent {
|
|
type = 'second';
|
|
locale;
|
|
labelFocus = null;
|
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: NzCronExpressionLabelComponent, isStandalone: true, selector: "nz-cron-expression-label", inputs: { type: "type", locale: "locale", labelFocus: "labelFocus" }, exportAs: ["nzCronExpressionLabel"], ngImport: i0, template: `
|
|
<div class="ant-cron-expression-label" [class.ant-cron-expression-label-foucs]="labelFocus === type">
|
|
<label>
|
|
{{ locale[type] }}
|
|
</label>
|
|
</div>
|
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
}
|
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionLabelComponent, decorators: [{
|
|
type: Component,
|
|
args: [{
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
encapsulation: ViewEncapsulation.None,
|
|
selector: 'nz-cron-expression-label',
|
|
exportAs: 'nzCronExpressionLabel',
|
|
template: `
|
|
<div class="ant-cron-expression-label" [class.ant-cron-expression-label-foucs]="labelFocus === type">
|
|
<label>
|
|
{{ locale[type] }}
|
|
</label>
|
|
</div>
|
|
`
|
|
}]
|
|
}], propDecorators: { type: [{
|
|
type: Input
|
|
}], locale: [{
|
|
type: Input
|
|
}], labelFocus: [{
|
|
type: 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
|
|
*/
|
|
class NzCronExpressionPreviewComponent {
|
|
cdr = inject(ChangeDetectorRef);
|
|
TimeList = [];
|
|
visible = true;
|
|
locale;
|
|
nzSemantic = null;
|
|
loadMorePreview = new EventEmitter();
|
|
isExpand = true;
|
|
setExpand() {
|
|
this.isExpand = !this.isExpand;
|
|
this.cdr.markForCheck();
|
|
}
|
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: NzCronExpressionPreviewComponent, isStandalone: true, selector: "nz-cron-expression-preview", inputs: { TimeList: "TimeList", visible: ["visible", "visible", booleanAttribute], locale: "locale", nzSemantic: "nzSemantic" }, outputs: { loadMorePreview: "loadMorePreview" }, exportAs: ["nzCronExpressionPreview"], ngImport: i0, template: `
|
|
<div class="ant-collapse ant-collapse-borderless ant-cron-expression-preview">
|
|
<div class="ant-cron-expression-preview-dateTime" [class.ant-cron-expression-preview-dateTime-center]="!isExpand">
|
|
@if (visible) {
|
|
@if (!nzSemantic) {
|
|
{{ TimeList[0] | date: 'yyyy-MM-dd HH:mm:ss' }}
|
|
} @else {
|
|
<ng-template [ngTemplateOutlet]="nzSemantic" />
|
|
}
|
|
} @else {
|
|
{{ locale.cronError }}
|
|
}
|
|
</div>
|
|
@if (visible && !isExpand) {
|
|
<div class="ant-cron-expression-preview-content">
|
|
<ul class="ant-cron-expression-preview-list">
|
|
@for (item of TimeList; track item) {
|
|
<li>
|
|
{{ item | date: 'yyyy-MM-dd HH:mm:ss' }}
|
|
</li>
|
|
}
|
|
<li><a (click)="loadMorePreview.emit()">···</a></li>
|
|
</ul>
|
|
</div>
|
|
}
|
|
|
|
<ul class="ant-cron-expression-preview-icon">
|
|
@if (isExpand) {
|
|
<li><nz-icon nzType="down" nzTheme="outline" (click)="setExpand()" /></li>
|
|
} @else {
|
|
<li><nz-icon nzType="up" nzTheme="outline" (click)="setExpand()" /></li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
}
|
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionPreviewComponent, decorators: [{
|
|
type: Component,
|
|
args: [{
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
encapsulation: ViewEncapsulation.None,
|
|
selector: 'nz-cron-expression-preview',
|
|
exportAs: 'nzCronExpressionPreview',
|
|
template: `
|
|
<div class="ant-collapse ant-collapse-borderless ant-cron-expression-preview">
|
|
<div class="ant-cron-expression-preview-dateTime" [class.ant-cron-expression-preview-dateTime-center]="!isExpand">
|
|
@if (visible) {
|
|
@if (!nzSemantic) {
|
|
{{ TimeList[0] | date: 'yyyy-MM-dd HH:mm:ss' }}
|
|
} @else {
|
|
<ng-template [ngTemplateOutlet]="nzSemantic" />
|
|
}
|
|
} @else {
|
|
{{ locale.cronError }}
|
|
}
|
|
</div>
|
|
@if (visible && !isExpand) {
|
|
<div class="ant-cron-expression-preview-content">
|
|
<ul class="ant-cron-expression-preview-list">
|
|
@for (item of TimeList; track item) {
|
|
<li>
|
|
{{ item | date: 'yyyy-MM-dd HH:mm:ss' }}
|
|
</li>
|
|
}
|
|
<li><a (click)="loadMorePreview.emit()">···</a></li>
|
|
</ul>
|
|
</div>
|
|
}
|
|
|
|
<ul class="ant-cron-expression-preview-icon">
|
|
@if (isExpand) {
|
|
<li><nz-icon nzType="down" nzTheme="outline" (click)="setExpand()" /></li>
|
|
} @else {
|
|
<li><nz-icon nzType="up" nzTheme="outline" (click)="setExpand()" /></li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
`,
|
|
imports: [NgTemplateOutlet, DatePipe, NzIconModule]
|
|
}]
|
|
}], propDecorators: { TimeList: [{
|
|
type: Input
|
|
}], visible: [{
|
|
type: Input,
|
|
args: [{ transform: booleanAttribute }]
|
|
}], locale: [{
|
|
type: Input
|
|
}], nzSemantic: [{
|
|
type: Input
|
|
}], loadMorePreview: [{
|
|
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
|
|
*/
|
|
function labelsOfType(type) {
|
|
if (type === 'spring') {
|
|
return ['second', 'minute', 'hour', 'day', 'month', 'week'];
|
|
}
|
|
return ['minute', 'hour', 'day', 'month', 'week'];
|
|
}
|
|
class NzCronExpressionComponent {
|
|
formBuilder = inject(FormBuilder);
|
|
cdr = inject(ChangeDetectorRef);
|
|
i18n = inject(NzI18nService);
|
|
destroyRef = inject(DestroyRef);
|
|
nzSize = 'default';
|
|
nzType = 'linux';
|
|
nzCollapseDisable = false;
|
|
nzExtra = null;
|
|
nzSemantic = null;
|
|
nzBorderless = false;
|
|
nzDisabled = false;
|
|
locale;
|
|
focus = false;
|
|
labelFocus = null;
|
|
labels = labelsOfType(this.nzType);
|
|
interval;
|
|
nextTimeList = [];
|
|
isNzDisableFirstChange = true;
|
|
validateForm;
|
|
onChange = () => { };
|
|
onTouch = () => null;
|
|
convertFormat(value) {
|
|
const values = value.split(' ');
|
|
const valueObject = this.labels.reduce((obj, label, idx) => {
|
|
obj[label] = values[idx];
|
|
return obj;
|
|
}, {});
|
|
this.validateForm.patchValue(valueObject);
|
|
}
|
|
writeValue(value) {
|
|
if (value) {
|
|
this.convertFormat(value);
|
|
}
|
|
}
|
|
registerOnChange(fn) {
|
|
this.onChange = fn;
|
|
}
|
|
registerOnTouched(fn) {
|
|
this.onTouch = fn;
|
|
}
|
|
validate() {
|
|
if (this.validateForm.valid) {
|
|
return of(null);
|
|
}
|
|
else {
|
|
return of({ error: true });
|
|
}
|
|
}
|
|
setDisabledState(isDisabled) {
|
|
this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || isDisabled;
|
|
this.isNzDisableFirstChange = false;
|
|
this.cdr.markForCheck();
|
|
}
|
|
constructor() {
|
|
this.validateForm = this.formBuilder.nonNullable.group({
|
|
second: ['0', Validators.required],
|
|
minute: ['*', Validators.required],
|
|
hour: ['*', Validators.required],
|
|
day: ['*', Validators.required],
|
|
month: ['*', Validators.required],
|
|
week: ['*', Validators.required]
|
|
}, { validators: this.checkValid });
|
|
}
|
|
ngOnInit() {
|
|
this.i18n.localeChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
this.locale = this.i18n.getLocaleData('CronExpression');
|
|
this.cdr.markForCheck();
|
|
});
|
|
this.cronFormType();
|
|
this.previewDate(this.validateForm.value);
|
|
this.validateForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {
|
|
this.onChange(Object.values(value).join(' '));
|
|
this.previewDate(value);
|
|
this.cdr.markForCheck();
|
|
});
|
|
}
|
|
ngOnChanges(changes) {
|
|
const { nzType } = changes;
|
|
if (nzType) {
|
|
this.labels = labelsOfType(this.nzType);
|
|
this.cronFormType();
|
|
}
|
|
}
|
|
cronFormType() {
|
|
if (this.nzType === 'spring') {
|
|
this.validateForm.controls.second.enable();
|
|
}
|
|
else {
|
|
this.validateForm.controls.second.disable();
|
|
}
|
|
}
|
|
previewDate(value) {
|
|
try {
|
|
this.interval = parseExpression(Object.values(value).join(' '));
|
|
this.nextTimeList = [
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate()
|
|
];
|
|
}
|
|
catch {
|
|
return;
|
|
}
|
|
}
|
|
loadMorePreview() {
|
|
this.nextTimeList = [
|
|
...this.nextTimeList,
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate(),
|
|
this.interval.next().toDate()
|
|
];
|
|
this.cdr.markForCheck();
|
|
}
|
|
focusEffect(value) {
|
|
this.focus = true;
|
|
this.labelFocus = value;
|
|
this.cdr.markForCheck();
|
|
}
|
|
blurEffect() {
|
|
this.focus = false;
|
|
this.labelFocus = null;
|
|
this.cdr.markForCheck();
|
|
}
|
|
getValue(item) {
|
|
this.validateForm.controls[item.label].patchValue(item.value);
|
|
this.cdr.markForCheck();
|
|
}
|
|
checkValid = (control) => {
|
|
if (control.value) {
|
|
try {
|
|
const cron = [];
|
|
this.labels.forEach(label => cron.push(control.value[label]));
|
|
parseExpression(cron.join(' '));
|
|
}
|
|
catch {
|
|
return { error: true };
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: NzCronExpressionComponent, isStandalone: true, selector: "nz-cron-expression", inputs: { nzSize: "nzSize", nzType: "nzType", nzCollapseDisable: ["nzCollapseDisable", "nzCollapseDisable", booleanAttribute], nzExtra: "nzExtra", nzSemantic: "nzSemantic", nzBorderless: ["nzBorderless", "nzBorderless", booleanAttribute], nzDisabled: ["nzDisabled", "nzDisabled", booleanAttribute] }, providers: [
|
|
{
|
|
provide: NG_ASYNC_VALIDATORS,
|
|
useExisting: forwardRef(() => NzCronExpressionComponent),
|
|
multi: true
|
|
},
|
|
{
|
|
provide: NG_VALUE_ACCESSOR,
|
|
useExisting: forwardRef(() => NzCronExpressionComponent),
|
|
multi: true
|
|
}
|
|
], exportAs: ["nzCronExpression"], usesOnChanges: true, ngImport: i0, template: `
|
|
<div class="ant-cron-expression">
|
|
<div class="ant-cron-expression-content">
|
|
<div
|
|
class="ant-input ant-cron-expression-input-group"
|
|
[class.ant-input-lg]="nzSize === 'large'"
|
|
[class.ant-input-sm]="nzSize === 'small'"
|
|
[class.ant-input-borderless]="nzBorderless"
|
|
[class.ant-cron-expression-input-group-focus]="focus && !nzBorderless"
|
|
[class.ant-input-status-error]="!validateForm.valid && !nzBorderless"
|
|
[class.ant-cron-expression-input-group-error-focus]="!validateForm.valid && focus && !nzBorderless"
|
|
[class.ant-input-disabled]="nzDisabled"
|
|
>
|
|
@for (label of labels; track label) {
|
|
<nz-cron-expression-input
|
|
[value]="this.validateForm.controls[label].value"
|
|
[label]="label"
|
|
[disabled]="nzDisabled"
|
|
(focusEffect)="focusEffect($event)"
|
|
(blurEffect)="blurEffect()"
|
|
(getValue)="getValue($event)"
|
|
/>
|
|
}
|
|
</div>
|
|
<div
|
|
class="ant-cron-expression-label-group"
|
|
[class.ant-input-lg]="nzSize === 'large'"
|
|
[class.ant-cron-expression-label-group-default]="nzSize === 'default'"
|
|
[class.ant-input-sm]="nzSize === 'small'"
|
|
>
|
|
@for (label of labels; track label) {
|
|
<nz-cron-expression-label [type]="label" [labelFocus]="labelFocus" [locale]="locale" />
|
|
}
|
|
</div>
|
|
@if (!nzCollapseDisable) {
|
|
<nz-cron-expression-preview
|
|
[TimeList]="nextTimeList"
|
|
[visible]="validateForm.valid"
|
|
[locale]="locale"
|
|
[nzSemantic]="nzSemantic"
|
|
(loadMorePreview)="loadMorePreview()"
|
|
/>
|
|
}
|
|
</div>
|
|
@if (nzExtra) {
|
|
<div class="ant-cron-expression-map">
|
|
<ng-template [ngTemplateOutlet]="nzExtra" />
|
|
</div>
|
|
}
|
|
</div>
|
|
`, isInline: true, dependencies: [{ kind: "component", type: NzCronExpressionInputComponent, selector: "nz-cron-expression-input", inputs: ["value", "label", "disabled"], outputs: ["focusEffect", "blurEffect", "getValue"], exportAs: ["nzCronExpressionInput"] }, { kind: "component", type: NzCronExpressionLabelComponent, selector: "nz-cron-expression-label", inputs: ["type", "locale", "labelFocus"], exportAs: ["nzCronExpressionLabel"] }, { kind: "component", type: NzCronExpressionPreviewComponent, selector: "nz-cron-expression-preview", inputs: ["TimeList", "visible", "locale", "nzSemantic"], outputs: ["loadMorePreview"], exportAs: ["nzCronExpressionPreview"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
}
|
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionComponent, decorators: [{
|
|
type: Component,
|
|
args: [{
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
encapsulation: ViewEncapsulation.None,
|
|
selector: 'nz-cron-expression',
|
|
exportAs: 'nzCronExpression',
|
|
template: `
|
|
<div class="ant-cron-expression">
|
|
<div class="ant-cron-expression-content">
|
|
<div
|
|
class="ant-input ant-cron-expression-input-group"
|
|
[class.ant-input-lg]="nzSize === 'large'"
|
|
[class.ant-input-sm]="nzSize === 'small'"
|
|
[class.ant-input-borderless]="nzBorderless"
|
|
[class.ant-cron-expression-input-group-focus]="focus && !nzBorderless"
|
|
[class.ant-input-status-error]="!validateForm.valid && !nzBorderless"
|
|
[class.ant-cron-expression-input-group-error-focus]="!validateForm.valid && focus && !nzBorderless"
|
|
[class.ant-input-disabled]="nzDisabled"
|
|
>
|
|
@for (label of labels; track label) {
|
|
<nz-cron-expression-input
|
|
[value]="this.validateForm.controls[label].value"
|
|
[label]="label"
|
|
[disabled]="nzDisabled"
|
|
(focusEffect)="focusEffect($event)"
|
|
(blurEffect)="blurEffect()"
|
|
(getValue)="getValue($event)"
|
|
/>
|
|
}
|
|
</div>
|
|
<div
|
|
class="ant-cron-expression-label-group"
|
|
[class.ant-input-lg]="nzSize === 'large'"
|
|
[class.ant-cron-expression-label-group-default]="nzSize === 'default'"
|
|
[class.ant-input-sm]="nzSize === 'small'"
|
|
>
|
|
@for (label of labels; track label) {
|
|
<nz-cron-expression-label [type]="label" [labelFocus]="labelFocus" [locale]="locale" />
|
|
}
|
|
</div>
|
|
@if (!nzCollapseDisable) {
|
|
<nz-cron-expression-preview
|
|
[TimeList]="nextTimeList"
|
|
[visible]="validateForm.valid"
|
|
[locale]="locale"
|
|
[nzSemantic]="nzSemantic"
|
|
(loadMorePreview)="loadMorePreview()"
|
|
/>
|
|
}
|
|
</div>
|
|
@if (nzExtra) {
|
|
<div class="ant-cron-expression-map">
|
|
<ng-template [ngTemplateOutlet]="nzExtra" />
|
|
</div>
|
|
}
|
|
</div>
|
|
`,
|
|
providers: [
|
|
{
|
|
provide: NG_ASYNC_VALIDATORS,
|
|
useExisting: forwardRef(() => NzCronExpressionComponent),
|
|
multi: true
|
|
},
|
|
{
|
|
provide: NG_VALUE_ACCESSOR,
|
|
useExisting: forwardRef(() => NzCronExpressionComponent),
|
|
multi: true
|
|
}
|
|
],
|
|
imports: [
|
|
NzCronExpressionInputComponent,
|
|
NzCronExpressionLabelComponent,
|
|
NzCronExpressionPreviewComponent,
|
|
NgTemplateOutlet
|
|
]
|
|
}]
|
|
}], ctorParameters: () => [], propDecorators: { nzSize: [{
|
|
type: Input
|
|
}], nzType: [{
|
|
type: Input
|
|
}], nzCollapseDisable: [{
|
|
type: Input,
|
|
args: [{ transform: booleanAttribute }]
|
|
}], nzExtra: [{
|
|
type: Input
|
|
}], nzSemantic: [{
|
|
type: Input
|
|
}], nzBorderless: [{
|
|
type: Input,
|
|
args: [{ transform: booleanAttribute }]
|
|
}], nzDisabled: [{
|
|
type: Input,
|
|
args: [{ transform: booleanAttribute }]
|
|
}] } });
|
|
|
|
/**
|
|
* 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 NzCronExpressionModule {
|
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionModule, imports: [NzCronExpressionComponent,
|
|
NzCronExpressionLabelComponent,
|
|
NzCronExpressionInputComponent,
|
|
NzCronExpressionPreviewComponent], exports: [NzCronExpressionComponent] });
|
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionModule, imports: [NzCronExpressionComponent,
|
|
NzCronExpressionInputComponent,
|
|
NzCronExpressionPreviewComponent] });
|
|
}
|
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: NzCronExpressionModule, decorators: [{
|
|
type: NgModule,
|
|
args: [{
|
|
imports: [
|
|
NzCronExpressionComponent,
|
|
NzCronExpressionLabelComponent,
|
|
NzCronExpressionInputComponent,
|
|
NzCronExpressionPreviewComponent
|
|
],
|
|
exports: [NzCronExpressionComponent]
|
|
}]
|
|
}] });
|
|
|
|
/**
|
|
* 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 { NzCronExpressionComponent, NzCronExpressionModule };
|
|
//# sourceMappingURL=ng-zorro-antd-cron-expression.mjs.map
|