@acorex/components 18.15.0 → 18.15.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -6,4 +6,4 @@ export * from './lib/minutes/minutes.component';
|
|
6
6
|
export * from './lib/month/month.component';
|
7
7
|
export * from './lib/seconds/seconds.component';
|
8
8
|
export * from './lib/year/year.component';
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY3Jvbi1qb2Ivc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2Nyb24tam9iLWNvbnRhaW5lci9jcm9uLWpvYi1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nyb24tam9iLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXkvZGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ob3Vycy9ob3Vycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWludXRlcy9taW51dGVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb250aC9tb250aC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2Vjb25kcy9zZWNvbmRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi95ZWFyL3llYXIuY29tcG9uZW50JztcbiJdfQ==
|
@@ -73,7 +73,7 @@ export class AXCronJobContainerComponent {
|
|
73
73
|
MonthService,
|
74
74
|
YearService,
|
75
75
|
StringService,
|
76
|
-
], viewQueries: [{ propertyName: "tabComponent", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i6.AXCronDayComponent, selector: "ax-cron-day" }, { kind: "component", type: i7.AXCronHoursComponent, selector: "ax-cron-hours" }, { kind: "component", type: i8.AXCronMinutesComponent, selector: "ax-cron-minutes" }, { kind: "component", type: i9.AXCronMonthComponent, selector: "ax-cron-month" }, { kind: "component", type: i10.AXCronSecondsComponent, selector: "ax-cron-seconds" }, { kind: "component", type: i11.AXCronYearComponent, selector: "ax-cron-year" }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
76
|
+
], viewQueries: [{ propertyName: "tabComponent", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{display:block;border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i6.AXCronDayComponent, selector: "ax-cron-day" }, { kind: "component", type: i7.AXCronHoursComponent, selector: "ax-cron-hours" }, { kind: "component", type: i8.AXCronMinutesComponent, selector: "ax-cron-minutes" }, { kind: "component", type: i9.AXCronMonthComponent, selector: "ax-cron-month" }, { kind: "component", type: i10.AXCronSecondsComponent, selector: "ax-cron-seconds" }, { kind: "component", type: i11.AXCronYearComponent, selector: "ax-cron-year" }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
77
77
|
}
|
78
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXCronJobContainerComponent, decorators: [{
|
79
79
|
type: Component,
|
@@ -85,6 +85,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
85
85
|
MonthService,
|
86
86
|
YearService,
|
87
87
|
StringService,
|
88
|
-
], encapsulation: ViewEncapsulation.None, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"] }]
|
88
|
+
], encapsulation: ViewEncapsulation.None, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{display:block;border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"] }]
|
89
89
|
}] });
|
90
90
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1qb2ItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jcm9uLWpvYi9zcmMvbGliL2Nyb24tam9iLWNvbnRhaW5lci9jcm9uLWpvYi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Nyb24tam9iL3NyYy9saWIvY3Jvbi1qb2ItY29udGFpbmVyL2Nyb24tam9iLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQTRCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFpQm5ELE1BQU0sT0FBTywyQkFBMkI7SUFmeEM7UUFnQlksaUJBQVksR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5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WixXQUFXO1lBQ1gsYUFBYTtTQUNkLHdFQUlrQyxlQUFlLGdFQ3BDcEQsd2hEQThDQTs7MkZEWGEsMkJBQTJCO2tCQWZ2QyxTQUFTOytCQUNFLHVCQUF1QixhQUd0Qjt3QkFDVCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3FCQUNkLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsaWNrRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYVGFiTG9jYXRpb24sIEFYVGFiTG9vaywgQVhUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdHJpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vY3Jvbi1qb2Iuc2VydmljZSc7XG5pbXBvcnQgeyBEYXlTZXJ2aWNlIH0gZnJvbSAnLi4vZGF5L2RheS5zZXJ2aWNlJztcbmltcG9ydCB7IEhvdXJzU2VydmljZSB9IGZyb20gJy4uL2hvdXJzL2hvdXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWludXRlc1NlcnZpY2UgfSBmcm9tICcuLi9taW51dGVzL21pbnV0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNb250aFNlcnZpY2UgfSBmcm9tICcuLi9tb250aC9tb250aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY29uZHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2Vjb25kcy9zZWNvbmRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWWVhclNlcnZpY2UgfSBmcm9tICcuLi95ZWFyL3llYXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNyb24tam9iLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcm9uLWpvYi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY3Jvbi1qb2ItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2Vjb25kc1NlcnZpY2UsXG4gICAgTWludXRlc1NlcnZpY2UsXG4gICAgSG91cnNTZXJ2aWNlLFxuICAgIERheVNlcnZpY2UsXG4gICAgTW9udGhTZXJ2aWNlLFxuICAgIFllYXJTZXJ2aWNlLFxuICAgIFN0cmluZ1NlcnZpY2UsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ3JvbkpvYkNvbnRhaW5lckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB0YWJDb21wb25lbnQgPSB2aWV3Q2hpbGQoQVhUYWJzQ29tcG9uZW50KTtcbiAgcHJvdGVjdGVkIGFjdGl2ZVRhYiA9IHNpZ25hbCgnU2Vjb25kcycpO1xuICBwcm90ZWN0ZWQgZXhwUmVzdWx0ID0gJyogKiAqID8gKiAqIConO1xuXG4gIG9uRXhwcmVzc2lvbkNoYW5nZSA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIHRoaXMudGFiQ29tcG9uZW50KCkub25BY3RpdmVUYWJDaGFuZ2VkLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVUYWIuc2V0KGUudGFiLmtleSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvcHRpb25zID0gc2lnbmFsKHtcbiAgICBmaXQ6IHRydWUsXG4gICAgbG9vazogJ3dpdGgtbGluZScgYXMgQVhUYWJMb29rLFxuICAgIGxvY2F0aW9uOiAnYm90dG9tJyBhcyBBWFRhYkxvY2F0aW9uLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgc2Vjb25kc1NlcnZpY2UgPSBpbmplY3QoU2Vjb25kc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgbWludXRlc1NlcnZpY2UgPSBpbmplY3QoTWludXRlc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaG91cnNTZXJ2aWNlID0gaW5qZWN0KEhvdXJzU2VydmljZSk7XG4gIHByb3RlY3RlZCBtb250aFNlcnZpY2UgPSBpbmplY3QoTW9udGhTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGRheVNlcnZpY2UgPSBpbmplY3QoRGF5U2VydmljZSk7XG4gIHByb3RlY3RlZCB5ZWFyU2VydmljZSA9IGluamVjdChZZWFyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIG9uR2V0TW9kZWwoKSB7XG4gICAgY29uc3Qgc2Vjb25kc0V4cCA9IHRoaXMuc2Vjb25kc1NlcnZpY2UuZ2V0RXhwcmVzc2lvbigpO1xuICAgIGNvbnN0IG1pbnV0ZXNFeHAgPSB0aGlzLm1pbnV0ZXNTZXJ2aWNlLmdldEV4cHJlc3Npb24oKTtcbiAgICBjb25zdCBob3Vyc0V4cCA9IHRoaXMuaG91cnNTZXJ2aWNlLmdldEV4cHJlc3Npb24oKTtcbiAgICBjb25zdCBtb250aEV4cCA9IHRoaXMubW9udGhTZXJ2aWNlLmdldEV4cHJlc3Npb24oKTtcbiAgICBjb25zdCBkYXlFeHAgPSB0aGlzLmRheVNlcnZpY2UuZ2V0RXhwcmVzc2lvbigpO1xuICAgIGNvbnN0IHllYXJFeHAgPSB0aGlzLnllYXJTZXJ2aWNlLmdldEV4cHJlc3Npb24oKTtcbiAgICB0aGlzLmV4cFJlc3VsdCA9IGAke3NlY29uZHNFeHB9ICR7bWludXRlc0V4cH0gJHtob3Vyc0V4cH0gJHtkYXlFeHBbMV19ICR7bW9udGhFeHB9ICR7ZGF5RXhwWzBdfSAke3llYXJFeHB9YDtcbiAgICB0aGlzLm9uRXhwcmVzc2lvbkNoYW5nZS5lbWl0KHsgZGF0YTogdGhpcy5leHBSZXN1bHQsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXZlcnNlRXhwcmVzc2lvbihjcm9uRXhwcmVzc2lvblBhdHRlcm46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZXhwUmVzdWx0ID0gdGhpcy5kYXlTZXJ2aWNlLmV4cHJlc3Npb25WYWxpZGF0aW9uKHRoaXMuZXhwUmVzdWx0LCBjcm9uRXhwcmVzc2lvblBhdHRlcm4pO1xuICAgIHRoaXMuc2Vjb25kc1NlcnZpY2UucmV2ZXJzRXhwcmVzc2lvbihjcm9uRXhwcmVzc2lvblBhdHRlcm4pO1xuICAgIHRoaXMubWludXRlc1NlcnZpY2UucmV2ZXJzRXhwcmVzc2lvbihjcm9uRXhwcmVzc2lvblBhdHRlcm4pO1xuICAgIHRoaXMuaG91cnNTZXJ2aWNlLnJldmVyc0V4cHJlc3Npb24oY3JvbkV4cHJlc3Npb25QYXR0ZXJuKTtcbiAgICB0aGlzLmRheVNlcnZpY2UucmV2ZXJzRXhwcmVzc2lvbihjcm9uRXhwcmVzc2lvblBhdHRlcm4pO1xuICAgIHRoaXMubW9udGhTZXJ2aWNlLnJldmVyc0V4cHJlc3Npb24oY3JvbkV4cHJlc3Npb25QYXR0ZXJuKTtcbiAgICB0aGlzLnllYXJTZXJ2aWNlLnJldmVyc0V4cHJlc3Npb24oY3JvbkV4cHJlc3Npb25QYXR0ZXJuKTtcbiAgfVxufVxuIiwiPGF4LXRhYnMgW2xvb2tdPVwib3B0aW9ucygpLmxvb2tcIiBbZml0UGFyZW50XT1cIm9wdGlvbnMoKS5maXRcIiBbbG9jYXRpb25dPVwib3B0aW9ucygpLmxvY2F0aW9uXCI+XG4gIDxheC10YWItaXRlbSBrZXk9XCJTZWNvbmRzXCIgW3RleHRdPVwiJ3RpbWUuU2Vjb25kcycgfCB0cmFuc2xhdGUgfCBhc3luY1wiPiA8L2F4LXRhYi1pdGVtPlxuICA8YXgtdGFiLWl0ZW0ga2V5PVwiTWludXRlc1wiIFt0ZXh0XT1cIid0aW1lLk1pbnV0ZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj4gPC9heC10YWItaXRlbT5cbiAgPGF4LXRhYi1pdGVtIGtleT1cIkhvdXJzXCIgW3RleHRdPVwiJ3RpbWUuSG91cnMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj4gPC9heC10YWItaXRlbT5cbiAgPGF4LXRhYi1pdGVtIGtleT1cIkRheXNcIiBbdGV4dF09XCIndGltZS5EYXlzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCI+PC9heC10YWItaXRlbT5cbiAgPGF4LXRhYi1pdGVtIGtleT1cIk1vbnRoc1wiIFt0ZXh0XT1cIid0aW1lLk1vbnRocycgfCB0cmFuc2xhdGUgfCBhc3luY1wiPjwvYXgtdGFiLWl0ZW0+XG4gIDxheC10YWItaXRlbSBrZXk9XCJZZWFyc1wiIFt0ZXh0XT1cIid0aW1lLlllYXJzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCI+PC9heC10YWItaXRlbT5cbjwvYXgtdGFicz5cblxuPGRpdiBjbGFzcz1cImF4LWNyb24tdG9vbHMtY29udGFpbmVyXCI+XG4gIEBzd2l0Y2ggKGFjdGl2ZVRhYigpKSB7XG4gICAgQGNhc2UgKCdTZWNvbmRzJykge1xuICAgICAgPGF4LWNyb24tc2Vjb25kcz48L2F4LWNyb24tc2Vjb25kcz5cbiAgICB9XG4gICAgQGNhc2UgKCdNaW51dGVzJykge1xuICAgICAgPGF4LWNyb24tbWludXRlcz48L2F4LWNyb24tbWludXRlcz5cbiAgICB9XG4gICAgQGNhc2UgKCdIb3VycycpIHtcbiAgICAgIDxheC1jcm9uLWhvdXJzPjwvYXgtY3Jvbi1ob3Vycz5cbiAgICB9XG4gICAgQGNhc2UgKCdEYXlzJykge1xuICAgICAgPGF4LWNyb24tZGF5PjwvYXgtY3Jvbi1kYXk+XG4gICAgfVxuICAgIEBjYXNlICgnTW9udGhzJykge1xuICAgICAgPGF4LWNyb24tbW9udGg+PC9heC1jcm9uLW1vbnRoPlxuICAgIH1cbiAgICBAY2FzZSAoJ1llYXJzJykge1xuICAgICAgPGF4LWNyb24teWVhcj48L2F4LWNyb24teWVhcj5cbiAgICB9XG4gIH1cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYXgtYnRuLXJlc3VsdC1jb250YWluZXJcIj5cbiAgPGF4LWJ1dHRvblxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgW3RleHRdPVwiJ2dlbmVyYXRlLWV4cHJlc3Npb24nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCJcbiAgICAoY2xpY2spPVwib25HZXRNb2RlbCgpXCJcbiAgPjwvYXgtYnV0dG9uPlxuXG4gIDxkaXY+XG4gICAgPGF4LXRleHQtYm94IFtuZ01vZGVsXT1cImV4cFJlc3VsdFwiIChuZ01vZGVsQ2hhbmdlKT1cInJldmVyc2VFeHByZXNzaW9uKCRldmVudClcIj5cbiAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgPC9heC10ZXh0LWJveD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -1110,7 +1110,7 @@ class AXCronJobContainerComponent {
|
|
1110
1110
|
MonthService,
|
1111
1111
|
YearService,
|
1112
1112
|
StringService,
|
1113
|
-
], viewQueries: [{ propertyName: "tabComponent", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { 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"] }, { kind: "component", type: i4$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: AXCronDayComponent, selector: "ax-cron-day" }, { kind: "component", type: AXCronHoursComponent, selector: "ax-cron-hours" }, { kind: "component", type: AXCronMinutesComponent, selector: "ax-cron-minutes" }, { kind: "component", type: AXCronMonthComponent, selector: "ax-cron-month" }, { kind: "component", type: AXCronSecondsComponent, selector: "ax-cron-seconds" }, { kind: "component", type: AXCronYearComponent, selector: "ax-cron-year" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
1113
|
+
], viewQueries: [{ propertyName: "tabComponent", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{display:block;border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i1$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { 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"] }, { kind: "component", type: i4$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: AXCronDayComponent, selector: "ax-cron-day" }, { kind: "component", type: AXCronHoursComponent, selector: "ax-cron-hours" }, { kind: "component", type: AXCronMinutesComponent, selector: "ax-cron-minutes" }, { kind: "component", type: AXCronMonthComponent, selector: "ax-cron-month" }, { kind: "component", type: AXCronSecondsComponent, selector: "ax-cron-seconds" }, { kind: "component", type: AXCronYearComponent, selector: "ax-cron-year" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
1114
1114
|
}
|
1115
1115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXCronJobContainerComponent, decorators: [{
|
1116
1116
|
type: Component,
|
@@ -1122,7 +1122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
1122
1122
|
MonthService,
|
1123
1123
|
YearService,
|
1124
1124
|
StringService,
|
1125
|
-
], encapsulation: ViewEncapsulation.None, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"] }]
|
1125
|
+
], encapsulation: ViewEncapsulation.None, template: "<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n", styles: ["ax-cron-job-container{display:block;border:1px solid rgb(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);overflow:hidden}.ax-btn-result-container{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}.ax-btn-result-container ax-button{margin-inline-end:1rem}.ax-cron-tools-container{padding:1rem;border-bottom:1px solid rgb(var(--ax-color-border-default));overflow-x:auto}\n"] }]
|
1126
1126
|
}] });
|
1127
1127
|
|
1128
1128
|
const COMPONENT = [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-cron-job.mjs","sources":["../../../../libs/components/cron-job/src/lib/cron-job.service.ts","../../../../libs/components/cron-job/src/lib/types/shared.model.ts","../../../../libs/components/cron-job/src/lib/day/day.model.ts","../../../../libs/components/cron-job/src/lib/day/day.service.ts","../../../../libs/components/cron-job/src/lib/hours/hours.model.ts","../../../../libs/components/cron-job/src/lib/hours/hours.service.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.model.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.service.ts","../../../../libs/components/cron-job/src/lib/month/month.model.ts","../../../../libs/components/cron-job/src/lib/month/month.service.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.model.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.service.ts","../../../../libs/components/cron-job/src/lib/year/year.model.ts","../../../../libs/components/cron-job/src/lib/year/year.service.ts","../../../../libs/components/cron-job/src/lib/day/day.component.ts","../../../../libs/components/cron-job/src/lib/day/day.component.html","../../../../libs/components/cron-job/src/lib/hours/hours.component.ts","../../../../libs/components/cron-job/src/lib/hours/hours.component.html","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.html","../../../../libs/components/cron-job/src/lib/month/month.component.ts","../../../../libs/components/cron-job/src/lib/month/month.component.html","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.html","../../../../libs/components/cron-job/src/lib/year/year.component.ts","../../../../libs/components/cron-job/src/lib/year/year.component.html","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.ts","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.html","../../../../libs/components/cron-job/src/lib/cron-job.module.ts","../../../../libs/components/cron-job/src/acorex-components-cron-job.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { DropDownItem, RegexItemsIndex } from './types/shared.model';\n\n@Injectable()\nexport class StringService {\n public addComma(str: string): string {\n if (str !== '')\n // add , to end of string\n str = str.concat(',');\n\n return str;\n }\n\n getRegexItem(cronExpressionPattern: string, itemIndex: RegexItemsIndex): string {\n const expressionItemsList = cronExpressionPattern.split(' ');\n return expressionItemsList[itemIndex] ? expressionItemsList[itemIndex] : '*';\n }\n\n getIntervalCronData(regex: string): { interval: number; startAt: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '/';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n\n return item\n ? { interval: parseInt(item.split('/')[1]), startAt: parseInt(item.split('/')[0]) }\n : undefined;\n }\n\n getSpecificCronData(regex: string, dropDowndara?: Array<string>): Array<DropDownItem> | undefined {\n const regexDataList: Array<string> = regex.split(',');\n // **Regex pattern to find only digits in an array items.**\n const regexPattern = new RegExp('^[0-9]+$');\n const items = regexDataList.filter((item) => regexPattern.test(item));\n\n return items.length ? this.mapItemsToDropDownItem(items, dropDowndara) : undefined;\n }\n\n getRangeCronData(regex: string): { from: number; to: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '-';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { from: parseInt(item.split(rangePattern)[0]), to: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n getDayOfMonthCronData(regex: string): { day: number; xst: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '#';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { day: parseInt(item.split(rangePattern)[0]), xst: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n mapItemsToDropDownItem(items: Array<string>, dropDowndata?: Array<string>): Array<DropDownItem> {\n return items.map((item) => {\n if (dropDowndata) {\n const dropDownItem: string | undefined = dropDowndata[parseInt(item) - 1];\n return dropDownItem ? { id: parseInt(item), text: dropDownItem } : { id: parseInt(item), text: item };\n }\n\n return { id: parseInt(item), text: item };\n });\n }\n}\n","export class Custom {\n specific: Specific = new Specific();\n repeat: Repeat = new Repeat();\n between: Between = new Between();\n}\n\nexport class Repeat {\n isRepeat = false;\n interval = 0;\n startAt = 0;\n}\n\nexport class Specific {\n isSpecific = false;\n values: DropDownItem[] = [];\n}\n\nexport class Between {\n isBetween = false;\n from = 0;\n to = 0;\n}\n\nexport enum Type {\n Every = 'every',\n Custom = 'custom',\n}\n\nexport enum RegexItemsIndex {\n Second = 0,\n Minute = 1,\n Hour = 2,\n DayOfMonth = 3,\n Month = 4,\n DayOfWeek = 5,\n Year = 6,\n}\nexport class DropDownItem {\n constructor(\n public id: number,\n public text: string,\n ) {}\n}\n","import { DropDownItem } from '../types/shared.model';\n\nexport class Day {\n type: DayType = DayType.Every;\n baseOnWeek: BaseOnWeek = new BaseOnWeek();\n baseOnMonth: BaseOnMonth = new BaseOnMonth();\n}\n\nexport class BaseOnMonth {\n type: BaseOnMonthType = BaseOnMonthType.Last;\n custom: BaseOnMonthCustom = new BaseOnMonthCustom();\n before = 1;\n}\n\nexport class BaseOnWeek {\n type: BaseOnWeekType = BaseOnWeekType.Last;\n last: Last = new Last();\n custom: BaseOnWeekCustom = new BaseOnWeekCustom();\n}\n\nexport class BaseOnWeekCustom {\n repeat: BaseOnWeekRepeat = new BaseOnWeekRepeat();\n specific: Specific = new Specific();\n dayOfMonth: DayOfMonth = new DayOfMonth();\n}\n\nexport class BaseOnMonthCustom {\n repeat: BaseOnMonthRepeat = new BaseOnMonthRepeat();\n specific: Specific = new Specific();\n}\n\nexport class Last {\n day = 1;\n}\n\nexport class BaseRepeat {\n isRepeat = false;\n interval = 1;\n}\n\nexport class BaseOnWeekRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class BaseOnMonthRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class Specific {\n isSpecefic = false;\n values: DropDownItem[] = [];\n}\n\nexport class DayOfMonth {\n isDayOfMonth = false;\n xst = 1;\n day = 1;\n}\n\nexport enum DayType {\n Every = 'every',\n BOWeek = 'boweek',\n BOMonth = 'bomonth',\n}\n\nexport enum BaseOnWeekType {\n Last = 'last',\n Custom = 'custom',\n}\n\nexport enum BaseOnMonthType {\n Last = 'last',\n Before = 'before',\n Custom = 'custom',\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, Day, DayType } from './day.model';\n\n@Injectable()\nexport class DayService implements IExpression {\n dayModel: Day;\n daysList: Array<string> = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n constructor(private stringService: StringService) {\n this.dayModel = new Day();\n }\n\n getExpression(): any {\n let boMonthExp = '';\n let boWeekExp = '';\n if (this.dayModel.type === DayType.Every) {\n boMonthExp = '?';\n boWeekExp = '*';\n } else if (this.dayModel.type === DayType.BOMonth) {\n boWeekExp = '?';\n if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Last) {\n boMonthExp = 'L';\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Before) {\n const before = this.dayModel.baseOnMonth.before;\n\n boMonthExp = `L-${before}`;\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Custom) {\n if (this.dayModel.baseOnMonth.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnMonth.custom.repeat.interval;\n const startAt = this.dayModel.baseOnMonth.custom.repeat.startAt;\n boMonthExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnMonth.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnMonth.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boMonthExp = this.stringService.addComma(boMonthExp);\n\n boMonthExp = boMonthExp.concat(specificValues.join(','));\n }\n if (boMonthExp === '') boMonthExp = '*';\n }\n } else if (this.dayModel.type === DayType.BOWeek) {\n boMonthExp = '?';\n if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Last) {\n const lastDay = this.dayModel.baseOnWeek.last.day;\n\n boWeekExp = `${lastDay}L`;\n } else if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Custom) {\n if (this.dayModel.baseOnWeek.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnWeek.custom.repeat.interval;\n const startAt = this.dayModel.baseOnWeek.custom.repeat.startAt;\n boWeekExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnWeek.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnWeek.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boWeekExp = this.stringService.addComma(boWeekExp);\n\n boWeekExp = boWeekExp.concat(specificValues.join(','));\n }\n if (this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth) {\n boWeekExp = this.stringService.addComma(boWeekExp);\n\n const day = this.dayModel.baseOnWeek.custom.dayOfMonth.day;\n const xst = this.dayModel.baseOnWeek.custom.dayOfMonth.xst;\n\n boWeekExp = boWeekExp.concat(`${day}#${xst}`);\n }\n if (boWeekExp === '') boWeekExp = '*';\n }\n }\n\n return [boWeekExp, boMonthExp];\n }\n\n expressionValidation(preCronExpressionPattern: string, newCronExpressionPattern: string): string {\n const preCronExpressionPatternArray = preCronExpressionPattern.split(' ');\n const newCronExpressionPatternArray = newCronExpressionPattern.split(' ');\n\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isDayOfWeekChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek];\n const isDayOfMonthChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth];\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n\n if (isDayOfWeekChanged && isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfWeekChanged && !isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n if (isDayOfMonthChanged && isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfMonthChanged && !isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n return newCronExpressionPattern;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.dayModel = new Day();\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n const isEveryDay: boolean = !isBasedOnWeek && !isBasedOnMonth;\n if (isEveryDay) {\n this.dayModel.type = DayType.Every;\n return;\n }\n\n if (isBasedOnWeek) {\n this.dayModel.type = DayType.BOWeek;\n this.reversExpressionBasedOnWeek(dayOfWeekRegex);\n return;\n }\n\n if (isBasedOnMonth) {\n this.dayModel.type = DayType.BOMonth;\n this.reversExpressionBasedOnMonth(dayOfMonthRegex);\n return;\n }\n }\n\n reversExpressionBasedOnWeek(regex: string): void {\n // **Regex pattern to check id custom or not**\n const regexPattern = new RegExp('^[0-9]L$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Last;\n this.dayModel.baseOnWeek.last.day = parseInt(regex[0]);\n return;\n }\n\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnWeek.custom.repeat.isRepeat = true;\n this.dayModel.baseOnWeek.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnWeek.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnWeek.custom.specific.isSpecefic = true;\n this.dayModel.baseOnWeek.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const dayOfMonthData = this.stringService.getDayOfMonthCronData(regex);\n const hasDayOfMonthDataItem = dayOfMonthData !== undefined;\n if (hasDayOfMonthDataItem) {\n this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth = true;\n this.dayModel.baseOnWeek.custom.dayOfMonth.day = dayOfMonthData?.day as number;\n this.dayModel.baseOnWeek.custom.dayOfMonth.xst = dayOfMonthData?.xst as number;\n }\n }\n\n reversExpressionBasedOnMonth(regex: string) {\n const isLastDayOfMonth = regex == 'L';\n if (isLastDayOfMonth) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Last;\n return;\n }\n\n // **Regex pattern to check if id before or not**\n const regexPattern = new RegExp('^L-[0-9]+$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Before;\n this.dayModel.baseOnMonth.before = parseInt(regex.substr(2));\n return;\n }\n\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnMonth.custom.repeat.isRepeat = true;\n this.dayModel.baseOnMonth.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnMonth.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnMonth.custom.specific.isSpecefic = true;\n this.dayModel.baseOnMonth.custom.specific.values = specificData as Array<DropDownItem>;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Hours {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Hours } from './hours.model';\n\n@Injectable()\nexport class HoursService implements IExpression {\n hourModel: Hours;\n\n constructor(private stringService: StringService) {\n this.hourModel = new Hours();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.hourModel.type === Type.Every) {\n expression = '*';\n } else if (this.hourModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.hourModel.custom.repeat.isRepeat) {\n const interval = this.hourModel.custom.repeat.interval;\n const startAt = this.hourModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.hourModel.custom.specific.isSpecific) {\n const specificValues = this.hourModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.hourModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.hourModel.custom.between.from;\n const to = this.hourModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.hourModel = new Hours();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Hour);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.hourModel.type = Type.Every;\n return;\n }\n this.hourModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.hourModel.custom.repeat.isRepeat = true;\n this.hourModel.custom.repeat.interval = intervalData?.interval as number;\n this.hourModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.hourModel.custom.specific.isSpecific = true;\n this.hourModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.hourModel.custom.between.isBetween = true;\n this.hourModel.custom.between.from = rangeData?.from as number;\n this.hourModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Minutes {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Minutes } from './minutes.model';\n\n@Injectable()\nexport class MinutesService implements IExpression {\n minuteModel: Minutes;\n\n constructor(private stringService: StringService) {\n this.minuteModel = new Minutes();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.minuteModel.type === Type.Every) {\n expression = '*';\n } else if (this.minuteModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.minuteModel.custom.repeat.isRepeat) {\n const interval = this.minuteModel.custom.repeat.interval;\n const startAt = this.minuteModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.minuteModel.custom.specific.isSpecific) {\n const specificValues = this.minuteModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.minuteModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.minuteModel.custom.between.from;\n const to = this.minuteModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.minuteModel = new Minutes();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Minute);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.minuteModel.type = Type.Every;\n return;\n }\n this.minuteModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.minuteModel.custom.repeat.isRepeat = true;\n this.minuteModel.custom.repeat.interval = intervalData?.interval as number;\n this.minuteModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.minuteModel.custom.specific.isSpecific = true;\n this.minuteModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.minuteModel.custom.between.isBetween = true;\n this.minuteModel.custom.between.from = rangeData?.from as number;\n this.minuteModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Month {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Month } from './month.model';\n\n@Injectable()\nexport class MonthService implements IExpression {\n monthModel: Month;\n monthList: Array<string> = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n constructor(private stringService: StringService) {\n this.monthModel = new Month();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.monthModel.type === Type.Every) {\n expression = '*';\n } else if (this.monthModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.monthModel.custom.repeat.isRepeat) {\n const interval = +this.monthModel.custom.repeat.interval + 1;\n const startAt = this.monthModel.custom.repeat.startAt;\n expression = `${+startAt + 1}/${interval}`;\n }\n //isSpecific\n if (this.monthModel.custom.specific.isSpecific) {\n const specificValues = this.monthModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.monthModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.monthModel.custom.between.from;\n const to = this.monthModel.custom.between.to;\n expression = expression.concat(`${+from + 1}-${+to + 1}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.monthModel = new Month();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Month);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.monthModel.type = Type.Every;\n return;\n }\n this.monthModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.monthModel.custom.repeat.isRepeat = true;\n this.monthModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.monthModel.custom.repeat.startAt = (intervalData?.startAt as number) - 1;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.monthList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.monthModel.custom.specific.isSpecific = true;\n this.monthModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.monthModel.custom.between.isBetween = true;\n this.monthModel.custom.between.from = (rangeData?.from as number) - 1;\n this.monthModel.custom.between.to = (rangeData?.to as number) - 1;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Seconds {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Seconds } from './seconds.model';\n\n@Injectable()\nexport class SecondsService implements IExpression {\n secondModel: Seconds;\n\n constructor(private stringService: StringService) {\n this.secondModel = new Seconds();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.secondModel.type === Type.Every) {\n expression = '*';\n } else if (this.secondModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.secondModel.custom.repeat.isRepeat) {\n const interval = this.secondModel.custom.repeat.interval;\n const startAt = this.secondModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.secondModel.custom.specific.isSpecific) {\n const specificValues = this.secondModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.secondModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.secondModel.custom.between.from;\n const to = this.secondModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.secondModel = new Seconds();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Second);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.secondModel.type = Type.Every;\n return;\n }\n this.secondModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.secondModel.custom.repeat.isRepeat = true;\n this.secondModel.custom.repeat.interval = intervalData?.interval as number;\n this.secondModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.secondModel.custom.specific.isSpecific = true;\n this.secondModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.secondModel.custom.between.isBetween = true;\n this.secondModel.custom.between.from = rangeData?.from as number;\n this.secondModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import {\n Between as sharedBetween,\n Custom as sharedCustom,\n Repeat as sharedRepeat,\n Type,\n} from '../types/shared.model';\n\nexport class Year {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n\nexport class Repeat extends sharedRepeat {\n override startAt = new Date().getFullYear();\n}\n\nexport class Between extends sharedBetween {\n override from = new Date().getFullYear();\n override to = new Date().getFullYear();\n}\n\nexport class Custom extends sharedCustom {\n override repeat = new Repeat();\n override between = new Between();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Year } from './year.model';\n\n@Injectable()\nexport class YearService {\n yearModel: Year;\n\n constructor(private stringService: StringService) {\n this.yearModel = new Year();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.yearModel.type === Type.Every) {\n expression = '*';\n } else if (this.yearModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.yearModel.custom.repeat.isRepeat) {\n const interval = +this.yearModel.custom.repeat.interval + 1;\n const startAt = this.yearModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.yearModel.custom.specific.isSpecific) {\n const specificValues = this.yearModel.custom.specific.values.map((v) => {\n return v.id;\n });\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.yearModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.yearModel.custom.between.from;\n const to = this.yearModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.yearModel = new Year();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Year);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.yearModel.type = Type.Every;\n return;\n }\n this.yearModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.yearModel.custom.repeat.isRepeat = true;\n this.yearModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.yearModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.yearModel.custom.specific.isSpecific = true;\n this.yearModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.yearModel.custom.between.isBetween = true;\n this.yearModel.custom.between.from = rangeData?.from as number;\n this.yearModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, DayType } from './day.model';\nimport { DayService } from './day.service';\n\n@Component({\n selector: 'ax-cron-day',\n templateUrl: './day.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronDayComponent {\n dayService = inject(DayService);\n\n protected boWeekDropDownList: DropDownItem[] = [];\n protected boMonthDropDownList: DropDownItem[] = [];\n\n protected daysIndexInMonth: number[] = [1, 2, 3, 4, 5];\n protected zeroTo30: number[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, day] of this.daysList.entries()) this.boWeekDropDownList[i] = new DropDownItem(i + 1, day);\n\n for (let i = 0; i < 31; i++) {\n this.zeroTo30[i] = i;\n this.boMonthDropDownList[i] = new DropDownItem(i + 1, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnWeek.custom.specific.values = e.component.selectedItems;\n }\n\n protected changeHandler2(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnMonth.custom.specific.values = e.component.selectedItems;\n }\n\n protected get daysList(): Array<string> {\n return this.dayService.daysList;\n }\n\n protected get isBoWeek(): boolean {\n return this.dayService.dayModel.type === DayType.BOWeek ? true : false;\n }\n\n protected get isBoMonth(): boolean {\n return this.dayService.dayModel.type === DayType.BOMonth ? true : false;\n }\n\n protected get isBoWeekCustom(): boolean {\n return this.dayService.dayModel.baseOnWeek.type === BaseOnWeekType.Custom ? true : false;\n }\n\n protected get isBoMonthCustom(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Custom ? true : false;\n }\n\n protected get isBoMonthBefore(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Before ? true : false;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"dayService.dayModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.day' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option2\"\n value=\"boweek\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option2\">{{ 'base-on-week' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"boweek\"\n id=\"boweekLast\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n\n <label for=\"boweekLast\">{{ 'on-the-last' | translate | async }}</label>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.last.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of-the-month' | translate | async }}</span>\n </div>\n\n <div>\n <div class=\"ax-radio-container\">\n <input\n type=\"radio\"\n class=\"ax-radio\"\n name=\"boweek\"\n id=\"boweekCustom\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n <label for=\"boweekCustom\">{{ 'custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.isRepeat\"\n >\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-starting-on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.specific.isSpecefic\"\n >\n <ax-label>{{ 'specific-day-of-week' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-day' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth\"\n >\n <ax-label>{{ 'on-the' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysIndexInMonth\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.xst\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of-month' | translate | async }}</span>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option3\"\n value=\"bomonth\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option3\">{{ 'base-on-month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast2\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthLast2\">{{ 'on-the-last-day-of-the-month' | translate | async }}</label>\n </div>\n\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast\"\n value=\"before\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthBefore\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.before\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-before-the-end-of-the-month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthCustom2\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthCustom2\">{{ 'custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.isRepeat\"\n >\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-starting-on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st-of-the-month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.specific.isSpecefic\"\n >\n <ax-label>{{ 'specific-day-of-month' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"boMonthDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-day' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler2($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n </div>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { HoursService } from './hours.service';\n\n@Component({\n selector: 'ax-cron-hours',\n templateUrl: './hours.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronHoursComponent {\n hoursService = inject(HoursService);\n\n protected dropdownList: DropDownItem[] = [];\n protected zeroTo23: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 24; i++) {\n this.zeroTo23[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.hoursService.hourModel.custom.specific.values = e.component.selectedItems;\n }\n protected get isCustom(): boolean {\n return this.hoursService.hourModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.hour' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'hour-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.specific.isSpecific\">\n <ax-label>{{ 'specific-hour' | translate | async }} </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-hour' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.hour' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.hour' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MinutesService } from './minutes.service';\n\n@Component({\n selector: 'ax-cron-minutes',\n templateUrl: './minutes.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMinutesComponent {\n protected minutesService = inject(MinutesService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.minutesService.minuteModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.minutesService.minuteModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.minute' | translate | async }} </label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'minute-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"minutesService.minuteModel.custom.specific.isSpecific\"\n >\n <ax-label>{{ 'specific-minute' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-minute' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.minute' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.minute' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MonthService } from './month.service';\n\n@Component({\n selector: 'ax-cron-month',\n templateUrl: './month.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMonthComponent {\n protected monthService = inject(MonthService);\n\n protected dropdownList: DropDownItem[] = [];\n protected dropdownList2: DropDownItem[] = [];\n protected oneTo12: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList[i] = new DropDownItem(i, month);\n }\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList2[i] = new DropDownItem(i + 1, month);\n }\n\n for (let i = 0; i < 12; i++) {\n this.oneTo12[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.monthService.monthModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.monthService.monthModel.type === Type.Every ? false : true;\n }\n\n protected get monthsList(): Array<string> {\n return this.monthService.monthList;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"monthService.monthModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"monthService.monthModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo12\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'month-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.specific.isSpecific\">\n <ax-label> {{ 'specific-month' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList2\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-month' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.month' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.month' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { SecondsService } from './seconds.service';\n\n@Component({\n selector: 'ax-cron-seconds',\n templateUrl: './seconds.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronSecondsComponent {\n protected secondsService = inject(SecondsService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.secondsService.secondModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.secondsService.secondModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.second' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'second-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"secondsService.secondModel.custom.specific.isSpecific\"\n >\n <ax-label>\n {{ 'specific-second' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-second' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.second' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.second' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { YearService } from './year.service';\n\n@Component({\n selector: 'ax-cron-year',\n templateUrl: './year.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronYearComponent {\n yearService = inject(YearService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected oneTo100: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 100; i++) {\n const year = this.getYearByOffset(i);\n this.dropdownList[i] = new DropDownItem(year, year.toString());\n }\n\n for (let i = 0; i < 100; i++) {\n this.oneTo100[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.yearService.yearModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.yearService.yearModel.type === Type.Every ? false : true;\n }\n\n protected getYearByOffset(offset: number) {\n const currentYear: number = new Date().getFullYear();\n return currentYear + offset;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"yearService.yearModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.year' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"yearService.yearModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n textField=\"text\"\n valueField=\"id\"\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo100\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'year-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.specific.isSpecific\">\n <ax-label>\n {{ 'specific-year' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-year' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.year' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.year' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXClickEvent } from '@acorex/components/common';\nimport { AXTabLocation, AXTabLook, AXTabsComponent } from '@acorex/components/tabs';\nimport {\n afterNextRender,\n Component,\n inject,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { StringService } from '../cron-job.service';\nimport { DayService } from '../day/day.service';\nimport { HoursService } from '../hours/hours.service';\nimport { MinutesService } from '../minutes/minutes.service';\nimport { MonthService } from '../month/month.service';\nimport { SecondsService } from '../seconds/seconds.service';\nimport { YearService } from '../year/year.service';\n\n@Component({\n selector: 'ax-cron-job-container',\n templateUrl: './cron-job-container.component.html',\n styleUrl: './cron-job-container.component.scss',\n providers: [\n SecondsService,\n MinutesService,\n HoursService,\n DayService,\n MonthService,\n YearService,\n StringService,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronJobContainerComponent {\n protected tabComponent = viewChild(AXTabsComponent);\n protected activeTab = signal('Seconds');\n protected expResult = '* * * ? * * *';\n\n onExpressionChange = output<AXClickEvent>();\n\n #init = afterNextRender(() => {\n this.tabComponent().onActiveTabChanged.subscribe((e) => {\n this.activeTab.set(e.tab.key);\n });\n });\n\n protected options = signal({\n fit: true,\n look: 'with-line' as AXTabLook,\n location: 'bottom' as AXTabLocation,\n });\n\n protected secondsService = inject(SecondsService);\n protected minutesService = inject(MinutesService);\n protected hoursService = inject(HoursService);\n protected monthService = inject(MonthService);\n protected dayService = inject(DayService);\n protected yearService = inject(YearService);\n\n protected onGetModel() {\n const secondsExp = this.secondsService.getExpression();\n const minutesExp = this.minutesService.getExpression();\n const hoursExp = this.hoursService.getExpression();\n const monthExp = this.monthService.getExpression();\n const dayExp = this.dayService.getExpression();\n const yearExp = this.yearService.getExpression();\n this.expResult = `${secondsExp} ${minutesExp} ${hoursExp} ${dayExp[1]} ${monthExp} ${dayExp[0]} ${yearExp}`;\n this.onExpressionChange.emit({ data: this.expResult, component: this });\n }\n\n protected reverseExpression(cronExpressionPattern: string): void {\n this.expResult = this.dayService.expressionValidation(this.expResult, cronExpressionPattern);\n this.secondsService.reversExpression(cronExpressionPattern);\n this.minutesService.reversExpression(cronExpressionPattern);\n this.hoursService.reversExpression(cronExpressionPattern);\n this.dayService.reversExpression(cronExpressionPattern);\n this.monthService.reversExpression(cronExpressionPattern);\n this.yearService.reversExpression(cronExpressionPattern);\n }\n}\n","<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXCronJobContainerComponent } from './cron-job-container/cron-job-container.component';\nimport { AXCronDayComponent } from './day/day.component';\nimport { AXCronHoursComponent } from './hours/hours.component';\nimport { AXCronMinutesComponent } from './minutes/minutes.component';\nimport { AXCronMonthComponent } from './month/month.component';\nimport { AXCronSecondsComponent } from './seconds/seconds.component';\nimport { AXCronYearComponent } from './year/year.component';\n\nconst COMPONENT = [\n AXCronJobContainerComponent,\n AXCronDayComponent,\n AXCronHoursComponent,\n AXCronMinutesComponent,\n AXCronMonthComponent,\n AXCronSecondsComponent,\n AXCronYearComponent,\n];\n\nconst MODULES = [\n AXTabsModule,\n AXBadgeModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXFormModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTextBoxModule,\n AXTranslationModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES, AXButtonModule, AXLabelModule],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXCronJobModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Specific","Repeat","Between","i1.StringService","Custom","sharedRepeat","sharedBetween","sharedCustom","i1","i2","i3","i4","i5","i6.AXCronDayComponent","i7.AXCronHoursComponent","i8.AXCronMinutesComponent","i9.AXCronMonthComponent","i10.AXCronSecondsComponent","i11.AXCronYearComponent","i12","i13"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-cron-job.mjs","sources":["../../../../libs/components/cron-job/src/lib/cron-job.service.ts","../../../../libs/components/cron-job/src/lib/types/shared.model.ts","../../../../libs/components/cron-job/src/lib/day/day.model.ts","../../../../libs/components/cron-job/src/lib/day/day.service.ts","../../../../libs/components/cron-job/src/lib/hours/hours.model.ts","../../../../libs/components/cron-job/src/lib/hours/hours.service.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.model.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.service.ts","../../../../libs/components/cron-job/src/lib/month/month.model.ts","../../../../libs/components/cron-job/src/lib/month/month.service.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.model.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.service.ts","../../../../libs/components/cron-job/src/lib/year/year.model.ts","../../../../libs/components/cron-job/src/lib/year/year.service.ts","../../../../libs/components/cron-job/src/lib/day/day.component.ts","../../../../libs/components/cron-job/src/lib/day/day.component.html","../../../../libs/components/cron-job/src/lib/hours/hours.component.ts","../../../../libs/components/cron-job/src/lib/hours/hours.component.html","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.ts","../../../../libs/components/cron-job/src/lib/minutes/minutes.component.html","../../../../libs/components/cron-job/src/lib/month/month.component.ts","../../../../libs/components/cron-job/src/lib/month/month.component.html","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.ts","../../../../libs/components/cron-job/src/lib/seconds/seconds.component.html","../../../../libs/components/cron-job/src/lib/year/year.component.ts","../../../../libs/components/cron-job/src/lib/year/year.component.html","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.ts","../../../../libs/components/cron-job/src/lib/cron-job-container/cron-job-container.component.html","../../../../libs/components/cron-job/src/lib/cron-job.module.ts","../../../../libs/components/cron-job/src/acorex-components-cron-job.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { DropDownItem, RegexItemsIndex } from './types/shared.model';\n\n@Injectable()\nexport class StringService {\n public addComma(str: string): string {\n if (str !== '')\n // add , to end of string\n str = str.concat(',');\n\n return str;\n }\n\n getRegexItem(cronExpressionPattern: string, itemIndex: RegexItemsIndex): string {\n const expressionItemsList = cronExpressionPattern.split(' ');\n return expressionItemsList[itemIndex] ? expressionItemsList[itemIndex] : '*';\n }\n\n getIntervalCronData(regex: string): { interval: number; startAt: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '/';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n\n return item\n ? { interval: parseInt(item.split('/')[1]), startAt: parseInt(item.split('/')[0]) }\n : undefined;\n }\n\n getSpecificCronData(regex: string, dropDowndara?: Array<string>): Array<DropDownItem> | undefined {\n const regexDataList: Array<string> = regex.split(',');\n // **Regex pattern to find only digits in an array items.**\n const regexPattern = new RegExp('^[0-9]+$');\n const items = regexDataList.filter((item) => regexPattern.test(item));\n\n return items.length ? this.mapItemsToDropDownItem(items, dropDowndara) : undefined;\n }\n\n getRangeCronData(regex: string): { from: number; to: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '-';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { from: parseInt(item.split(rangePattern)[0]), to: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n getDayOfMonthCronData(regex: string): { day: number; xst: number } | undefined {\n const regexDataList: Array<string> = regex.split(',');\n const rangePattern = '#';\n const item = regexDataList.find((item) => item.includes(rangePattern));\n return item\n ? { day: parseInt(item.split(rangePattern)[0]), xst: parseInt(item.split(rangePattern)[1]) }\n : undefined;\n }\n\n mapItemsToDropDownItem(items: Array<string>, dropDowndata?: Array<string>): Array<DropDownItem> {\n return items.map((item) => {\n if (dropDowndata) {\n const dropDownItem: string | undefined = dropDowndata[parseInt(item) - 1];\n return dropDownItem ? { id: parseInt(item), text: dropDownItem } : { id: parseInt(item), text: item };\n }\n\n return { id: parseInt(item), text: item };\n });\n }\n}\n","export class Custom {\n specific: Specific = new Specific();\n repeat: Repeat = new Repeat();\n between: Between = new Between();\n}\n\nexport class Repeat {\n isRepeat = false;\n interval = 0;\n startAt = 0;\n}\n\nexport class Specific {\n isSpecific = false;\n values: DropDownItem[] = [];\n}\n\nexport class Between {\n isBetween = false;\n from = 0;\n to = 0;\n}\n\nexport enum Type {\n Every = 'every',\n Custom = 'custom',\n}\n\nexport enum RegexItemsIndex {\n Second = 0,\n Minute = 1,\n Hour = 2,\n DayOfMonth = 3,\n Month = 4,\n DayOfWeek = 5,\n Year = 6,\n}\nexport class DropDownItem {\n constructor(\n public id: number,\n public text: string,\n ) {}\n}\n","import { DropDownItem } from '../types/shared.model';\n\nexport class Day {\n type: DayType = DayType.Every;\n baseOnWeek: BaseOnWeek = new BaseOnWeek();\n baseOnMonth: BaseOnMonth = new BaseOnMonth();\n}\n\nexport class BaseOnMonth {\n type: BaseOnMonthType = BaseOnMonthType.Last;\n custom: BaseOnMonthCustom = new BaseOnMonthCustom();\n before = 1;\n}\n\nexport class BaseOnWeek {\n type: BaseOnWeekType = BaseOnWeekType.Last;\n last: Last = new Last();\n custom: BaseOnWeekCustom = new BaseOnWeekCustom();\n}\n\nexport class BaseOnWeekCustom {\n repeat: BaseOnWeekRepeat = new BaseOnWeekRepeat();\n specific: Specific = new Specific();\n dayOfMonth: DayOfMonth = new DayOfMonth();\n}\n\nexport class BaseOnMonthCustom {\n repeat: BaseOnMonthRepeat = new BaseOnMonthRepeat();\n specific: Specific = new Specific();\n}\n\nexport class Last {\n day = 1;\n}\n\nexport class BaseRepeat {\n isRepeat = false;\n interval = 1;\n}\n\nexport class BaseOnWeekRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class BaseOnMonthRepeat extends BaseRepeat {\n startAt = 1;\n}\n\nexport class Specific {\n isSpecefic = false;\n values: DropDownItem[] = [];\n}\n\nexport class DayOfMonth {\n isDayOfMonth = false;\n xst = 1;\n day = 1;\n}\n\nexport enum DayType {\n Every = 'every',\n BOWeek = 'boweek',\n BOMonth = 'bomonth',\n}\n\nexport enum BaseOnWeekType {\n Last = 'last',\n Custom = 'custom',\n}\n\nexport enum BaseOnMonthType {\n Last = 'last',\n Before = 'before',\n Custom = 'custom',\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, Day, DayType } from './day.model';\n\n@Injectable()\nexport class DayService implements IExpression {\n dayModel: Day;\n daysList: Array<string> = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n constructor(private stringService: StringService) {\n this.dayModel = new Day();\n }\n\n getExpression(): any {\n let boMonthExp = '';\n let boWeekExp = '';\n if (this.dayModel.type === DayType.Every) {\n boMonthExp = '?';\n boWeekExp = '*';\n } else if (this.dayModel.type === DayType.BOMonth) {\n boWeekExp = '?';\n if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Last) {\n boMonthExp = 'L';\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Before) {\n const before = this.dayModel.baseOnMonth.before;\n\n boMonthExp = `L-${before}`;\n } else if (this.dayModel.baseOnMonth.type === BaseOnMonthType.Custom) {\n if (this.dayModel.baseOnMonth.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnMonth.custom.repeat.interval;\n const startAt = this.dayModel.baseOnMonth.custom.repeat.startAt;\n boMonthExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnMonth.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnMonth.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boMonthExp = this.stringService.addComma(boMonthExp);\n\n boMonthExp = boMonthExp.concat(specificValues.join(','));\n }\n if (boMonthExp === '') boMonthExp = '*';\n }\n } else if (this.dayModel.type === DayType.BOWeek) {\n boMonthExp = '?';\n if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Last) {\n const lastDay = this.dayModel.baseOnWeek.last.day;\n\n boWeekExp = `${lastDay}L`;\n } else if (this.dayModel.baseOnWeek.type === BaseOnWeekType.Custom) {\n if (this.dayModel.baseOnWeek.custom.repeat.isRepeat) {\n const interval = this.dayModel.baseOnWeek.custom.repeat.interval;\n const startAt = this.dayModel.baseOnWeek.custom.repeat.startAt;\n boWeekExp = `${startAt}/${interval}`;\n }\n if (this.dayModel.baseOnWeek.custom.specific.isSpecefic) {\n const specificValues = this.dayModel.baseOnWeek.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) boWeekExp = this.stringService.addComma(boWeekExp);\n\n boWeekExp = boWeekExp.concat(specificValues.join(','));\n }\n if (this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth) {\n boWeekExp = this.stringService.addComma(boWeekExp);\n\n const day = this.dayModel.baseOnWeek.custom.dayOfMonth.day;\n const xst = this.dayModel.baseOnWeek.custom.dayOfMonth.xst;\n\n boWeekExp = boWeekExp.concat(`${day}#${xst}`);\n }\n if (boWeekExp === '') boWeekExp = '*';\n }\n }\n\n return [boWeekExp, boMonthExp];\n }\n\n expressionValidation(preCronExpressionPattern: string, newCronExpressionPattern: string): string {\n const preCronExpressionPatternArray = preCronExpressionPattern.split(' ');\n const newCronExpressionPatternArray = newCronExpressionPattern.split(' ');\n\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n newCronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isDayOfWeekChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek];\n const isDayOfMonthChanged =\n preCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] !==\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth];\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n\n if (isDayOfWeekChanged && isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfWeekChanged && !isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfMonth] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n if (isDayOfMonthChanged && isBasedOnWeek) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '?';\n return newCronExpressionPatternArray.join(' ');\n } else if (isDayOfMonthChanged && !isBasedOnMonth) {\n newCronExpressionPatternArray[RegexItemsIndex.DayOfWeek] = '*';\n return newCronExpressionPatternArray.join(' ');\n }\n\n return newCronExpressionPattern;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.dayModel = new Day();\n const dayOfWeekRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfWeek,\n );\n const dayOfMonthRegex: string = this.stringService.getRegexItem(\n cronExpressionPattern,\n RegexItemsIndex.DayOfMonth,\n );\n\n const isBasedOnWeek = dayOfWeekRegex !== '*' && dayOfWeekRegex !== '?';\n const isBasedOnMonth = dayOfMonthRegex !== '?';\n const isEveryDay: boolean = !isBasedOnWeek && !isBasedOnMonth;\n if (isEveryDay) {\n this.dayModel.type = DayType.Every;\n return;\n }\n\n if (isBasedOnWeek) {\n this.dayModel.type = DayType.BOWeek;\n this.reversExpressionBasedOnWeek(dayOfWeekRegex);\n return;\n }\n\n if (isBasedOnMonth) {\n this.dayModel.type = DayType.BOMonth;\n this.reversExpressionBasedOnMonth(dayOfMonthRegex);\n return;\n }\n }\n\n reversExpressionBasedOnWeek(regex: string): void {\n // **Regex pattern to check id custom or not**\n const regexPattern = new RegExp('^[0-9]L$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Last;\n this.dayModel.baseOnWeek.last.day = parseInt(regex[0]);\n return;\n }\n\n this.dayModel.baseOnWeek.type = BaseOnWeekType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnWeek.custom.repeat.isRepeat = true;\n this.dayModel.baseOnWeek.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnWeek.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnWeek.custom.specific.isSpecefic = true;\n this.dayModel.baseOnWeek.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const dayOfMonthData = this.stringService.getDayOfMonthCronData(regex);\n const hasDayOfMonthDataItem = dayOfMonthData !== undefined;\n if (hasDayOfMonthDataItem) {\n this.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth = true;\n this.dayModel.baseOnWeek.custom.dayOfMonth.day = dayOfMonthData?.day as number;\n this.dayModel.baseOnWeek.custom.dayOfMonth.xst = dayOfMonthData?.xst as number;\n }\n }\n\n reversExpressionBasedOnMonth(regex: string) {\n const isLastDayOfMonth = regex == 'L';\n if (isLastDayOfMonth) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Last;\n return;\n }\n\n // **Regex pattern to check if id before or not**\n const regexPattern = new RegExp('^L-[0-9]+$');\n const isCustom = !regexPattern.test(regex);\n if (!isCustom) {\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Before;\n this.dayModel.baseOnMonth.before = parseInt(regex.substr(2));\n return;\n }\n\n this.dayModel.baseOnMonth.type = BaseOnMonthType.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.dayModel.baseOnMonth.custom.repeat.isRepeat = true;\n this.dayModel.baseOnMonth.custom.repeat.interval = intervalData?.interval as number;\n this.dayModel.baseOnMonth.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.daysList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.dayModel.baseOnMonth.custom.specific.isSpecefic = true;\n this.dayModel.baseOnMonth.custom.specific.values = specificData as Array<DropDownItem>;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Hours {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Hours } from './hours.model';\n\n@Injectable()\nexport class HoursService implements IExpression {\n hourModel: Hours;\n\n constructor(private stringService: StringService) {\n this.hourModel = new Hours();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.hourModel.type === Type.Every) {\n expression = '*';\n } else if (this.hourModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.hourModel.custom.repeat.isRepeat) {\n const interval = this.hourModel.custom.repeat.interval;\n const startAt = this.hourModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.hourModel.custom.specific.isSpecific) {\n const specificValues = this.hourModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.hourModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.hourModel.custom.between.from;\n const to = this.hourModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.hourModel = new Hours();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Hour);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.hourModel.type = Type.Every;\n return;\n }\n this.hourModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.hourModel.custom.repeat.isRepeat = true;\n this.hourModel.custom.repeat.interval = intervalData?.interval as number;\n this.hourModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.hourModel.custom.specific.isSpecific = true;\n this.hourModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.hourModel.custom.between.isBetween = true;\n this.hourModel.custom.between.from = rangeData?.from as number;\n this.hourModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Minutes {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Minutes } from './minutes.model';\n\n@Injectable()\nexport class MinutesService implements IExpression {\n minuteModel: Minutes;\n\n constructor(private stringService: StringService) {\n this.minuteModel = new Minutes();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.minuteModel.type === Type.Every) {\n expression = '*';\n } else if (this.minuteModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.minuteModel.custom.repeat.isRepeat) {\n const interval = this.minuteModel.custom.repeat.interval;\n const startAt = this.minuteModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.minuteModel.custom.specific.isSpecific) {\n const specificValues = this.minuteModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.minuteModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.minuteModel.custom.between.from;\n const to = this.minuteModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.minuteModel = new Minutes();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Minute);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.minuteModel.type = Type.Every;\n return;\n }\n this.minuteModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.minuteModel.custom.repeat.isRepeat = true;\n this.minuteModel.custom.repeat.interval = intervalData?.interval as number;\n this.minuteModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.minuteModel.custom.specific.isSpecific = true;\n this.minuteModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.minuteModel.custom.between.isBetween = true;\n this.minuteModel.custom.between.from = rangeData?.from as number;\n this.minuteModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Month {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Month } from './month.model';\n\n@Injectable()\nexport class MonthService implements IExpression {\n monthModel: Month;\n monthList: Array<string> = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n constructor(private stringService: StringService) {\n this.monthModel = new Month();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.monthModel.type === Type.Every) {\n expression = '*';\n } else if (this.monthModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.monthModel.custom.repeat.isRepeat) {\n const interval = +this.monthModel.custom.repeat.interval + 1;\n const startAt = this.monthModel.custom.repeat.startAt;\n expression = `${+startAt + 1}/${interval}`;\n }\n //isSpecific\n if (this.monthModel.custom.specific.isSpecific) {\n const specificValues = this.monthModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.monthModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.monthModel.custom.between.from;\n const to = this.monthModel.custom.between.to;\n expression = expression.concat(`${+from + 1}-${+to + 1}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.monthModel = new Month();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Month);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.monthModel.type = Type.Every;\n return;\n }\n this.monthModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.monthModel.custom.repeat.isRepeat = true;\n this.monthModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.monthModel.custom.repeat.startAt = (intervalData?.startAt as number) - 1;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex, this.monthList);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.monthModel.custom.specific.isSpecific = true;\n this.monthModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.monthModel.custom.between.isBetween = true;\n this.monthModel.custom.between.from = (rangeData?.from as number) - 1;\n this.monthModel.custom.between.to = (rangeData?.to as number) - 1;\n }\n }\n}\n","import { Custom, Type } from '../types/shared.model';\n\nexport class Seconds {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { IExpression } from '../types/iexpression';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Seconds } from './seconds.model';\n\n@Injectable()\nexport class SecondsService implements IExpression {\n secondModel: Seconds;\n\n constructor(private stringService: StringService) {\n this.secondModel = new Seconds();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.secondModel.type === Type.Every) {\n expression = '*';\n } else if (this.secondModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.secondModel.custom.repeat.isRepeat) {\n const interval = this.secondModel.custom.repeat.interval;\n const startAt = this.secondModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.secondModel.custom.specific.isSpecific) {\n const specificValues = this.secondModel.custom.specific.values.map((v) => {\n return v.id;\n });\n\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.secondModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.secondModel.custom.between.from;\n const to = this.secondModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.secondModel = new Seconds();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Second);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.secondModel.type = Type.Every;\n return;\n }\n this.secondModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.secondModel.custom.repeat.isRepeat = true;\n this.secondModel.custom.repeat.interval = intervalData?.interval as number;\n this.secondModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.secondModel.custom.specific.isSpecific = true;\n this.secondModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.secondModel.custom.between.isBetween = true;\n this.secondModel.custom.between.from = rangeData?.from as number;\n this.secondModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import {\n Between as sharedBetween,\n Custom as sharedCustom,\n Repeat as sharedRepeat,\n Type,\n} from '../types/shared.model';\n\nexport class Year {\n type: Type = Type.Every;\n custom: Custom = new Custom();\n}\n\nexport class Repeat extends sharedRepeat {\n override startAt = new Date().getFullYear();\n}\n\nexport class Between extends sharedBetween {\n override from = new Date().getFullYear();\n override to = new Date().getFullYear();\n}\n\nexport class Custom extends sharedCustom {\n override repeat = new Repeat();\n override between = new Between();\n}\n","import { Injectable } from '@angular/core';\nimport { StringService } from '../cron-job.service';\nimport { DropDownItem, RegexItemsIndex, Type } from '../types/shared.model';\nimport { Year } from './year.model';\n\n@Injectable()\nexport class YearService {\n yearModel: Year;\n\n constructor(private stringService: StringService) {\n this.yearModel = new Year();\n }\n\n getExpression(): string {\n let expression = '';\n if (this.yearModel.type === Type.Every) {\n expression = '*';\n } else if (this.yearModel.type === Type.Custom) {\n //type is custom\n //isRepeat\n if (this.yearModel.custom.repeat.isRepeat) {\n const interval = +this.yearModel.custom.repeat.interval + 1;\n const startAt = this.yearModel.custom.repeat.startAt;\n expression = `${startAt}/${interval}`;\n }\n //isSpecific\n if (this.yearModel.custom.specific.isSpecific) {\n const specificValues = this.yearModel.custom.specific.values.map((v) => {\n return v.id;\n });\n if (specificValues.length !== 0) expression = this.stringService.addComma(expression);\n expression = expression.concat(specificValues.join(','));\n }\n //isBetween\n if (this.yearModel.custom.between.isBetween) {\n expression = this.stringService.addComma(expression);\n\n const from = this.yearModel.custom.between.from;\n const to = this.yearModel.custom.between.to;\n expression = expression.concat(`${from}-${to}`);\n }\n\n if (expression === '') expression = '*';\n }\n\n return expression;\n }\n\n reversExpression(cronExpressionPattern: string): void {\n this.yearModel = new Year();\n const regex: string = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Year);\n\n const isCustom: boolean = regex !== '*';\n if (!isCustom) {\n this.yearModel.type = Type.Every;\n return;\n }\n this.yearModel.type = Type.Custom;\n\n const intervalData = this.stringService.getIntervalCronData(regex);\n const hasIntervalItems = intervalData !== undefined;\n if (hasIntervalItems) {\n this.yearModel.custom.repeat.isRepeat = true;\n this.yearModel.custom.repeat.interval = (intervalData?.interval as number) - 1;\n this.yearModel.custom.repeat.startAt = intervalData?.startAt as number;\n }\n\n const specificData = this.stringService.getSpecificCronData(regex);\n const hasSpecificItems = specificData !== undefined;\n if (hasSpecificItems) {\n this.yearModel.custom.specific.isSpecific = true;\n this.yearModel.custom.specific.values = specificData as Array<DropDownItem>;\n }\n\n const rangeData = this.stringService.getRangeCronData(regex);\n const hasRangeItem = rangeData !== undefined;\n if (hasRangeItem) {\n this.yearModel.custom.between.isBetween = true;\n this.yearModel.custom.between.from = rangeData?.from as number;\n this.yearModel.custom.between.to = rangeData?.to as number;\n }\n }\n}\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem } from '../types/shared.model';\nimport { BaseOnMonthType, BaseOnWeekType, DayType } from './day.model';\nimport { DayService } from './day.service';\n\n@Component({\n selector: 'ax-cron-day',\n templateUrl: './day.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronDayComponent {\n dayService = inject(DayService);\n\n protected boWeekDropDownList: DropDownItem[] = [];\n protected boMonthDropDownList: DropDownItem[] = [];\n\n protected daysIndexInMonth: number[] = [1, 2, 3, 4, 5];\n protected zeroTo30: number[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, day] of this.daysList.entries()) this.boWeekDropDownList[i] = new DropDownItem(i + 1, day);\n\n for (let i = 0; i < 31; i++) {\n this.zeroTo30[i] = i;\n this.boMonthDropDownList[i] = new DropDownItem(i + 1, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnWeek.custom.specific.values = e.component.selectedItems;\n }\n\n protected changeHandler2(e: AXValueChangedEvent) {\n this.dayService.dayModel.baseOnMonth.custom.specific.values = e.component.selectedItems;\n }\n\n protected get daysList(): Array<string> {\n return this.dayService.daysList;\n }\n\n protected get isBoWeek(): boolean {\n return this.dayService.dayModel.type === DayType.BOWeek ? true : false;\n }\n\n protected get isBoMonth(): boolean {\n return this.dayService.dayModel.type === DayType.BOMonth ? true : false;\n }\n\n protected get isBoWeekCustom(): boolean {\n return this.dayService.dayModel.baseOnWeek.type === BaseOnWeekType.Custom ? true : false;\n }\n\n protected get isBoMonthCustom(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Custom ? true : false;\n }\n\n protected get isBoMonthBefore(): boolean {\n return this.dayService.dayModel.baseOnMonth.type === BaseOnMonthType.Before ? true : false;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"dayService.dayModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.day' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option2\"\n value=\"boweek\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option2\">{{ 'base-on-week' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"boweek\"\n id=\"boweekLast\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n\n <label for=\"boweekLast\">{{ 'on-the-last' | translate | async }}</label>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.last.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of-the-month' | translate | async }}</span>\n </div>\n\n <div>\n <div class=\"ax-radio-container\">\n <input\n type=\"radio\"\n class=\"ax-radio\"\n name=\"boweek\"\n id=\"boweekCustom\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.type\"\n [disabled]=\"!isBoWeek\"\n />\n <label for=\"boweekCustom\">{{ 'custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.isRepeat\"\n >\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-starting-on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.specific.isSpecefic\"\n >\n <ax-label>{{ 'specific-day-of-week' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-day' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.isDayOfMonth\"\n >\n <ax-label>{{ 'on-the' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"daysIndexInMonth\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.xst\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoWeek || !isBoWeekCustom\"\n [dataSource]=\"boWeekDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnWeek.custom.dayOfMonth.day\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'of-month' | translate | async }}</span>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"option\"\n id=\"option3\"\n value=\"bomonth\"\n [(ngModel)]=\"dayService.dayModel.type\"\n />\n <label for=\"option3\">{{ 'base-on-month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast2\"\n value=\"last\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthLast2\">{{ 'on-the-last-day-of-the-month' | translate | async }}</label>\n </div>\n\n <div class=\"ax-week-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthLast\"\n value=\"before\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthBefore\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.before\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-before-the-end-of-the-month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"bomonth\"\n id=\"bomonthCustom2\"\n value=\"custom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.type\"\n [disabled]=\"!isBoMonth\"\n />\n <label for=\"bomonthCustom2\">{{ 'custom' | translate | async }}</label>\n </div>\n\n <div class=\"ax-block-container\">\n <div class=\"ax-week-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.isRepeat\"\n >\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'day-starting-on' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"zeroTo30\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'st-of-the-month' | translate | async }}</span>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [(ngModel)]=\"dayService.dayModel.baseOnMonth.custom.specific.isSpecefic\"\n >\n <ax-label>{{ 'specific-day-of-month' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isBoMonth || !isBoMonthCustom\"\n [dataSource]=\"boMonthDropDownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-day' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler2($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n </div>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { HoursService } from './hours.service';\n\n@Component({\n selector: 'ax-cron-hours',\n templateUrl: './hours.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronHoursComponent {\n hoursService = inject(HoursService);\n\n protected dropdownList: DropDownItem[] = [];\n protected zeroTo23: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 24; i++) {\n this.zeroTo23[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.hoursService.hourModel.custom.specific.values = e.component.selectedItems;\n }\n protected get isCustom(): boolean {\n return this.hoursService.hourModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.hour' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"hoursService.hourModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'hour-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.specific.isSpecific\">\n <ax-label>{{ 'specific-hour' | translate | async }} </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-hour' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"hoursService.hourModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.hour' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.hour' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo23\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"hoursService.hourModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MinutesService } from './minutes.service';\n\n@Component({\n selector: 'ax-cron-minutes',\n templateUrl: './minutes.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMinutesComponent {\n protected minutesService = inject(MinutesService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.minutesService.minuteModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.minutesService.minuteModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.minute' | translate | async }} </label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"minutesService.minuteModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'minute-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"minutesService.minuteModel.custom.specific.isSpecific\"\n >\n <ax-label>{{ 'specific-minute' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-minute' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"minutesService.minuteModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.minute' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.minute' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"minutesService.minuteModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { MonthService } from './month.service';\n\n@Component({\n selector: 'ax-cron-month',\n templateUrl: './month.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronMonthComponent {\n protected monthService = inject(MonthService);\n\n protected dropdownList: DropDownItem[] = [];\n protected dropdownList2: DropDownItem[] = [];\n protected oneTo12: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList[i] = new DropDownItem(i, month);\n }\n for (const [i, month] of this.monthsList.entries()) {\n this.dropdownList2[i] = new DropDownItem(i + 1, month);\n }\n\n for (let i = 0; i < 12; i++) {\n this.oneTo12[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.monthService.monthModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.monthService.monthModel.type === Type.Every ? false : true;\n }\n\n protected get monthsList(): Array<string> {\n return this.monthService.monthList;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"monthService.monthModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.month' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"monthService.monthModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo12\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'month-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.specific.isSpecific\">\n <ax-label> {{ 'specific-month' | translate | async }}</ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList2\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-month' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"monthService.monthModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.month' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.month' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"monthService.monthModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { SecondsService } from './seconds.service';\n\n@Component({\n selector: 'ax-cron-seconds',\n templateUrl: './seconds.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronSecondsComponent {\n protected secondsService = inject(SecondsService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected zeroTo59: number[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 60; i++) {\n this.zeroTo59[i] = i;\n this.dropdownList[i] = new DropDownItem(i, i.toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.secondsService.secondModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.secondsService.secondModel.type === Type.Every ? false : true;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.second' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"secondsService.secondModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'second-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box\n [disabled]=\"!isCustom\"\n [(ngModel)]=\"secondsService.secondModel.custom.specific.isSpecific\"\n >\n <ax-label>\n {{ 'specific-second' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-second' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"secondsService.secondModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.second' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.second' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"zeroTo59\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"secondsService.secondModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXValueChangedEvent } from '@acorex/components/common';\nimport { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { DropDownItem, Type } from '../types/shared.model';\nimport { YearService } from './year.service';\n\n@Component({\n selector: 'ax-cron-year',\n templateUrl: './year.component.html',\n styleUrls: ['../cron-job.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronYearComponent {\n yearService = inject(YearService);\n\n protected dropdownList: DropDownItem[] = [];\n\n protected oneTo100: DropDownItem[] = [];\n\n #init = afterNextRender(() => {\n for (let i = 0; i < 100; i++) {\n const year = this.getYearByOffset(i);\n this.dropdownList[i] = new DropDownItem(year, year.toString());\n }\n\n for (let i = 0; i < 100; i++) {\n this.oneTo100[i] = new DropDownItem(i, (i + 1).toString());\n }\n });\n\n protected changeHandler(e: AXValueChangedEvent) {\n this.yearService.yearModel.custom.specific.values = e.component.selectedItems;\n }\n\n protected get isCustom(): boolean {\n return this.yearService.yearModel.type === Type.Every ? false : true;\n }\n\n protected getYearByOffset(offset: number) {\n const currentYear: number = new Date().getFullYear();\n return currentYear + offset;\n }\n}\n","<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"every\"\n id=\"option1\"\n value=\"every\"\n [(ngModel)]=\"yearService.yearModel.type\"\n checked\n />\n <label for=\"option1\">{{ 'every' | translate | async }} {{ 'time.year' | translate | async }}</label>\n</div>\n\n<div class=\"ax-radio-container\">\n <input\n class=\"ax-radio\"\n type=\"radio\"\n name=\"custom\"\n id=\"option2\"\n value=\"custom\"\n [(ngModel)]=\"yearService.yearModel.type\"\n />\n <label for=\"option2\">{{ 'custom' | translate | async }}</label>\n</div>\n\n<div class=\"ax-block-container\">\n <div class=\"ax-every-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.repeat.isRepeat\">\n <ax-label>{{ 'every' | translate | async }}</ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n textField=\"text\"\n valueField=\"id\"\n [disabled]=\"!isCustom\"\n [dataSource]=\"oneTo100\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.interval\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'year-starting' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.repeat.startAt\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-specific-container\">\n <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.specific.isSpecific\">\n <ax-label>\n {{ 'specific-year' | translate | async }}\n </ax-label>\n </ax-check-box>\n </div>\n\n <ax-form>\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [placeholder]=\"'select-year' | translate | async\"\n [multiple]=\"true\"\n (onValueChanged)=\"changeHandler($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n\n <div class=\"ax-between-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.between.isBetween\">\n <ax-label>\n {{ 'every' | translate | async }} {{ 'time.year' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.year' | translate | async }}\n </ax-label>\n </ax-check-box>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.from\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n\n <span>{{ 'and' | translate | async }}</span>\n\n <ax-form class=\"ax-sm\">\n <ax-form-field>\n <ax-select-box\n [disabled]=\"!isCustom\"\n [dataSource]=\"dropdownList\"\n textField=\"text\"\n valueField=\"id\"\n [(ngModel)]=\"yearService.yearModel.custom.between.to\"\n >\n </ax-select-box>\n </ax-form-field>\n </ax-form>\n </div>\n</div>\n","import { AXClickEvent } from '@acorex/components/common';\nimport { AXTabLocation, AXTabLook, AXTabsComponent } from '@acorex/components/tabs';\nimport {\n afterNextRender,\n Component,\n inject,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { StringService } from '../cron-job.service';\nimport { DayService } from '../day/day.service';\nimport { HoursService } from '../hours/hours.service';\nimport { MinutesService } from '../minutes/minutes.service';\nimport { MonthService } from '../month/month.service';\nimport { SecondsService } from '../seconds/seconds.service';\nimport { YearService } from '../year/year.service';\n\n@Component({\n selector: 'ax-cron-job-container',\n templateUrl: './cron-job-container.component.html',\n styleUrl: './cron-job-container.component.scss',\n providers: [\n SecondsService,\n MinutesService,\n HoursService,\n DayService,\n MonthService,\n YearService,\n StringService,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXCronJobContainerComponent {\n protected tabComponent = viewChild(AXTabsComponent);\n protected activeTab = signal('Seconds');\n protected expResult = '* * * ? * * *';\n\n onExpressionChange = output<AXClickEvent>();\n\n #init = afterNextRender(() => {\n this.tabComponent().onActiveTabChanged.subscribe((e) => {\n this.activeTab.set(e.tab.key);\n });\n });\n\n protected options = signal({\n fit: true,\n look: 'with-line' as AXTabLook,\n location: 'bottom' as AXTabLocation,\n });\n\n protected secondsService = inject(SecondsService);\n protected minutesService = inject(MinutesService);\n protected hoursService = inject(HoursService);\n protected monthService = inject(MonthService);\n protected dayService = inject(DayService);\n protected yearService = inject(YearService);\n\n protected onGetModel() {\n const secondsExp = this.secondsService.getExpression();\n const minutesExp = this.minutesService.getExpression();\n const hoursExp = this.hoursService.getExpression();\n const monthExp = this.monthService.getExpression();\n const dayExp = this.dayService.getExpression();\n const yearExp = this.yearService.getExpression();\n this.expResult = `${secondsExp} ${minutesExp} ${hoursExp} ${dayExp[1]} ${monthExp} ${dayExp[0]} ${yearExp}`;\n this.onExpressionChange.emit({ data: this.expResult, component: this });\n }\n\n protected reverseExpression(cronExpressionPattern: string): void {\n this.expResult = this.dayService.expressionValidation(this.expResult, cronExpressionPattern);\n this.secondsService.reversExpression(cronExpressionPattern);\n this.minutesService.reversExpression(cronExpressionPattern);\n this.hoursService.reversExpression(cronExpressionPattern);\n this.dayService.reversExpression(cronExpressionPattern);\n this.monthService.reversExpression(cronExpressionPattern);\n this.yearService.reversExpression(cronExpressionPattern);\n }\n}\n","<ax-tabs [look]=\"options().look\" [fitParent]=\"options().fit\" [location]=\"options().location\">\n <ax-tab-item key=\"Seconds\" [text]=\"'time.Seconds' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Minutes\" [text]=\"'time.Minutes' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Hours\" [text]=\"'time.Hours' | translate | async\"> </ax-tab-item>\n <ax-tab-item key=\"Days\" [text]=\"'time.Days' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Months\" [text]=\"'time.Months' | translate | async\"></ax-tab-item>\n <ax-tab-item key=\"Years\" [text]=\"'time.Years' | translate | async\"></ax-tab-item>\n</ax-tabs>\n\n<div class=\"ax-cron-tools-container\">\n @switch (activeTab()) {\n @case ('Seconds') {\n <ax-cron-seconds></ax-cron-seconds>\n }\n @case ('Minutes') {\n <ax-cron-minutes></ax-cron-minutes>\n }\n @case ('Hours') {\n <ax-cron-hours></ax-cron-hours>\n }\n @case ('Days') {\n <ax-cron-day></ax-cron-day>\n }\n @case ('Months') {\n <ax-cron-month></ax-cron-month>\n }\n @case ('Years') {\n <ax-cron-year></ax-cron-year>\n }\n }\n</div>\n\n<div class=\"ax-btn-result-container\">\n <ax-button\n color=\"primary\"\n [text]=\"'generate-expression' | translate | async\"\n class=\"btn btn-success\"\n (click)=\"onGetModel()\"\n ></ax-button>\n\n <div>\n <ax-text-box [ngModel]=\"expResult\" (ngModelChange)=\"reverseExpression($event)\">\n <ax-clear-button></ax-clear-button>\n </ax-text-box>\n </div>\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXCronJobContainerComponent } from './cron-job-container/cron-job-container.component';\nimport { AXCronDayComponent } from './day/day.component';\nimport { AXCronHoursComponent } from './hours/hours.component';\nimport { AXCronMinutesComponent } from './minutes/minutes.component';\nimport { AXCronMonthComponent } from './month/month.component';\nimport { AXCronSecondsComponent } from './seconds/seconds.component';\nimport { AXCronYearComponent } from './year/year.component';\n\nconst COMPONENT = [\n AXCronJobContainerComponent,\n AXCronDayComponent,\n AXCronHoursComponent,\n AXCronMinutesComponent,\n AXCronMonthComponent,\n AXCronSecondsComponent,\n AXCronYearComponent,\n];\n\nconst MODULES = [\n AXTabsModule,\n AXBadgeModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXFormModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTextBoxModule,\n AXTranslationModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES, AXButtonModule, AXLabelModule],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXCronJobModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Specific","Repeat","Between","i1.StringService","Custom","sharedRepeat","sharedBetween","sharedCustom","i1","i2","i3","i4","i5","i6.AXCronDayComponent","i7.AXCronHoursComponent","i8.AXCronMinutesComponent","i9.AXCronMonthComponent","i10.AXCronSecondsComponent","i11.AXCronYearComponent","i12","i13"],"mappings":"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"}
|