@cauca-911/material 18.0.0 → 18.0.1-beta2

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 (81) hide show
  1. package/esm2022/lib/buttons/base-button.mjs +33 -0
  2. package/esm2022/lib/buttons/basic-button/basic-button.component.mjs +64 -0
  3. package/esm2022/lib/buttons/flat-button/flat-button.component.mjs +64 -0
  4. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +28 -0
  5. package/esm2022/lib/buttons/menu-item/menu-item.component.mjs +68 -0
  6. package/esm2022/lib/buttons/raised-button/raised-button.component.mjs +64 -0
  7. package/esm2022/lib/buttons/stroked-button/stroked-button.component.mjs +71 -0
  8. package/esm2022/lib/cauca-material.component.mjs +6 -5
  9. package/esm2022/lib/cauca-material.module.mjs +14 -52
  10. package/esm2022/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.mjs +14 -10
  11. package/esm2022/lib/cauca-menu-vertical/cauca-menu-vertical.component.mjs +16 -8
  12. package/esm2022/lib/cauca-simple-dialog/cauca-simple-dialog.component.mjs +14 -10
  13. package/esm2022/lib/cauca-slideshow/cauca-slideshow.component.mjs +6 -6
  14. package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +57 -0
  15. package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +69 -0
  16. package/esm2022/lib/dialogs/services/dialog.service.mjs +52 -0
  17. package/esm2022/lib/inputs/cauca-date-time-picker/cauca-date-time-picker.component.mjs +137 -0
  18. package/esm2022/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.mjs +2 -2
  19. package/esm2022/lib/inputs/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +358 -0
  20. package/esm2022/lib/inputs/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +74 -0
  21. package/esm2022/lib/inputs/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +2 -0
  22. package/esm2022/lib/inputs/cauca-input-file/cauca-input-file.component.mjs +147 -0
  23. package/esm2022/lib/inputs/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +99 -0
  24. package/esm2022/lib/inputs/password/models/password-validation.mjs +13 -0
  25. package/esm2022/lib/inputs/password/password-criteria/password-criteria.component.mjs +49 -0
  26. package/esm2022/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.mjs +29 -0
  27. package/esm2022/lib/inputs/password/password-input/password-input.component.mjs +112 -0
  28. package/esm2022/lib/inputs/password/password-selection/password-selection.component.mjs +112 -0
  29. package/esm2022/lib/inputs/password/validators/password-validator.mjs +19 -0
  30. package/esm2022/lib/inputs/select-with-search/select-with-search.component.mjs +157 -0
  31. package/esm2022/lib/layout/expandable-panel/expandable-panel.component.mjs +75 -0
  32. package/esm2022/lib/layout/menu-expandable-panel/menu-expandable-panel.component.mjs +148 -0
  33. package/esm2022/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.mjs +50 -0
  34. package/esm2022/lib/layout/page-title/page-title.component.mjs +86 -0
  35. package/esm2022/lib/notifications/snack-bar/snack-bar.component.mjs +75 -0
  36. package/esm2022/public-api.mjs +21 -4
  37. package/fesm2022/cauca-911-material.mjs +1988 -648
  38. package/fesm2022/cauca-911-material.mjs.map +1 -1
  39. package/lib/buttons/base-button.d.ts +21 -0
  40. package/lib/buttons/basic-button/basic-button.component.d.ts +6 -0
  41. package/lib/buttons/flat-button/flat-button.component.d.ts +6 -0
  42. package/lib/buttons/icon-button/icon-button.component.d.ts +6 -0
  43. package/lib/buttons/menu-item/menu-item.component.d.ts +9 -0
  44. package/lib/buttons/raised-button/raised-button.component.d.ts +6 -0
  45. package/lib/buttons/stroked-button/stroked-button.component.d.ts +6 -0
  46. package/lib/cauca-material.component.d.ts +1 -1
  47. package/lib/cauca-material.module.d.ts +4 -14
  48. package/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.d.ts +1 -1
  49. package/lib/cauca-menu-vertical/cauca-menu-vertical.component.d.ts +1 -1
  50. package/lib/cauca-simple-dialog/cauca-simple-dialog.component.d.ts +1 -1
  51. package/lib/cauca-slideshow/cauca-slideshow.component.d.ts +1 -1
  52. package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +18 -0
  53. package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +17 -0
  54. package/lib/dialogs/services/dialog.service.d.ts +26 -0
  55. package/lib/{cauca-input-file → inputs/cauca-input-file}/cauca-input-file.component.d.ts +1 -1
  56. package/lib/{cauca-input-multiple-langue → inputs/cauca-input-multiple-langue}/cauca-input-multiple-langue.component.d.ts +1 -1
  57. package/lib/inputs/password/models/password-validation.d.ts +9 -0
  58. package/lib/inputs/password/password-criteria/password-criteria.component.d.ts +9 -0
  59. package/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.d.ts +9 -0
  60. package/lib/inputs/password/password-input/password-input.component.d.ts +25 -0
  61. package/lib/inputs/password/password-selection/password-selection.component.d.ts +20 -0
  62. package/lib/inputs/password/validators/password-validator.d.ts +9 -0
  63. package/lib/inputs/select-with-search/select-with-search.component.d.ts +32 -0
  64. package/lib/layout/expandable-panel/expandable-panel.component.d.ts +10 -0
  65. package/lib/layout/menu-expandable-panel/menu-expandable-panel.component.d.ts +29 -0
  66. package/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.d.ts +13 -0
  67. package/lib/layout/page-title/page-title.component.d.ts +11 -0
  68. package/lib/notifications/snack-bar/snack-bar.component.d.ts +17 -0
  69. package/package.json +3 -2
  70. package/public-api.d.ts +20 -3
  71. package/esm2022/lib/cauca-date-time-picker/cauca-date-time-picker.component.mjs +0 -137
  72. package/esm2022/lib/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +0 -357
  73. package/esm2022/lib/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +0 -74
  74. package/esm2022/lib/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +0 -2
  75. package/esm2022/lib/cauca-input-file/cauca-input-file.component.mjs +0 -148
  76. package/esm2022/lib/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +0 -87
  77. /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/cauca-date-time-picker.component.d.ts +0 -0
  78. /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.d.ts +0 -0
  79. /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/dialog-date-time-picker/dialog-date-time-picker.component.d.ts +0 -0
  80. /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/mobile-time-picker/mobile-time-picker.component.d.ts +0 -0
  81. /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/models/dialog-date-time-picker-data.d.ts +0 -0
