@acorex/components 18.14.0 → 18.14.1-next.1
Sign up to get free protection for your applications and to get access to all the features.
- package/calendar/lib/calendar.component.d.ts +16 -5
- package/calendar/lib/calendar.module.d.ts +2 -1
- package/check-box/lib/check-box.component.d.ts +13 -5
- package/cron-job/README.md +3 -0
- package/cron-job/index.d.ts +8 -0
- package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +31 -0
- package/cron-job/lib/cron-job.module.d.ts +25 -0
- package/cron-job/lib/cron-job.service.d.ts +22 -0
- package/cron-job/lib/day/day.component.d.ts +22 -0
- package/cron-job/lib/day/day.model.d.ts +61 -0
- package/cron-job/lib/day/day.service.d.ts +17 -0
- package/cron-job/lib/hours/hours.component.d.ts +14 -0
- package/cron-job/lib/hours/hours.model.d.ts +5 -0
- package/cron-job/lib/hours/hours.service.d.ts +13 -0
- package/cron-job/lib/minutes/minutes.component.d.ts +14 -0
- package/cron-job/lib/minutes/minutes.model.d.ts +5 -0
- package/cron-job/lib/minutes/minutes.service.d.ts +13 -0
- package/cron-job/lib/month/month.component.d.ts +16 -0
- package/cron-job/lib/month/month.model.d.ts +5 -0
- package/cron-job/lib/month/month.service.d.ts +14 -0
- package/cron-job/lib/seconds/seconds.component.d.ts +14 -0
- package/cron-job/lib/seconds/seconds.model.d.ts +5 -0
- package/cron-job/lib/seconds/seconds.service.d.ts +13 -0
- package/cron-job/lib/types/iexpression.d.ts +3 -0
- package/cron-job/lib/types/shared.model.d.ts +37 -0
- package/cron-job/lib/year/year.component.d.ts +15 -0
- package/cron-job/lib/year/year.model.d.ts +16 -0
- package/cron-job/lib/year/year.service.d.ts +12 -0
- package/datetime-input/lib/datetime-input.component.d.ts +9 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +1 -0
- package/esm2022/alert/lib/alert.component.mjs +10 -14
- package/esm2022/avatar/lib/avatar.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar.component.mjs +186 -158
- package/esm2022/calendar/lib/calendar.module.mjs +5 -4
- package/esm2022/check-box/lib/check-box.component.mjs +39 -22
- package/esm2022/common/lib/components/selection-base.component.class.mjs +2 -1
- package/esm2022/cron-job/acorex-components-cron-job.mjs +5 -0
- package/esm2022/cron-job/index.mjs +9 -0
- package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +90 -0
- package/esm2022/cron-job/lib/cron-job.module.mjs +80 -0
- package/esm2022/cron-job/lib/cron-job.service.mjs +60 -0
- package/esm2022/cron-job/lib/day/day.component.mjs +61 -0
- package/esm2022/cron-job/lib/day/day.model.mjs +88 -0
- package/esm2022/cron-job/lib/day/day.service.mjs +196 -0
- package/esm2022/cron-job/lib/hours/hours.component.mjs +38 -0
- package/esm2022/cron-job/lib/hours/hours.model.mjs +8 -0
- package/esm2022/cron-job/lib/hours/hours.service.mjs +82 -0
- package/esm2022/cron-job/lib/minutes/minutes.component.mjs +38 -0
- package/esm2022/cron-job/lib/minutes/minutes.model.mjs +8 -0
- package/esm2022/cron-job/lib/minutes/minutes.service.mjs +82 -0
- package/esm2022/cron-job/lib/month/month.component.mjs +47 -0
- package/esm2022/cron-job/lib/month/month.model.mjs +8 -0
- package/esm2022/cron-job/lib/month/month.service.mjs +96 -0
- package/esm2022/cron-job/lib/seconds/seconds.component.mjs +38 -0
- package/esm2022/cron-job/lib/seconds/seconds.model.mjs +8 -0
- package/esm2022/cron-job/lib/seconds/seconds.service.mjs +82 -0
- package/esm2022/cron-job/lib/types/iexpression.mjs +2 -0
- package/esm2022/cron-job/lib/types/shared.model.mjs +49 -0
- package/esm2022/cron-job/lib/year/year.component.mjs +45 -0
- package/esm2022/cron-job/lib/year/year.model.mjs +28 -0
- package/esm2022/cron-job/lib/year/year.service.mjs +82 -0
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +38 -10
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +17 -4
- package/esm2022/list/lib/list.component.mjs +3 -3
- package/esm2022/loading/lib/loading.component.mjs +7 -3
- package/esm2022/loading/lib/loading.service.mjs +3 -3
- package/esm2022/radio/lib/radio.component.mjs +3 -3
- package/esm2022/selection-list/lib/selection-list.component.mjs +18 -28
- package/esm2022/text-box/lib/text-box.component.mjs +11 -8
- package/esm2022/time-line/lib/time-line-item.component.mjs +3 -3
- package/esm2022/time-line/lib/time-line.component.mjs +18 -4
- package/fesm2022/acorex-components-action-sheet.mjs +1 -1
- package/fesm2022/acorex-components-alert.mjs +10 -14
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +1 -1
- package/fesm2022/acorex-components-avatar.mjs +3 -3
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +1 -1
- package/fesm2022/acorex-components-button-group.mjs +1 -1
- package/fesm2022/acorex-components-button.mjs +1 -1
- package/fesm2022/acorex-components-calendar.mjs +188 -160
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +39 -22
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +1 -1
- package/fesm2022/acorex-components-collapse.mjs +1 -1
- package/fesm2022/acorex-components-color-box.mjs +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +1 -1
- package/fesm2022/acorex-components-comment.mjs +1 -1
- package/fesm2022/acorex-components-common.mjs +2 -1
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +1191 -0
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -0
- package/fesm2022/acorex-components-data-pager.mjs +1 -1
- package/fesm2022/acorex-components-data-table.mjs +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +36 -8
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +16 -3
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -1
- package/fesm2022/acorex-components-drawer.mjs +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +1 -1
- package/fesm2022/acorex-components-form.mjs +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +1 -1
- package/fesm2022/acorex-components-image.mjs +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +1 -1
- package/fesm2022/acorex-components-label.mjs +1 -1
- package/fesm2022/acorex-components-list.mjs +3 -3
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
- package/fesm2022/acorex-components-loading.mjs +9 -5
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +1 -1
- package/fesm2022/acorex-components-menu.mjs +1 -1
- package/fesm2022/acorex-components-nav.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -1
- package/fesm2022/acorex-components-number-box.mjs +1 -1
- package/fesm2022/acorex-components-otp.mjs +1 -1
- package/fesm2022/acorex-components-page.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs +1 -1
- package/fesm2022/acorex-components-password-box.mjs +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +1 -1
- package/fesm2022/acorex-components-picker.mjs +1 -1
- package/fesm2022/acorex-components-popover.mjs +1 -1
- package/fesm2022/acorex-components-popup.mjs +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +1 -1
- package/fesm2022/acorex-components-radio.mjs +3 -3
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +1 -1
- package/fesm2022/acorex-components-result.mjs +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1 -1
- package/fesm2022/acorex-components-search-box.mjs +1 -1
- package/fesm2022/acorex-components-select-box.mjs +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +18 -28
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +1 -1
- package/fesm2022/acorex-components-slider.mjs +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +1 -1
- package/fesm2022/acorex-components-switch.mjs +1 -1
- package/fesm2022/acorex-components-tabs.mjs +1 -1
- package/fesm2022/acorex-components-tag.mjs +1 -1
- package/fesm2022/acorex-components-text-area.mjs +1 -1
- package/fesm2022/acorex-components-text-box.mjs +10 -7
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +19 -5
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +1 -1
- package/fesm2022/acorex-components-uploader.mjs +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +1 -1
- package/package.json +7 -1
- package/selection-list/lib/selection-list.component.d.ts +4 -12
- package/text-box/lib/text-box.component.d.ts +2 -2
- package/time-line/lib/time-line.component.d.ts +2 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
import { afterNextRender, Component, inject, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { DropDownItem, Type } from '../types/shared.model';
|
3
|
+
import { YearService } from './year.service';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@acorex/components/decorators";
|
6
|
+
import * as i2 from "@angular/forms";
|
7
|
+
import * as i3 from "@acorex/components/select-box";
|
8
|
+
import * as i4 from "@acorex/components/form";
|
9
|
+
import * as i5 from "@acorex/components/check-box";
|
10
|
+
import * as i6 from "@angular/common";
|
11
|
+
import * as i7 from "@acorex/core/translation";
|
12
|
+
export class AXCronYearComponent {
|
13
|
+
constructor() {
|
14
|
+
this.yearService = inject(YearService);
|
15
|
+
this.dropdownList = [];
|
16
|
+
this.oneTo100 = [];
|
17
|
+
this.#init = afterNextRender(() => {
|
18
|
+
for (let i = 0; i < 100; i++) {
|
19
|
+
const year = this.getYearByOffset(i);
|
20
|
+
this.dropdownList[i] = new DropDownItem(year, year.toString());
|
21
|
+
}
|
22
|
+
for (let i = 0; i < 100; i++) {
|
23
|
+
this.oneTo100[i] = new DropDownItem(i, (i + 1).toString());
|
24
|
+
}
|
25
|
+
});
|
26
|
+
}
|
27
|
+
#init;
|
28
|
+
changeHandler(e) {
|
29
|
+
this.yearService.yearModel.custom.specific.values = e.component.selectedItems;
|
30
|
+
}
|
31
|
+
get isCustom() {
|
32
|
+
return this.yearService.yearModel.type === Type.Every ? false : true;
|
33
|
+
}
|
34
|
+
getYearByOffset(offset) {
|
35
|
+
const currentYear = new Date().getFullYear();
|
36
|
+
return currentYear + offset;
|
37
|
+
}
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXCronYearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXCronYearComponent, selector: "ax-cron-year", ngImport: i0, template: "<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>{{ '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>{{ '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-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\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(s) starting at year' | 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-check-box>\n <label>\n {{ 'Specific year(s) (choose one or many)' | translate | async }}\n </label>\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(s)' | 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 <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.year' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.year' | translate | async }}\n </label>\n </div>\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", styles: ["ax-cron-day .ax-radio-container,ax-cron-hours .ax-radio-container,ax-cron-minutes .ax-radio-container,ax-cron-month .ax-radio-container,ax-cron-seconds .ax-radio-container,ax-cron-year .ax-radio-container{margin-bottom:.5rem;display:flex;align-items:center}ax-cron-day .ax-radio-container input,ax-cron-hours .ax-radio-container input,ax-cron-minutes .ax-radio-container input,ax-cron-month .ax-radio-container input,ax-cron-seconds .ax-radio-container input,ax-cron-year .ax-radio-container input{margin-inline-end:.5rem}ax-cron-day .ax-block-container,ax-cron-hours .ax-block-container,ax-cron-minutes .ax-block-container,ax-cron-month .ax-block-container,ax-cron-seconds .ax-block-container,ax-cron-year .ax-block-container{padding-inline-start:1.5rem}ax-cron-day .ax-block-container .ax-every-container,ax-cron-hours .ax-block-container .ax-every-container,ax-cron-minutes .ax-block-container .ax-every-container,ax-cron-month .ax-block-container .ax-every-container,ax-cron-seconds .ax-block-container .ax-every-container,ax-cron-year .ax-block-container .ax-every-container{display:flex;align-items:center}ax-cron-day .ax-block-container .ax-every-container ax-form,ax-cron-hours .ax-block-container .ax-every-container ax-form,ax-cron-minutes .ax-block-container .ax-every-container ax-form,ax-cron-month .ax-block-container .ax-every-container ax-form,ax-cron-seconds .ax-block-container .ax-every-container ax-form,ax-cron-year .ax-block-container .ax-every-container ax-form{width:fit-content;margin-inline:.5rem}ax-cron-day .ax-block-container .ax-specific-container,ax-cron-hours .ax-block-container .ax-specific-container,ax-cron-minutes .ax-block-container .ax-specific-container,ax-cron-month .ax-block-container .ax-specific-container,ax-cron-seconds .ax-block-container .ax-specific-container,ax-cron-year .ax-block-container .ax-specific-container{margin-block:.5rem}ax-cron-day .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-hours .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-minutes .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-month .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-seconds .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-year .ax-block-container .ax-specific-container .ax-flex-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-between-container,ax-cron-hours .ax-block-container .ax-between-container,ax-cron-minutes .ax-block-container .ax-between-container,ax-cron-month .ax-block-container .ax-between-container,ax-cron-seconds .ax-block-container .ax-between-container,ax-cron-year .ax-block-container .ax-between-container{display:flex;align-items:center}ax-cron-day .ax-block-container .ax-between-container .ax-flex-container,ax-cron-hours .ax-block-container .ax-between-container .ax-flex-container,ax-cron-minutes .ax-block-container .ax-between-container .ax-flex-container,ax-cron-month .ax-block-container .ax-between-container .ax-flex-container,ax-cron-seconds .ax-block-container .ax-between-container .ax-flex-container,ax-cron-year .ax-block-container .ax-between-container .ax-flex-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-between-container ax-form,ax-cron-hours .ax-block-container .ax-between-container ax-form,ax-cron-minutes .ax-block-container .ax-between-container ax-form,ax-cron-month .ax-block-container .ax-between-container ax-form,ax-cron-seconds .ax-block-container .ax-between-container ax-form,ax-cron-year .ax-block-container .ax-between-container ax-form{width:fit-content;margin-inline:.5rem}ax-cron-day .ax-block-container .ax-week-container,ax-cron-hours .ax-block-container .ax-week-container,ax-cron-minutes .ax-block-container .ax-week-container,ax-cron-month .ax-block-container .ax-week-container,ax-cron-seconds .ax-block-container .ax-week-container,ax-cron-year .ax-block-container .ax-week-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-week-container ax-form,ax-cron-hours .ax-block-container .ax-week-container ax-form,ax-cron-minutes .ax-block-container .ax-week-container ax-form,ax-cron-month .ax-block-container .ax-week-container ax-form,ax-cron-seconds .ax-block-container .ax-week-container ax-form,ax-cron-year .ax-block-container .ax-week-container ax-form{width:fit-content;margin-inline:.5rem}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i4.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i4.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: i5.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
40
|
+
}
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXCronYearComponent, decorators: [{
|
42
|
+
type: Component,
|
43
|
+
args: [{ selector: 'ax-cron-year', encapsulation: ViewEncapsulation.None, template: "<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>{{ '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>{{ '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-check-box>\n\n <span>{{ 'Every' | translate | async }}</span>\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(s) starting at year' | 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-check-box>\n <label>\n {{ 'Specific year(s) (choose one or many)' | translate | async }}\n </label>\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(s)' | 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 <div class=\"ax-flex-container\">\n <ax-check-box [disabled]=\"!isCustom\" [(ngModel)]=\"yearService.yearModel.custom.between.isBetween\">\n </ax-check-box>\n <label>\n {{ 'Every' | translate | async }} {{ 'time.year' | translate | async }}\n {{ 'between' | translate | async }} {{ 'time.year' | translate | async }}\n </label>\n </div>\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", styles: ["ax-cron-day .ax-radio-container,ax-cron-hours .ax-radio-container,ax-cron-minutes .ax-radio-container,ax-cron-month .ax-radio-container,ax-cron-seconds .ax-radio-container,ax-cron-year .ax-radio-container{margin-bottom:.5rem;display:flex;align-items:center}ax-cron-day .ax-radio-container input,ax-cron-hours .ax-radio-container input,ax-cron-minutes .ax-radio-container input,ax-cron-month .ax-radio-container input,ax-cron-seconds .ax-radio-container input,ax-cron-year .ax-radio-container input{margin-inline-end:.5rem}ax-cron-day .ax-block-container,ax-cron-hours .ax-block-container,ax-cron-minutes .ax-block-container,ax-cron-month .ax-block-container,ax-cron-seconds .ax-block-container,ax-cron-year .ax-block-container{padding-inline-start:1.5rem}ax-cron-day .ax-block-container .ax-every-container,ax-cron-hours .ax-block-container .ax-every-container,ax-cron-minutes .ax-block-container .ax-every-container,ax-cron-month .ax-block-container .ax-every-container,ax-cron-seconds .ax-block-container .ax-every-container,ax-cron-year .ax-block-container .ax-every-container{display:flex;align-items:center}ax-cron-day .ax-block-container .ax-every-container ax-form,ax-cron-hours .ax-block-container .ax-every-container ax-form,ax-cron-minutes .ax-block-container .ax-every-container ax-form,ax-cron-month .ax-block-container .ax-every-container ax-form,ax-cron-seconds .ax-block-container .ax-every-container ax-form,ax-cron-year .ax-block-container .ax-every-container ax-form{width:fit-content;margin-inline:.5rem}ax-cron-day .ax-block-container .ax-specific-container,ax-cron-hours .ax-block-container .ax-specific-container,ax-cron-minutes .ax-block-container .ax-specific-container,ax-cron-month .ax-block-container .ax-specific-container,ax-cron-seconds .ax-block-container .ax-specific-container,ax-cron-year .ax-block-container .ax-specific-container{margin-block:.5rem}ax-cron-day .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-hours .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-minutes .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-month .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-seconds .ax-block-container .ax-specific-container .ax-flex-container,ax-cron-year .ax-block-container .ax-specific-container .ax-flex-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-between-container,ax-cron-hours .ax-block-container .ax-between-container,ax-cron-minutes .ax-block-container .ax-between-container,ax-cron-month .ax-block-container .ax-between-container,ax-cron-seconds .ax-block-container .ax-between-container,ax-cron-year .ax-block-container .ax-between-container{display:flex;align-items:center}ax-cron-day .ax-block-container .ax-between-container .ax-flex-container,ax-cron-hours .ax-block-container .ax-between-container .ax-flex-container,ax-cron-minutes .ax-block-container .ax-between-container .ax-flex-container,ax-cron-month .ax-block-container .ax-between-container .ax-flex-container,ax-cron-seconds .ax-block-container .ax-between-container .ax-flex-container,ax-cron-year .ax-block-container .ax-between-container .ax-flex-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-between-container ax-form,ax-cron-hours .ax-block-container .ax-between-container ax-form,ax-cron-minutes .ax-block-container .ax-between-container ax-form,ax-cron-month .ax-block-container .ax-between-container ax-form,ax-cron-seconds .ax-block-container .ax-between-container ax-form,ax-cron-year .ax-block-container .ax-between-container ax-form{width:fit-content;margin-inline:.5rem}ax-cron-day .ax-block-container .ax-week-container,ax-cron-hours .ax-block-container .ax-week-container,ax-cron-minutes .ax-block-container .ax-week-container,ax-cron-month .ax-block-container .ax-week-container,ax-cron-seconds .ax-block-container .ax-week-container,ax-cron-year .ax-block-container .ax-week-container{display:flex;align-items:center;margin-bottom:.5rem}ax-cron-day .ax-block-container .ax-week-container ax-form,ax-cron-hours .ax-block-container .ax-week-container ax-form,ax-cron-minutes .ax-block-container .ax-week-container ax-form,ax-cron-month .ax-block-container .ax-week-container ax-form,ax-cron-seconds .ax-block-container .ax-week-container ax-form,ax-cron-year .ax-block-container .ax-week-container ax-form{width:fit-content;margin-inline:.5rem}\n"] }]
|
44
|
+
}] });
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY3Jvbi1qb2Ivc3JjL2xpYi95ZWFyL3llYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Nyb24tam9iL3NyYy9saWIveWVhci95ZWFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFPRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4QixpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFFbEMsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFFeEMsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzdELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztLQWNKO0lBdkJDLEtBQUssQ0FTRjtJQUVPLGFBQWEsQ0FBQyxDQUFzQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxlQUFlLENBQUMsTUFBYztRQUN0QyxNQUFNLFdBQVcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JELE9BQU8sV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM5QixDQUFDOzhHQTdCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixvRENYaEMsc21IQThIQTs7MkZEbkhhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxjQUFjLGlCQUdULGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJvcERvd25JdGVtLCBUeXBlIH0gZnJvbSAnLi4vdHlwZXMvc2hhcmVkLm1vZGVsJztcbmltcG9ydCB7IFllYXJTZXJ2aWNlIH0gZnJvbSAnLi95ZWFyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jcm9uLXllYXInLFxuICB0ZW1wbGF0ZVVybDogJy4veWVhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jcm9uLWpvYi5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ3JvblllYXJDb21wb25lbnQge1xuICB5ZWFyU2VydmljZSA9IGluamVjdChZZWFyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGRyb3Bkb3duTGlzdDogRHJvcERvd25JdGVtW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgb25lVG8xMDA6IERyb3BEb3duSXRlbVtdID0gW107XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHtcbiAgICAgIGNvbnN0IHllYXIgPSB0aGlzLmdldFllYXJCeU9mZnNldChpKTtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0W2ldID0gbmV3IERyb3BEb3duSXRlbSh5ZWFyLCB5ZWFyLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHtcbiAgICAgIHRoaXMub25lVG8xMDBbaV0gPSBuZXcgRHJvcERvd25JdGVtKGksIChpICsgMSkudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgY2hhbmdlSGFuZGxlcihlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy55ZWFyU2VydmljZS55ZWFyTW9kZWwuY3VzdG9tLnNwZWNpZmljLnZhbHVlcyA9IGUuY29tcG9uZW50LnNlbGVjdGVkSXRlbXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzQ3VzdG9tKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnllYXJTZXJ2aWNlLnllYXJNb2RlbC50eXBlID09PSBUeXBlLkV2ZXJ5ID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFllYXJCeU9mZnNldChvZmZzZXQ6IG51bWJlcikge1xuICAgIGNvbnN0IGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGN1cnJlbnRZZWFyICsgb2Zmc2V0O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtcmFkaW8tY29udGFpbmVyXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiYXgtcmFkaW9cIlxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgbmFtZT1cImV2ZXJ5XCJcbiAgICBpZD1cIm9wdGlvbjFcIlxuICAgIHZhbHVlPVwiZXZlcnlcIlxuICAgIFsobmdNb2RlbCldPVwieWVhclNlcnZpY2UueWVhck1vZGVsLnR5cGVcIlxuICAgIGNoZWNrZWRcbiAgLz5cbiAgPGxhYmVsPnt7ICdFdmVyeScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fSB7eyAndGltZS55ZWFyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYXgtcmFkaW8tY29udGFpbmVyXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiYXgtcmFkaW9cIlxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgbmFtZT1cImN1c3RvbVwiXG4gICAgaWQ9XCJvcHRpb24yXCJcbiAgICB2YWx1ZT1cImN1c3RvbVwiXG4gICAgWyhuZ01vZGVsKV09XCJ5ZWFyU2VydmljZS55ZWFyTW9kZWwudHlwZVwiXG4gIC8+XG4gIDxsYWJlbD57eyAnQ3VzdG9tJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYXgtYmxvY2stY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1ldmVyeS1jb250YWluZXJcIj5cbiAgICA8YXgtY2hlY2stYm94IFtkaXNhYmxlZF09XCIhaXNDdXN0b21cIiBbKG5nTW9kZWwpXT1cInllYXJTZXJ2aWNlLnllYXJNb2RlbC5jdXN0b20ucmVwZWF0LmlzUmVwZWF0XCI+XG4gICAgPC9heC1jaGVjay1ib3g+XG5cbiAgICA8c3Bhbj57eyAnRXZlcnknIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG5cbiAgICA8YXgtZm9ybSBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgICB2YWx1ZUZpZWxkPVwiaWRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNDdXN0b21cIlxuICAgICAgICAgIFtkYXRhU291cmNlXT1cIm9uZVRvMTAwXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInllYXJTZXJ2aWNlLnllYXJNb2RlbC5jdXN0b20ucmVwZWF0LmludGVydmFsXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgPC9heC1mb3JtPlxuXG4gICAgPHNwYW4+e3sgJ3llYXIocykgc3RhcnRpbmcgYXQgeWVhcicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cblxuICAgIDxheC1mb3JtIGNsYXNzPVwiYXgtc21cIj5cbiAgICAgIDxheC1mb3JtLWZpZWxkPlxuICAgICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNDdXN0b21cIlxuICAgICAgICAgIFtkYXRhU291cmNlXT1cImRyb3Bkb3duTGlzdFwiXG4gICAgICAgICAgdGV4dEZpZWxkPVwidGV4dFwiXG4gICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInllYXJTZXJ2aWNlLnllYXJNb2RlbC5jdXN0b20ucmVwZWF0LnN0YXJ0QXRcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICA8L2F4LWZvcm0+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJheC1zcGVjaWZpYy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC1jb250YWluZXJcIj5cbiAgICAgIDxheC1jaGVjay1ib3ggW2Rpc2FibGVkXT1cIiFpc0N1c3RvbVwiIFsobmdNb2RlbCldPVwieWVhclNlcnZpY2UueWVhck1vZGVsLmN1c3RvbS5zcGVjaWZpYy5pc1NwZWNpZmljXCI+XG4gICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAge3sgJ1NwZWNpZmljIHllYXIocykgKGNob29zZSBvbmUgb3IgbWFueSknIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8YXgtZm9ybT5cbiAgICAgIDxheC1mb3JtLWZpZWxkPlxuICAgICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNDdXN0b21cIlxuICAgICAgICAgIFtkYXRhU291cmNlXT1cImRyb3Bkb3duTGlzdFwiXG4gICAgICAgICAgdGV4dEZpZWxkPVwidGV4dFwiXG4gICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlbGVjdCB5ZWFyKHMpJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNoYW5nZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgPC9heC1mb3JtPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYXgtYmV0d2Vlbi1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC1jb250YWluZXJcIj5cbiAgICAgIDxheC1jaGVjay1ib3ggW2Rpc2FibGVkXT1cIiFpc0N1c3RvbVwiIFsobmdNb2RlbCldPVwieWVhclNlcnZpY2UueWVhck1vZGVsLmN1c3RvbS5iZXR3ZWVuLmlzQmV0d2VlblwiPlxuICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIHt7ICdFdmVyeScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fSB7eyAndGltZS55ZWFyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgIHt7ICdiZXR3ZWVuJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IHt7ICd0aW1lLnllYXInIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8YXgtZm9ybSBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzQ3VzdG9tXCJcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkcm9wZG93bkxpc3RcIlxuICAgICAgICAgIHRleHRGaWVsZD1cInRleHRcIlxuICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ5ZWFyU2VydmljZS55ZWFyTW9kZWwuY3VzdG9tLmJldHdlZW4uZnJvbVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgIDwvYXgtZm9ybT5cblxuICAgIDxzcGFuPnt7ICdhbmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG5cbiAgICA8YXgtZm9ybSBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzQ3VzdG9tXCJcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkcm9wZG93bkxpc3RcIlxuICAgICAgICAgIHRleHRGaWVsZD1cInRleHRcIlxuICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ5ZWFyU2VydmljZS55ZWFyTW9kZWwuY3VzdG9tLmJldHdlZW4udG9cIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICA8L2F4LWZvcm0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { Between as sharedBetween, Custom as sharedCustom, Repeat as sharedRepeat, Type, } from '../types/shared.model';
|
2
|
+
export class Year {
|
3
|
+
constructor() {
|
4
|
+
this.type = Type.Every;
|
5
|
+
this.custom = new Custom();
|
6
|
+
}
|
7
|
+
}
|
8
|
+
export class Repeat extends sharedRepeat {
|
9
|
+
constructor() {
|
10
|
+
super(...arguments);
|
11
|
+
this.startAt = new Date().getFullYear();
|
12
|
+
}
|
13
|
+
}
|
14
|
+
export class Between extends sharedBetween {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments);
|
17
|
+
this.from = new Date().getFullYear();
|
18
|
+
this.to = new Date().getFullYear();
|
19
|
+
}
|
20
|
+
}
|
21
|
+
export class Custom extends sharedCustom {
|
22
|
+
constructor() {
|
23
|
+
super(...arguments);
|
24
|
+
this.repeat = new Repeat();
|
25
|
+
this.between = new Between();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jcm9uLWpvYi9zcmMvbGliL3llYXIveWVhci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsT0FBTyxJQUFJLGFBQWEsRUFDeEIsTUFBTSxJQUFJLFlBQVksRUFDdEIsTUFBTSxJQUFJLFlBQVksRUFDdEIsSUFBSSxHQUNMLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxPQUFPLElBQUk7SUFBakI7UUFDRSxTQUFJLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sTUFBTyxTQUFRLFlBQVk7SUFBeEM7O1FBQ1csWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0lBQTFDOztRQUNXLFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxNQUFPLFNBQVEsWUFBWTtJQUF4Qzs7UUFDVyxXQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCZXR3ZWVuIGFzIHNoYXJlZEJldHdlZW4sXG4gIEN1c3RvbSBhcyBzaGFyZWRDdXN0b20sXG4gIFJlcGVhdCBhcyBzaGFyZWRSZXBlYXQsXG4gIFR5cGUsXG59IGZyb20gJy4uL3R5cGVzL3NoYXJlZC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBZZWFyIHtcbiAgdHlwZTogVHlwZSA9IFR5cGUuRXZlcnk7XG4gIGN1c3RvbTogQ3VzdG9tID0gbmV3IEN1c3RvbSgpO1xufVxuXG5leHBvcnQgY2xhc3MgUmVwZWF0IGV4dGVuZHMgc2hhcmVkUmVwZWF0IHtcbiAgb3ZlcnJpZGUgc3RhcnRBdCA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbn1cblxuZXhwb3J0IGNsYXNzIEJldHdlZW4gZXh0ZW5kcyBzaGFyZWRCZXR3ZWVuIHtcbiAgb3ZlcnJpZGUgZnJvbSA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgb3ZlcnJpZGUgdG8gPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b20gZXh0ZW5kcyBzaGFyZWRDdXN0b20ge1xuICBvdmVycmlkZSByZXBlYXQgPSBuZXcgUmVwZWF0KCk7XG4gIG92ZXJyaWRlIGJldHdlZW4gPSBuZXcgQmV0d2VlbigpO1xufVxuIl19
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { StringService } from '../cron-job.service';
|
3
|
+
import { RegexItemsIndex, Type } from '../types/shared.model';
|
4
|
+
import { Year } from './year.model';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "../cron-job.service";
|
7
|
+
export class YearService {
|
8
|
+
constructor(stringService) {
|
9
|
+
this.stringService = stringService;
|
10
|
+
this.yearModel = new Year();
|
11
|
+
}
|
12
|
+
getExpression() {
|
13
|
+
let expression = '';
|
14
|
+
if (this.yearModel.type === Type.Every) {
|
15
|
+
expression = '*';
|
16
|
+
}
|
17
|
+
else if (this.yearModel.type === Type.Custom) {
|
18
|
+
//type is custom
|
19
|
+
//isRepeat
|
20
|
+
if (this.yearModel.custom.repeat.isRepeat) {
|
21
|
+
const interval = +this.yearModel.custom.repeat.interval + 1;
|
22
|
+
const startAt = this.yearModel.custom.repeat.startAt;
|
23
|
+
expression = `${startAt}/${interval}`;
|
24
|
+
}
|
25
|
+
//isSpecific
|
26
|
+
if (this.yearModel.custom.specific.isSpecific) {
|
27
|
+
const specificValues = this.yearModel.custom.specific.values.map((v) => {
|
28
|
+
return v.id;
|
29
|
+
});
|
30
|
+
if (specificValues.length !== 0)
|
31
|
+
expression = this.stringService.addComma(expression);
|
32
|
+
expression = expression.concat(specificValues.join(','));
|
33
|
+
}
|
34
|
+
//isBetween
|
35
|
+
if (this.yearModel.custom.between.isBetween) {
|
36
|
+
expression = this.stringService.addComma(expression);
|
37
|
+
const from = this.yearModel.custom.between.from;
|
38
|
+
const to = this.yearModel.custom.between.to;
|
39
|
+
expression = expression.concat(`${from}-${to}`);
|
40
|
+
}
|
41
|
+
if (expression === '')
|
42
|
+
expression = '*';
|
43
|
+
}
|
44
|
+
return expression;
|
45
|
+
}
|
46
|
+
reversExpression(cronExpressionPattern) {
|
47
|
+
this.yearModel = new Year();
|
48
|
+
const regex = this.stringService.getRegexItem(cronExpressionPattern, RegexItemsIndex.Year);
|
49
|
+
const isCustom = regex !== '*';
|
50
|
+
if (!isCustom) {
|
51
|
+
this.yearModel.type = Type.Every;
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
this.yearModel.type = Type.Custom;
|
55
|
+
const intervalData = this.stringService.getIntervalCronData(regex);
|
56
|
+
const hasIntervalItems = intervalData !== undefined;
|
57
|
+
if (hasIntervalItems) {
|
58
|
+
this.yearModel.custom.repeat.isRepeat = true;
|
59
|
+
this.yearModel.custom.repeat.interval = intervalData?.interval - 1;
|
60
|
+
this.yearModel.custom.repeat.startAt = intervalData?.startAt;
|
61
|
+
}
|
62
|
+
const specificData = this.stringService.getSpecificCronData(regex);
|
63
|
+
const hasSpecificItems = specificData !== undefined;
|
64
|
+
if (hasSpecificItems) {
|
65
|
+
this.yearModel.custom.specific.isSpecific = true;
|
66
|
+
this.yearModel.custom.specific.values = specificData;
|
67
|
+
}
|
68
|
+
const rangeData = this.stringService.getRangeCronData(regex);
|
69
|
+
const hasRangeItem = rangeData !== undefined;
|
70
|
+
if (hasRangeItem) {
|
71
|
+
this.yearModel.custom.between.isBetween = true;
|
72
|
+
this.yearModel.custom.between.from = rangeData?.from;
|
73
|
+
this.yearModel.custom.between.to = rangeData?.to;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: YearService, deps: [{ token: i1.StringService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
77
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: YearService }); }
|
78
|
+
}
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: YearService, decorators: [{
|
80
|
+
type: Injectable
|
81
|
+
}], ctorParameters: () => [{ type: i1.StringService }] });
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Nyb24tam9iL3NyYy9saWIveWVhci95ZWFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBR3BDLE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQyxnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0s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LENBQUM7UUFDcEQsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsWUFBbUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLFlBQVksR0FBRyxTQUFTLEtBQUssU0FBUyxDQUFDO1FBQzdDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLEVBQUUsSUFBYyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFLEVBQVksQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQzs4R0EzRVUsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nU2VydmljZSB9IGZyb20gJy4uL2Nyb24tam9iLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJvcERvd25JdGVtLCBSZWdleEl0ZW1zSW5kZXgsIFR5cGUgfSBmcm9tICcuLi90eXBlcy9zaGFyZWQubW9kZWwnO1xuaW1wb3J0IHsgWWVhciB9IGZyb20gJy4veWVhci5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBZZWFyU2VydmljZSB7XG4gIHllYXJNb2RlbDogWWVhcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0cmluZ1NlcnZpY2U6IFN0cmluZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnllYXJNb2RlbCA9IG5ldyBZZWFyKCk7XG4gIH1cblxuICBnZXRFeHByZXNzaW9uKCk6IHN0cmluZyB7XG4gICAgbGV0IGV4cHJlc3Npb24gPSAnJztcbiAgICBpZiAodGhpcy55ZWFyTW9kZWwudHlwZSA9PT0gVHlwZS5FdmVyeSkge1xuICAgICAgZXhwcmVzc2lvbiA9ICcqJztcbiAgICB9IGVsc2UgaWYgKHRoaXMueWVhck1vZGVsLnR5cGUgPT09IFR5cGUuQ3VzdG9tKSB7XG4gICAgICAvL3R5cGUgaXMgY3VzdG9tXG4gICAgICAvL2lzUmVwZWF0XG4gICAgICBpZiAodGhpcy55ZWFyTW9kZWwuY3VzdG9tLnJlcGVhdC5pc1JlcGVhdCkge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9ICt0aGlzLnllYXJNb2RlbC5jdXN0b20ucmVwZWF0LmludGVydmFsICsgMTtcbiAgICAgICAgY29uc3Qgc3RhcnRBdCA9IHRoaXMueWVhck1vZGVsLmN1c3RvbS5yZXBlYXQuc3RhcnRBdDtcbiAgICAgICAgZXhwcmVzc2lvbiA9IGAke3N0YXJ0QXR9LyR7aW50ZXJ2YWx9YDtcbiAgICAgIH1cbiAgICAgIC8vaXNTcGVjaWZpY1xuICAgICAgaWYgKHRoaXMueWVhck1vZGVsLmN1c3RvbS5zcGVjaWZpYy5pc1NwZWNpZmljKSB7XG4gICAgICAgIGNvbnN0IHNwZWNpZmljVmFsdWVzID0gdGhpcy55ZWFyTW9kZWwuY3VzdG9tLnNwZWNpZmljLnZhbHVlcy5tYXAoKHYpID0+IHtcbiAgICAgICAgICByZXR1cm4gdi5pZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChzcGVjaWZpY1ZhbHVlcy5sZW5ndGggIT09IDApIGV4cHJlc3Npb24gPSB0aGlzLnN0cmluZ1NlcnZpY2UuYWRkQ29tbWEoZXhwcmVzc2lvbik7XG4gICAgICAgIGV4cHJlc3Npb24gPSBleHByZXNzaW9uLmNvbmNhdChzcGVjaWZpY1ZhbHVlcy5qb2luKCcsJykpO1xuICAgICAgfVxuICAgICAgLy9pc0JldHdlZW5cbiAgICAgIGlmICh0aGlzLnllYXJNb2RlbC5jdXN0b20uYmV0d2Vlbi5pc0JldHdlZW4pIHtcbiAgICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuc3RyaW5nU2VydmljZS5hZGRDb21tYShleHByZXNzaW9uKTtcblxuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy55ZWFyTW9kZWwuY3VzdG9tLmJldHdlZW4uZnJvbTtcbiAgICAgICAgY29uc3QgdG8gPSB0aGlzLnllYXJNb2RlbC5jdXN0b20uYmV0d2Vlbi50bztcbiAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24uY29uY2F0KGAke2Zyb219LSR7dG99YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChleHByZXNzaW9uID09PSAnJykgZXhwcmVzc2lvbiA9ICcqJztcbiAgICB9XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxuXG4gIHJldmVyc0V4cHJlc3Npb24oY3JvbkV4cHJlc3Npb25QYXR0ZXJuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnllYXJNb2RlbCA9IG5ldyBZZWFyKCk7XG4gICAgY29uc3QgcmVnZXg6IHN0cmluZyA9IHRoaXMuc3RyaW5nU2VydmljZS5nZXRSZWdleEl0ZW0oY3JvbkV4cHJlc3Npb25QYXR0ZXJuLCBSZWdleEl0ZW1zSW5kZXguWWVhcik7XG5cbiAgICBjb25zdCBpc0N1c3RvbTogYm9vbGVhbiA9IHJlZ2V4ICE9PSAnKic7XG4gICAgaWYgKCFpc0N1c3RvbSkge1xuICAgICAgdGhpcy55ZWFyTW9kZWwudHlwZSA9IFR5cGUuRXZlcnk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMueWVhck1vZGVsLnR5cGUgPSBUeXBlLkN1c3RvbTtcblxuICAgIGNvbnN0IGludGVydmFsRGF0YSA9IHRoaXMuc3RyaW5nU2VydmljZS5nZXRJbnRlcnZhbENyb25EYXRhKHJlZ2V4KTtcbiAgICBjb25zdCBoYXNJbnRlcnZhbEl0ZW1zID0gaW50ZXJ2YWxEYXRhICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKGhhc0ludGVydmFsSXRlbXMpIHtcbiAgICAgIHRoaXMueWVhck1vZGVsLmN1c3RvbS5yZXBlYXQuaXNSZXBlYXQgPSB0cnVlO1xuICAgICAgdGhpcy55ZWFyTW9kZWwuY3VzdG9tLnJlcGVhdC5pbnRlcnZhbCA9IChpbnRlcnZhbERhdGE/LmludGVydmFsIGFzIG51bWJlcikgLSAxO1xuICAgICAgdGhpcy55ZWFyTW9kZWwuY3VzdG9tLnJlcGVhdC5zdGFydEF0ID0gaW50ZXJ2YWxEYXRhPy5zdGFydEF0IGFzIG51bWJlcjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGVjaWZpY0RhdGEgPSB0aGlzLnN0cmluZ1NlcnZpY2UuZ2V0U3BlY2lmaWNDcm9uRGF0YShyZWdleCk7XG4gICAgY29uc3QgaGFzU3BlY2lmaWNJdGVtcyA9IHNwZWNpZmljRGF0YSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChoYXNTcGVjaWZpY0l0ZW1zKSB7XG4gICAgICB0aGlzLnllYXJNb2RlbC5jdXN0b20uc3BlY2lmaWMuaXNTcGVjaWZpYyA9IHRydWU7XG4gICAgICB0aGlzLnllYXJNb2RlbC5jdXN0b20uc3BlY2lmaWMudmFsdWVzID0gc3BlY2lmaWNEYXRhIGFzIEFycmF5PERyb3BEb3duSXRlbT47XG4gICAgfVxuXG4gICAgY29uc3QgcmFuZ2VEYXRhID0gdGhpcy5zdHJpbmdTZXJ2aWNlLmdldFJhbmdlQ3JvbkRhdGEocmVnZXgpO1xuICAgIGNvbnN0IGhhc1JhbmdlSXRlbSA9IHJhbmdlRGF0YSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChoYXNSYW5nZUl0ZW0pIHtcbiAgICAgIHRoaXMueWVhck1vZGVsLmN1c3RvbS5iZXR3ZWVuLmlzQmV0d2VlbiA9IHRydWU7XG4gICAgICB0aGlzLnllYXJNb2RlbC5jdXN0b20uYmV0d2Vlbi5mcm9tID0gcmFuZ2VEYXRhPy5mcm9tIGFzIG51bWJlcjtcbiAgICAgIHRoaXMueWVhck1vZGVsLmN1c3RvbS5iZXR3ZWVuLnRvID0gcmFuZ2VEYXRhPy50byBhcyBudW1iZXI7XG4gICAgfVxuICB9XG59XG4iXX0=
|