{"version":3,"file":"ng-zorro-antd-cron-expression.mjs","sources":["../../components/cron-expression/typings.ts","../../components/cron-expression/cron-expression-label.component.ts","../../components/cron-expression/cron-expression-input.component.ts","../../components/cron-expression/cron-expression.component.ts","../../components/cron-expression/cron-expression.module.ts","../../components/cron-expression/public-api.ts","../../components/cron-expression/ng-zorro-antd-cron-expression.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport type TimeType = 'second' | 'minute' | 'hour' | 'day' | 'month' | 'week';\n\nexport type TimeTypeError = 'secondError' | 'minuteError' | 'hourError' | 'dayError' | 'monthError' | 'weekError';\n\nexport interface CronType {\n  second?: string;\n  minute?: string;\n  hour?: string;\n  day?: string;\n  month?: string;\n  week?: string;\n}\n\nexport interface CronChangeType {\n  label: string;\n  value: string;\n}\n\nexport type NzCronExpressionSize = 'large' | 'default' | 'small';\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, OnInit } from '@angular/core';\n\nimport { NzCronExpressionLabelI18n } from 'ng-zorro-antd/i18n';\n\nimport { TimeType, TimeTypeError } from './typings';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-cron-expression-label',\n  exportAs: 'nzCronExpression',\n  template: `\n    <div\n      class=\"ant-cron-expression-label\"\n      [class.ant-cron-expression-label-foucs]=\"labelFocus === type\"\n      [class.ant-cron-expression-error]=\"!valid\"\n    >\n      <label nz-tooltip [nzTooltipTitle]=\"error\" [nzTooltipVisible]=\"!valid\" nzTooltipPlacement=\"bottom\">\n        {{ locale[type] }}\n      </label>\n    </div>\n    <ng-template #error>\n      <div class=\"ant-cron-expression-hint\" [innerHTML]=\"locale[labelError]\"></div>\n    </ng-template>\n  `\n})\nexport class NzCronExpressionLabelComponent implements OnInit {\n  @Input() type: TimeType = 'second';\n  @Input() valid: boolean = true;\n  @Input() locale!: NzCronExpressionLabelI18n;\n  @Input() labelFocus: string | null = null;\n  labelError: TimeTypeError = 'secondError';\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.labelError = `${this.type}Error`;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nimport { CronChangeType, TimeType } from './typings';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-cron-expression-input',\n  exportAs: 'nzCronExpression',\n  template: `\n    <div class=\"ant-cron-expression-input\">\n      <input\n        nz-input\n        [(ngModel)]=\"value\"\n        [name]=\"label\"\n        (focus)=\"focusInputEffect($event)\"\n        (blur)=\"blurInputEffect()\"\n        (ngModelChange)=\"setValue()\"\n      />\n    </div>\n  `\n})\nexport class NzCronExpressionInputComponent {\n  @Input() value: string = '0';\n  @Input() label: TimeType = 'second';\n  @Output() readonly focusEffect = new EventEmitter<TimeType>();\n  @Output() readonly blurEffect = new EventEmitter<void>();\n  @Output() readonly getValue = new EventEmitter<CronChangeType>();\n\n  constructor() {}\n\n  focusInputEffect(event: FocusEvent): void {\n    this.focusEffect.emit(this.label);\n    (event.target as HTMLInputElement).select();\n  }\n\n  blurInputEffect(): void {\n    this.blurEffect.emit();\n  }\n\n  setValue(): void {\n    this.getValue.emit({ label: this.label, value: this.value });\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  forwardRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {\n  AsyncValidator,\n  ControlValueAccessor,\n  FormControl,\n  NG_ASYNC_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  UntypedFormBuilder,\n  UntypedFormGroup,\n  ValidationErrors,\n  Validators\n} from '@angular/forms';\nimport { Observable, of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CronExpression, parseExpression } from 'cron-parser';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport { NzCronExpressionI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';\n\nimport { CronChangeType, CronType, NzCronExpressionSize, TimeType } from './typings';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-cron-expression',\n  exportAs: 'nzCronExpression',\n  template: `\n    <div class=\"ant-cron-expression\">\n      <div class=\"ant-cron-expression-content\">\n        <div\n          class=\"ant-cron-expression-input-group\"\n          [class.ant-cron-expression-input-group-lg]=\"nzSize === 'large'\"\n          [class.ant-cron-expression-input-group-sm]=\"nzSize === 'small'\"\n          [class.ant-cron-expression-input-group-focus]=\"focus\"\n          [class.ant-cron-expression-input-group-error]=\"!validateForm.valid\"\n          [class.ant-cron-expression-input-group-error-focus]=\"!validateForm.valid && focus\"\n        >\n          <ng-container *ngFor=\"let label of labels\">\n            <nz-cron-expression-input\n              [value]=\"this.validateForm.controls[label].value\"\n              [label]=\"label\"\n              (focusEffect)=\"focusEffect($event)\"\n              (blurEffect)=\"blurEffect()\"\n              (getValue)=\"getValue($event)\"\n            ></nz-cron-expression-input>\n          </ng-container>\n        </div>\n        <div class=\"ant-cron-expression-label-group\">\n          <ng-container *ngFor=\"let label of labels\">\n            <nz-cron-expression-label\n              [type]=\"label\"\n              [valid]=\"this.validateForm.controls[label].valid\"\n              [labelFocus]=\"labelFocus\"\n              [locale]=\"locale\"\n            ></nz-cron-expression-label>\n          </ng-container>\n        </div>\n        <nz-collapse *ngIf=\"!nzCollapseDisable\" [nzBordered]=\"false\">\n          <nz-collapse-panel [nzHeader]=\"nextDate\">\n            <ng-container *ngIf=\"validateForm.valid\">\n              <ul class=\"ant-cron-expression-preview-date\">\n                <li *ngFor=\"let dateItem of nextTimeList\">\n                  {{ dateItem | date: 'YYYY-MM-dd HH:mm:ss' }}\n                </li>\n                <li><a (click)=\"loadMorePreview()\">···</a></li>\n              </ul>\n            </ng-container>\n            <ng-container *ngIf=\"!validateForm.valid\">{{ locale.cronError }}</ng-container>\n          </nz-collapse-panel>\n        </nz-collapse>\n      </div>\n      <div class=\"ant-cron-expression-map\" *ngIf=\"nzExtra\">\n        <ng-template [ngTemplateOutlet]=\"nzExtra\"></ng-template>\n      </div>\n      <ng-template #nextDate>\n        <ng-container *ngIf=\"validateForm.valid\">\n          {{ dateTime | date: 'YYYY-MM-dd HH:mm:ss' }}\n        </ng-container>\n        <ng-container *ngIf=\"!validateForm.valid\">{{ locale.cronError }}</ng-container>\n      </ng-template>\n    </div>\n  `,\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: forwardRef(() => NzCronExpressionComponent),\n      multi: true\n    },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzCronExpressionComponent),\n      multi: true\n    }\n  ]\n})\nexport class NzCronExpressionComponent implements OnInit, ControlValueAccessor, AsyncValidator, OnDestroy {\n  @Input() nzSize: NzCronExpressionSize = 'default';\n  @Input() nzType: 'linux' | 'spring' = 'linux';\n  @Input() @InputBoolean() nzCollapseDisable: boolean = false;\n  @Input() nzExtra?: TemplateRef<void> | null = null;\n\n  locale!: NzCronExpressionI18nInterface;\n  focus: boolean = false;\n  labelFocus: TimeType | null = null;\n  validLabel: string | null = null;\n  labels: TimeType[] = [];\n  interval!: CronExpression<false>;\n  nextTimeList: Date[] = [];\n  dateTime: Date = new Date();\n  private destroy$ = new Subject<void>();\n\n  validateForm!: UntypedFormGroup;\n\n  onChange: NzSafeAny = () => {};\n  onTouch: () => void = () => null;\n\n  convertFormat(value: string): void {\n    const values = value.split(' ');\n    const valueObject: CronType = {};\n    this.labels.map((a, b) => {\n      valueObject[a] = values[b];\n    });\n    this.validateForm.patchValue(valueObject);\n  }\n\n  writeValue(value: string | null): void {\n    if (value) {\n      this.convertFormat(value);\n    }\n  }\n\n  registerOnChange(fn: NzSafeAny): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: NzSafeAny): void {\n    this.onTouch = fn;\n  }\n\n  validate(): Observable<ValidationErrors | null> {\n    if (this.validateForm.valid) {\n      return of(null);\n    } else {\n      return of({ error: true });\n    }\n  }\n\n  constructor(private formBuilder: UntypedFormBuilder, private cdr: ChangeDetectorRef, private i18n: NzI18nService) {}\n\n  ngOnInit(): void {\n    if (this.nzType === 'spring') {\n      this.labels = ['second', 'minute', 'hour', 'day', 'month', 'week'];\n      this.validateForm = this.formBuilder.group({\n        second: ['0', Validators.required, this.checkValid],\n        minute: ['*', Validators.required, this.checkValid],\n        hour: ['*', Validators.required, this.checkValid],\n        day: ['*', Validators.required, this.checkValid],\n        month: ['*', Validators.required, this.checkValid],\n        week: ['*', Validators.required, this.checkValid]\n      });\n    } else {\n      this.labels = ['minute', 'hour', 'day', 'month', 'week'];\n      this.validateForm = this.formBuilder.group({\n        minute: ['*', Validators.required, this.checkValid],\n        hour: ['*', Validators.required, this.checkValid],\n        day: ['*', Validators.required, this.checkValid],\n        month: ['*', Validators.required, this.checkValid],\n        week: ['*', Validators.required, this.checkValid]\n      });\n    }\n    this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.locale = this.i18n.getLocaleData('CronExpression');\n      this.cdr.markForCheck();\n    });\n\n    this.previewDate(this.validateForm.value);\n\n    this.validateForm.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n      this.onChange(Object.values(value).join(' '));\n      this.previewDate(value);\n      this.cdr.markForCheck();\n    });\n  }\n\n  previewDate(value: CronType): void {\n    try {\n      this.interval = parseExpression(Object.values(value).join(' '));\n      this.dateTime = this.interval.next().toDate();\n      this.nextTimeList = [\n        this.interval.next().toDate(),\n        this.interval.next().toDate(),\n        this.interval.next().toDate(),\n        this.interval.next().toDate(),\n        this.interval.next().toDate()\n      ];\n    } catch (err: NzSafeAny) {\n      return;\n    }\n  }\n\n  loadMorePreview(): void {\n    this.nextTimeList = [\n      ...this.nextTimeList,\n      this.interval.next().toDate(),\n      this.interval.next().toDate(),\n      this.interval.next().toDate(),\n      this.interval.next().toDate(),\n      this.interval.next().toDate()\n    ];\n    this.cdr.markForCheck();\n  }\n\n  focusEffect(value: TimeType): void {\n    this.focus = true;\n    this.labelFocus = value;\n    this.cdr.markForCheck();\n  }\n\n  blurEffect(): void {\n    this.focus = false;\n    this.labelFocus = null;\n    this.cdr.markForCheck();\n  }\n\n  getValue(item: CronChangeType): void {\n    this.validLabel = item.label;\n    this.validateForm.controls[item.label].patchValue(item.value);\n    this.cdr.markForCheck();\n  }\n\n  checkValid = (control: FormControl): Observable<ValidationErrors | null> => {\n    if (control.value) {\n      try {\n        const cron: string[] = [];\n        this.labels.forEach(label => {\n          label === this.validLabel ? cron.push(control.value) : cron.push('*');\n        });\n        parseExpression(cron.join(' '));\n      } catch (err: unknown) {\n        return of({ error: true });\n      }\n    }\n    return of(null);\n  };\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { NzCronExpressionInputComponent } from './cron-expression-input.component';\nimport { NzCronExpressionLabelComponent } from './cron-expression-label.component';\nimport { NzCronExpressionComponent } from './cron-expression.component';\n\n@NgModule({\n  declarations: [NzCronExpressionComponent, NzCronExpressionLabelComponent, NzCronExpressionInputComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    NzToolTipModule,\n    NzCollapseModule,\n    NzFormModule,\n    NzInputModule,\n    NzIconModule,\n    FormsModule\n  ],\n  exports: [NzCronExpressionComponent]\n})\nexport class NzCronExpressionModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './typings';\nexport * from './cron-expression.component';\nexport * from './cron-expression.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i5.NzCronExpressionLabelComponent","i6.NzCronExpressionInputComponent"],"mappings":"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"}