@@ -0,0 +1,137 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { MatIconModule } from '@angular/material/icon';
3
+ import { MatInputModule } from '@angular/material/input';
4
+ import { DialogDateTimePickerComponent } from './components/dialog-date-time-picker/dialog-date-time-picker.component';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { DatePipe } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/dialog";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/material/button";
11
+ import * as i4 from "@angular/material/icon";
12
+ import * as i5 from "@angular/material/input";
13
+ import * as i6 from "@angular/material/form-field";
14
+ export class CaucaDateTimePickerComponent {
15
+ constructor(elementRef, dialog, datePipe) {
16
+ this.elementRef = elementRef;
17
+ this.dialog = dialog;
18
+ this.datePipe = datePipe;
19
+ this.stepHours = 1;
20
+ this.stepMinutes = 1;
21
+ this.stepSecondes = 1;
22
+ this.minimumDate = null;
23
+ this.maximumDate = null;
24
+ this.showSeconds = false;
25
+ this.showFormat = 'yyyy/MM/dd, HH:mm';
26
+ this.showClearButton = true;
27
+ this.showButtonIcons = true;
28
+ this.selectedChange = new EventEmitter();
29
+ this.stringDate = '';
30
+ }
31
+ set value(value) {
32
+ if (value) {
33
+ this.stringDate = this.stringifyDate(value);
34
+ this.selectedDate = value;
35
+ }
36
+ }
37
+ showDialog() {
38
+ const dialogRef = this.dialog.open(DialogDateTimePickerComponent, {
39
+ position: this.getDialogPosition(),
40
+ data: this.getDateTimePickerOptions(),
41
+ });
42
+ dialogRef.afterClosed().subscribe((data) => {
43
+ if (data) {
44
+ this.stringDate = this.stringifyDate(data.value);
45
+ this.selectedDate = data.value;
46
+ this.selectedChange.emit(data.value);
47
+ }
48
+ });
49
+ }
50
+ getDateTimePickerOptions() {
51
+ return {
52
+ selectedDate: this.selectedDate,
53
+ minimumDate: this.minimumDate,
54
+ maximumDate: this.maximumDate,
55
+ showSeconds: this.showSeconds,
56
+ showClearButton: this.showClearButton,
57
+ showButtonIcons: this.showButtonIcons,
58
+ step: {
59
+ hours: this.stepHours,
60
+ minutes: this.stepMinutes,
61
+ seconds: this.stepSecondes,
62
+ }
63
+ };
64
+ }
65
+ stringifyDate(date) {
66
+ return this.datePipe.transform(date, this.showFormat);
67
+ }
68
+ getDialogPosition() {
69
+ const rect = this.elementRef.nativeElement.getBoundingClientRect();
70
+ const top = rect.y + rect.height - 22;
71
+ const bottom = window.innerHeight - rect.y;
72
+ const minimumDialogHeight = 400;
73
+ const minimumScreenSize = 800;
74
+ if (window.innerHeight < minimumScreenSize || window.innerWidth < minimumScreenSize) {
75
+ return null;
76
+ }
77
+ else if (window.innerHeight > (top + minimumDialogHeight)) {
78
+ return {
79
+ left: `${rect.x}px`,
80
+ top: `${top}px`,
81
+ };
82
+ }
83
+ return {
84
+ left: `${rect.x}px`,
85
+ bottom: `${bottom}px`,
86
+ };
87
+ }
88
+ static { this.ɵfac = function CaucaDateTimePickerComponent_Factory(t) { return new (t || CaucaDateTimePickerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.MatDialog), i0.ɵɵdirectiveInject(i2.DatePipe)); }; }
89
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaucaDateTimePickerComponent, selectors: [["cauca-date-time-picker"]], inputs: { stepHours: "stepHours", stepMinutes: "stepMinutes", stepSecondes: "stepSecondes", minimumDate: "minimumDate", maximumDate: "maximumDate", showSeconds: "showSeconds", showFormat: "showFormat", showClearButton: "showClearButton", showButtonIcons: "showButtonIcons", value: "value" }, outputs: { selectedChange: "selectedChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([
90
+ DatePipe,
91
+ ]), i0.ɵɵStandaloneFeature], decls: 5, vars: 1, consts: [["matInput", "", "readonly", "readonly", 3, "value"], ["matSuffix", "", "mat-icon-button", "", 3, "click"]], template: function CaucaDateTimePickerComponent_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵelementStart(0, "mat-form-field");
93
+ i0.ɵɵelement(1, "input", 0);
94
+ i0.ɵɵelementStart(2, "button", 1);
95
+ i0.ɵɵlistener("click", function CaucaDateTimePickerComponent_Template_button_click_2_listener() { return ctx.showDialog(); });
96
+ i0.ɵɵelementStart(3, "mat-icon");
97
+ i0.ɵɵtext(4, "calendar_month");
98
+ i0.ɵɵelementEnd()()();
99
+ } if (rf & 2) {
100
+ i0.ɵɵadvance();
101
+ i0.ɵɵproperty("value", ctx.stringDate);
102
+ } }, dependencies: [MatButtonModule, i3.MatIconButton, MatIconModule, i4.MatIcon, MatInputModule, i5.MatInput, i6.MatFormField, i6.MatSuffix], styles: ["[_nghost-%COMP%]{display:block}mat-form-field[_ngcontent-%COMP%]{width:100%}"] }); }
103
+ }
104
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaDateTimePickerComponent, [{
105
+ type: Component,
106
+ args: [{ selector: 'cauca-date-time-picker', standalone: true, imports: [
107
+ MatButtonModule,
108
+ MatIconModule,
109
+ MatInputModule,
110
+ ], providers: [
111
+ DatePipe,
112
+ ], template: "<mat-form-field>\n <input matInput [value]=\"stringDate\" readonly=\"readonly\">\n <button matSuffix mat-icon-button (click)=\"showDialog()\">\n <mat-icon>calendar_month</mat-icon>\n </button>\n</mat-form-field>", styles: [":host{display:block}mat-form-field{width:100%}\n"] }]
113
+ }], () => [{ type: i0.ElementRef }, { type: i1.MatDialog }, { type: i2.DatePipe }], { stepHours: [{
114
+ type: Input
115
+ }], stepMinutes: [{
116
+ type: Input
117
+ }], stepSecondes: [{
118
+ type: Input
119
+ }], minimumDate: [{
120
+ type: Input
121
+ }], maximumDate: [{
122
+ type: Input
123
+ }], showSeconds: [{
124
+ type: Input
125
+ }], showFormat: [{
126
+ type: Input
127
+ }], showClearButton: [{
128
+ type: Input
129
+ }], showButtonIcons: [{
130
+ type: Input
131
+ }], selectedChange: [{
132
+ type: Output
133
+ }], value: [{
134
+ type: Input
135
+ }] }); })();
136
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaucaDateTimePickerComponent, { className: "CaucaDateTimePickerComponent", filePath: "lib\\inputs\\cauca-date-time-picker\\cauca-date-time-picker.component.ts", lineNumber: 24 }); })();
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYXRlcmlhbC9zcmMvbGliL2lucHV0cy9jYXVjYS1kYXRlLXRpbWUtcGlja2VyL2NhdWNhLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvY2F1Y2EtZGF0ZS10aW1lLXBpY2tlci9jYXVjYS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUV2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQWdCM0MsTUFBTSxPQUFPLDRCQUE0QjtJQWdCdkMsWUFDVSxVQUFzQixFQUN0QixNQUFpQixFQUNqQixRQUFrQjtRQUZsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCWixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBUyxJQUFJLENBQUM7UUFDekIsZ0JB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O2dCQUNuQixHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUk7YUFDaEIsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSTtZQUNuQixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUk7U0FDdEIsQ0FBQztJQUNKLENBQUM7NkZBckZVLDRCQUE0QjtvRUFBNUIsNEJBQTRCLGliQU41QjtnQkFDVCxRQUFRO2FBQ1Q7WUNuQkgsc0NBQWdCO1lBQ1osMkJBQXlEO1lBQ3pELGlDQUF5RDtZQUF2Qix5R0FBUyxnQkFBWSxJQUFDO1lBQ3BELGdDQUFVO1lBQUEsOEJBQWM7WUFFaEMsQUFESSxBQUQ0QixpQkFBVyxFQUM5QixFQUNJOztZQUpHLGNBQW9CO1lBQXBCLHNDQUFvQjs0QkRZcEMsZUFBZSxvQkFDZixhQUFhLGNBQ2IsY0FBYzs7aUZBUUwsNEJBQTRCO2NBZHhDLFNBQVM7MkJBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUDtvQkFDUCxlQUFlO29CQUNmLGFBQWE7b0JBQ2IsY0FBYztpQkFDZixhQUNVO29CQUNULFFBQVE7aUJBQ1Q7MEZBS2UsU0FBUztrQkFBeEIsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxZQUFZO2tCQUEzQixLQUFLO1lBQ1UsV0FBVztrQkFBMUIsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxXQUFXO2tCQUExQixLQUFLO1lBQ1UsVUFBVTtrQkFBekIsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBQ1csY0FBYztrQkFBOUIsTUFBTTtZQWNJLEtBQUs7a0JBRGYsS0FBSzs7a0ZBdkJLLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dQb3NpdGlvbiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRGlhbG9nRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nLWRhdGUtdGltZS1waWNrZXIvZGlhbG9nLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0RhdGVUaW1lUGlja2VyT3B0aW9ucywgRGlhbG9nRGF0ZVRpbWVQaWNrZXJWYWx1ZSB9IGZyb20gJy4vbW9kZWxzL2RpYWxvZy1kYXRlLXRpbWUtcGlja2VyLWRhdGEnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2F1Y2EtZGF0ZS10aW1lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGF0ZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXVjYS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhdWNhLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENhdWNhRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgc3RlcEhvdXJzID0gMTtcbiAgQElucHV0KCkgcHVibGljIHN0ZXBNaW51dGVzID0gMTtcbiAgQElucHV0KCkgcHVibGljIHN0ZXBTZWNvbmRlcyA9IDE7XG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5pbXVtRGF0ZTogRGF0ZSA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhpbXVtRGF0ZTogRGF0ZSA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0Zvcm1hdDogc3RyaW5nID0gJ3l5eXkvTU0vZGQsIEhIOm1tJztcbiAgQElucHV0KCkgcHVibGljIHNob3dDbGVhckJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QnV0dG9uSWNvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIHB1YmxpYyBzdHJpbmdEYXRlOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIHNlbGVjdGVkRGF0ZTogRGF0ZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICkge1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zdHJpbmdEYXRlID0gdGhpcy5zdHJpbmdpZnlEYXRlKHZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dEYXRlVGltZVBpY2tlckNvbXBvbmVudCwge1xuICAgICAgcG9zaXRpb246IHRoaXMuZ2V0RGlhbG9nUG9zaXRpb24oKSxcbiAgICAgIGRhdGE6IHRoaXMuZ2V0RGF0ZVRpbWVQaWNrZXJPcHRpb25zKCksXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGRhdGE6IERpYWxvZ0RhdGVUaW1lUGlja2VyVmFsdWUpID0+IHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuc3RyaW5nRGF0ZSA9IHRoaXMuc3RyaW5naWZ5RGF0ZShkYXRhLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZGF0YS52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVUaW1lUGlja2VyT3B0aW9ucygpOiBEaWFsb2dEYXRlVGltZVBpY2tlck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZERhdGU6IHRoaXMuc2VsZWN0ZWREYXRlLFxuICAgICAgbWluaW11bURhdGU6IHRoaXMubWluaW11bURhdGUsXG4gICAgICBtYXhpbXVtRGF0ZTogdGhpcy5tYXhpbXVtRGF0ZSxcbiAgICAgIHNob3dTZWNvbmRzOiB0aGlzLnNob3dTZWNvbmRzLFxuICAgICAgc2hvd0NsZWFyQnV0dG9uOiB0aGlzLnNob3dDbGVhckJ1dHRvbixcbiAgICAgIHNob3dCdXR0b25JY29uczogdGhpcy5zaG93QnV0dG9uSWNvbnMsXG4gICAgICBzdGVwOiB7XG4gICAgICAgIGhvdXJzOiB0aGlzLnN0ZXBIb3VycyxcbiAgICAgICAgbWludXRlczogdGhpcy5zdGVwTWludXRlcyxcbiAgICAgICAgc2Vjb25kczogdGhpcy5zdGVwU2Vjb25kZXMsXG4gICAgICB9XG4gICAgfTtcbiAgfVxuICBwcml2YXRlIHN0cmluZ2lmeURhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIHRoaXMuc2hvd0Zvcm1hdCk7XG4gIH1cblxuICBwcml2YXRlIGdldERpYWxvZ1Bvc2l0aW9uKCk6IERpYWxvZ1Bvc2l0aW9uIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdG9wID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAyMjtcbiAgICBjb25zdCBib3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0Lnk7XG4gICAgY29uc3QgbWluaW11bURpYWxvZ0hlaWdodCA9IDQwMDtcbiAgICBjb25zdCBtaW5pbXVtU2NyZWVuU2l6ZSA9IDgwMDtcblxuICAgIGlmICh3aW5kb3cuaW5uZXJIZWlnaHQgPCBtaW5pbXVtU2NyZWVuU2l6ZSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA8IG1pbmltdW1TY3JlZW5TaXplKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5pbm5lckhlaWdodCA+ICh0b3AgKyBtaW5pbXVtRGlhbG9nSGVpZ2h0KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7cmVjdC54fXB4YCxcbiAgICAgICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogYCR7cmVjdC54fXB4YCxcbiAgICAgIGJvdHRvbTogYCR7Ym90dG9tfXB4YCxcbiAgICB9O1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gICAgPGlucHV0IG1hdElucHV0IFt2YWx1ZV09XCJzdHJpbmdEYXRlXCIgcmVhZG9ubHk9XCJyZWFkb25seVwiPlxuICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0RpYWxvZygpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jYWxlbmRhcl9tb250aDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
@@ -45,5 +45,5 @@ export class DesktopTimePickerComponent {
45
45
  }], valueChange: [{
46
46
  type: Output
47
47
  }] }); })();
