@wlcm/angular 17.4.1 → 17.5.2

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 (118) hide show
  1. package/core/esm2022/index.mjs +7 -8
  2. package/core/esm2022/lib/constants/_index.mjs +3 -0
  3. package/core/esm2022/lib/directives/_index.mjs +2 -0
  4. package/core/esm2022/lib/directives/icon.directive.mjs +8 -3
  5. package/core/esm2022/lib/models/_index.mjs +5 -0
  6. package/core/fesm2022/wlcm-angular-core.mjs +42 -37
  7. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  8. package/core/index.d.ts +3 -7
  9. package/core/lib/constants/_index.d.ts +2 -0
  10. package/core/lib/directives/_index.d.ts +1 -0
  11. package/core/lib/directives/icon.directive.d.ts +2 -1
  12. package/core/lib/models/_index.d.ts +4 -0
  13. package/{date-range-picker → datepicker}/README.md +2 -2
  14. package/datepicker/esm2022/index.mjs +10 -0
  15. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +54 -0
  16. package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +170 -0
  17. package/{date-range-picker/esm2022/lib/components → datepicker/esm2022/lib/components/range}/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +1 -1
  18. package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +122 -0
  19. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +88 -0
  20. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +27 -0
  21. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +20 -0
  22. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +3 -0
  23. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
  24. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
  25. package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
  26. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +80 -0
  27. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +80 -0
  28. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +77 -0
  29. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +77 -0
  30. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +49 -0
  31. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +46 -0
  32. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +59 -0
  33. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
  34. package/datepicker/esm2022/lib/models/date-picker.models.mjs +27 -0
  35. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +43 -0
  36. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +2 -0
  37. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
  38. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
  39. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
  40. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
  41. package/{date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs → datepicker/fesm2022/wlcm-angular-datepicker.mjs} +761 -572
  42. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -0
  43. package/datepicker/index.d.ts +9 -0
  44. package/datepicker/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.d.ts +18 -0
  45. package/{date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker/date-range-picker.component.d.ts +8 -7
  46. package/{date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker-input/date-range-picker-input.component.d.ts +4 -3
  47. package/datepicker/lib/components/single/datepicker-input-container/datepicker-input-container.component.d.ts +30 -0
  48. package/datepicker/lib/components/single/datepicker-panel/datepicker-panel.component.d.ts +13 -0
  49. package/datepicker/lib/constants/datepicker.constants.d.ts +4 -0
  50. package/datepicker/lib/constants/range/date-range-picker.constants.d.ts +3 -0
  51. package/datepicker/lib/datepicker.module.d.ts +12 -0
  52. package/{date-range-picker/lib/directives/date-range-picker-input-base.directive.d.ts → datepicker/lib/directives/datepicker-input.base.d.ts} +12 -15
  53. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +26 -0
  54. package/{date-range-picker/lib/directives → datepicker/lib/directives/ragne}/date-range-picker-input-end.directive.d.ts +5 -3
  55. package/{date-range-picker/lib/directives → datepicker/lib/directives/ragne}/date-range-picker-input-start.directive.d.ts +5 -3
  56. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +20 -0
  57. package/{date-range-picker/lib/directives → datepicker/lib/directives/ragne}/left-calendar.directive.d.ts +1 -1
  58. package/{date-range-picker/lib/directives → datepicker/lib/directives/ragne}/right-calendar.directive.d.ts +1 -1
  59. package/datepicker/lib/directives/single/datepicker-input.directive.d.ts +21 -0
  60. package/datepicker/lib/models/date-picker.models.d.ts +10 -0
  61. package/datepicker/lib/models/range/date-range-picker.models.d.ts +4 -0
  62. package/datepicker/lib/models/range/date-range-validation.models.d.ts +3 -0
  63. package/forms/esm2022/lib/forms/components/select/select.component.mjs +3 -3
  64. package/forms/fesm2022/wlcm-angular-forms.mjs +2 -2
  65. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  66. package/package.json +6 -6
  67. package/shared/calendar/esm2022/index.mjs +4 -0
  68. package/shared/calendar/esm2022/lib/calendar.module.mjs +21 -0
  69. package/shared/calendar/esm2022/lib/components/calendar-header/calendar-header.component.mjs +107 -0
  70. package/shared/calendar/esm2022/lib/directives/calendar.directive.mjs +15 -0
  71. package/shared/calendar/esm2022/wlcm-angular-calendar.mjs +5 -0
  72. package/shared/calendar/index.d.ts +3 -0
  73. package/shared/calendar/lib/calendar.module.d.ts +9 -0
  74. package/shared/calendar/lib/components/calendar-header/calendar-header.component.d.ts +22 -0
  75. package/shared/calendar/lib/directives/calendar.directive.d.ts +5 -0
  76. package/styles/components/calendar/_calendar.scss +110 -0
  77. package/styles/components/calendar/index.scss +7 -0
  78. package/styles/components/date-range-picker/_date-range-picker-body.scss +0 -104
  79. package/styles/components/date-range-picker/index.scss +0 -2
  80. package/styles/components/datepicker/_datepicker-input-container.scss +11 -0
  81. package/styles/components/datepicker/_datepicker-panel.scss +15 -0
  82. package/styles/components/datepicker/index.scss +7 -0
  83. package/styles/core/_all-theme.scss +7 -3
  84. package/date-range-picker/esm2022/index.mjs +0 -7
  85. package/date-range-picker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +0 -62
  86. package/date-range-picker/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +0 -157
  87. package/date-range-picker/esm2022/lib/components/date-range-picker-input/date-range-picker-input.component.mjs +0 -122
  88. package/date-range-picker/esm2022/lib/constants/date-range-selection-model.constants.mjs +0 -10
  89. package/date-range-picker/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs +0 -10
  90. package/date-range-picker/esm2022/lib/date-range-picker.module.mjs +0 -67
  91. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-base.directive.mjs +0 -93
  92. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-end.directive.mjs +0 -65
  93. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-start.directive.mjs +0 -65
  94. package/date-range-picker/esm2022/lib/directives/date-range-picker-trigger.directive.mjs +0 -80
  95. package/date-range-picker/esm2022/lib/directives/left-calendar.directive.mjs +0 -46
  96. package/date-range-picker/esm2022/lib/directives/right-calendar.directive.mjs +0 -59
  97. package/date-range-picker/esm2022/lib/models/data-range-calendar.models.mjs +0 -43
  98. package/date-range-picker/esm2022/lib/models/date-range-validation.models.mjs +0 -5
  99. package/date-range-picker/esm2022/lib/services/date-adapter.service.mjs +0 -23
  100. package/date-range-picker/esm2022/lib/utils/date-range-input.validators.mjs +0 -16
  101. package/date-range-picker/esm2022/lib/utils/date-range-picker-errors.mjs +0 -9
  102. package/date-range-picker/esm2022/wlcm-angular-date-range-picker.mjs +0 -5
  103. package/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs.map +0 -1
  104. package/date-range-picker/index.d.ts +0 -6
  105. package/date-range-picker/lib/components/calendar-header/calendar-header.component.d.ts +0 -19
  106. package/date-range-picker/lib/date-range-picker.module.d.ts +0 -12
  107. package/date-range-picker/lib/directives/date-range-picker-trigger.directive.d.ts +0 -26
  108. package/date-range-picker/lib/models/date-range-validation.models.d.ts +0 -3
  109. package/date-range-picker/lib/services/date-adapter.service.d.ts +0 -7
  110. /package/{date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +0 -0
  111. /package/{date-range-picker/lib/constants → datepicker/lib/constants/range}/date-range-selection-model.constants.d.ts +0 -0
  112. /package/{date-range-picker/lib/constants → datepicker/lib/constants/range}/date-range-trigger-selection-model.constants.d.ts +0 -0
  113. /package/{date-range-picker/lib/models → datepicker/lib/models/range}/data-range-calendar.models.d.ts +0 -0
  114. /package/{date-range-picker/lib/utils → datepicker/lib/utils/range}/date-range-input.validators.d.ts +0 -0
  115. /package/{date-range-picker/lib/utils → datepicker/lib/utils/range}/date-range-picker-errors.d.ts +0 -0
  116. /package/styles/components/{date-range-picker/_date-range-picker-header.scss → calendar/_calendar-header.scss} +0 -0
  117. /package/styles/components/phone-input/{indes.scss → index.scss} +0 -0
  118. /package/styles/components/stepper/{indes.scss → index.scss} +0 -0
@@ -0,0 +1,107 @@
1
+ import { Component, Inject, Optional, forwardRef, input } from '@angular/core';
2
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
3
+ import { WlcmIconDirective, WlcmIconName } from '@wlcm/angular/core';
4
+ import { MatCalendar, yearsPerPage } from '@angular/material/datepicker';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/core";
8
+ import * as i2 from "@angular/material/datepicker";
9
+ function WlcmCalendarHeaderComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
10
+ const _r1 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "button", 6);
12
+ i0.ɵɵlistener("click", function WlcmCalendarHeaderComponent_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.previousClicked()); });
13
+ i0.ɵɵelementContainer(1, 4);
14
+ i0.ɵɵelementEnd();
15
+ } if (rf & 2) {
16
+ const ctx_r1 = i0.ɵɵnextContext();
17
+ i0.ɵɵadvance();
18
+ i0.ɵɵproperty("wlcmIcon", ctx_r1.WlcmIconName.CHEVRON_DOWN);
19
+ } }
20
+ function WlcmCalendarHeaderComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
21
+ const _r3 = i0.ɵɵgetCurrentView();
22
+ i0.ɵɵelementStart(0, "button", 7);
23
+ i0.ɵɵlistener("click", function WlcmCalendarHeaderComponent_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.nextClicked()); });
24
+ i0.ɵɵelementContainer(1, 4);
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const ctx_r1 = i0.ɵɵnextContext();
28
+ i0.ɵɵadvance();
29
+ i0.ɵɵproperty("wlcmIcon", ctx_r1.WlcmIconName.CHEVRON_DOWN);
30
+ } }
31
+ export class WlcmCalendarHeaderComponent {
32
+ constructor(dateAdapter, dateFormats, calendar) {
33
+ this.dateAdapter = dateAdapter;
34
+ this.dateFormats = dateFormats;
35
+ this.calendar = calendar;
36
+ this.WlcmIconName = WlcmIconName;
37
+ this.next = input();
38
+ this.previous = input();
39
+ this.displayLeftArrow = input(true);
40
+ this.displayRightArrow = input(true);
41
+ }
42
+ previousClicked() {
43
+ if (this.previous())
44
+ return this.previous()();
45
+ this.calendar.activeDate =
46
+ this.calendar.currentView == 'month'
47
+ ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)
48
+ : this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage);
49
+ }
50
+ nextClicked() {
51
+ if (this.next())
52
+ return this.next()();
53
+ this.calendar.activeDate =
54
+ this.calendar.currentView == 'month'
55
+ ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)
56
+ : this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage);
57
+ }
58
+ changeCalendarView() {
59
+ if (this.calendar.currentView === 'multi-year') {
60
+ this.calendar.currentView = 'month';
61
+ return;
62
+ }
63
+ this.calendar.currentView = 'multi-year';
64
+ }
65
+ get periodLabel() {
66
+ return this.dateAdapter.format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel);
67
+ }
68
+ static { this.ɵfac = function WlcmCalendarHeaderComponent_Factory(t) { return new (t || WlcmCalendarHeaderComponent)(i0.ɵɵdirectiveInject(i1.DateAdapter), i0.ɵɵdirectiveInject(MAT_DATE_FORMATS, 8), i0.ɵɵdirectiveInject(forwardRef(() => MatCalendar))); }; }
69
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WlcmCalendarHeaderComponent, selectors: [["wlcm-calendar-header"]], hostAttrs: [1, "wlcm-calendar-header"], inputs: { next: [i0.ɵɵInputFlags.SignalBased, "next"], previous: [i0.ɵɵInputFlags.SignalBased, "previous"], displayLeftArrow: [i0.ɵɵInputFlags.SignalBased, "displayLeftArrow"], displayRightArrow: [i0.ɵɵInputFlags.SignalBased, "displayRightArrow"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 8, vars: 4, consts: [[1, "wlcm-calendar-header-button-container"], [1, "wlcm-calendar-header-button", "wlcm-calendar-header-button-left"], [1, "wlcm-calendar-header-change-view-button", 3, "click"], [1, "wlcm-calendar-header-period-label"], [3, "wlcmIcon"], [1, "wlcm-calendar-header-button", "wlcm-calendar-header-button-right"], [1, "wlcm-calendar-header-button", "wlcm-calendar-header-button-left", 3, "click"], [1, "wlcm-calendar-header-button", "wlcm-calendar-header-button-right", 3, "click"]], template: function WlcmCalendarHeaderComponent_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "div", 0);
71
+ i0.ɵɵtemplate(1, WlcmCalendarHeaderComponent_Conditional_1_Template, 2, 1, "button", 1);
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementStart(2, "button", 2);
74
+ i0.ɵɵlistener("click", function WlcmCalendarHeaderComponent_Template_button_click_2_listener() { return ctx.changeCalendarView(); });
75
+ i0.ɵɵelementStart(3, "div", 3);
76
+ i0.ɵɵtext(4);
77
+ i0.ɵɵelementEnd();
78
+ i0.ɵɵelementContainer(5, 4);
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementStart(6, "div", 0);
81
+ i0.ɵɵtemplate(7, WlcmCalendarHeaderComponent_Conditional_7_Template, 2, 1, "button", 5);
82
+ i0.ɵɵelementEnd();
83
+ } if (rf & 2) {
84
+ i0.ɵɵadvance();
85
+ i0.ɵɵconditional(1, ctx.displayLeftArrow() ? 1 : -1);
86
+ i0.ɵɵadvance(3);
87
+ i0.ɵɵtextInterpolate1(" ", ctx.periodLabel, " ");
88
+ i0.ɵɵadvance();
89
+ i0.ɵɵproperty("wlcmIcon", ctx.WlcmIconName.CHEVRON_DOWN);
90
+ i0.ɵɵadvance(2);
91
+ i0.ɵɵconditional(7, ctx.displayRightArrow() ? 7 : -1);
92
+ } }, dependencies: [CommonModule, WlcmIconDirective] }); }
93
+ }
94
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WlcmCalendarHeaderComponent, [{
95
+ type: Component,
96
+ args: [{ selector: 'wlcm-calendar-header', host: { class: 'wlcm-calendar-header' }, standalone: true, imports: [CommonModule, WlcmIconDirective], template: "<div class=\"wlcm-calendar-header-button-container\">\n @if(displayLeftArrow()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-left\"\n (click)=\"previousClicked()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n</div>\n\n<button\n class=\"wlcm-calendar-header-change-view-button\"\n (click)=\"changeCalendarView()\"\n>\n <div class=\"wlcm-calendar-header-period-label\">\n {{ periodLabel }}\n </div>\n\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n</button>\n\n<div class=\"wlcm-calendar-header-button-container\">\n @if(displayRightArrow()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-right\"\n (click)=\"nextClicked()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n</div>\n" }]
97
+ }], () => [{ type: i1.DateAdapter }, { type: undefined, decorators: [{
98
+ type: Optional
99
+ }, {
100
+ type: Inject,
101
+ args: [MAT_DATE_FORMATS]
102
+ }] }, { type: i2.MatCalendar, decorators: [{
103
+ type: Inject,
104
+ args: [forwardRef(() => MatCalendar)]
105
+ }] }], null); })();
106
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WlcmCalendarHeaderComponent, { className: "WlcmCalendarHeaderComponent" }); })();
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztJQ0Y3QyxpQ0FHQztJQURDLCtMQUFTLHdCQUFpQixLQUFDO0lBRTNCLDJCQUFvRTtJQUN0RSxpQkFBUzs7O0lBRE8sY0FBc0M7SUFBdEMsMkRBQXNDOzs7O0lBa0J0RCxpQ0FHQztJQURDLCtMQUFTLG9CQUFhLEtBQUM7SUFFdkIsMkJBQW9FO0lBQ3RFLGlCQUFTOzs7SUFETyxjQUFzQztJQUF0QywyREFBc0M7O0FEZHhELE1BQU0sT0FBTywyQkFBMkI7SUFXdEMsWUFDVSxXQUE4QixFQUNVLFdBQTJCLEVBQzdCLFFBQTJCO1FBRmpFLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUNVLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUM3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QVM7MkJBQ0Usc0JBQXNCLFFBQzFCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLGNBQzNCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQzs7c0JBaUJ2QyxRQUFROztzQkFBSSxNQUFNO3VCQUFDLGdCQUFnQjs7c0JBQ25DLE1BQU07dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzs7a0ZBZDVCLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dFNpZ25hbCwgT3B0aW9uYWwsIGZvcndhcmRSZWYsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IFdsY21JY29uRGlyZWN0aXZlLCBXbGNtSWNvbk5hbWUgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIsIHllYXJzUGVyUGFnZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1jYWxlbmRhci1oZWFkZXInLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1jYWxlbmRhci1oZWFkZXInIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21JY29uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQge1xuICByZWFkb25seSBXbGNtSWNvbk5hbWUgPSBXbGNtSWNvbk5hbWU7XG5cbiAgbmV4dDogSW5wdXRTaWduYWw8KCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkPiA9IGlucHV0KCk7XG5cbiAgcHJldmlvdXM6IElucHV0U2lnbmFsPCgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZD4gPSBpbnB1dCgpO1xuXG4gIGRpc3BsYXlMZWZ0QXJyb3c6IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XG5cbiAgZGlzcGxheVJpZ2h0QXJyb3c6IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcm90ZWN0ZWQgZGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNYXRDYWxlbmRhcikpIHB1YmxpYyBjYWxlbmRhcjogTWF0Q2FsZW5kYXI8RGF0ZT5cbiAgKSB7fVxuXG4gIHByZXZpb3VzQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2aW91cygpKSByZXR1cm4gdGhpcy5wcmV2aW91cygpISgpO1xuXG4gICAgdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlID1cbiAgICAgIHRoaXMuY2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ21vbnRoJ1xuICAgICAgICA/IHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlLCAtMSlcbiAgICAgICAgOiB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyWWVhcnMoXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICd5ZWFyJyA/IC0xIDogLXllYXJzUGVyUGFnZVxuICAgICAgICAgICk7XG4gIH1cblxuICBuZXh0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZXh0KCkpIHJldHVybiB0aGlzLm5leHQoKSEoKTtcblxuICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSA9XG4gICAgICB0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICdtb250aCdcbiAgICAgICAgPyB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSwgLTEpXG4gICAgICAgIDogdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhclllYXJzKFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlLFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9PSAneWVhcicgPyAtMSA6IC15ZWFyc1BlclBhZ2VcbiAgICAgICAgICApO1xuICB9XG5cbiAgY2hhbmdlQ2FsZW5kYXJWaWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ID09PSAnbXVsdGkteWVhcicpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuY3VycmVudFZpZXcgPSAnbW9udGgnO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9ICdtdWx0aS15ZWFyJztcbiAgfVxuXG4gIGdldCBwZXJpb2RMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuZGF0ZUZvcm1hdHMuZGlzcGxheS5tb250aFllYXJMYWJlbCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24tY29udGFpbmVyXCI+XG4gIEBpZihkaXNwbGF5TGVmdEFycm93KCkpIHtcbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwid2xjbS1jYWxlbmRhci1oZWFkZXItYnV0dG9uIHdsY20tY2FsZW5kYXItaGVhZGVyLWJ1dHRvbi1sZWZ0XCJcbiAgICAoY2xpY2spPVwicHJldmlvdXNDbGlja2VkKClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciBbd2xjbUljb25dPVwiV2xjbUljb25OYW1lLkNIRVZST05fRE9XTlwiPjwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG5cbjxidXR0b25cbiAgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1jaGFuZ2Utdmlldy1idXR0b25cIlxuICAoY2xpY2spPVwiY2hhbmdlQ2FsZW5kYXJWaWV3KClcIlxuPlxuICA8ZGl2IGNsYXNzPVwid2xjbS1jYWxlbmRhci1oZWFkZXItcGVyaW9kLWxhYmVsXCI+XG4gICAge3sgcGVyaW9kTGFiZWwgfX1cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciBbd2xjbUljb25dPVwiV2xjbUljb25OYW1lLkNIRVZST05fRE9XTlwiPjwvbmctY29udGFpbmVyPlxuPC9idXR0b24+XG5cbjxkaXYgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24tY29udGFpbmVyXCI+XG4gIEBpZihkaXNwbGF5UmlnaHRBcnJvdygpKSB7XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIndsY20tY2FsZW5kYXItaGVhZGVyLWJ1dHRvbiB3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24tcmlnaHRcIlxuICAgIChjbGljayk9XCJuZXh0Q2xpY2tlZCgpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5DSEVWUk9OX0RPV05cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,15 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class WlcmCalendarDirective {
4
+ static { this.ɵfac = function WlcmCalendarDirective_Factory(t) { return new (t || WlcmCalendarDirective)(); }; }
5
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: WlcmCalendarDirective, selectors: [["", "wlcmCalendar", ""]], hostAttrs: [1, "wlcm-calendar"], standalone: true }); }
6
+ }
7
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WlcmCalendarDirective, [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: '[wlcmCalendar]',
11
+ host: { class: 'wlcm-calendar' },
12
+ standalone: true,
13
+ }]
14
+ }], null, null); })();
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2NhbGVuZGFyL3NyYy9saWIvZGlyZWN0aXZlcy9jYWxlbmRhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjtzRkFBckIscUJBQXFCO29FQUFyQixxQkFBcUI7O2lGQUFyQixxQkFBcUI7Y0FMakMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3bGNtQ2FsZW5kYXJdJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tY2FsZW5kYXInIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21DYWxlbmRhckRpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2xjbS1hbmd1bGFyLWNhbGVuZGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc2hhcmVkL2NhbGVuZGFyL3NyYy93bGNtLWFuZ3VsYXItY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { WlcmCalendarModule } from './lib/calendar.module';
2
+ export { WlcmCalendarDirective } from './lib/directives/calendar.directive';
3
+ export { WlcmCalendarHeaderComponent } from './lib/components/calendar-header/calendar-header.component';
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./components/calendar-header/calendar-header.component";
4
+ import * as i3 from "./directives/calendar.directive";
5
+ export declare class WlcmCalendarModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmCalendarModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WlcmCalendarModule, never, [typeof i1.CommonModule, typeof i2.WlcmCalendarHeaderComponent, typeof i3.WlcmCalendarDirective], [typeof i2.WlcmCalendarHeaderComponent, typeof i3.WlcmCalendarDirective]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<WlcmCalendarModule>;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { InputSignal } from '@angular/core';
2
+ import { DateAdapter, MatDateFormats } from '@angular/material/core';
3
+ import { WlcmIconName } from '@wlcm/angular/core';
4
+ import { MatCalendar } from '@angular/material/datepicker';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WlcmCalendarHeaderComponent {
7
+ private dateAdapter;
8
+ protected dateFormats: MatDateFormats;
9
+ calendar: MatCalendar<Date>;
10
+ readonly WlcmIconName: typeof WlcmIconName;
11
+ next: InputSignal<(() => void) | undefined>;
12
+ previous: InputSignal<(() => void) | undefined>;
13
+ displayLeftArrow: InputSignal<boolean>;
14
+ displayRightArrow: InputSignal<boolean>;
15
+ constructor(dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, calendar: MatCalendar<Date>);
16
+ previousClicked(): void;
17
+ nextClicked(): void;
18
+ changeCalendarView(): void;
19
+ get periodLabel(): string;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmCalendarHeaderComponent, [null, { optional: true; }, null]>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmCalendarHeaderComponent, "wlcm-calendar-header", never, { "next": { "alias": "next"; "required": false; "isSignal": true; }; "previous": { "alias": "previous"; "required": false; "isSignal": true; }; "displayLeftArrow": { "alias": "displayLeftArrow"; "required": false; "isSignal": true; }; "displayRightArrow": { "alias": "displayRightArrow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
22
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WlcmCalendarDirective {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmCalendarDirective, never>;
4
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmCalendarDirective, "[wlcmCalendar]", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,110 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-calendar {
8
+ &.mat-calendar {
9
+ width: 224px;
10
+ font-size: 16px;
11
+
12
+ &.wlcm-calendar-disabled {
13
+ opacity: 0.5;
14
+ position: relative;
15
+ pointer-events: none;
16
+
17
+ &::before {
18
+ content: '';
19
+ display: block;
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ right: 0;
24
+ bottom: 0;
25
+ }
26
+ }
27
+ }
28
+
29
+ mat-year-view {
30
+ .mat-calendar-body-label {
31
+ display: none;
32
+ }
33
+ }
34
+
35
+ .mat-calendar-body-label {
36
+ opacity: 0;
37
+
38
+ &[colspan='7'] {
39
+ display: none;
40
+ }
41
+ }
42
+
43
+ .mat-calendar-content {
44
+ padding: 0 !important;
45
+ min-height: 220px;
46
+ }
47
+
48
+ .mat-calendar-table-header-divider {
49
+ display: none;
50
+ }
51
+
52
+ .mat-calendar-table-header th {
53
+ color: #a4a3a3;
54
+ font-size: 16px;
55
+ }
56
+
57
+ .mat-calendar-body-cell-content {
58
+ font-size: 16px;
59
+ border-radius: 8px;
60
+ color: map-get($theme, text-black-color);
61
+ }
62
+
63
+ .mat-calendar-body-selected {
64
+ background-color: map-get($theme, selected-option-color);
65
+ }
66
+
67
+ .mat-calendar-body-today {
68
+ border: none;
69
+ color: map-get($theme, primary-color);
70
+ font-family: map-get($theme, bold-font-family);
71
+ }
72
+
73
+ .mat-calendar-body-in-range {
74
+ &::before {
75
+ background: map-get($theme, selected-option-color);
76
+ }
77
+
78
+ .mat-calendar-body-cell-content {
79
+ color: map-get($theme, primary-color);
80
+ }
81
+ }
82
+
83
+ .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover
84
+ > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(
85
+ .mat-calendar-body-comparison-identical
86
+ ) {
87
+ background: map-get($theme, selected-option-color);
88
+ }
89
+
90
+ .mat-calendar-body-in-preview {
91
+ .mat-calendar-body-cell-preview {
92
+ border: none;
93
+ background: map-get($theme, selected-option-color);
94
+ }
95
+ }
96
+
97
+ .mat-calendar-body-selected.mat-calendar-body-today {
98
+ box-shadow: none;
99
+ }
100
+
101
+ .cdk-program-focused
102
+ .mat-calendar-body-active
103
+ > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(
104
+ .mat-calendar-body-comparison-identical
105
+ ) {
106
+ background-color: transparent;
107
+ border: 1px solid map-get($theme, primary-color);
108
+ }
109
+ }
110
+ }
@@ -0,0 +1,7 @@
1
+ @use 'calendar-header' as header;
2
+ @use 'calendar' as calendar;
3
+
4
+ @mixin theme($theme-config) {
5
+ @include header.theme($theme-config);
6
+ @include calendar.theme($theme-config);
7
+ }
@@ -9,109 +9,5 @@
9
9
  align-items: flex-start;
10
10
  grid-auto-flow: column;
11
11
  grid-gap: 32px;
12
-
13
- .mat-calendar {
14
- width: 224px;
15
- font-size: 16px;
16
-
17
- &.wlcm-calendar-disabled {
18
- opacity: 0.5;
19
- position: relative;
20
- pointer-events: none;
21
-
22
- &::before {
23
- content: '';
24
- display: block;
25
- position: absolute;
26
- top: 0;
27
- left: 0;
28
- right: 0;
29
- bottom: 0;
30
- }
31
- }
32
- }
33
-
34
- mat-year-view {
35
- .mat-calendar-body-label {
36
- display: none;
37
- }
38
- }
39
-
40
- .mat-calendar-body-label {
41
- opacity: 0;
42
-
43
- &[colspan='7'] {
44
- display: none;
45
- }
46
- }
47
-
48
- .mat-calendar-content {
49
- padding: 0 !important;
50
- min-height: 220px;
51
- }
52
-
53
- .mat-calendar-table-header-divider {
54
- display: none;
55
- }
56
-
57
- .mat-calendar-table-header th {
58
- color: #a4a3a3;
59
- font-size: 16px;
60
- }
61
-
62
- .mat-calendar-body-cell-content {
63
- font-size: 16px;
64
- border-radius: 8px;
65
- color: map-get($theme, text-black-color);
66
- }
67
-
68
- .mat-calendar-body-selected {
69
- background-color: map-get($theme, selected-option-color);
70
- }
71
-
72
- .mat-calendar-body-today {
73
- border: none;
74
- color: map-get($theme, primary-color);
75
- font-family: map-get($theme, bold-font-family);
76
- }
77
-
78
- .mat-calendar-body-in-range {
79
- &::before {
80
- background: map-get($theme, selected-option-color);
81
- }
82
-
83
- .mat-calendar-body-cell-content {
84
- color: map-get($theme, primary-color);
85
- }
86
- }
87
-
88
- .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover
89
- > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(
90
- .mat-calendar-body-comparison-identical
91
- ) {
92
- background: map-get($theme, selected-option-color);
93
- }
94
-
95
- .mat-calendar-body-in-preview {
96
- .mat-calendar-body-cell-preview {
97
- border: none;
98
- background: map-get($theme, selected-option-color);
99
- }
100
- }
101
-
102
- .mat-calendar-body-selected.mat-calendar-body-today {
103
- box-shadow: none;
104
- }
105
- }
106
-
107
- .wlcm-date-range-picker-body {
108
- .cdk-program-focused
109
- .mat-calendar-body-active
110
- > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(
111
- .mat-calendar-body-comparison-identical
112
- ) {
113
- background-color: transparent;
114
- border: 1px solid map-get($theme, primary-color);
115
- }
116
12
  }
117
13
  }
@@ -1,11 +1,9 @@
1
1
  @use 'date-range-picker-input' as input;
2
2
  @use 'date-range-picker-panel' as panel;
3
- @use 'date-range-picker-header' as header;
4
3
  @use 'date-range-picker-body' as body;
5
4
 
6
5
  @mixin theme($theme-config) {
7
6
  @include input.theme($theme-config);
8
7
  @include panel.theme($theme-config);
9
- @include header.theme($theme-config);
10
8
  @include body.theme($theme-config);
11
9
  }
@@ -0,0 +1,11 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-datepicker-input-container {
8
+ width: 100%;
9
+ display: block;
10
+ }
11
+ }
@@ -0,0 +1,15 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-datepicker-panel {
8
+ width: 100%;
9
+ display: block;
10
+ background: #ffffff;
11
+ box-shadow: 0 4px 32px 0 rgba(0, 0, 0, 0.16);
12
+ border-radius: 12px;
13
+ padding: 16px;
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ @use './datepicker-input-container' as inputContainer;
2
+ @use './datepicker-panel' as panel;
3
+
4
+ @mixin theme($theme-config) {
5
+ @include inputContainer.theme($theme-config);
6
+ @include panel.theme($theme-config);
7
+ }
@@ -6,9 +6,11 @@
6
6
  @use '../components/button/index' as button;
7
7
  @use '../components/search-field/index' as searchField;
8
8
  @use '../components/date-range-picker/index' as dateRangePicker;
9
- @use '../components/phone-input/indes.scss' as phoneInput;
10
- @use '../components/stepper/indes.scss' as stepper;
11
- @use '../components/table/index.scss' as table;
9
+ @use '../components/phone-input/index' as phoneInput;
10
+ @use '../components/datepicker/index' as datepicker;
11
+ @use '../components/calendar/index' as calendar;
12
+ @use '../components/stepper/index' as stepper;
13
+ @use '../components/table/index' as table;
12
14
 
13
15
  @mixin all-component-themes($theme-config) {
14
16
  @include common.theme($theme-config);
@@ -17,7 +19,9 @@
17
19
  @include button.theme($theme-config);
18
20
  @include searchField.theme($theme-config);
19
21
  @include dateRangePicker.theme($theme-config);
22
+ @include datepicker.theme($theme-config);
20
23
  @include phoneInput.theme($theme-config);
24
+ @include calendar.theme($theme-config);
21
25
  @include stepper.theme($theme-config);
22
26
  @include table.theme($theme-config);
23
27
  }
@@ -1,7 +0,0 @@
1
- export { WlcmDateRangePickerModule } from './lib/date-range-picker.module';
2
- export { WlcmDateRangeInputValidator } from './lib/utils/date-range-input.validators';
3
- export { WlcmDateRangeValidation } from './lib/models/date-range-validation.models';
4
- export { WlcmDateRangePickerInputComponent } from './lib/components/date-range-picker-input/date-range-picker-input.component';
5
- export { DateRangePickerInputEndDirective } from './lib/directives/date-range-picker-input-end.directive';
6
- export { DateRangePickerInputStartDirective } from './lib/directives/date-range-picker-input-start.directive';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMxRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJNb2R1bGUgfSBmcm9tICcuL2xpYi9kYXRlLXJhbmdlLXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0IHsgV2xjbURhdGVSYW5nZUlucHV0VmFsaWRhdG9yIH0gZnJvbSAnLi9saWIvdXRpbHMvZGF0ZS1yYW5nZS1pbnB1dC52YWxpZGF0b3JzJztcbmV4cG9ydCB7IFdsY21EYXRlUmFuZ2VWYWxpZGF0aW9uIH0gZnJvbSAnLi9saWIvbW9kZWxzL2RhdGUtcmFuZ2UtdmFsaWRhdGlvbi5tb2RlbHMnO1xuXG5leHBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0L2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtZW5kLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1zdGFydC5kaXJlY3RpdmUnO1xuIl19
@@ -1,62 +0,0 @@
1
- import { Component, Inject, Optional, forwardRef } from '@angular/core';
2
- import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
3
- import { WlcmDataRangeCalendar } from '../../models/data-range-calendar.models';
4
- import { WlcmIconDirective, WlcmIconName } from '@wlcm/angular/core';
5
- import { MatCalendar } from '@angular/material/datepicker';
6
- import { CommonModule } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/core";
9
- import * as i2 from "../../models/data-range-calendar.models";
10
- import * as i3 from "@angular/material/datepicker";
11
- export class WlcmCalendarHeaderComponent {
12
- constructor(dateAdapter, rangeCalendar, dateFormats, calendar) {
13
- this.dateAdapter = dateAdapter;
14
- this.rangeCalendar = rangeCalendar;
15
- this.dateFormats = dateFormats;
16
- this.calendar = calendar;
17
- this.WlcmIconName = WlcmIconName;
18
- }
19
- prev() {
20
- if (this.rangeCalendar) {
21
- if (this.calendar.currentView !== 'month') {
22
- return this.rangeCalendar.prevYear();
23
- }
24
- return this.rangeCalendar.prevMonth();
25
- }
26
- }
27
- next() {
28
- if (this.rangeCalendar) {
29
- if (this.calendar.currentView !== 'month') {
30
- return this.rangeCalendar.nextYear();
31
- }
32
- return this.rangeCalendar.nextMonth();
33
- }
34
- }
35
- changeCalendarView() {
36
- if (this.calendar.currentView === 'multi-year') {
37
- this.calendar.currentView = 'month';
38
- return;
39
- }
40
- this.calendar.currentView = 'multi-year';
41
- }
42
- get periodLabel() {
43
- return this.dateAdapter.format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel);
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCalendarHeaderComponent, deps: [{ token: i1.DateAdapter }, { token: i2.WlcmDataRangeCalendar, optional: true }, { token: MAT_DATE_FORMATS, optional: true }, { token: forwardRef(() => MatCalendar) }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmCalendarHeaderComponent, isStandalone: true, selector: "wlcm-calendar-header", ngImport: i0, template: "<div class=\"wlcm-calendar-header\">\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'left') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-left\"\n (click)=\"prev()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n\n <button\n class=\"wlcm-calendar-header-change-view-button\"\n (click)=\"changeCalendarView()\"\n >\n <div class=\"wlcm-calendar-header-period-label\">\n {{ periodLabel }}\n </div>\n\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'right') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-right\"\n (click)=\"next()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon"], outputs: ["wlcmIconClicked"] }] }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCalendarHeaderComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'wlcm-calendar-header', standalone: true, imports: [CommonModule, WlcmIconDirective], template: "<div class=\"wlcm-calendar-header\">\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'left') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-left\"\n (click)=\"prev()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n\n <button\n class=\"wlcm-calendar-header-change-view-button\"\n (click)=\"changeCalendarView()\"\n >\n <div class=\"wlcm-calendar-header-period-label\">\n {{ periodLabel }}\n </div>\n\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'right') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-right\"\n (click)=\"next()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n</div>\n" }]
51
- }], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.WlcmDataRangeCalendar, decorators: [{
52
- type: Optional
53
- }] }, { type: undefined, decorators: [{
54
- type: Optional
55
- }, {
56
- type: Inject,
57
- args: [MAT_DATE_FORMATS]
58
- }] }, { type: i3.MatCalendar, decorators: [{
59
- type: Inject,
60
- args: [forwardRef(() => MatCalendar)]
61
- }] }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUy9DLE1BQU0sT0FBTywyQkFBMkI7SUFHdEMsWUFDVSxXQUE4QixFQUNoQixhQUFvQyxFQUNWLFdBQTJCLEVBQzdCLFFBQTJCO1FBSGpFLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFObEUsaUJBQVksR0FBRyxZQUFZLENBQUM7SUFPbEMsQ0FBQztJQUVKLElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztZQUVwQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRyxDQUFDOzhHQTFDVSwyQkFBMkIsa0dBTWhCLGdCQUFnQiw2QkFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztrR0FQNUIsMkJBQTJCLGdGQ2R4QyxvckNBb0NBLHlERDFCWSxZQUFZLCtCQUFFLGlCQUFpQjs7MkZBSTlCLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDOzswQkFTdkMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgV2xjbURhdGFSYW5nZUNhbGVuZGFyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGEtcmFuZ2UtY2FsZW5kYXIubW9kZWxzJztcbmltcG9ydCB7IFdsY21JY29uRGlyZWN0aXZlLCBXbGNtSWNvbk5hbWUgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tY2FsZW5kYXItaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUljb25EaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21DYWxlbmRhckhlYWRlckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IFdsY21JY29uTmFtZSA9IFdsY21JY29uTmFtZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEYXRlPixcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcmFuZ2VDYWxlbmRhcjogV2xjbURhdGFSYW5nZUNhbGVuZGFyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJvdGVjdGVkIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWF0Q2FsZW5kYXIpKSBwdWJsaWMgY2FsZW5kYXI6IE1hdENhbGVuZGFyPERhdGU+XG4gICkge31cblxuICBwcmV2KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhbmdlQ2FsZW5kYXIpIHtcbiAgICAgIGlmICh0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ICE9PSAnbW9udGgnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlQ2FsZW5kYXIucHJldlllYXIoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VDYWxlbmRhci5wcmV2TW9udGgoKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhbmdlQ2FsZW5kYXIpIHtcbiAgICAgIGlmICh0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ICE9PSAnbW9udGgnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlQ2FsZW5kYXIubmV4dFllYXIoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VDYWxlbmRhci5uZXh0TW9udGgoKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VDYWxlbmRhclZpZXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXIuY3VycmVudFZpZXcgPT09ICdtdWx0aS15ZWFyJykge1xuICAgICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9ICdtb250aCc7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ID0gJ211bHRpLXllYXInO1xuICB9XG5cbiAgZ2V0IHBlcmlvZExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5kYXRlRm9ybWF0cy5kaXNwbGF5Lm1vbnRoWWVhckxhYmVsKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndsY20tY2FsZW5kYXItaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24tY29udGFpbmVyXCI+XG4gICAgQGlmKCgoIXJhbmdlQ2FsZW5kYXIgfHwgcmFuZ2VDYWxlbmRhci5sb2NhdGlvbiA9PT0gJ2xlZnQnKSB8fFxuICAgIGNhbGVuZGFyLmN1cnJlbnRWaWV3ICE9PSAnbW9udGgnKSAmJiAhcmFuZ2VDYWxlbmRhci5kaXNhYmxlZCgpKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24gd2xjbS1jYWxlbmRhci1oZWFkZXItYnV0dG9uLWxlZnRcIlxuICAgICAgKGNsaWNrKT1cInByZXYoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbd2xjbUljb25dPVwiV2xjbUljb25OYW1lLkNIRVZST05fRE9XTlwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwid2xjbS1jYWxlbmRhci1oZWFkZXItY2hhbmdlLXZpZXctYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY2hhbmdlQ2FsZW5kYXJWaWV3KClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIndsY20tY2FsZW5kYXItaGVhZGVyLXBlcmlvZC1sYWJlbFwiPlxuICAgICAge3sgcGVyaW9kTGFiZWwgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5DSEVWUk9OX0RPV05cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cIndsY20tY2FsZW5kYXItaGVhZGVyLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICBAaWYoKCghcmFuZ2VDYWxlbmRhciB8fCByYW5nZUNhbGVuZGFyLmxvY2F0aW9uID09PSAncmlnaHQnKSB8fFxuICAgIGNhbGVuZGFyLmN1cnJlbnRWaWV3ICE9PSAnbW9udGgnKSAmJiAhcmFuZ2VDYWxlbmRhci5kaXNhYmxlZCgpKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJ3bGNtLWNhbGVuZGFyLWhlYWRlci1idXR0b24gd2xjbS1jYWxlbmRhci1oZWFkZXItYnV0dG9uLXJpZ2h0XCJcbiAgICAgIChjbGljayk9XCJuZXh0KClcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5DSEVWUk9OX0RPV05cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=