@odx/angular 2.11.3 → 2.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/components/calendar/index.d.ts +5 -1
  3. package/components/calendar/lib/calendar.component.d.ts +11 -11
  4. package/components/calendar/lib/calendar.config.d.ts +42 -0
  5. package/components/calendar/lib/{services/calendar.service.d.ts → calendar.service.d.ts} +4 -14
  6. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +17 -27
  7. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +11 -12
  8. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +10 -10
  9. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +9 -9
  10. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +20 -13
  11. package/components/calendar/lib/directives/calendar-view.directive.d.ts +23 -12
  12. package/components/calendar/lib/{enums/calendar-view.enum.d.ts → models/calendar-view.d.ts} +1 -1
  13. package/components/calendar/lib/models/index.d.ts +1 -0
  14. package/components/calendar/lib/pipes/date-label.pipe.d.ts +7 -0
  15. package/components/calendar/lib/services/calendar-month.service.d.ts +6 -8
  16. package/components/calendar/lib/services/calendar-year.service.d.ts +4 -6
  17. package/components/calendar/lib/services/calendar-years.service.d.ts +3 -4
  18. package/components/calendar/lib/services/index.d.ts +0 -1
  19. package/components/calendar/lib/utils/check-identical-date.d.ts +2 -2
  20. package/components/calendar/lib/utils/get-A11y-label.d.ts +2 -2
  21. package/components/calendar/lib/utils/index.d.ts +1 -0
  22. package/components/calendar/lib/utils/is-date-disabled.d.ts +2 -0
  23. package/components/calendar/lib/utils/validate-max-date.d.ts +2 -2
  24. package/components/calendar/lib/utils/validate-min-date.d.ts +2 -2
  25. package/components/calendar/lib/utils/validate-next-date-set.d.ts +2 -2
  26. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +2 -2
  27. package/components/datepicker/lib/datepicker.component.d.ts +3 -1
  28. package/esm2020/components/calendar/index.mjs +6 -2
  29. package/esm2020/components/calendar/lib/calendar.component.mjs +12 -19
  30. package/esm2020/components/calendar/lib/calendar.config.mjs +8 -1
  31. package/esm2020/components/calendar/lib/calendar.service.mjs +36 -0
  32. package/esm2020/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +33 -27
  33. package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +6 -6
  34. package/esm2020/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -7
  35. package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -8
  36. package/esm2020/components/calendar/lib/directives/calendar-cell.directive.mjs +8 -11
  37. package/esm2020/components/calendar/lib/directives/calendar-view.directive.mjs +24 -14
  38. package/esm2020/components/calendar/lib/models/calendar-view.mjs +7 -0
  39. package/esm2020/components/calendar/lib/models/index.mjs +2 -1
  40. package/esm2020/components/calendar/lib/pipes/date-label.pipe.mjs +4 -4
  41. package/esm2020/components/calendar/lib/services/calendar-month.service.mjs +2 -2
  42. package/esm2020/components/calendar/lib/services/calendar-year.service.mjs +7 -5
  43. package/esm2020/components/calendar/lib/services/calendar-years.service.mjs +12 -9
  44. package/esm2020/components/calendar/lib/services/index.mjs +1 -2
  45. package/esm2020/components/calendar/lib/utils/check-identical-date.mjs +7 -7
  46. package/esm2020/components/calendar/lib/utils/get-A11y-label.mjs +7 -7
  47. package/esm2020/components/calendar/lib/utils/index.mjs +2 -1
  48. package/esm2020/components/calendar/lib/utils/is-date-disabled.mjs +10 -0
  49. package/esm2020/components/calendar/lib/utils/validate-max-date.mjs +7 -7
  50. package/esm2020/components/calendar/lib/utils/validate-min-date.mjs +7 -7
  51. package/esm2020/components/calendar/lib/utils/validate-next-date-set.mjs +7 -8
  52. package/esm2020/components/calendar/lib/utils/validate-previous-date-set.mjs +7 -8
  53. package/esm2020/components/datepicker/lib/datepicker.component.mjs +7 -4
  54. package/fesm2015/odx-angular-components-calendar.mjs +254 -270
  55. package/fesm2015/odx-angular-components-calendar.mjs.map +1 -1
  56. package/fesm2015/odx-angular-components-datepicker.mjs +5 -2
  57. package/fesm2015/odx-angular-components-datepicker.mjs.map +1 -1
  58. package/fesm2020/odx-angular-components-calendar.mjs +254 -269
  59. package/fesm2020/odx-angular-components-calendar.mjs.map +1 -1
  60. package/fesm2020/odx-angular-components-datepicker.mjs +5 -2
  61. package/fesm2020/odx-angular-components-datepicker.mjs.map +1 -1
  62. package/package.json +1 -1
  63. package/components/calendar/lib/enums/index.d.ts +0 -1
  64. package/esm2020/components/calendar/lib/enums/calendar-view.enum.mjs +0 -7
  65. package/esm2020/components/calendar/lib/enums/index.mjs +0 -2
  66. package/esm2020/components/calendar/lib/services/calendar.service.mjs +0 -73