48
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DesktopTimePickerComponent, { className: "DesktopTimePickerComponent", filePath: "lib\\cauca-date-time-picker\\components\\desktop-time-picker\\desktop-time-picker.component.ts", lineNumber: 13 }); })();
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVza3RvcC10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYXRlcmlhbC9zcmMvbGliL2NhdWNhLWRhdGUtdGltZS1waWNrZXIvY29tcG9uZW50cy9kZXNrdG9wLXRpbWUtcGlja2VyL2Rlc2t0b3AtdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9jYXVjYS1kYXRlLXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGVza3RvcC10aW1lLXBpY2tlci9kZXNrdG9wLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztJQ0NuRCx3Q0FDdUM7SUFBbkMseU5BQVMsa0NBQXdCLEtBQUM7SUFBQyxZQUFzQztJQUFBLGlCQUFnQjs7OztJQUQvQyxBQUEvQixzREFBOEIsOEZBQW9EO0lBQzFELGNBQXNDO0lBQXRDLDZEQUFzQzs7QURTakYsTUFBTSxPQUFPLDBCQUEwQjtJQVR2QztRQVVrQixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBSXRCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQUMzRDsyRkFOWSwwQkFBMEI7b0VBQTFCLDBCQUEwQjtZQ1p2QyxtQ0FBcUM7WUFDakMseUhBR1M7WUFDYixpQkFBVzs7WUFMRCx5RUFBMEI7WUFDaEMsY0FHUztZQUhULDBCQUdTOzRCREdULGFBQWE7O2lGQUtKLDBCQUEwQjtjQVR0QyxTQUFTOzJCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1A7b0JBQ1AsYUFBYTtpQkFDZDtnQkFLZSxPQUFPO2tCQUF0QixLQUFLO1lBQ1UsS0FBSztrQkFBcEIsS0FBSztZQUNVLFFBQVE7a0JBQXZCLEtBQUs7WUFFVyxXQUFXO2tCQUEzQixNQUFNOztrRkFMSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjYXVjYS1kZXNrdG9wLXRpbWUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdExpc3RNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rlc2t0b3AtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGVza3RvcC10aW1lLXBpY2tlci5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRGVza3RvcFRpbWVQaWNrZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIHZhbHVlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogRGVza3RvcFRpbWVQaWNrZXJDb21wb25lbnREaXNhYmxlZDtcblxuICBAT3V0cHV0KCkgcHVibGljIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVza3RvcFRpbWVQaWNrZXJDb21wb25lbnREaXNhYmxlZCB7XG4gIGFsbDogYm9vbGVhbjtcbiAgc29tZU9wdGlvbnM6IG51bWJlcltdO1xufSIsIjxtYXQtbGlzdCBbZGlzYWJsZWRdPVwiZGlzYWJsZWQ/LmFsbFwiPlxuICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zOyB0cmFjayBvcHRpb24pIHtcbiAgICA8bWF0LWxpc3QtaXRlbSBbYWN0aXZhdGVkXT1cInZhbHVlID09PSBvcHRpb25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQ/LnNvbWVPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcIlxuICAgICAgICAoY2xpY2spPVwidmFsdWVDaGFuZ2UuZW1pdChvcHRpb24pXCI+e3sob3B0aW9uIDwgMTAgPyAnMCcgOiAnJyApICsgb3B0aW9ufX08L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICB9XG48L21hdC1saXN0PiJdfQ==
48
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DesktopTimePickerComponent, { className: "DesktopTimePickerComponent", filePath: "lib\\inputs\\cauca-date-time-picker\\components\\desktop-time-picker\\desktop-time-picker.component.ts", lineNumber: 13 }); })();
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVza3RvcC10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYXRlcmlhbC9zcmMvbGliL2lucHV0cy9jYXVjYS1kYXRlLXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGVza3RvcC10aW1lLXBpY2tlci9kZXNrdG9wLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvaW5wdXRzL2NhdWNhLWRhdGUtdGltZS1waWNrZXIvY29tcG9uZW50cy9kZXNrdG9wLXRpbWUtcGlja2VyL2Rlc2t0b3AtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0lDQ25ELHdDQUN1QztJQUFuQyx5TkFBUyxrQ0FBd0IsS0FBQztJQUFDLFlBQXNDO0lBQUEsaUJBQWdCOzs7O0lBRC9DLEFBQS9CLHNEQUE4Qiw4RkFBb0Q7SUFDMUQsY0FBc0M7SUFBdEMsNkRBQXNDOztBRFNqRixNQUFNLE9BQU8sMEJBQTBCO0lBVHZDO1FBVWtCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFJdEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQzNEOzJGQU5ZLDBCQUEwQjtvRUFBMUIsMEJBQTBCO1lDWnZDLG1DQUFxQztZQUNqQyx5SEFHUztZQUNiLGlCQUFXOztZQUxELHlFQUEwQjtZQUNoQyxjQUdTO1lBSFQsMEJBR1M7NEJER1QsYUFBYTs7aUZBS0osMEJBQTBCO2NBVHRDLFNBQVM7MkJBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUDtvQkFDUCxhQUFhO2lCQUNkO2dCQUtlLE9BQU87a0JBQXRCLEtBQUs7WUFDVSxLQUFLO2tCQUFwQixLQUFLO1lBQ1UsUUFBUTtrQkFBdkIsS0FBSztZQUVXLFdBQVc7a0JBQTNCLE1BQU07O2tGQUxJLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NhdWNhLWRlc2t0b3AtdGltZS1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TGlzdE1vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVza3RvcC10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kZXNrdG9wLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEZXNrdG9wVGltZVBpY2tlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWU6IG51bWJlcjtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBEZXNrdG9wVGltZVBpY2tlckNvbXBvbmVudERpc2FibGVkO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXNrdG9wVGltZVBpY2tlckNvbXBvbmVudERpc2FibGVkIHtcbiAgYWxsOiBib29sZWFuO1xuICBzb21lT3B0aW9uczogbnVtYmVyW107XG59IiwiPG1hdC1saXN0IFtkaXNhYmxlZF09XCJkaXNhYmxlZD8uYWxsXCI+XG4gICAgQGZvciAob3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgIDxtYXQtbGlzdC1pdGVtIFthY3RpdmF0ZWRdPVwidmFsdWUgPT09IG9wdGlvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZD8uc29tZU9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVwiXG4gICAgICAgIChjbGljayk9XCJ2YWx1ZUNoYW5nZS5lbWl0KG9wdGlvbilcIj57eyhvcHRpb24gPCAxMCA/ICcwJyA6ICcnICkgKyBvcHRpb259fTwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIH1cbjwvbWF0LWxpc3Q+Il19
@@ -0,0 +1,358 @@
1
+ import { Component, HostListener, Inject } from '@angular/core';
2
+ import { MatNativeDateModule } from '@angular/material/core';
3
+ import { MatDatepickerModule } from '@angular/material/datepicker';
4
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
+ import { MatListModule } from '@angular/material/list';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import { MobileTimePickerComponent } from '../mobile-time-picker/mobile-time-picker.component';
9
+ import { DesktopTimePickerComponent } from '../desktop-time-picker/desktop-time-picker.component';
10
+ import { NgClass } from '@angular/common';
11
+ import { TranslateModule } from '@ngx-translate/core';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/material/dialog";
14
+ import * as i2 from "@angular/material/button";
15
+ import * as i3 from "@angular/material/datepicker";
16
+ import * as i4 from "@angular/material/icon";
17
+ import * as i5 from "@ngx-translate/core";
18
+ const _c0 = (a0, a1) => ({ all: a0, someOptions: a1 });
19
+ function DialogDateTimePickerComponent_div_4_Template(rf, ctx) { if (rf & 1) {
20
+ const _r1 = i0.ɵɵgetCurrentView();
21
+ i0.ɵɵelementStart(0, "div", 14)(1, "cauca-desktop-time-picker", 15);
22
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_4_Template_cauca_desktop_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.hourChanged($event)); });
23
+ i0.ɵɵelementEnd()();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵadvance();
27
+ i0.ɵɵproperty("disabled", i0.ɵɵpureFunction2(3, _c0, ctx_r1.disabled.hours, ctx_r1.disabled.someHours))("options", ctx_r1.hours)("value", ctx_r1.selectedHour);
28
+ } }
29
+ function DialogDateTimePickerComponent_div_5_Template(rf, ctx) { if (rf & 1) {
30
+ const _r3 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "div", 14)(1, "cauca-mobile-time-picker", 16);
32
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_5_Template_cauca_mobile_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.hourChanged($event)); });
33
+ i0.ɵɵelementEnd()();
34
+ } if (rf & 2) {
35
+ const ctx_r1 = i0.ɵɵnextContext();
36
+ i0.ɵɵadvance();
37
+ i0.ɵɵproperty("options", ctx_r1.hours)("value", ctx_r1.selectedHour);
38
+ } }
39
+ function DialogDateTimePickerComponent_div_6_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "div", 17);
41
+ i0.ɵɵtext(1, ":");
42
+ i0.ɵɵelementEnd();
43
+ } }
44
+ function DialogDateTimePickerComponent_div_7_Template(rf, ctx) { if (rf & 1) {
45
+ const _r4 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "div", 18)(1, "cauca-desktop-time-picker", 15);
47
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_7_Template_cauca_desktop_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.minuteChanged($event)); });
48
+ i0.ɵɵelementEnd()();
49
+ } if (rf & 2) {
50
+ const ctx_r1 = i0.ɵɵnextContext();
51
+ i0.ɵɵadvance();
52
+ i0.ɵɵproperty("disabled", i0.ɵɵpureFunction2(3, _c0, ctx_r1.disabled.minutes, ctx_r1.disabled.someMinutes))("options", ctx_r1.minutes)("value", ctx_r1.selectedMinute);
53
+ } }
54
+ function DialogDateTimePickerComponent_div_8_Template(rf, ctx) { if (rf & 1) {
55
+ const _r5 = i0.ɵɵgetCurrentView();
56
+ i0.ɵɵelementStart(0, "div", 18)(1, "cauca-mobile-time-picker", 16);
57
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_8_Template_cauca_mobile_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.minuteChanged($event)); });
58
+ i0.ɵɵelementEnd()();
59
+ } if (rf & 2) {
60
+ const ctx_r1 = i0.ɵɵnextContext();
61
+ i0.ɵɵadvance();
62
+ i0.ɵɵproperty("options", ctx_r1.minutes)("value", ctx_r1.selectedMinute);
63
+ } }
64
+ function DialogDateTimePickerComponent_div_9_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "div", 19);
66
+ i0.ɵɵtext(1, ":");
67
+ i0.ɵɵelementEnd();
68
+ } }
69
+ function DialogDateTimePickerComponent_div_10_Template(rf, ctx) { if (rf & 1) {
70
+ const _r6 = i0.ɵɵgetCurrentView();
71
+ i0.ɵɵelementStart(0, "div", 20)(1, "cauca-desktop-time-picker", 15);
72
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_10_Template_cauca_desktop_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.secondChanged($event)); });
73
+ i0.ɵɵelementEnd()();
74
+ } if (rf & 2) {
75
+ const ctx_r1 = i0.ɵɵnextContext();
76
+ i0.ɵɵadvance();
77
+ i0.ɵɵproperty("disabled", i0.ɵɵpureFunction2(3, _c0, ctx_r1.disabled.seconds, ctx_r1.disabled.someSeconds))("options", ctx_r1.seconds)("value", ctx_r1.selectedSecond);
78
+ } }
79
+ function DialogDateTimePickerComponent_div_11_Template(rf, ctx) { if (rf & 1) {
80
+ const _r7 = i0.ɵɵgetCurrentView();
81
+ i0.ɵɵelementStart(0, "div", 20)(1, "cauca-mobile-time-picker", 16);
82
+ i0.ɵɵlistener("valueChange", function DialogDateTimePickerComponent_div_11_Template_cauca_mobile_time_picker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.secondChanged($event)); });
83
+ i0.ɵɵelementEnd()();
84
+ } if (rf & 2) {
85
+ const ctx_r1 = i0.ɵɵnextContext();
86
+ i0.ɵɵadvance();
87
+ i0.ɵɵproperty("options", ctx_r1.seconds)("value", ctx_r1.selectedSecond);
88
+ } }
89
+ function DialogDateTimePickerComponent_button_13_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "mat-icon");
91
+ i0.ɵɵtext(1, "clear");
92
+ i0.ɵɵelementEnd();
93
+ } }
94
+ function DialogDateTimePickerComponent_button_13_Template(rf, ctx) { if (rf & 1) {
95
+ const _r8 = i0.ɵɵgetCurrentView();
96
+ i0.ɵɵelementStart(0, "button", 11);
97
+ i0.ɵɵlistener("click", function DialogDateTimePickerComponent_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.clear()); });
98
+ i0.ɵɵtemplate(1, DialogDateTimePickerComponent_button_13_mat_icon_1_Template, 2, 0, "mat-icon", 12);
99
+ i0.ɵɵtext(2);
100
+ i0.ɵɵpipe(3, "translate");
101
+ i0.ɵɵelementEnd();
102
+ } if (rf & 2) {
103
+ const ctx_r1 = i0.ɵɵnextContext();
104
+ i0.ɵɵadvance();
105
+ i0.ɵɵproperty("ngIf", ctx_r1.showButtonIcons);
106
+ i0.ɵɵadvance();
107
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "material.clear"), " ");
108
+ } }
109
+ function DialogDateTimePickerComponent_mat_icon_15_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "mat-icon");
111
+ i0.ɵɵtext(1, "cancel");
112
+ i0.ɵɵelementEnd();
113
+ } }
114
+ function DialogDateTimePickerComponent_mat_icon_19_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "mat-icon");
116
+ i0.ɵɵtext(1, "check");
117
+ i0.ɵɵelementEnd();
118
+ } }
119
+ export class DialogDateTimePickerComponent {
120
+ constructor(dialogRef, options) {
121
+ this.dialogRef = dialogRef;
122
+ this.options = options;
123
+ this.selectedHour = 0;
124
+ this.selectedMinute = 0;
125
+ this.selectedSecond = 0;
126
+ this.initialDate = null;
127
+ this.selectedDate = null;
128
+ this.minimumDate = new Date();
129
+ this.maximumDate = new Date();
130
+ this.showSeconds = false;
131
+ this.showClearButton = true;
132
+ this.showButtonIcons = true;
133
+ this.hours = [...Array(24).keys()];
134
+ this.minutes = [...Array(60).keys()];
135
+ this.seconds = [...Array(60).keys()];
136
+ this.showMobileUi = false;
137
+ this.disabled = {
138
+ hours: true,
139
+ someHours: [],
140
+ minutes: true,
141
+ someMinutes: [],
142
+ seconds: true,
143
+ someSeconds: [],
144
+ };
145
+ this.step = {
146
+ hours: 1,
147
+ minutes: 1,
148
+ seconds: 1,
149
+ };
150
+ this.step = options.step || this.step;
151
+ this.showSeconds = options.showSeconds;
152
+ this.showButtonIcons = options.showButtonIcons ?? this.showButtonIcons;
153
+ this.showClearButton = options.showClearButton ?? this.showClearButton;
154
+ this.setListHoursMinutes();
155
+ this.initialEachComponentValue(options);
156
+ }
157
+ ngOnInit() {
158
+ this.onWindowWithChange(window.innerWidth);
159
+ }
160
+ onResize(event) {
161
+ this.onWindowWithChange(event.target.innerWidth);
162
+ }
163
+ dateChanged(date) {
164
+ if (date) {
165
+ this.selectedDate = date;
166
+ this.selectedDate.setHours(this.selectedHour);
167
+ this.selectedDate.setMinutes(this.selectedMinute);
168
+ this.selectedDate.setSeconds(this.selectedSecond);
169
+ this.disabled.hours = false;
170
+ this.disabled.someHours = this.hours.filter(hour => this.hourOfSelectedDateIsDisabled(hour));
171
+ }
172
+ else {
173
+ this.selectedDate = null;
174
+ this.disabled.hours = true;
175
+ }
176
+ }
177
+ hourChanged(hour) {
178
+ if (this.disabled.hours || this.disabled.someHours.includes(hour))
179
+ return;
180
+ this.selectedHour = hour;
181
+ this.selectedDate.setHours(hour);
182
+ this.disabled.minutes = false;
183
+ this.disabled.someMinutes = this.minutes.filter(minute => this.minuteOfSelectedDateIsDisabled(minute));
184
+ }
185
+ minuteChanged(minute) {
186
+ if (this.disabled.minutes || this.disabled.someMinutes.includes(minute))
187
+ return;
188
+ this.selectedMinute = minute;
189
+ this.selectedDate.setMinutes(minute);
190
+ this.disabled.seconds = false;
191
+ this.disabled.someSeconds = this.seconds.filter(second => this.secondOfSelectedDateIsDisabled(second));
192
+ }
193
+ secondChanged(second) {
194
+ if (this.disabled.seconds || this.disabled.someSeconds.includes(second))
195
+ return;
196
+ this.selectedSecond = second;
197
+ this.selectedDate.setSeconds(second);
198
+ }
199
+ clear() {
200
+ this.dialogRef.close({
201
+ value: null
202
+ });
203
+ }
204
+ cancel() {
205
+ this.dialogRef.close({
206
+ value: this.initialDate
207
+ });
208
+ }
209
+ confirm() {
210
+ this.dialogRef.close({
211
+ value: this.selectedDate
212
+ });
213
+ }
214
+ onWindowWithChange(width) {
215
+ this.showMobileUi = width && width <= 555;
216
+ }
217
+ hourOfSelectedDateIsDisabled(hour) {
218
+ if (this.selectedDateIsTheMinimumDate()) {
219
+ return hour < this.minimumDate.getHours();
220
+ }
221
+ else if (this.selectedDateIsTheMaximumDate()) {
222
+ return hour > this.maximumDate.getHours();
223
+ }
224
+ return false;
225
+ }
226
+ minuteOfSelectedDateIsDisabled(minute) {
227
+ if (this.selectedDateIsTheMinimumDate() &&
228
+ this.selectedDate.getHours() === this.minimumDate.getHours()) {
229
+ return minute < this.minimumDate.getMinutes();
230
+ }
231
+ else if (this.selectedDateIsTheMaximumDate() &&
232
+ this.selectedDate.getHours() === this.maximumDate.getHours()) {
233
+ return minute > this.maximumDate.getMinutes();
234
+ }
235
+ return false;
236
+ }
237
+ secondOfSelectedDateIsDisabled(second) {
238
+ if (this.selectedDateIsTheMinimumDate() &&
239
+ this.selectedDate.getHours() === this.minimumDate.getHours() &&
240
+ this.selectedDate.getMinutes() === this.minimumDate.getMinutes()) {
241
+ return second < this.minimumDate.getSeconds();
242
+ }
243
+ else if (this.selectedDateIsTheMaximumDate() &&
244
+ this.selectedDate.getMinutes() === this.maximumDate.getMinutes()) {
245
+ return second > this.maximumDate.getSeconds();
246
+ }
247
+ return false;
248
+ }
249
+ initialEachComponentValue(options) {
250
+ this.initialDate = options.selectedDate ? new Date(options.selectedDate) : null;
251
+ this.minimumDate = options.minimumDate ? new Date(options.minimumDate) : null;
252
+ this.maximumDate = options.maximumDate ? new Date(options.maximumDate) : null;
253
+ this.selectedDate = options.selectedDate ? new Date(options.selectedDate) : new Date();
254
+ this.dateChanged(options.selectedDate ? new Date(options.selectedDate) : null);
255
+ this.hourChanged(options.selectedDate ? new Date(options.selectedDate).getHours() : 0);
256
+ this.minuteChanged(options.selectedDate ? new Date(options.selectedDate).getMinutes() : 0);
257
+ this.secondChanged(options.selectedDate ? new Date(options.selectedDate).getSeconds() : 0);
258
+ }
259
+ selectedDateIsTheMinimumDate() {
260
+ return (this.minimumDate &&
261
+ this.selectedDate.getFullYear() === this.minimumDate.getFullYear() &&
262
+ this.selectedDate.getMonth() === this.minimumDate.getMonth() &&
263
+ this.selectedDate.getDate() === this.minimumDate.getDate());
264
+ }
265
+ selectedDateIsTheMaximumDate() {
266
+ return (this.maximumDate &&
267
+ this.selectedDate.getFullYear() === this.maximumDate.getFullYear() &&
268
+ this.selectedDate.getMonth() === this.maximumDate.getMonth() &&
269
+ this.selectedDate.getDate() === this.maximumDate.getDate());
270
+ }
271
+ setListHoursMinutes() {
272
+ this.hours = this.hours.filter(hour => hour % this.step.hours === 0);
273
+ this.minutes = this.minutes.filter(minute => minute % this.step.minutes === 0);
274
+ this.seconds = this.seconds.filter(seconde => seconde % this.step.seconds === 0);
275
+ }
276
+ static { this.ɵfac = function DialogDateTimePickerComponent_Factory(t) { return new (t || DialogDateTimePickerComponent)(i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); }; }
277
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DialogDateTimePickerComponent, selectors: [["cauca-dialog-date-time-picker"]], hostBindings: function DialogDateTimePickerComponent_HostBindings(rf, ctx) { if (rf & 1) {
278
+ i0.ɵɵlistener("resize", function DialogDateTimePickerComponent_resize_HostBindingHandler($event) { return ctx.onResize($event); }, false, i0.ɵɵresolveWindow);
279
+ } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 22, vars: 21, consts: [["mat-dialog-content", ""], [1, "date-time-picker", 3, "ngClass"], [1, "calendar"], [3, "selectedChange", "minDate", "maxDate", "selected"], ["class", "hours", 4, "ngIf"], ["class", "hour-and-minute-separator", 4, "ngIf"], ["class", "minutes", 4, "ngIf"], ["class", "minute-and-second-separator", 4, "ngIf"], ["class", "seconds", 4, "ngIf"], ["mat-dialog-actions", "", "align", "end"], ["mat-stroked-button", "", 3, "click", 4, "ngIf"], ["mat-stroked-button", "", 3, "click"], [4, "ngIf"], ["color", "primary", "mat-raised-button", "", "cdkFocusInitial", "", 3, "click"], [1, "hours"], [3, "valueChange", "disabled", "options", "value"], [3, "valueChange", "options", "value"], [1, "hour-and-minute-separator"], [1, "minutes"], [1, "minute-and-second-separator"], [1, "seconds"]], template: function DialogDateTimePickerComponent_Template(rf, ctx) { if (rf & 1) {
280
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "mat-calendar", 3);
281
+ i0.ɵɵlistener("selectedChange", function DialogDateTimePickerComponent_Template_mat_calendar_selectedChange_3_listener($event) { return ctx.dateChanged($event); });
282
+ i0.ɵɵelementEnd()();
283
+ i0.ɵɵtemplate(4, DialogDateTimePickerComponent_div_4_Template, 2, 6, "div", 4)(5, DialogDateTimePickerComponent_div_5_Template, 2, 2, "div", 4)(6, DialogDateTimePickerComponent_div_6_Template, 2, 0, "div", 5)(7, DialogDateTimePickerComponent_div_7_Template, 2, 6, "div", 6)(8, DialogDateTimePickerComponent_div_8_Template, 2, 2, "div", 6)(9, DialogDateTimePickerComponent_div_9_Template, 2, 0, "div", 7)(10, DialogDateTimePickerComponent_div_10_Template, 2, 6, "div", 8)(11, DialogDateTimePickerComponent_div_11_Template, 2, 2, "div", 8);
284
+ i0.ɵɵelementEnd()();
285
+ i0.ɵɵelementStart(12, "div", 9);
286
+ i0.ɵɵtemplate(13, DialogDateTimePickerComponent_button_13_Template, 4, 4, "button", 10);
287
+ i0.ɵɵelementStart(14, "button", 11);
288
+ i0.ɵɵlistener("click", function DialogDateTimePickerComponent_Template_button_click_14_listener() { return ctx.cancel(); });
289
+ i0.ɵɵtemplate(15, DialogDateTimePickerComponent_mat_icon_15_Template, 2, 0, "mat-icon", 12);
290
+ i0.ɵɵtext(16);
291
+ i0.ɵɵpipe(17, "translate");
292
+ i0.ɵɵelementEnd();
293
+ i0.ɵɵelementStart(18, "button", 13);
294
+ i0.ɵɵlistener("click", function DialogDateTimePickerComponent_Template_button_click_18_listener() { return ctx.confirm(); });
295
+ i0.ɵɵtemplate(19, DialogDateTimePickerComponent_mat_icon_19_Template, 2, 0, "mat-icon", 12);
296
+ i0.ɵɵtext(20);
297
+ i0.ɵɵpipe(21, "translate");
298
+ i0.ɵɵelementEnd()();
299
+ } if (rf & 2) {
300
+ i0.ɵɵadvance();
301
+ i0.ɵɵproperty("ngClass", ctx.showSeconds ? "show-seconds" : "hide-seconds");
302
+ i0.ɵɵadvance(2);
303
+ i0.ɵɵproperty("minDate", ctx.minimumDate)("maxDate", ctx.maximumDate)("selected", ctx.selectedDate);
304
+ i0.ɵɵadvance();
305
+ i0.ɵɵproperty("ngIf", !ctx.showMobileUi);
306
+ i0.ɵɵadvance();
307
+ i0.ɵɵproperty("ngIf", ctx.showMobileUi);
308
+ i0.ɵɵadvance();
309
+ i0.ɵɵproperty("ngIf", ctx.showMobileUi);
310
+ i0.ɵɵadvance();
311
+ i0.ɵɵproperty("ngIf", !ctx.showMobileUi);
312
+ i0.ɵɵadvance();
313
+ i0.ɵɵproperty("ngIf", ctx.showMobileUi);
314
+ i0.ɵɵadvance();
315
+ i0.ɵɵproperty("ngIf", ctx.showSeconds && ctx.showMobileUi);
316
+ i0.ɵɵadvance();
317
+ i0.ɵɵproperty("ngIf", ctx.showSeconds && !ctx.showMobileUi);
318
+ i0.ɵɵadvance();
319
+ i0.ɵɵproperty("ngIf", ctx.showSeconds && ctx.showMobileUi);
320
+ i0.ɵɵadvance(2);
321
+ i0.ɵɵproperty("ngIf", ctx.showClearButton);
322
+ i0.ɵɵadvance(2);
323
+ i0.ɵɵproperty("ngIf", ctx.showButtonIcons);
324
+ i0.ɵɵadvance();
325
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 17, "material.cancel"), " ");
326
+ i0.ɵɵadvance(3);
327
+ i0.ɵɵproperty("ngIf", ctx.showButtonIcons);
328
+ i0.ɵɵadvance();
329
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 19, "material.ok"), " ");
330
+ } }, dependencies: [MatButtonModule, i2.MatButton, MatDatepickerModule, i3.MatCalendar, MatIconModule, i4.MatIcon, MatListModule,
331
+ MatNativeDateModule,
332
+ MobileTimePickerComponent,
333
+ DesktopTimePickerComponent,
334
+ NgClass,
335
+ TranslateModule, i5.TranslatePipe], styles: ["div[mat-dialog-actions][_ngcontent-%COMP%]{padding:8px;border-top:1px solid #ccc}div[mat-dialog-actions][_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:2px}.date-time-picker[_ngcontent-%COMP%]{display:grid;grid-template-areas:\"calendar hours minutes seconds\";height:350px;overflow:hidden;justify-content:center}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{overflow:auto;flex:1;max-width:50px;scrollbar-width:none;border-left:1px solid #ccc}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{flex:4;max-width:290px;border-left:none}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child mat-calendar[_ngcontent-%COMP%]{width:290px;height:350px}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.date-time-picker[_ngcontent-%COMP%] .mdc-list-item__primary-text{font-family:var(--mat-datepicker-calendar-text-font);font-size:var(--mat-datepicker-calendar-text-size)}.date-time-picker[_ngcontent-%COMP%] .mdc-list-item--activated{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color)}.date-time-picker[_ngcontent-%COMP%] .mdc-list-item--activated .mdc-list-item__primary-text{color:var(--mat-datepicker-calendar-date-selected-state-text-color)}.calendar[_ngcontent-%COMP%]{grid-area:calendar}.hours[_ngcontent-%COMP%]{grid-area:hours}.minutes[_ngcontent-%COMP%]{grid-area:minutes}.seconds[_ngcontent-%COMP%]{grid-area:seconds}.hour-and-minute-separator[_ngcontent-%COMP%]{grid-area:hour-and-minute-separator;display:flex;align-items:center;justify-content:center;font-weight:700}.minute-and-second-separator[_ngcontent-%COMP%]{grid-area:minute-and-second-separator;display:flex;align-items:center;justify-content:center;font-weight:700}@media only screen and (max-width: 555px){.show-seconds[_ngcontent-%COMP%]{grid-template-areas:\"calendar calendar calendar calendar calendar calendar calendar\" \". hours hour-and-minute-separator minutes minute-and-second-separator seconds .\";grid-template-columns:auto 40px 2px 40px 2px 40px auto}.hide-seconds[_ngcontent-%COMP%]{grid-template-areas:\"calendar calendar calendar calendar calendar\" \". hours hour-and-minute-separator minutes .\";grid-template-columns:auto 40px 2px 40px auto}.date-time-picker[_ngcontent-%COMP%]{grid-template-rows:auto auto;height:450px}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{border-left:none}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(:first-child){height:70px}.date-time-picker[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{overflow:initial;flex:4;max-width:290px;border-left:none}}"] }); }
336
+ }
337
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogDateTimePickerComponent, [{
338
+ type: Component,
339
+ args: [{ selector: 'cauca-dialog-date-time-picker', standalone: true, imports: [
340
+ MatButtonModule,
341
+ MatDatepickerModule,
342
+ MatIconModule,
343
+ MatListModule,
344
+ MatNativeDateModule,
345
+ MobileTimePickerComponent,
346
+ DesktopTimePickerComponent,
347
+ NgClass,
348
+ TranslateModule
349
+ ], template: "<div mat-dialog-content>\n <div [ngClass]=\"showSeconds ? 'show-seconds' : 'hide-seconds'\" class=\"date-time-picker\">\n <div class=\"calendar\">\n <mat-calendar\n [minDate]=\"minimumDate\"\n [maxDate]=\"maximumDate\"\n [selected]=\"selectedDate\"\n (selectedChange)=\"dateChanged($event)\"\n ></mat-calendar>\n </div>\n\n <div class=\"hours\" *ngIf=\"!showMobileUi\">\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.hours, someOptions: disabled.someHours}\" (valueChange)=\"hourChanged($event)\" [options]=\"hours\" [value]=\"selectedHour\"/>\n </div>\n <div class=\"hours\" *ngIf=\"showMobileUi\">\n <cauca-mobile-time-picker (valueChange)=\"hourChanged($event)\" [options]=\"hours\" [value]=\"selectedHour\" />\n </div>\n\n <div class=\"hour-and-minute-separator\" *ngIf=\"showMobileUi\">:</div>\n\n <div class=\"minutes\" *ngIf=\"!showMobileUi\">\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.minutes, someOptions: disabled.someMinutes}\" (valueChange)=\"minuteChanged($event)\" [options]=\"minutes\" [value]=\"selectedMinute\"/>\n </div>\n <div class=\"minutes\" *ngIf=\"showMobileUi\">\n <cauca-mobile-time-picker (valueChange)=\"minuteChanged($event)\" [options]=\"minutes\" [value]=\"selectedMinute\" />\n </div>\n\n <div class=\"minute-and-second-separator\" *ngIf=\"showSeconds && showMobileUi\">:</div>\n <div class=\"seconds\" *ngIf=\"showSeconds && !showMobileUi\">\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.seconds, someOptions: disabled.someSeconds}\" (valueChange)=\"secondChanged($event)\" [options]=\"seconds\" [value]=\"selectedSecond\"/>\n </div>\n <div class=\"seconds\" *ngIf=\"showSeconds && showMobileUi\">\n <cauca-mobile-time-picker (valueChange)=\"secondChanged($event)\" [options]=\"seconds\" [value]=\"selectedSecond\" />\n </div>\n </div>\n</div>\n\n<div mat-dialog-actions align=\"end\">\n <button mat-stroked-button (click)=\"clear()\" *ngIf=\"showClearButton\">\n <mat-icon *ngIf=\"showButtonIcons\">clear</mat-icon>\n {{'material.clear' | translate}}\n </button>\n <button mat-stroked-button (click)=\"cancel()\">\n <mat-icon *ngIf=\"showButtonIcons\">cancel</mat-icon>\n {{'material.cancel' | translate}}\n </button>\n <button color=\"primary\" mat-raised-button cdkFocusInitial (click)=\"confirm()\">\n <mat-icon *ngIf=\"showButtonIcons\">check</mat-icon>\n {{'material.ok' | translate}}\n </button>\n</div>", styles: ["div[mat-dialog-actions]{padding:8px;border-top:1px solid #ccc}div[mat-dialog-actions] button{margin:2px}.date-time-picker{display:grid;grid-template-areas:\"calendar hours minutes seconds\";height:350px;overflow:hidden;justify-content:center}.date-time-picker>div{overflow:auto;flex:1;max-width:50px;scrollbar-width:none;border-left:1px solid #ccc}.date-time-picker>div:first-child{flex:4;max-width:290px;border-left:none}.date-time-picker>div:first-child mat-calendar{width:290px;height:350px}.date-time-picker>div::-webkit-scrollbar{display:none}.date-time-picker ::ng-deep .mdc-list-item__primary-text{font-family:var(--mat-datepicker-calendar-text-font);font-size:var(--mat-datepicker-calendar-text-size)}.date-time-picker ::ng-deep .mdc-list-item--activated{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color)}.date-time-picker ::ng-deep .mdc-list-item--activated .mdc-list-item__primary-text{color:var(--mat-datepicker-calendar-date-selected-state-text-color)}.calendar{grid-area:calendar}.hours{grid-area:hours}.minutes{grid-area:minutes}.seconds{grid-area:seconds}.hour-and-minute-separator{grid-area:hour-and-minute-separator;display:flex;align-items:center;justify-content:center;font-weight:700}.minute-and-second-separator{grid-area:minute-and-second-separator;display:flex;align-items:center;justify-content:center;font-weight:700}@media only screen and (max-width: 555px){.show-seconds{grid-template-areas:\"calendar calendar calendar calendar calendar calendar calendar\" \". hours hour-and-minute-separator minutes minute-and-second-separator seconds .\";grid-template-columns:auto 40px 2px 40px 2px 40px auto}.hide-seconds{grid-template-areas:\"calendar calendar calendar calendar calendar\" \". hours hour-and-minute-separator minutes .\";grid-template-columns:auto 40px 2px 40px auto}.date-time-picker{grid-template-rows:auto auto;height:450px}.date-time-picker>div{border-left:none}.date-time-picker>div:not(:first-child){height:70px}.date-time-picker>div:first-child{overflow:initial;flex:4;max-width:290px;border-left:none}}\n"] }]
350
+ }], () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
351
+ type: Inject,
352
+ args: [MAT_DIALOG_DATA]
353
+ }] }], { onResize: [{
354
+ type: HostListener,
355
+ args: ['window:resize', ['$event']]
356
+ }] }); })();
357
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DialogDateTimePickerComponent, { className: "DialogDateTimePickerComponent", filePath: "lib\\inputs\\cauca-date-time-picker\\components\\dialog-date-time-picker\\dialog-date-time-picker.component.ts", lineNumber: 31 }); })();
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvY2F1Y2EtZGF0ZS10aW1lLXBpY2tlci9jb21wb25lbnRzL2RpYWxvZy1kYXRlLXRpbWUtcGlja2VyL2RpYWxvZy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvaW5wdXRzL2NhdWNhLWRhdGUtdGltZS1waWNrZXIvY29tcG9uZW50cy9kaWFsb2ctZGF0ZS10aW1lLXBpY2tlci9kaWFsb2ctZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxF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QUtiLGNBQW1CO1lBQW5CLHdDQUFtQjtZQUduQixjQUFrQjtZQUFsQix1Q0FBa0I7WUFJRSxjQUFrQjtZQUFsQix1Q0FBa0I7WUFFcEMsY0FBbUI7WUFBbkIsd0NBQW1CO1lBR25CLGNBQWtCO1lBQWxCLHVDQUFrQjtZQUlFLGNBQWlDO1lBQWpDLDBEQUFpQztZQUNyRCxjQUFrQztZQUFsQywyREFBa0M7WUFHbEMsY0FBaUM7WUFBakMsMERBQWlDO1lBT2IsZUFBcUI7WUFBckIsMENBQXFCO1lBS3BELGVBQXFCO1lBQXJCLDBDQUFxQjtZQUNoQyxjQUNKO1lBREksMEVBQ0o7WUFFZSxlQUFxQjtZQUFyQiwwQ0FBcUI7WUFDaEMsY0FDSjtZQURJLHNFQUNKOzRCRGhDQSxlQUFlLGdCQUNmLG1CQUFtQixrQkFDbkIsYUFBYSxjQUNiLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQixPQUFPO1lBQ1AsZUFBZTs7aUZBS04sNkJBQTZCO2NBakJ6QyxTQUFTOzJCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1A7b0JBQ1AsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLHlCQUF5QjtvQkFDekIsMEJBQTBCO29CQUMxQixPQUFPO29CQUNQLGVBQWU7aUJBQ2hCOztzQkFzQ0UsTUFBTTt1QkFBQyxlQUFlO3FCQWVsQixRQUFRO2tCQURkLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztrRkFoRDlCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgRGlhbG9nRGF0ZVRpbWVQaWNrZXJPcHRpb25zLCBEaWFsb2dEYXRlVGltZVBpY2tlckRhdGFEaXNhYmxlZCwgRGlhbG9nRGF0ZVRpbWVQaWNrZXJEYXRhU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscy9kaWFsb2ctZGF0ZS10aW1lLXBpY2tlci1kYXRhJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNb2JpbGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9iaWxlLXRpbWUtcGlja2VyL21vYmlsZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVza3RvcFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kZXNrdG9wLXRpbWUtcGlja2VyL2Rlc2t0b3AtdGltZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NhdWNhLWRpYWxvZy1kYXRlLXRpbWUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1vYmlsZVRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgRGVza3RvcFRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RpYWxvZy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dEYXRlVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBzZWxlY3RlZEhvdXIgPSAwO1xuICBwdWJsaWMgc2VsZWN0ZWRNaW51dGUgPSAwO1xuICBwdWJsaWMgc2VsZWN0ZWRTZWNvbmQgPSAwO1xuICBwdWJsaWMgaW5pdGlhbERhdGU6IERhdGUgPSBudWxsO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlID0gbnVsbDtcbiAgcHVibGljIG1pbmltdW1EYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIG1heGltdW1EYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHNob3dTZWNvbmRzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93Q2xlYXJCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgc2hvd0J1dHRvbkljb25zOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgaG91cnMgPSBbLi4uQXJyYXkoMjQpLmtleXMoKV07XG4gIHB1YmxpYyBtaW51dGVzID0gWy4uLkFycmF5KDYwKS5rZXlzKCldO1xuICBwdWJsaWMgc2Vjb25kcyA9IFsuLi5BcnJheSg2MCkua2V5cygpXTtcbiAgcHVibGljIHNob3dNb2JpbGVVaTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkaXNhYmxlZDogRGlhbG9nRGF0ZVRpbWVQaWNrZXJEYXRhRGlzYWJsZWQgPSB7XG4gICAgaG91cnM6IHRydWUsXG4gICAgc29tZUhvdXJzOiBbXSxcbiAgICBtaW51dGVzOiB0cnVlLFxuICAgIHNvbWVNaW51dGVzOiBbXSxcbiAgICBzZWNvbmRzOiB0cnVlLFxuICAgIHNvbWVTZWNvbmRzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIHN0ZXA6IERpYWxvZ0RhdGVUaW1lUGlja2VyRGF0YVN0ZXAgPSB7XG4gICAgaG91cnM6IDEsXG4gICAgbWludXRlczogMSxcbiAgICBzZWNvbmRzOiAxLFxuICB9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGlhbG9nRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgb3B0aW9uczogRGlhbG9nRGF0ZVRpbWVQaWNrZXJPcHRpb25zXG4gICkge1xuICAgIHRoaXMuc3RlcCA9IG9wdGlvbnMuc3RlcCB8fCB0aGlzLnN0ZXA7XG4gICAgdGhpcy5zaG93U2Vjb25kcyA9IG9wdGlvbnMuc2hvd1NlY29uZHM7XG4gICAgdGhpcy5zaG93QnV0dG9uSWNvbnMgPSBvcHRpb25zLnNob3dCdXR0b25JY29ucyA/PyB0aGlzLnNob3dCdXR0b25JY29ucztcbiAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IG9wdGlvbnMuc2hvd0NsZWFyQnV0dG9uID8/IHRoaXMuc2hvd0NsZWFyQnV0dG9uO1xuICAgIHRoaXMuc2V0TGlzdEhvdXJzTWludXRlcygpO1xuICAgIHRoaXMuaW5pdGlhbEVhY2hDb21wb25lbnRWYWx1ZShvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uV2luZG93V2l0aENoYW5nZSh3aW5kb3cuaW5uZXJXaWR0aCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uUmVzaXplKGV2ZW50KSB7XG4gICAgdGhpcy5vbldpbmRvd1dpdGhDaGFuZ2UoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgpO1xuICB9XG5cbiAgcHVibGljIGRhdGVDaGFuZ2VkKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0SG91cnModGhpcy5zZWxlY3RlZEhvdXIpO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0TWludXRlcyh0aGlzLnNlbGVjdGVkTWludXRlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldFNlY29uZHModGhpcy5zZWxlY3RlZFNlY29uZCk7XG4gICAgICB0aGlzLmRpc2FibGVkLmhvdXJzID0gZmFsc2U7XG4gICAgICB0aGlzLmRpc2FibGVkLnNvbWVIb3VycyA9IHRoaXMuaG91cnMuZmlsdGVyKGhvdXIgPT4gdGhpcy5ob3VyT2ZTZWxlY3RlZERhdGVJc0Rpc2FibGVkKGhvdXIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgICAgdGhpcy5kaXNhYmxlZC5ob3VycyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvdXJDaGFuZ2VkKGhvdXI6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkLmhvdXJzIHx8IHRoaXMuZGlzYWJsZWQuc29tZUhvdXJzLmluY2x1ZGVzKGhvdXIpKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGhvdXI7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0SG91cnMoaG91cik7XG4gICAgdGhpcy5kaXNhYmxlZC5taW51dGVzID0gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlZC5zb21lTWludXRlcyA9IHRoaXMubWludXRlcy5maWx0ZXIobWludXRlID0+IHRoaXMubWludXRlT2ZTZWxlY3RlZERhdGVJc0Rpc2FibGVkKG1pbnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIG1pbnV0ZUNoYW5nZWQobWludXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZC5taW51dGVzIHx8IHRoaXMuZGlzYWJsZWQuc29tZU1pbnV0ZXMuaW5jbHVkZXMobWludXRlKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IG1pbnV0ZTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXRNaW51dGVzKG1pbnV0ZSk7XG4gICAgdGhpcy5kaXNhYmxlZC5zZWNvbmRzID0gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlZC5zb21lU2Vjb25kcyA9IHRoaXMuc2Vjb25kcy5maWx0ZXIoc2Vjb25kID0+IHRoaXMuc2Vjb25kT2ZTZWxlY3RlZERhdGVJc0Rpc2FibGVkKHNlY29uZCkpO1xuICB9XG5cbiAgcHVibGljIHNlY29uZENoYW5nZWQoc2Vjb25kOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZC5zZWNvbmRzIHx8IHRoaXMuZGlzYWJsZWQuc29tZVNlY29uZHMuaW5jbHVkZXMoc2Vjb25kKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZWxlY3RlZFNlY29uZCA9IHNlY29uZDtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXRTZWNvbmRzKHNlY29uZCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgdmFsdWU6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgdmFsdWU6IHRoaXMuaW5pdGlhbERhdGVcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkRGF0ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbldpbmRvd1dpdGhDaGFuZ2Uod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vYmlsZVVpID0gd2lkdGggJiYgd2lkdGggPD0gNTU1O1xuICB9XG5cbiAgcHJpdmF0ZSBob3VyT2ZTZWxlY3RlZERhdGVJc0Rpc2FibGVkKGhvdXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZUlzVGhlTWluaW11bURhdGUoKSkge1xuICAgICAgcmV0dXJuIGhvdXIgPCB0aGlzLm1pbmltdW1EYXRlLmdldEhvdXJzKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRGF0ZUlzVGhlTWF4aW11bURhdGUoKSkge1xuICAgICAgcmV0dXJuIGhvdXIgPiB0aGlzLm1heGltdW1EYXRlLmdldEhvdXJzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW51dGVPZlNlbGVjdGVkRGF0ZUlzRGlzYWJsZWQobWludXRlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUlzVGhlTWluaW11bURhdGUoKSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZ2V0SG91cnMoKSA9PT0gdGhpcy5taW5pbXVtRGF0ZS5nZXRIb3VycygpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbWludXRlIDwgdGhpcy5taW5pbXVtRGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlSXNUaGVNYXhpbXVtRGF0ZSgpICYmXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRIb3VycygpID09PSB0aGlzLm1heGltdW1EYXRlLmdldEhvdXJzKClcbiAgICApIHtcbiAgICAgIHJldHVybiBtaW51dGUgPiB0aGlzLm1heGltdW1EYXRlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNlY29uZE9mU2VsZWN0ZWREYXRlSXNEaXNhYmxlZChzZWNvbmQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlSXNUaGVNaW5pbXVtRGF0ZSgpICYmXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRIb3VycygpID09PSB0aGlzLm1pbmltdW1EYXRlLmdldEhvdXJzKCkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldE1pbnV0ZXMoKSA9PT0gdGhpcy5taW5pbXVtRGF0ZS5nZXRNaW51dGVzKClcbiAgICApIHtcbiAgICAgIHJldHVybiBzZWNvbmQgPCB0aGlzLm1pbmltdW1EYXRlLmdldFNlY29uZHMoKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVJc1RoZU1heGltdW1EYXRlKCkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldE1pbnV0ZXMoKSA9PT0gdGhpcy5tYXhpbXVtRGF0ZS5nZXRNaW51dGVzKClcbiAgICApIHtcbiAgICAgIHJldHVybiBzZWNvbmQgPiB0aGlzLm1heGltdW1EYXRlLmdldFNlY29uZHMoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxFYWNoQ29tcG9uZW50VmFsdWUob3B0aW9uczogRGlhbG9nRGF0ZVRpbWVQaWNrZXJPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsRGF0ZSA9IG9wdGlvbnMuc2VsZWN0ZWREYXRlID8gbmV3IERhdGUob3B0aW9ucy5zZWxlY3RlZERhdGUpIDogbnVsbDtcbiAgICB0aGlzLm1pbmltdW1EYXRlID0gb3B0aW9ucy5taW5pbXVtRGF0ZSA/IG5ldyBEYXRlKG9wdGlvbnMubWluaW11bURhdGUpIDogbnVsbDtcbiAgICB0aGlzLm1heGltdW1EYXRlID0gb3B0aW9ucy5tYXhpbXVtRGF0ZSA/IG5ldyBEYXRlKG9wdGlvbnMubWF4aW11bURhdGUpIDogbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG9wdGlvbnMuc2VsZWN0ZWREYXRlID8gbmV3IERhdGUob3B0aW9ucy5zZWxlY3RlZERhdGUpIDogbmV3IERhdGUoKTtcbiAgICB0aGlzLmRhdGVDaGFuZ2VkKG9wdGlvbnMuc2VsZWN0ZWREYXRlID8gbmV3IERhdGUob3B0aW9ucy5zZWxlY3RlZERhdGUpIDogbnVsbCk7XG4gICAgdGhpcy5ob3VyQ2hhbmdlZChvcHRpb25zLnNlbGVjdGVkRGF0ZSA/IG5ldyBEYXRlKG9wdGlvbnMuc2VsZWN0ZWREYXRlKS5nZXRIb3VycygpIDogMCk7XG4gICAgdGhpcy5taW51dGVDaGFuZ2VkKG9wdGlvbnMuc2VsZWN0ZWREYXRlID8gbmV3IERhdGUob3B0aW9ucy5zZWxlY3RlZERhdGUpLmdldE1pbnV0ZXMoKSA6IDApO1xuICAgIHRoaXMuc2Vjb25kQ2hhbmdlZChvcHRpb25zLnNlbGVjdGVkRGF0ZSA/IG5ldyBEYXRlKG9wdGlvbnMuc2VsZWN0ZWREYXRlKS5nZXRTZWNvbmRzKCkgOiAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWREYXRlSXNUaGVNaW5pbXVtRGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5taW5pbXVtRGF0ZSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdGhpcy5taW5pbXVtRGF0ZS5nZXRGdWxsWWVhcigpICYmXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpID09PSB0aGlzLm1pbmltdW1EYXRlLmdldE1vbnRoKCkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSA9PT0gdGhpcy5taW5pbXVtRGF0ZS5nZXREYXRlKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZERhdGVJc1RoZU1heGltdW1EYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm1heGltdW1EYXRlICYmXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpID09PSB0aGlzLm1heGltdW1EYXRlLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgPT09IHRoaXMubWF4aW11bURhdGUuZ2V0TW9udGgoKSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpID09PSB0aGlzLm1heGltdW1EYXRlLmdldERhdGUoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RIb3Vyc01pbnV0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ob3VycyA9IHRoaXMuaG91cnMuZmlsdGVyKGhvdXIgPT4gaG91ciAlIHRoaXMuc3RlcC5ob3VycyA9PT0gMCk7XG4gICAgdGhpcy5taW51dGVzID0gdGhpcy5taW51dGVzLmZpbHRlcihtaW51dGUgPT4gbWludXRlICUgdGhpcy5zdGVwLm1pbnV0ZXMgPT09IDApO1xuICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcy5maWx0ZXIoc2Vjb25kZSA9PiBzZWNvbmRlICUgdGhpcy5zdGVwLnNlY29uZHMgPT09IDApO1xuICB9XG59XG4iLCI8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dTZWNvbmRzID8gJ3Nob3ctc2Vjb25kcycgOiAnaGlkZS1zZWNvbmRzJ1wiIGNsYXNzPVwiZGF0ZS10aW1lLXBpY2tlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICAgICAgICAgIDxtYXQtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5pbXVtRGF0ZVwiXG4gICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4aW11bURhdGVcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJkYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L21hdC1jYWxlbmRhcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhvdXJzXCIgKm5nSWY9XCIhc2hvd01vYmlsZVVpXCI+XG4gICAgICAgICAgICA8Y2F1Y2EtZGVza3RvcC10aW1lLXBpY2tlciBbZGlzYWJsZWRdPVwie2FsbDogZGlzYWJsZWQuaG91cnMsIHNvbWVPcHRpb25zOiBkaXNhYmxlZC5zb21lSG91cnN9XCIgKHZhbHVlQ2hhbmdlKT1cImhvdXJDaGFuZ2VkKCRldmVudClcIiBbb3B0aW9uc109XCJob3Vyc1wiIFt2YWx1ZV09XCJzZWxlY3RlZEhvdXJcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91cnNcIiAqbmdJZj1cInNob3dNb2JpbGVVaVwiPlxuICAgICAgICAgICAgPGNhdWNhLW1vYmlsZS10aW1lLXBpY2tlciAodmFsdWVDaGFuZ2UpPVwiaG91ckNoYW5nZWQoJGV2ZW50KVwiIFtvcHRpb25zXT1cImhvdXJzXCIgW3ZhbHVlXT1cInNlbGVjdGVkSG91clwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWFuZC1taW51dGUtc2VwYXJhdG9yXCIgKm5nSWY9XCJzaG93TW9iaWxlVWlcIj46PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pbnV0ZXNcIiAqbmdJZj1cIiFzaG93TW9iaWxlVWlcIj5cbiAgICAgICAgICAgIDxjYXVjYS1kZXNrdG9wLXRpbWUtcGlja2VyIFtkaXNhYmxlZF09XCJ7YWxsOiBkaXNhYmxlZC5taW51dGVzLCBzb21lT3B0aW9uczogZGlzYWJsZWQuc29tZU1pbnV0ZXN9XCIgKHZhbHVlQ2hhbmdlKT1cIm1pbnV0ZUNoYW5nZWQoJGV2ZW50KVwiIFtvcHRpb25zXT1cIm1pbnV0ZXNcIiBbdmFsdWVdPVwic2VsZWN0ZWRNaW51dGVcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWludXRlc1wiICpuZ0lmPVwic2hvd01vYmlsZVVpXCI+XG4gICAgICAgICAgICA8Y2F1Y2EtbW9iaWxlLXRpbWUtcGlja2VyICh2YWx1ZUNoYW5nZSk9XCJtaW51dGVDaGFuZ2VkKCRldmVudClcIiBbb3B0aW9uc109XCJtaW51dGVzXCIgW3ZhbHVlXT1cInNlbGVjdGVkTWludXRlXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pbnV0ZS1hbmQtc2Vjb25kLXNlcGFyYXRvclwiICpuZ0lmPVwic2hvd1NlY29uZHMgJiYgc2hvd01vYmlsZVVpXCI+OjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kc1wiICpuZ0lmPVwic2hvd1NlY29uZHMgJiYgIXNob3dNb2JpbGVVaVwiPlxuICAgICAgICAgICAgPGNhdWNhLWRlc2t0b3AtdGltZS1waWNrZXIgW2Rpc2FibGVkXT1cInthbGw6IGRpc2FibGVkLnNlY29uZHMsIHNvbWVPcHRpb25zOiBkaXNhYmxlZC5zb21lU2Vjb25kc31cIiAodmFsdWVDaGFuZ2UpPVwic2Vjb25kQ2hhbmdlZCgkZXZlbnQpXCIgW29wdGlvbnNdPVwic2Vjb25kc1wiIFt2YWx1ZV09XCJzZWxlY3RlZFNlY29uZFwiLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRzXCIgKm5nSWY9XCJzaG93U2Vjb25kcyAmJiBzaG93TW9iaWxlVWlcIj5cbiAgICAgICAgICAgIDxjYXVjYS1tb2JpbGUtdGltZS1waWNrZXIgKHZhbHVlQ2hhbmdlKT1cInNlY29uZENoYW5nZWQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInNlY29uZHNcIiBbdmFsdWVdPVwic2VsZWN0ZWRTZWNvbmRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgKm5nSWY9XCJzaG93Q2xlYXJCdXR0b25cIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2hvd0J1dHRvbkljb25zXCI+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICB7eydtYXRlcmlhbC5jbGVhcicgfCB0cmFuc2xhdGV9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93QnV0dG9uSWNvbnNcIj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICB7eydtYXRlcmlhbC5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNka0ZvY3VzSW5pdGlhbCAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNob3dCdXR0b25JY29uc1wiPmNoZWNrPC9tYXQtaWNvbj5cbiAgICAgICAge3snbWF0ZXJpYWwub2snIHwgdHJhbnNsYXRlfX1cbiAgICA8L2J1dHRvbj5cbjwvZGl2PiJdfQ==