@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.
Files changed (167) hide show
  1. package/calendar/lib/calendar.component.d.ts +16 -5
  2. package/calendar/lib/calendar.module.d.ts +2 -1
  3. package/check-box/lib/check-box.component.d.ts +13 -5
  4. package/cron-job/README.md +3 -0
  5. package/cron-job/index.d.ts +8 -0
  6. package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +31 -0
  7. package/cron-job/lib/cron-job.module.d.ts +25 -0
  8. package/cron-job/lib/cron-job.service.d.ts +22 -0
  9. package/cron-job/lib/day/day.component.d.ts +22 -0
  10. package/cron-job/lib/day/day.model.d.ts +61 -0
  11. package/cron-job/lib/day/day.service.d.ts +17 -0
  12. package/cron-job/lib/hours/hours.component.d.ts +14 -0
  13. package/cron-job/lib/hours/hours.model.d.ts +5 -0
  14. package/cron-job/lib/hours/hours.service.d.ts +13 -0
  15. package/cron-job/lib/minutes/minutes.component.d.ts +14 -0
  16. package/cron-job/lib/minutes/minutes.model.d.ts +5 -0
  17. package/cron-job/lib/minutes/minutes.service.d.ts +13 -0
  18. package/cron-job/lib/month/month.component.d.ts +16 -0
  19. package/cron-job/lib/month/month.model.d.ts +5 -0
  20. package/cron-job/lib/month/month.service.d.ts +14 -0
  21. package/cron-job/lib/seconds/seconds.component.d.ts +14 -0
  22. package/cron-job/lib/seconds/seconds.model.d.ts +5 -0
  23. package/cron-job/lib/seconds/seconds.service.d.ts +13 -0
  24. package/cron-job/lib/types/iexpression.d.ts +3 -0
  25. package/cron-job/lib/types/shared.model.d.ts +37 -0
  26. package/cron-job/lib/year/year.component.d.ts +15 -0
  27. package/cron-job/lib/year/year.model.d.ts +16 -0
  28. package/cron-job/lib/year/year.service.d.ts +12 -0
  29. package/datetime-input/lib/datetime-input.component.d.ts +9 -0
  30. package/datetime-picker/lib/datetime-picker.component.d.ts +1 -0
  31. package/esm2022/alert/lib/alert.component.mjs +10 -14
  32. package/esm2022/avatar/lib/avatar.component.mjs +2 -2
  33. package/esm2022/calendar/lib/calendar.component.mjs +186 -158
  34. package/esm2022/calendar/lib/calendar.module.mjs +5 -4
  35. package/esm2022/check-box/lib/check-box.component.mjs +39 -22
  36. package/esm2022/common/lib/components/selection-base.component.class.mjs +2 -1
  37. package/esm2022/cron-job/acorex-components-cron-job.mjs +5 -0
  38. package/esm2022/cron-job/index.mjs +9 -0
  39. package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +90 -0
  40. package/esm2022/cron-job/lib/cron-job.module.mjs +80 -0
  41. package/esm2022/cron-job/lib/cron-job.service.mjs +60 -0
  42. package/esm2022/cron-job/lib/day/day.component.mjs +61 -0
  43. package/esm2022/cron-job/lib/day/day.model.mjs +88 -0
  44. package/esm2022/cron-job/lib/day/day.service.mjs +196 -0
  45. package/esm2022/cron-job/lib/hours/hours.component.mjs +38 -0
  46. package/esm2022/cron-job/lib/hours/hours.model.mjs +8 -0
  47. package/esm2022/cron-job/lib/hours/hours.service.mjs +82 -0
  48. package/esm2022/cron-job/lib/minutes/minutes.component.mjs +38 -0
  49. package/esm2022/cron-job/lib/minutes/minutes.model.mjs +8 -0
  50. package/esm2022/cron-job/lib/minutes/minutes.service.mjs +82 -0
  51. package/esm2022/cron-job/lib/month/month.component.mjs +47 -0
  52. package/esm2022/cron-job/lib/month/month.model.mjs +8 -0
  53. package/esm2022/cron-job/lib/month/month.service.mjs +96 -0
  54. package/esm2022/cron-job/lib/seconds/seconds.component.mjs +38 -0
  55. package/esm2022/cron-job/lib/seconds/seconds.model.mjs +8 -0
  56. package/esm2022/cron-job/lib/seconds/seconds.service.mjs +82 -0
  57. package/esm2022/cron-job/lib/types/iexpression.mjs +2 -0
  58. package/esm2022/cron-job/lib/types/shared.model.mjs +49 -0
  59. package/esm2022/cron-job/lib/year/year.component.mjs +45 -0
  60. package/esm2022/cron-job/lib/year/year.model.mjs +28 -0
  61. package/esm2022/cron-job/lib/year/year.service.mjs +82 -0
  62. package/esm2022/datetime-input/lib/datetime-input.component.mjs +38 -10
  63. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +17 -4
  64. package/esm2022/list/lib/list.component.mjs +3 -3
  65. package/esm2022/loading/lib/loading.component.mjs +7 -3
  66. package/esm2022/loading/lib/loading.service.mjs +3 -3
  67. package/esm2022/radio/lib/radio.component.mjs +3 -3
  68. package/esm2022/selection-list/lib/selection-list.component.mjs +18 -28
  69. package/esm2022/text-box/lib/text-box.component.mjs +11 -8
  70. package/esm2022/time-line/lib/time-line-item.component.mjs +3 -3
  71. package/esm2022/time-line/lib/time-line.component.mjs +18 -4
  72. package/fesm2022/acorex-components-action-sheet.mjs +1 -1
  73. package/fesm2022/acorex-components-alert.mjs +10 -14
  74. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  75. package/fesm2022/acorex-components-audio-wave.mjs +1 -1
  76. package/fesm2022/acorex-components-avatar.mjs +3 -3
  77. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  78. package/fesm2022/acorex-components-badge.mjs +1 -1
  79. package/fesm2022/acorex-components-bottom-navigation.mjs +1 -1
  80. package/fesm2022/acorex-components-breadcrumbs.mjs +1 -1
  81. package/fesm2022/acorex-components-button-group.mjs +1 -1
  82. package/fesm2022/acorex-components-button.mjs +1 -1
  83. package/fesm2022/acorex-components-calendar.mjs +188 -160
  84. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  85. package/fesm2022/acorex-components-check-box.mjs +39 -22
  86. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  87. package/fesm2022/acorex-components-chips.mjs +1 -1
  88. package/fesm2022/acorex-components-circular-progress.mjs +1 -1
  89. package/fesm2022/acorex-components-collapse.mjs +1 -1
  90. package/fesm2022/acorex-components-color-box.mjs +1 -1
  91. package/fesm2022/acorex-components-color-palette.mjs +1 -1
  92. package/fesm2022/acorex-components-comment.mjs +1 -1
  93. package/fesm2022/acorex-components-common.mjs +2 -1
  94. package/fesm2022/acorex-components-common.mjs.map +1 -1
  95. package/fesm2022/acorex-components-conversation.mjs +1 -1
  96. package/fesm2022/acorex-components-cron-job.mjs +1191 -0
  97. package/fesm2022/acorex-components-cron-job.mjs.map +1 -0
  98. package/fesm2022/acorex-components-data-pager.mjs +1 -1
  99. package/fesm2022/acorex-components-data-table.mjs +1 -1
  100. package/fesm2022/acorex-components-datetime-box.mjs +1 -1
  101. package/fesm2022/acorex-components-datetime-input.mjs +36 -8
  102. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  103. package/fesm2022/acorex-components-datetime-picker.mjs +16 -3
  104. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  105. package/fesm2022/acorex-components-decorators.mjs +1 -1
  106. package/fesm2022/acorex-components-dialog.mjs +1 -1
  107. package/fesm2022/acorex-components-drawer.mjs +1 -1
  108. package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
  109. package/fesm2022/acorex-components-dropdown.mjs +1 -1
  110. package/fesm2022/acorex-components-form.mjs +1 -1
  111. package/fesm2022/acorex-components-image-editor.mjs +1 -1
  112. package/fesm2022/acorex-components-image.mjs +1 -1
  113. package/fesm2022/acorex-components-json-viewer.mjs +1 -1
  114. package/fesm2022/acorex-components-label.mjs +1 -1
  115. package/fesm2022/acorex-components-list.mjs +3 -3
  116. package/fesm2022/acorex-components-list.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  118. package/fesm2022/acorex-components-loading.mjs +9 -5
  119. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  120. package/fesm2022/acorex-components-map.mjs +1 -1
  121. package/fesm2022/acorex-components-media-viewer.mjs +1 -1
  122. package/fesm2022/acorex-components-menu.mjs +1 -1
  123. package/fesm2022/acorex-components-nav.mjs +1 -1
  124. package/fesm2022/acorex-components-navbar.mjs +1 -1
  125. package/fesm2022/acorex-components-notification.mjs +1 -1
  126. package/fesm2022/acorex-components-number-box.mjs +1 -1
  127. package/fesm2022/acorex-components-otp.mjs +1 -1
  128. package/fesm2022/acorex-components-page.mjs +1 -1
  129. package/fesm2022/acorex-components-paint.mjs +1 -1
  130. package/fesm2022/acorex-components-password-box.mjs +1 -1
  131. package/fesm2022/acorex-components-phone-box.mjs +1 -1
  132. package/fesm2022/acorex-components-picker.mjs +1 -1
  133. package/fesm2022/acorex-components-popover.mjs +1 -1
  134. package/fesm2022/acorex-components-popup.mjs +1 -1
  135. package/fesm2022/acorex-components-progress-bar.mjs +1 -1
  136. package/fesm2022/acorex-components-qrcode.mjs +1 -1
  137. package/fesm2022/acorex-components-radio.mjs +3 -3
  138. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  139. package/fesm2022/acorex-components-range-slider.mjs +1 -1
  140. package/fesm2022/acorex-components-rate-picker.mjs +1 -1
  141. package/fesm2022/acorex-components-result.mjs +1 -1
  142. package/fesm2022/acorex-components-routing-progress.mjs +1 -1
  143. package/fesm2022/acorex-components-scheduler.mjs +1 -1
  144. package/fesm2022/acorex-components-search-box.mjs +1 -1
  145. package/fesm2022/acorex-components-select-box.mjs +1 -1
  146. package/fesm2022/acorex-components-selection-list.mjs +18 -28
  147. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  148. package/fesm2022/acorex-components-side-menu.mjs +1 -1
  149. package/fesm2022/acorex-components-skeleton.mjs +1 -1
  150. package/fesm2022/acorex-components-slider.mjs +1 -1
  151. package/fesm2022/acorex-components-step-wizard.mjs +1 -1
  152. package/fesm2022/acorex-components-switch.mjs +1 -1
  153. package/fesm2022/acorex-components-tabs.mjs +1 -1
  154. package/fesm2022/acorex-components-tag.mjs +1 -1
  155. package/fesm2022/acorex-components-text-area.mjs +1 -1
  156. package/fesm2022/acorex-components-text-box.mjs +10 -7
  157. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  158. package/fesm2022/acorex-components-time-line.mjs +19 -5
  159. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  160. package/fesm2022/acorex-components-toast.mjs +1 -1
  161. package/fesm2022/acorex-components-tooltip.mjs +1 -1
  162. package/fesm2022/acorex-components-uploader.mjs +1 -1
  163. package/fesm2022/acorex-components-wysiwyg.mjs +1 -1
  164. package/package.json +7 -1
  165. package/selection-list/lib/selection-list.component.d.ts +4 -12
  166. package/text-box/lib/text-box.component.d.ts +2 -2
  167. 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=