@@ -1,11 +1,11 @@
1
1
  import { startOfDay, startOfMonth, startOfYear } from 'date-fns';
2
- import { CalendarViewEnum } from '../enums';
3
- const functionList = {
4
- [CalendarViewEnum.Month]: (minDate, date) => startOfDay(minDate) > startOfDay(date),
5
- [CalendarViewEnum.Year]: (minDate, date) => startOfMonth(minDate) > startOfMonth(date),
6
- [CalendarViewEnum.Years]: (minDate, date) => startOfYear(minDate) > startOfYear(date),
2
+ import { CalendarView } from '../models';
3
+ const dateValidators = {
4
+ [CalendarView.Month]: (minDate, date) => startOfDay(minDate) > startOfDay(date),
5
+ [CalendarView.Year]: (minDate, date) => startOfMonth(minDate) > startOfMonth(date),
6
+ [CalendarView.Years]: (minDate, date) => startOfYear(minDate) > startOfYear(date),
7
7
  };
8
8
  export function validateMinDate(maxDate, date, calendarView) {
9
- return functionList[calendarView](maxDate, date);
9
+ return dateValidators[calendarView](maxDate, date);
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbWluLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL3V0aWxzL3ZhbGlkYXRlLW1pbi1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUMsTUFBTSxZQUFZLEdBQTRDO0lBQzVELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUMvRixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDbEcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQWEsRUFBRSxJQUFVLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO0NBQ2xHLENBQUM7QUFFRixNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWEsRUFBRSxJQUFVLEVBQUUsWUFBOEI7SUFDdkYsT0FBTyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZZZWFyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3RW51bSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IERhdGVWYWxpZGF0b3IgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5jb25zdCBmdW5jdGlvbkxpc3Q6IFJlY29yZDxDYWxlbmRhclZpZXdFbnVtLCBEYXRlVmFsaWRhdG9yPiA9IHtcbiAgW0NhbGVuZGFyVmlld0VudW0uTW9udGhdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gc3RhcnRPZkRheShtaW5EYXRlKSA+IHN0YXJ0T2ZEYXkoZGF0ZSksXG4gIFtDYWxlbmRhclZpZXdFbnVtLlllYXJdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gc3RhcnRPZk1vbnRoKG1pbkRhdGUpID4gc3RhcnRPZk1vbnRoKGRhdGUpLFxuICBbQ2FsZW5kYXJWaWV3RW51bS5ZZWFyc106IChtaW5EYXRlOiBEYXRlLCBkYXRlOiBEYXRlKSA9PiBzdGFydE9mWWVhcihtaW5EYXRlKSA+IHN0YXJ0T2ZZZWFyKGRhdGUpLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTWluRGF0ZShtYXhEYXRlOiBEYXRlLCBkYXRlOiBEYXRlLCBjYWxlbmRhclZpZXc6IENhbGVuZGFyVmlld0VudW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGZ1bmN0aW9uTGlzdFtjYWxlbmRhclZpZXddKG1heERhdGUsIGRhdGUpO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbWluLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL3V0aWxzL3ZhbGlkYXRlLW1pbi1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFpQixNQUFNLFdBQVcsQ0FBQztBQUV4RCxNQUFNLGNBQWMsR0FBd0M7SUFDMUQsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUMzRixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQWEsRUFBRSxJQUFVLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzlGLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7Q0FDOUYsQ0FBQztBQUVGLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxZQUEwQjtJQUNuRixPQUFPLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXJ0T2ZEYXksIHN0YXJ0T2ZNb250aCwgc3RhcnRPZlllYXIgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcsIERhdGVWYWxpZGF0b3IgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5jb25zdCBkYXRlVmFsaWRhdG9yczogUmVjb3JkPENhbGVuZGFyVmlldywgRGF0ZVZhbGlkYXRvcj4gPSB7XG4gIFtDYWxlbmRhclZpZXcuTW9udGhdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gc3RhcnRPZkRheShtaW5EYXRlKSA+IHN0YXJ0T2ZEYXkoZGF0ZSksXG4gIFtDYWxlbmRhclZpZXcuWWVhcl06IChtaW5EYXRlOiBEYXRlLCBkYXRlOiBEYXRlKSA9PiBzdGFydE9mTW9udGgobWluRGF0ZSkgPiBzdGFydE9mTW9udGgoZGF0ZSksXG4gIFtDYWxlbmRhclZpZXcuWWVhcnNdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gc3RhcnRPZlllYXIobWluRGF0ZSkgPiBzdGFydE9mWWVhcihkYXRlKSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1pbkRhdGUobWF4RGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSwgY2FsZW5kYXJWaWV3OiBDYWxlbmRhclZpZXcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRhdGVWYWxpZGF0b3JzW2NhbGVuZGFyVmlld10obWF4RGF0ZSwgZGF0ZSk7XG59XG4iXX0=
@@ -1,12 +1,11 @@
1
1
  import { addMonths, startOfMonth, startOfYear } from 'date-fns';
2
- import { CalendarViewEnum } from '../enums';
3
- const functionList = {
4
- [CalendarViewEnum.Month]: (maxDate, date) => maxDate < startOfMonth(addMonths(date, 1)),
5
- [CalendarViewEnum.Year]: (maxDate, date) => maxDate < startOfYear(addMonths(date, 12)),
6
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
- [CalendarViewEnum.Years]: (maxDate, date) => false,
2
+ import { CalendarView } from '../models';
3
+ const dateValidators = {
4
+ [CalendarView.Month]: (maxDate, date) => maxDate < startOfMonth(addMonths(date, 1)),
5
+ [CalendarView.Year]: (maxDate, date) => maxDate < startOfYear(addMonths(date, 12)),
6
+ [CalendarView.Years]: () => false,
8
7
  };
9
8
  export function validateNextDateSet(maxDate, date, calendarView) {
10
- return functionList[calendarView](maxDate, date);
9
+ return dateValidators[calendarView](maxDate, date);
11
10
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbmV4dC1kYXRlLXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvdXRpbHMvdmFsaWRhdGUtbmV4dC1kYXRlLXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzVDLE1BQU0sWUFBWSxHQUE0QztJQUM1RCxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEcsNkRBQTZEO0lBQzdELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0NBQy9ELENBQUM7QUFFRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxZQUE4QjtJQUMzRixPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZE1vbnRocywgc3RhcnRPZk1vbnRoLCBzdGFydE9mWWVhciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IENhbGVuZGFyVmlld0VudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuY29uc3QgZnVuY3Rpb25MaXN0OiBSZWNvcmQ8Q2FsZW5kYXJWaWV3RW51bSwgRGF0ZVZhbGlkYXRvcj4gPSB7XG4gIFtDYWxlbmRhclZpZXdFbnVtLk1vbnRoXTogKG1heERhdGU6IERhdGUsIGRhdGU6IERhdGUpID0+IG1heERhdGUgPCBzdGFydE9mTW9udGgoYWRkTW9udGhzKGRhdGUsIDEpKSxcbiAgW0NhbGVuZGFyVmlld0VudW0uWWVhcl06IChtYXhEYXRlOiBEYXRlLCBkYXRlOiBEYXRlKSA9PiBtYXhEYXRlIDwgc3RhcnRPZlllYXIoYWRkTW9udGhzKGRhdGUsIDEyKSksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgW0NhbGVuZGFyVmlld0VudW0uWWVhcnNdOiAobWF4RGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gZmFsc2UsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVOZXh0RGF0ZVNldChtYXhEYXRlOiBEYXRlLCBkYXRlOiBEYXRlLCBjYWxlbmRhclZpZXc6IENhbGVuZGFyVmlld0VudW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGZ1bmN0aW9uTGlzdFtjYWxlbmRhclZpZXddKG1heERhdGUsIGRhdGUpO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbmV4dC1kYXRlLXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvdXRpbHMvdmFsaWRhdGUtbmV4dC1kYXRlLXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFFeEQsTUFBTSxjQUFjLEdBQXdDO0lBQzFELENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUs7Q0FDbEMsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLFlBQTBCO0lBQ3ZGLE9BQU8sY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkTW9udGhzLCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZZZWFyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuY29uc3QgZGF0ZVZhbGlkYXRvcnM6IFJlY29yZDxDYWxlbmRhclZpZXcsIERhdGVWYWxpZGF0b3I+ID0ge1xuICBbQ2FsZW5kYXJWaWV3Lk1vbnRoXTogKG1heERhdGU6IERhdGUsIGRhdGU6IERhdGUpID0+IG1heERhdGUgPCBzdGFydE9mTW9udGgoYWRkTW9udGhzKGRhdGUsIDEpKSxcbiAgW0NhbGVuZGFyVmlldy5ZZWFyXTogKG1heERhdGU6IERhdGUsIGRhdGU6IERhdGUpID0+IG1heERhdGUgPCBzdGFydE9mWWVhcihhZGRNb250aHMoZGF0ZSwgMTIpKSxcbiAgW0NhbGVuZGFyVmlldy5ZZWFyc106ICgpID0+IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTmV4dERhdGVTZXQobWF4RGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSwgY2FsZW5kYXJWaWV3OiBDYWxlbmRhclZpZXcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRhdGVWYWxpZGF0b3JzW2NhbGVuZGFyVmlld10obWF4RGF0ZSwgZGF0ZSk7XG59XG4iXX0=
@@ -1,12 +1,11 @@
1
1
  import { endOfMonth, endOfYear, subMonths } from 'date-fns';
2
- import { CalendarViewEnum } from '../enums';
3
- const functionList = {
4
- [CalendarViewEnum.Month]: (minDate, date) => minDate > endOfMonth(subMonths(date, 1)),
5
- [CalendarViewEnum.Year]: (minDate, date) => minDate > endOfYear(subMonths(date, 12)),
6
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
- [CalendarViewEnum.Years]: () => false,
2
+ import { CalendarView } from '../models';
3
+ const dateValidators = {
4
+ [CalendarView.Month]: (minDate, date) => minDate > endOfMonth(subMonths(date, 1)),
5
+ [CalendarView.Year]: (minDate, date) => minDate > endOfYear(subMonths(date, 12)),
6
+ [CalendarView.Years]: () => false,
8
7
  };
9
8
  export function validatePreviousDateSet(minDate, date, calendarView) {
10
- return functionList[calendarView](minDate, date);
9
+ return dateValidators[calendarView](minDate, date);
11
10
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcHJldmlvdXMtZGF0ZS1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL3V0aWxzL3ZhbGlkYXRlLXByZXZpb3VzLWRhdGUtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUMsTUFBTSxZQUFZLEdBQTRDO0lBQzVELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQWEsRUFBRSxJQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRyw2REFBNkQ7SUFDN0QsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLO0NBQ3RDLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBYSxFQUFFLElBQVUsRUFBRSxZQUE4QjtJQUMvRixPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuZE9mTW9udGgsIGVuZE9mWWVhciwgc3ViTW9udGhzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3RW51bSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IERhdGVWYWxpZGF0b3IgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5jb25zdCBmdW5jdGlvbkxpc3Q6IFJlY29yZDxDYWxlbmRhclZpZXdFbnVtLCBEYXRlVmFsaWRhdG9yPiA9IHtcbiAgW0NhbGVuZGFyVmlld0VudW0uTW9udGhdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gbWluRGF0ZSA+IGVuZE9mTW9udGgoc3ViTW9udGhzKGRhdGUsIDEpKSxcbiAgW0NhbGVuZGFyVmlld0VudW0uWWVhcl06IChtaW5EYXRlOiBEYXRlLCBkYXRlOiBEYXRlKSA9PiBtaW5EYXRlID4gZW5kT2ZZZWFyKHN1Yk1vbnRocyhkYXRlLCAxMikpLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIFtDYWxlbmRhclZpZXdFbnVtLlllYXJzXTogKCkgPT4gZmFsc2UsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcmV2aW91c0RhdGVTZXQobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSwgY2FsZW5kYXJWaWV3OiBDYWxlbmRhclZpZXdFbnVtKTogYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbkxpc3RbY2FsZW5kYXJWaWV3XShtaW5EYXRlLCBkYXRlKTtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcHJldmlvdXMtZGF0ZS1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL3V0aWxzL3ZhbGlkYXRlLXByZXZpb3VzLWRhdGUtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFpQixNQUFNLFdBQVcsQ0FBQztBQUV4RCxNQUFNLGNBQWMsR0FBd0M7SUFDMUQsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFhLEVBQUUsSUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztDQUNsQyxDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQWEsRUFBRSxJQUFVLEVBQUUsWUFBMEI7SUFDM0YsT0FBTyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmRPZk1vbnRoLCBlbmRPZlllYXIsIHN1Yk1vbnRocyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IENhbGVuZGFyVmlldywgRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmNvbnN0IGRhdGVWYWxpZGF0b3JzOiBSZWNvcmQ8Q2FsZW5kYXJWaWV3LCBEYXRlVmFsaWRhdG9yPiA9IHtcbiAgW0NhbGVuZGFyVmlldy5Nb250aF06IChtaW5EYXRlOiBEYXRlLCBkYXRlOiBEYXRlKSA9PiBtaW5EYXRlID4gZW5kT2ZNb250aChzdWJNb250aHMoZGF0ZSwgMSkpLFxuICBbQ2FsZW5kYXJWaWV3LlllYXJdOiAobWluRGF0ZTogRGF0ZSwgZGF0ZTogRGF0ZSkgPT4gbWluRGF0ZSA+IGVuZE9mWWVhcihzdWJNb250aHMoZGF0ZSwgMTIpKSxcbiAgW0NhbGVuZGFyVmlldy5ZZWFyc106ICgpID0+IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHJldmlvdXNEYXRlU2V0KG1pbkRhdGU6IERhdGUsIGRhdGU6IERhdGUsIGNhbGVuZGFyVmlldzogQ2FsZW5kYXJWaWV3KTogYm9vbGVhbiB7XG4gIHJldHVybiBkYXRlVmFsaWRhdG9yc1tjYWxlbmRhclZpZXddKG1pbkRhdGUsIGRhdGUpO1xufVxuIl19
@@ -9,7 +9,7 @@ import { CalendarComponent } from '@odx/angular/components/calendar';
9
9
  import { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';
10
10
  import { IconComponent } from '@odx/angular/components/icon';
11
11
  import { CSSComponent } from '@odx/angular/internal';
12
- import { deferFn, injectElement, untilDestroyed } from '@odx/angular/utils';
12
+ import { deferFn, injectElement, Position, untilDestroyed } from '@odx/angular/utils';
13
13
  import { format, startOfDay } from 'date-fns';
14
14
  import { injectDatepickerConfig } from './datepicker.config';
15
15
  import { DatepickerInputControlDirective } from './directives';
@@ -31,6 +31,7 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
31
31
  this.filterFn = null;
32
32
  this.minDate = null;
33
33
  this.maxDate = null;
34
+ this.dropdownPosition = 'bottom';
34
35
  this.selectedChange = new EventEmitter();
35
36
  detectControllerChanges(this).subscribe();
36
37
  }
@@ -86,7 +87,7 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
86
87
  }
87
88
  };
88
89
  DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
89
- DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerComponent, isStandalone: true, selector: "odx-datepicker", inputs: { filterFn: "filterFn", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown.alt.ArrowDown": "openDatepicker($event)" } }, queries: [{ propertyName: "dateField", first: true, predicate: DatepickerInputControlDirective, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: 'bottom-end' }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedChange)=\"selectDate($any($event))\"\n ></odx-calendar>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: CalendarComponent, selector: "odx-calendar", inputs: ["selectedDate", "minDate", "maxDate", "filterFn"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
90
+ DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerComponent, isStandalone: true, selector: "odx-datepicker", inputs: { filterFn: "filterFn", minDate: "minDate", maxDate: "maxDate", dropdownPosition: "dropdownPosition" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown.alt.ArrowDown": "openDatepicker($event)" } }, queries: [{ propertyName: "dateField", first: true, predicate: DatepickerInputControlDirective, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedDateChange)=\"selectDate($event)\"\n ></odx-calendar>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: CalendarComponent, selector: "odx-calendar", inputs: ["selectedDate", "minDate", "maxDate", "filterFn"], outputs: ["selectedDateChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
90
91
  DatepickerComponent = __decorate([
91
92
  CSSComponent('datepicker'),
92
93
  __metadata("design:paramtypes", [])
@@ -94,13 +95,15 @@ DatepickerComponent = __decorate([
94
95
  export { DatepickerComponent };
95
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, decorators: [{
96
97
  type: Component,
97
- args: [{ selector: 'odx-datepicker', standalone: true, imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [ClickOutsideDirective], template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: 'bottom-end' }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedChange)=\"selectDate($any($event))\"\n ></odx-calendar>\n</ng-template>\n" }]
98
+ args: [{ selector: 'odx-datepicker', standalone: true, imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [ClickOutsideDirective], template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedDateChange)=\"selectDate($event)\"\n ></odx-calendar>\n</ng-template>\n" }]
98
99
  }], ctorParameters: function () { return []; }, propDecorators: { filterFn: [{
99
100
  type: Input
100
101
  }], minDate: [{
101
102
  type: Input
102
103
  }], maxDate: [{
103
104
  type: Input
105
+ }], dropdownPosition: [{
106
+ type: Input
104
107
  }], selectedChange: [{
105
108
  type: Output
106
109
  }], dropdown: [{
@@ -116,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
116
119
  type: HostListener,
117
120
  args: ['keydown.alt.ArrowDown', ['$event']]
118
121
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sa0NBQWtDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9C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a0JBQ3JCLENBQUMscUJBQXFCLENBQUM7MEVBZ0JoQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixNQUFNO2dCQUlBLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSXJCLHNCQUFzQjtzQkFENUIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekQsU0FBUztzQkFEZixZQUFZO3VCQUFDLCtCQUErQjtnQkF3RG5DLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50LCBEYXRlRmlsdGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUsIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGRlZmVyRm4sIGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZvcm1hdCwgc3RhcnRPZkRheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGluamVjdERhdGVwaWNrZXJDb25maWcgfSBmcm9tICcuL2RhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IERhdGVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgZ2V0RGF0ZXBpY2tlcklucHV0Rm9ybWF0IH0gZnJvbSAnLi91dGlscyc7XG5cbkBDU1NDb21wb25lbnQoJ2RhdGVwaWNrZXInKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWRhdGVwaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgQ2FsZW5kYXJDb21wb25lbnQsIERyb3Bkb3duTW9kdWxlLCBJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbGlja091dHNpZGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8RGF0ZSB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdERhdGVwaWNrZXJDb25maWcoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duLmlzT3BlbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWx0ZXJGbjogRGF0ZUZpbHRlciB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25EaXJlY3RpdmUpXG4gIHB1YmxpYyBkcm9wZG93biE6IERyb3Bkb3duRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVHJpZ2dlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBkcm9wZG93blRyaWdnZXJFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZChEYXRlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgZGF0ZUZpZWxkPzogRGF0ZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVEYXRlRmllbGRDaGFuZ2VzKCk7XG4gICAgdGhpcy5oYW5kbGVEYXRlRmllbGRGb2N1cygpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKCk7XG5cbiAgICBkZWZlckZuKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkgcmV0dXJuO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZShzdGFydE9mRGF5KHRoaXMudmFsdWUpKTtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZUZpZWxkKHRoaXMudmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVEYXRlRmllbGQodmFsdWUpO1xuXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZURhdGVGaWVsZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlRmllbGQ/LnZhbHVlQ2hhbmdlJC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGF0ZUZpZWxkPy52YWx1ZUFzRGF0ZSA/PyBudWxsKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlRmllbGQ/LmZvY3VzZWQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrT3V0c2lkZURpcmVjdGl2ZS5vZHhDbGlja091dHNpZGUucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGlja091dHNpZGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xpY2tPdXRzaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hbHQuQXJyb3dEb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9wZW5EYXRlcGlja2VyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5IHx8IHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcm9wZG93bi5vcGVuKGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0ZUZpZWxkKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGF0ZUZpZWxkKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gZ2V0RGF0ZXBpY2tlcklucHV0Rm9ybWF0KHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSBmb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0W29keERhdGVwaWNrZXJDb250cm9sXVwiPjwvbmctY29udGVudD5cblxuPG9keC1hY3Rpb24tZ3JvdXAgY2xhc3M9XCJvZHgtbm8tbWFyZ2luXCI+XG4gIDxidXR0b25cbiAgICAjZHJvcGRvd25UcmlnZ2VyXG4gICAgY2xhc3M9XCJvZHgtZGF0ZXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgb2R4QnV0dG9uXG4gICAgc2l6ZT1cInNtYWxsXCJcbiAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgIFtvZHhEcm9wZG93bl09XCJjYWxlbmRhck92ZXJsYXlcIlxuICAgIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBwb3NpdGlvbjogJ2JvdHRvbS1lbmQnIH1cIlxuICAgIFtvZHhEcm9wZG93blRyaWdnZXJFbGVtZW50XT1cImRyb3Bkb3duVHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duSG9zdF09XCJudWxsXCJcbiAgICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duQ2xpY2tPdXRzaWRlQWN0aXZlXT1cImZhbHNlXCJcbiAgPlxuICAgIDxvZHgtaWNvbiBuYW1lPVwiY2FsZW5kYXJcIj48L29keC1pY29uPlxuICA8L2J1dHRvbj5cbjwvb2R4LWFjdGlvbi1ncm91cD5cblxuPG5nLXRlbXBsYXRlICNjYWxlbmRhck92ZXJsYXk+XG4gIDxvZHgtY2FsZW5kYXJcbiAgICBbc2VsZWN0ZWREYXRlXT1cInZhbHVlXCJcbiAgICBbZmlsdGVyRm5dPVwiZmlsdGVyRm5cIlxuICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgIGNka1RyYXBGb2N1c1xuICAgIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlXG4gICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdERhdGUoJGFueSgkZXZlbnQpKVwiXG4gID48L29keC1jYWxlbmRhcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sa0NBQWtDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxN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QXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxrQkFDckIsQ0FBQyxxQkFBcUIsQ0FBQzswRUFnQmhDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixNQUFNO2dCQUlBLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSXJCLHNCQUFzQjtzQkFENUIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekQsU0FBUztzQkFEZixZQUFZO3VCQUFDLCtCQUErQjtnQkF3RG5DLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50LCBEYXRlRmlsdGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUsIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGRlZmVyRm4sIGluamVjdEVsZW1lbnQsIFBvc2l0aW9uLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmb3JtYXQsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBpbmplY3REYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBEYXRlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IGdldERhdGVwaWNrZXJJbnB1dEZvcm1hdCB9IGZyb20gJy4vdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdkYXRlcGlja2VyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1kYXRlcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEFjdGlvbkdyb3VwQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIENhbGVuZGFyQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3REaXJlY3RpdmVzOiBbQ2xpY2tPdXRzaWRlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPERhdGUgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xpY2tPdXRzaWRlRGlyZWN0aXZlID0gaW5qZWN0KENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3REYXRlcGlja2VyQ29uZmlnKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kcm9wZG93bi5pc09wZW47XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyRm46IERhdGVGaWx0ZXIgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRyb3Bkb3duUG9zaXRpb246IFBvc2l0aW9uID0gJ2JvdHRvbSc7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwdWJsaWMgZHJvcGRvd24hOiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93blRyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZHJvcGRvd25UcmlnZ2VyRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoRGF0ZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIGRhdGVGaWVsZD86IERhdGVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpO1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkRm9jdXMoKTtcbiAgICB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSgpO1xuXG4gICAgZGVmZXJGbigoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybjtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoc3RhcnRPZkRheSh0aGlzLnZhbHVlKSk7XG4gICAgICB0aGlzLnVwZGF0ZURhdGVGaWVsZCh0aGlzLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlRGF0ZUZpZWxkKHZhbHVlKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEYXRlRmllbGRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUZpZWxkPy52YWx1ZUNoYW5nZSQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRhdGVGaWVsZD8udmFsdWVBc0RhdGUgPz8gbnVsbCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZURhdGVGaWVsZEZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUZpZWxkPy5mb2N1c2VkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGlja091dHNpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jbGlja091dHNpZGVEaXJlY3RpdmUub2R4Q2xpY2tPdXRzaWRlLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tPdXRzaWRlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bi5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0LkFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvcGVuRGF0ZXBpY2tlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuaXNSZWFkb25seSB8fCB0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuZHJvcGRvd24ub3BlbihldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGVGaWVsZChkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRhdGVGaWVsZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGdldERhdGVwaWNrZXJJbnB1dEZvcm1hdCh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5kYXRlRmllbGQubmF0aXZlRWxlbWVudFZhbHVlID0gZm9ybWF0KGRhdGUsIGRhdGVGb3JtYXQpO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFtvZHhEYXRlcGlja2VyQ29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG5cbjxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LW5vLW1hcmdpblwiPlxuICA8YnV0dG9uXG4gICAgI2Ryb3Bkb3duVHJpZ2dlclxuICAgIGNsYXNzPVwib2R4LWRhdGVwaWNrZXJfX3RyaWdnZXJcIlxuICAgIG9keEJ1dHRvblxuICAgIHNpemU9XCJzbWFsbFwiXG4gICAgdmFyaWFudD1cImdob3N0XCJcbiAgICBbb2R4RHJvcGRvd25dPVwiY2FsZW5kYXJPdmVybGF5XCJcbiAgICBbb2R4RHJvcGRvd25PcHRpb25zXT1cInsgcG9zaXRpb246IGRyb3Bkb3duUG9zaXRpb24gfVwiXG4gICAgW29keERyb3Bkb3duVHJpZ2dlckVsZW1lbnRdPVwiZHJvcGRvd25UcmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICBbb2R4RHJvcGRvd25Ib3N0XT1cIm51bGxcIlxuICAgIFtvZHhEcm9wZG93blJlZmVyZW5jZUVsZW1lbnRdPVwiZWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICBbb2R4RHJvcGRvd25DbGlja091dHNpZGVBY3RpdmVdPVwiZmFsc2VcIlxuICA+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjYWxlbmRhclwiPjwvb2R4LWljb24+XG4gIDwvYnV0dG9uPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI2NhbGVuZGFyT3ZlcmxheT5cbiAgPG9keC1jYWxlbmRhclxuICAgIFtzZWxlY3RlZERhdGVdPVwidmFsdWVcIlxuICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4gICAgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cInNlbGVjdERhdGUoJGV2ZW50KVwiXG4gID48L29keC1jYWxlbmRhcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=