@idea-ionic/uncommon 8.2.1

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 (80) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +21 -0
  3. package/css/global.scss +15 -0
  4. package/esm2022/idea-ionic-uncommon.mjs +5 -0
  5. package/esm2022/public-api.mjs +35 -0
  6. package/esm2022/src/AWSAPI.service.mjs +430 -0
  7. package/esm2022/src/AWSAPISocket.service.mjs +187 -0
  8. package/esm2022/src/address/address.component.mjs +94 -0
  9. package/esm2022/src/address/address.module.mjs +21 -0
  10. package/esm2022/src/announcement/announcement.component.mjs +41 -0
  11. package/esm2022/src/announcement/announcement.module.mjs +21 -0
  12. package/esm2022/src/cachedResources.service.mjs +55 -0
  13. package/esm2022/src/colors/colorPicker.component.mjs +135 -0
  14. package/esm2022/src/colors/colorPicker.module.mjs +20 -0
  15. package/esm2022/src/contacts/contacts.component.mjs +64 -0
  16. package/esm2022/src/contacts/contacts.module.mjs +21 -0
  17. package/esm2022/src/dateTime/calendarPicker.component.mjs +196 -0
  18. package/esm2022/src/dateTime/dateTime.component.mjs +133 -0
  19. package/esm2022/src/dateTime/dateTime.module.mjs +22 -0
  20. package/esm2022/src/duration/duration.component.mjs +77 -0
  21. package/esm2022/src/duration/duration.module.mjs +21 -0
  22. package/esm2022/src/echo/echo.module.mjs +26 -0
  23. package/esm2022/src/echo/echo.page.mjs +165 -0
  24. package/esm2022/src/errorReporting.service.mjs +68 -0
  25. package/esm2022/src/mde/mde.component.mjs +44 -0
  26. package/esm2022/src/mde/mde.module.mjs +22 -0
  27. package/esm2022/src/mde/mdeToolbar.component.mjs +12 -0
  28. package/esm2022/src/offline/cacheableResource.component.mjs +18 -0
  29. package/esm2022/src/offline/offline.module.mjs +22 -0
  30. package/esm2022/src/offline/offline.service.mjs +62 -0
  31. package/esm2022/src/offline/offlineData.service.mjs +479 -0
  32. package/esm2022/src/offline/offlineIndicator.component.mjs +58 -0
  33. package/esm2022/src/offline/offlineManager.component.mjs +84 -0
  34. package/esm2022/src/pushNotifications.service.mjs +56 -0
  35. package/esm2022/src/sentiment/sentiment.component.mjs +71 -0
  36. package/esm2022/src/sentiment/sentiment.module.mjs +21 -0
  37. package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +155 -0
  38. package/esm2022/src/timeInterval/timeInterval.component.mjs +122 -0
  39. package/esm2022/src/timeInterval/timeInterval.module.mjs +22 -0
  40. package/esm2022/src/tinCan.service.mjs +49 -0
  41. package/fesm2022/idea-ionic-uncommon.mjs +2891 -0
  42. package/fesm2022/idea-ionic-uncommon.mjs.map +1 -0
  43. package/index.d.ts +5 -0
  44. package/package.json +51 -0
  45. package/public-api.d.ts +34 -0
  46. package/src/AWSAPI.service.d.ts +178 -0
  47. package/src/AWSAPISocket.service.d.ts +129 -0
  48. package/src/address/address.component.d.ts +64 -0
  49. package/src/address/address.module.d.ts +11 -0
  50. package/src/announcement/announcement.component.d.ts +23 -0
  51. package/src/announcement/announcement.module.d.ts +11 -0
  52. package/src/cachedResources.service.d.ts +34 -0
  53. package/src/colors/colorPicker.component.d.ts +78 -0
  54. package/src/colors/colorPicker.module.d.ts +10 -0
  55. package/src/contacts/contacts.component.d.ts +31 -0
  56. package/src/contacts/contacts.module.d.ts +11 -0
  57. package/src/dateTime/calendarPicker.component.d.ts +45 -0
  58. package/src/dateTime/dateTime.component.d.ts +81 -0
  59. package/src/dateTime/dateTime.module.d.ts +12 -0
  60. package/src/duration/duration.component.d.ts +68 -0
  61. package/src/duration/duration.module.d.ts +11 -0
  62. package/src/echo/echo.module.d.ts +12 -0
  63. package/src/echo/echo.page.d.ts +34 -0
  64. package/src/errorReporting.service.d.ts +26 -0
  65. package/src/mde/mde.component.d.ts +39 -0
  66. package/src/mde/mde.module.d.ts +12 -0
  67. package/src/mde/mdeToolbar.component.d.ts +5 -0
  68. package/src/offline/cacheableResource.component.d.ts +11 -0
  69. package/src/offline/offline.module.d.ts +12 -0
  70. package/src/offline/offline.service.d.ts +39 -0
  71. package/src/offline/offlineData.service.d.ts +281 -0
  72. package/src/offline/offlineIndicator.component.d.ts +25 -0
  73. package/src/offline/offlineManager.component.d.ts +17 -0
  74. package/src/pushNotifications.service.d.ts +26 -0
  75. package/src/sentiment/sentiment.component.d.ts +35 -0
  76. package/src/sentiment/sentiment.module.d.ts +11 -0
  77. package/src/timeInterval/fromTimeToTime.component.d.ts +61 -0
  78. package/src/timeInterval/timeInterval.component.d.ts +84 -0
  79. package/src/timeInterval/timeInterval.module.d.ts +12 -0
  80. package/src/tinCan.service.d.ts +31 -0
@@ -0,0 +1,133 @@
1
+ import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
2
+ import { ModalController } from '@ionic/angular';
3
+ import { IDEATranslationsService } from '@idea-ionic/common';
4
+ import { IDEACalendarPickerComponent } from './calendarPicker.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ionic/angular";
7
+ export class IDEADateTimeComponent {
8
+ constructor() {
9
+ this._modal = inject(ModalController);
10
+ this._translate = inject(IDEATranslationsService);
11
+ /**
12
+ * Whether to show the time picker (datetime) or not (date).
13
+ */
14
+ this.timePicker = false;
15
+ /**
16
+ * Whether to show the MANUAL time picker (datetime) or not (date).
17
+ */
18
+ this.manualTimePicker = false;
19
+ /**
20
+ * Whether to use the `epochISOString` format instead of `epochDateTime`.
21
+ */
22
+ this.useISOFormat = false;
23
+ /**
24
+ * If true, the component is disabled.
25
+ */
26
+ this.disabled = false;
27
+ /**
28
+ * If true, the obligatory dot is shown.
29
+ */
30
+ this.obligatory = false;
31
+ /**
32
+ * If true, hidew the clear button in the header.
33
+ */
34
+ this.hideClearButton = false;
35
+ this.dateChange = new EventEmitter();
36
+ this.iconSelect = new EventEmitter();
37
+ this.isOpening = false;
38
+ }
39
+ ngOnInit() {
40
+ this.langChangeSubscription = this._translate.onLangChange.subscribe(() => {
41
+ this.valueToDisplay = this.getValueToDisplay(this.date);
42
+ });
43
+ }
44
+ ngOnDestroy() {
45
+ if (this.langChangeSubscription)
46
+ this.langChangeSubscription.unsubscribe();
47
+ }
48
+ ngOnChanges(changes) {
49
+ if (changes.date || changes.timePicker)
50
+ this.valueToDisplay = this.getValueToDisplay(this.date);
51
+ }
52
+ async openCalendarPicker() {
53
+ if (this.disabled || this.isOpening)
54
+ return;
55
+ this.isOpening = true;
56
+ const modal = await this._modal.create({
57
+ component: IDEACalendarPickerComponent,
58
+ componentProps: {
59
+ inputDate: this.date,
60
+ title: this.label,
61
+ timePicker: this.timePicker,
62
+ manualTimePicker: this.manualTimePicker,
63
+ hideClearButton: this.hideClearButton,
64
+ min: this.min,
65
+ max: this.max
66
+ }
67
+ });
68
+ modal.onDidDismiss().then(({ data }) => {
69
+ if (data !== undefined && data !== null) {
70
+ if (data === '')
71
+ this.doSelect(null);
72
+ else
73
+ this.doSelect(data);
74
+ }
75
+ });
76
+ modal.present();
77
+ this.isOpening = false;
78
+ }
79
+ getValueToDisplay(date) {
80
+ return !date
81
+ ? ''
82
+ : this._translate.formatDate(date, this.timePicker || this.manualTimePicker ? 'd MMM yyyy, HH:mm' : 'mediumDate');
83
+ }
84
+ doSelect(date) {
85
+ this.dateChange.emit(date ? (this.useISOFormat ? date.toISOString() : date.valueOf()) : null);
86
+ }
87
+ doIconSelect(event) {
88
+ if (event)
89
+ event.stopPropagation();
90
+ this.iconSelect.emit();
91
+ }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEADateTimeComponent, selector: "idea-date-time", inputs: { date: "date", timePicker: "timePicker", manualTimePicker: "manualTimePicker", useISOFormat: "useISOFormat", label: "label", icon: "icon", iconColor: "iconColor", lines: "lines", color: "color", placeholder: "placeholder", disabled: "disabled", obligatory: "obligatory", hideClearButton: "hideClearButton", min: "min", max: "max" }, outputs: { dateChange: "dateChange", iconSelect: "iconSelect" }, usesOnChanges: true, ngImport: i0, template: "<ion-item\n class=\"dateTimeItem\"\n [color]=\"color\"\n [lines]=\"lines\"\n [title]=\"placeholder || label || ''\"\n [button]=\"!disabled\"\n [disabled]=\"isOpening\"\n [class.withLabel]=\"label\"\n (click)=\"openCalendarPicker()\"\n>\n @if (icon) {\n <ion-button fill=\"clear\" slot=\"start\" [color]=\"iconColor\" [class.marginTop]=\"label\" (click)=\"doIconSelect($event)\">\n <ion-icon [icon]=\"icon\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (label) {\n <ion-label position=\"stacked\" [class.selectable]=\"!disabled\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-label class=\"value\" [class.selectable]=\"!disabled\">\n @if (!valueToDisplay && !disabled) {\n <ion-text class=\"placeholder\" [class.selectable]=\"!disabled\">\n {{ placeholder }}\n </ion-text>\n }\n {{ valueToDisplay }}\n </ion-label>\n @if (!disabled) {\n <ion-icon slot=\"end\" icon=\"caret-down\" class=\"selectIcon\" [class.selectable]=\"!disabled\" />\n }\n</ion-item>\n", styles: [".dateTimeItem{min-height:48px;height:auto}.dateTimeItem .description{margin:10px 0;height:20px;line-height:20px;width:100%}.dateTimeItem .placeholder{color:var(--ion-color-medium)}.dateTimeItem .value{white-space:nowrap}.dateTimeItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.dateTimeItem.withLabel{min-height:58px;height:auto}.dateTimeItem.withLabel .selectIcon{padding-top:25px}.dateTimeItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeComponent, decorators: [{
96
+ type: Component,
97
+ args: [{ selector: 'idea-date-time', template: "<ion-item\n class=\"dateTimeItem\"\n [color]=\"color\"\n [lines]=\"lines\"\n [title]=\"placeholder || label || ''\"\n [button]=\"!disabled\"\n [disabled]=\"isOpening\"\n [class.withLabel]=\"label\"\n (click)=\"openCalendarPicker()\"\n>\n @if (icon) {\n <ion-button fill=\"clear\" slot=\"start\" [color]=\"iconColor\" [class.marginTop]=\"label\" (click)=\"doIconSelect($event)\">\n <ion-icon [icon]=\"icon\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (label) {\n <ion-label position=\"stacked\" [class.selectable]=\"!disabled\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-label class=\"value\" [class.selectable]=\"!disabled\">\n @if (!valueToDisplay && !disabled) {\n <ion-text class=\"placeholder\" [class.selectable]=\"!disabled\">\n {{ placeholder }}\n </ion-text>\n }\n {{ valueToDisplay }}\n </ion-label>\n @if (!disabled) {\n <ion-icon slot=\"end\" icon=\"caret-down\" class=\"selectIcon\" [class.selectable]=\"!disabled\" />\n }\n</ion-item>\n", styles: [".dateTimeItem{min-height:48px;height:auto}.dateTimeItem .description{margin:10px 0;height:20px;line-height:20px;width:100%}.dateTimeItem .placeholder{color:var(--ion-color-medium)}.dateTimeItem .value{white-space:nowrap}.dateTimeItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.dateTimeItem.withLabel{min-height:58px;height:auto}.dateTimeItem.withLabel .selectIcon{padding-top:25px}.dateTimeItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}\n"] }]
98
+ }], propDecorators: { date: [{
99
+ type: Input
100
+ }], timePicker: [{
101
+ type: Input
102
+ }], manualTimePicker: [{
103
+ type: Input
104
+ }], useISOFormat: [{
105
+ type: Input
106
+ }], label: [{
107
+ type: Input
108
+ }], icon: [{
109
+ type: Input
110
+ }], iconColor: [{
111
+ type: Input
112
+ }], lines: [{
113
+ type: Input
114
+ }], color: [{
115
+ type: Input
116
+ }], placeholder: [{
117
+ type: Input
118
+ }], disabled: [{
119
+ type: Input
120
+ }], obligatory: [{
121
+ type: Input
122
+ }], hideClearButton: [{
123
+ type: Input
124
+ }], min: [{
125
+ type: Input
126
+ }], max: [{
127
+ type: Input
128
+ }], dateChange: [{
129
+ type: Output
130
+ }], iconSelect: [{
131
+ type: Output
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZGF0ZVRpbWUvZGF0ZVRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZGF0ZVRpbWUvZGF0ZVRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFLWixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPekUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBTXJEOztXQUVHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7V0FFRztRQUNNLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNsQzs7V0FFRztRQUNNLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBeUI5Qjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFVdkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUErQyxDQUFDO1FBQzdFLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBS2hELGNBQVMsR0FBRyxLQUFLLENBQUM7S0FvRG5CO0lBbERD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QXFCLGtlQ3ZCbEMsMmxDQW1DQTs7MkZEWmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs4QkFXakIsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJRyxHQUFHO3NCQUFYLEtBQUs7Z0JBSUcsR0FBRztzQkFBWCxLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT25DaGFuZ2VzLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVwb2NoRGF0ZVRpbWUsIGVwb2NoSVNPU3RyaW5nIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUNhbGVuZGFyUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhclBpY2tlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWRhdGUtdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnZGF0ZVRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZGF0ZVRpbWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBRGF0ZVRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfbW9kYWwgPSBpbmplY3QoTW9kYWxDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlID0gaW5qZWN0KElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGhlIGRhdGUgdG8gc2hvdy9waWNrLlxuICAgKi9cbiAgQElucHV0KCkgZGF0ZTogZXBvY2hEYXRlVGltZSB8IGVwb2NoSVNPU3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSB0aW1lIHBpY2tlciAoZGF0ZXRpbWUpIG9yIG5vdCAoZGF0ZSkuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lUGlja2VyID0gZmFsc2U7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIE1BTlVBTCB0aW1lIHBpY2tlciAoZGF0ZXRpbWUpIG9yIG5vdCAoZGF0ZSkuXG4gICAqL1xuICBASW5wdXQoKSBtYW51YWxUaW1lUGlja2VyID0gZmFsc2U7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgYGVwb2NoSVNPU3RyaW5nYCBmb3JtYXQgaW5zdGVhZCBvZiBgZXBvY2hEYXRlVGltZWAuXG4gICAqL1xuICBASW5wdXQoKSB1c2VJU09Gb3JtYXQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpY29uIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb2YgdGhlIGljb24uXG4gICAqL1xuICBASW5wdXQoKSBpY29uQ29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIExpbmVzIHByZWZlcmVuY2VzIGZvciB0aGUgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpIGxpbmVzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3IgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG9ibGlnYXRvcnkgZG90IGlzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgb2JsaWdhdG9yeSA9IGZhbHNlO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgaGlkZXcgdGhlIGNsZWFyIGJ1dHRvbiBpbiB0aGUgaGVhZGVyLlxuICAgKi9cbiAgQElucHV0KCkgaGlkZUNsZWFyQnV0dG9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBJZiBzZXQsIGlzIHRoZSBtaW5pbXVtIGRhdGUgc2VsZWN0YWJsZS5cbiAgICovXG4gIEBJbnB1dCgpIG1pbjogZXBvY2hEYXRlVGltZSB8IGVwb2NoSVNPU3RyaW5nO1xuICAvKipcbiAgICogSWYgc2V0LCBpcyB0aGUgbWF4aW11bSBkYXRlIHNlbGVjdGFibGUuXG4gICAqL1xuICBASW5wdXQoKSBtYXg6IGVwb2NoRGF0ZVRpbWUgfCBlcG9jaElTT1N0cmluZztcblxuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8ZXBvY2hEYXRlVGltZSB8IGVwb2NoSVNPU3RyaW5nIHwgbnVsbCB8IGFueT4oKTtcbiAgQE91dHB1dCgpIGljb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgdmFsdWVUb0Rpc3BsYXk6IHN0cmluZztcbiAgcHJpdmF0ZSBsYW5nQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgaXNPcGVuaW5nID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy52YWx1ZVRvRGlzcGxheSA9IHRoaXMuZ2V0VmFsdWVUb0Rpc3BsYXkodGhpcy5kYXRlKTtcbiAgICB9KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYW5nQ2hhbmdlU3Vic2NyaXB0aW9uKSB0aGlzLmxhbmdDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0ZSB8fCBjaGFuZ2VzLnRpbWVQaWNrZXIpIHRoaXMudmFsdWVUb0Rpc3BsYXkgPSB0aGlzLmdldFZhbHVlVG9EaXNwbGF5KHRoaXMuZGF0ZSk7XG4gIH1cblxuICBhc3luYyBvcGVuQ2FsZW5kYXJQaWNrZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc09wZW5pbmcpIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbmluZyA9IHRydWU7XG4gICAgY29uc3QgbW9kYWwgPSBhd2FpdCB0aGlzLl9tb2RhbC5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBJREVBQ2FsZW5kYXJQaWNrZXJDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBpbnB1dERhdGU6IHRoaXMuZGF0ZSxcbiAgICAgICAgdGl0bGU6IHRoaXMubGFiZWwsXG4gICAgICAgIHRpbWVQaWNrZXI6IHRoaXMudGltZVBpY2tlcixcbiAgICAgICAgbWFudWFsVGltZVBpY2tlcjogdGhpcy5tYW51YWxUaW1lUGlja2VyLFxuICAgICAgICBoaWRlQ2xlYXJCdXR0b246IHRoaXMuaGlkZUNsZWFyQnV0dG9uLFxuICAgICAgICBtaW46IHRoaXMubWluLFxuICAgICAgICBtYXg6IHRoaXMubWF4XG4gICAgICB9XG4gICAgfSk7XG4gICAgbW9kYWwub25EaWREaXNtaXNzKCkudGhlbigoeyBkYXRhIH0pOiB2b2lkID0+IHtcbiAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gJycpIHRoaXMuZG9TZWxlY3QobnVsbCk7XG4gICAgICAgIGVsc2UgdGhpcy5kb1NlbGVjdChkYXRhIGFzIERhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIG1vZGFsLnByZXNlbnQoKTtcbiAgICB0aGlzLmlzT3BlbmluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZVRvRGlzcGxheShkYXRlOiBlcG9jaERhdGVUaW1lIHwgZXBvY2hJU09TdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAhZGF0ZVxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLl90cmFuc2xhdGUuZm9ybWF0RGF0ZShkYXRlLCB0aGlzLnRpbWVQaWNrZXIgfHwgdGhpcy5tYW51YWxUaW1lUGlja2VyID8gJ2QgTU1NIHl5eXksIEhIOm1tJyA6ICdtZWRpdW1EYXRlJyk7XG4gIH1cblxuICBkb1NlbGVjdChkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZSA/ICh0aGlzLnVzZUlTT0Zvcm1hdCA/IGRhdGUudG9JU09TdHJpbmcoKSA6IGRhdGUudmFsdWVPZigpKSA6IG51bGwpO1xuICB9XG4gIGRvSWNvblNlbGVjdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaWNvblNlbGVjdC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxpb24taXRlbVxuICBjbGFzcz1cImRhdGVUaW1lSXRlbVwiXG4gIFtjb2xvcl09XCJjb2xvclwiXG4gIFtsaW5lc109XCJsaW5lc1wiXG4gIFt0aXRsZV09XCJwbGFjZWhvbGRlciB8fCBsYWJlbCB8fCAnJ1wiXG4gIFtidXR0b25dPVwiIWRpc2FibGVkXCJcbiAgW2Rpc2FibGVkXT1cImlzT3BlbmluZ1wiXG4gIFtjbGFzcy53aXRoTGFiZWxdPVwibGFiZWxcIlxuICAoY2xpY2spPVwib3BlbkNhbGVuZGFyUGlja2VyKClcIlxuPlxuICBAaWYgKGljb24pIHtcbiAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzbG90PVwic3RhcnRcIiBbY29sb3JdPVwiaWNvbkNvbG9yXCIgW2NsYXNzLm1hcmdpblRvcF09XCJsYWJlbFwiIChjbGljayk9XCJkb0ljb25TZWxlY3QoJGV2ZW50KVwiPlxuICAgICAgPGlvbi1pY29uIFtpY29uXT1cImljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICA8L2lvbi1idXR0b24+XG4gIH1cbiAgQGlmIChsYWJlbCkge1xuICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJzdGFja2VkXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgICAgQGlmIChvYmxpZ2F0b3J5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJvYmxpZ2F0b3J5RG90XCIgLz5cbiAgICAgIH1cbiAgICA8L2lvbi1sYWJlbD5cbiAgfVxuICA8aW9uLWxhYmVsIGNsYXNzPVwidmFsdWVcIiBbY2xhc3Muc2VsZWN0YWJsZV09XCIhZGlzYWJsZWRcIj5cbiAgICBAaWYgKCF2YWx1ZVRvRGlzcGxheSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIDxpb24tdGV4dCBjbGFzcz1cInBsYWNlaG9sZGVyXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCI+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICA8L2lvbi10ZXh0PlxuICAgIH1cbiAgICB7eyB2YWx1ZVRvRGlzcGxheSB9fVxuICA8L2lvbi1sYWJlbD5cbiAgQGlmICghZGlzYWJsZWQpIHtcbiAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIGljb249XCJjYXJldC1kb3duXCIgY2xhc3M9XCJzZWxlY3RJY29uXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCIgLz5cbiAgfVxuPC9pb24taXRlbT5cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { IDEATranslationsModule } from '@idea-ionic/common';
6
+ import { IDEADateTimeComponent } from './dateTime.component';
7
+ import { IDEACalendarPickerComponent } from './calendarPicker.component';
8
+ import * as i0 from "@angular/core";
9
+ export class IDEADateTimeModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeModule, declarations: [IDEADateTimeComponent, IDEACalendarPickerComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEADateTimeComponent, IDEACalendarPickerComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADateTimeModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
18
+ declarations: [IDEADateTimeComponent, IDEACalendarPickerComponent],
19
+ exports: [IDEADateTimeComponent, IDEACalendarPickerComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZGF0ZVRpbWUvZGF0ZVRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT3pFLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixFQUFFLDJCQUEyQixhQUR2RCxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsYUFFOUQscUJBQXFCLEVBQUUsMkJBQTJCOytHQUVqRCxrQkFBa0IsWUFKbkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsc0JBQXNCOzsyRkFJN0Qsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO29CQUN6RSxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQztvQkFDbEUsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7aUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSURFQVRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZVRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IElERUFDYWxlbmRhclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXJQaWNrZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElvbmljTW9kdWxlLCBJREVBVHJhbnNsYXRpb25zTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbSURFQURhdGVUaW1lQ29tcG9uZW50LCBJREVBQ2FsZW5kYXJQaWNrZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbSURFQURhdGVUaW1lQ29tcG9uZW50LCBJREVBQ2FsZW5kYXJQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElERUFEYXRlVGltZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,77 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@ionic/angular";
5
+ import * as i3 from "@idea-ionic/common";
6
+ export class IDEADurationComponent {
7
+ constructor() {
8
+ /**
9
+ * On change event. It emits a number of seconds representing the duration.
10
+ */
11
+ this.set = new EventEmitter();
12
+ this.default = this.hours = this.minutes = this.seconds = 0;
13
+ }
14
+ ngOnChanges(changes) {
15
+ // assign a default value to the duration
16
+ if (changes['default'] && changes['default'].isFirstChange()) {
17
+ const refDate = new Date(0);
18
+ refDate.setHours(0, 0, 0);
19
+ refDate.setSeconds(refDate.getSeconds() + this.default);
20
+ this.hours = refDate.getHours();
21
+ this.minutes = refDate.getMinutes();
22
+ this.seconds = this.hideSeconds ? 0 : refDate.getSeconds();
23
+ }
24
+ }
25
+ /**
26
+ * When one of the parts changes, emit the new duration.
27
+ */
28
+ setDuration(type) {
29
+ switch (type) {
30
+ case 'hours':
31
+ const hh = Number(this.hours) || 0;
32
+ this.hours = hh > 23 ? 23 : hh < 0 ? 0 : hh;
33
+ break;
34
+ case 'minutes':
35
+ const mm = Number(this.minutes) || 0;
36
+ this.minutes = mm > 59 ? 59 : mm < 0 ? 0 : mm;
37
+ break;
38
+ case 'seconds':
39
+ const ss = Number(this.seconds) || 0;
40
+ if (this.hideSeconds)
41
+ this.seconds = 0;
42
+ else
43
+ this.seconds = ss > 59 ? 59 : ss < 0 ? 0 : ss;
44
+ break;
45
+ }
46
+ this.set.emit(this.hours * 3600 + this.minutes * 60 + this.seconds);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEADurationComponent, selector: "idea-duration", inputs: { default: "default", label: "label", icon: "icon", title: "title", disabled: "disabled", obligatory: "obligatory", lines: "lines", color: "color", hideSeconds: "hideSeconds", shortLabels: "shortLabels" }, outputs: { set: "set" }, usesOnChanges: true, ngImport: i0, template: "<ion-item class=\"durationItem\" [lines]=\"lines\" [color]=\"color\" [title]=\"title || label\">\n @if (icon) {\n <ion-icon slot=\"start\" [name]=\"icon\" />\n }\n @if (!icon && label) {\n <ion-label position=\"stacked\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-label class=\"value\">\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"23\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"hours\"\n (ionChange)=\"setDuration('hours')\"\n />\n <ion-text>{{\n ((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()\n }}</ion-text>\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"59\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"minutes\"\n (ionChange)=\"setDuration('minutes')\"\n />\n <ion-text>{{\n ((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()\n }}</ion-text>\n @if (!hideSeconds) {\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"59\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"seconds\"\n (ionChange)=\"setDuration('seconds')\"\n />\n }\n @if (!hideSeconds) {\n <ion-text>\n {{ ((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase() }}\n </ion-text>\n }\n </ion-label>\n</ion-item>\n", styles: [".durationItem .value{max-width:none;width:100%;pointer-events:all}.durationItem .value ion-input{display:inline-block;max-width:35px;text-align:right}.durationItem .value ion-text{margin-left:10px;margin-right:20px;font-size:.8em}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.NumericValueAccessor, selector: "ion-input[type=number],ion-range" }, { kind: "directive", type: i2.IonMinValidator, selector: "ion-input[type=number][min][formControlName],ion-input[type=number][min][formControl],ion-input[type=number][min][ngModel]" }, { kind: "directive", type: i2.IonMaxValidator, selector: "ion-input[type=number][max][formControlName],ion-input[type=number][max][formControl],ion-input[type=number][max][ngModel]" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'idea-duration', template: "<ion-item class=\"durationItem\" [lines]=\"lines\" [color]=\"color\" [title]=\"title || label\">\n @if (icon) {\n <ion-icon slot=\"start\" [name]=\"icon\" />\n }\n @if (!icon && label) {\n <ion-label position=\"stacked\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-label class=\"value\">\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"23\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"hours\"\n (ionChange)=\"setDuration('hours')\"\n />\n <ion-text>{{\n ((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()\n }}</ion-text>\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"59\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"minutes\"\n (ionChange)=\"setDuration('minutes')\"\n />\n <ion-text>{{\n ((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()\n }}</ion-text>\n @if (!hideSeconds) {\n <ion-input\n type=\"number\"\n min=\"0\"\n max=\"59\"\n inputmode=\"numeric\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"seconds\"\n (ionChange)=\"setDuration('seconds')\"\n />\n }\n @if (!hideSeconds) {\n <ion-text>\n {{ ((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase() }}\n </ion-text>\n }\n </ion-label>\n</ion-item>\n", styles: [".durationItem .value{max-width:none;width:100%;pointer-events:all}.durationItem .value ion-input{display:inline-block;max-width:35px;text-align:right}.durationItem .value ion-text{margin-left:10px;margin-right:20px;font-size:.8em}\n"] }]
54
+ }], ctorParameters: () => [], propDecorators: { default: [{
55
+ type: Input
56
+ }], label: [{
57
+ type: Input
58
+ }], icon: [{
59
+ type: Input
60
+ }], title: [{
61
+ type: Input
62
+ }], disabled: [{
63
+ type: Input
64
+ }], obligatory: [{
65
+ type: Input
66
+ }], lines: [{
67
+ type: Input
68
+ }], color: [{
69
+ type: Input
70
+ }], hideSeconds: [{
71
+ type: Input
72
+ }], shortLabels: [{
73
+ type: Input
74
+ }], set: [{
75
+ type: Output
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZHVyYXRpb24vZHVyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZHVyYXRpb24vZHVyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT2pHLE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDO1FBbEJBOztXQUVHO1FBQ08sUUFBRyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFnQnpDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMseUNBQXlDO1FBQ3pDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLElBQVk7UUFDdEIsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssT0FBTztnQkFDVixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVc7b0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7O29CQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBOUZVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlUQ1BsQywwbERBdURBOzsyRkRoRGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7d0RBUWhCLE9BQU87c0JBQWYsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUksR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWR1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdkdXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkdXJhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFEdXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBudW1iZXIgb2Ygc2Vjb25kcywgdG8gYnVpbGQgdGhlIGR1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGljb24gKGFsdGVybmF0aXZlIHRvIHRoZSBsYWJlbCkgZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aXRsZSAoaGludCkgZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgb2JsaWdhdG9yeSBkb3QgaXMgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKSBvYmxpZ2F0b3J5OiBib29sZWFuO1xuICAvKipcbiAgICogTGluZXMgcHJlZmVyZW5jZXMgZm9yIHRoZSBpdGVtLlxuICAgKi9cbiAgQElucHV0KCkgbGluZXM6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgb3IgaGlkZSB0aGUgc2Vjb25kcyBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpIGhpZGVTZWNvbmRzOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgc2hvcnRlbmVkIHZlcnNpb24gb2YgdGhlIGxhYmVscy5cbiAgICovXG4gIEBJbnB1dCgpIHNob3J0TGFiZWxzOiBib29sZWFuO1xuICAvKipcbiAgICogT24gY2hhbmdlIGV2ZW50LiBJdCBlbWl0cyBhIG51bWJlciBvZiBzZWNvbmRzIHJlcHJlc2VudGluZyB0aGUgZHVyYXRpb24uXG4gICAqL1xuICBAT3V0cHV0KCkgc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBob3VyIHBhcnQgb2YgdGhlIGR1cmF0aW9uLlxuICAgKi9cbiAgaG91cnM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBtaW51dGVzIHBhcnQgb2YgdGhlIGR1cmF0aW9uLlxuICAgKi9cbiAgbWludXRlczogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHNlY29uZHMgcGFydCBvZiB0aGUgZHVyYXRpb24uXG4gICAqL1xuICBzZWNvbmRzOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kZWZhdWx0ID0gdGhpcy5ob3VycyA9IHRoaXMubWludXRlcyA9IHRoaXMuc2Vjb25kcyA9IDA7XG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIGFzc2lnbiBhIGRlZmF1bHQgdmFsdWUgdG8gdGhlIGR1cmF0aW9uXG4gICAgaWYgKGNoYW5nZXNbJ2RlZmF1bHQnXSAmJiBjaGFuZ2VzWydkZWZhdWx0J10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICBjb25zdCByZWZEYXRlID0gbmV3IERhdGUoMCk7XG4gICAgICByZWZEYXRlLnNldEhvdXJzKDAsIDAsIDApO1xuICAgICAgcmVmRGF0ZS5zZXRTZWNvbmRzKHJlZkRhdGUuZ2V0U2Vjb25kcygpICsgdGhpcy5kZWZhdWx0KTtcbiAgICAgIHRoaXMuaG91cnMgPSByZWZEYXRlLmdldEhvdXJzKCk7XG4gICAgICB0aGlzLm1pbnV0ZXMgPSByZWZEYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuaGlkZVNlY29uZHMgPyAwIDogcmVmRGF0ZS5nZXRTZWNvbmRzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gb25lIG9mIHRoZSBwYXJ0cyBjaGFuZ2VzLCBlbWl0IHRoZSBuZXcgZHVyYXRpb24uXG4gICAqL1xuICBzZXREdXJhdGlvbih0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgY29uc3QgaGggPSBOdW1iZXIodGhpcy5ob3VycykgfHwgMDtcbiAgICAgICAgdGhpcy5ob3VycyA9IGhoID4gMjMgPyAyMyA6IGhoIDwgMCA/IDAgOiBoaDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGVzJzpcbiAgICAgICAgY29uc3QgbW0gPSBOdW1iZXIodGhpcy5taW51dGVzKSB8fCAwO1xuICAgICAgICB0aGlzLm1pbnV0ZXMgPSBtbSA+IDU5ID8gNTkgOiBtbSA8IDAgPyAwIDogbW07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgIGNvbnN0IHNzID0gTnVtYmVyKHRoaXMuc2Vjb25kcykgfHwgMDtcbiAgICAgICAgaWYgKHRoaXMuaGlkZVNlY29uZHMpIHRoaXMuc2Vjb25kcyA9IDA7XG4gICAgICAgIGVsc2UgdGhpcy5zZWNvbmRzID0gc3MgPiA1OSA/IDU5IDogc3MgPCAwID8gMCA6IHNzO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zZXQuZW1pdCh0aGlzLmhvdXJzICogMzYwMCArIHRoaXMubWludXRlcyAqIDYwICsgdGhpcy5zZWNvbmRzKTtcbiAgfVxufVxuIiwiPGlvbi1pdGVtIGNsYXNzPVwiZHVyYXRpb25JdGVtXCIgW2xpbmVzXT1cImxpbmVzXCIgW2NvbG9yXT1cImNvbG9yXCIgW3RpdGxlXT1cInRpdGxlIHx8IGxhYmVsXCI+XG4gIEBpZiAoaWNvbikge1xuICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJpY29uXCIgLz5cbiAgfVxuICBAaWYgKCFpY29uICYmIGxhYmVsKSB7XG4gICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cInN0YWNrZWRcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgICBAaWYgKG9ibGlnYXRvcnkgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIDxpb24tdGV4dCBjbGFzcz1cIm9ibGlnYXRvcnlEb3RcIiAvPlxuICAgICAgfVxuICAgIDwvaW9uLWxhYmVsPlxuICB9XG4gIDxpb24tbGFiZWwgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgIDxpb24taW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgbWluPVwiMFwiXG4gICAgICBtYXg9XCIyM1wiXG4gICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImhvdXJzXCJcbiAgICAgIChpb25DaGFuZ2UpPVwic2V0RHVyYXRpb24oJ2hvdXJzJylcIlxuICAgIC8+XG4gICAgPGlvbi10ZXh0Pnt7XG4gICAgICAoKHNob3J0TGFiZWxzID8gJ0lERUFfVU5DT01NT04uRFVSQVRJT04uSEgnIDogJ0lERUFfVU5DT01NT04uRFVSQVRJT04uSE9VUlMnKSB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKVxuICAgIH19PC9pb24tdGV4dD5cbiAgICA8aW9uLWlucHV0XG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIG1pbj1cIjBcIlxuICAgICAgbWF4PVwiNTlcIlxuICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzXCJcbiAgICAgIChpb25DaGFuZ2UpPVwic2V0RHVyYXRpb24oJ21pbnV0ZXMnKVwiXG4gICAgLz5cbiAgICA8aW9uLXRleHQ+e3tcbiAgICAgICgoc2hvcnRMYWJlbHMgPyAnSURFQV9VTkNPTU1PTi5EVVJBVElPTi5NTScgOiAnSURFQV9VTkNPTU1PTi5EVVJBVElPTi5NSU5VVEVTJykgfCB0cmFuc2xhdGUpLnRvTG93ZXJDYXNlKClcbiAgICB9fTwvaW9uLXRleHQ+XG4gICAgQGlmICghaGlkZVNlY29uZHMpIHtcbiAgICAgIDxpb24taW5wdXRcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIG1pbj1cIjBcIlxuICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlY29uZHNcIlxuICAgICAgICAoaW9uQ2hhbmdlKT1cInNldER1cmF0aW9uKCdzZWNvbmRzJylcIlxuICAgICAgLz5cbiAgICB9XG4gICAgQGlmICghaGlkZVNlY29uZHMpIHtcbiAgICAgIDxpb24tdGV4dD5cbiAgICAgICAge3sgKChzaG9ydExhYmVscyA/ICdJREVBX1VOQ09NTU9OLkRVUkFUSU9OLlNTJyA6ICdJREVBX1VOQ09NTU9OLkRVUkFUSU9OLlNFQ09ORFMnKSB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSB9fVxuICAgICAgPC9pb24tdGV4dD5cbiAgICB9XG4gIDwvaW9uLWxhYmVsPlxuPC9pb24taXRlbT5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { IDEATranslationsModule } from '@idea-ionic/common';
6
+ import { IDEADurationComponent } from './duration.component';
7
+ import * as i0 from "@angular/core";
8
+ export class IDEADurationModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationModule, declarations: [IDEADurationComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEADurationComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEADurationModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
17
+ declarations: [IDEADurationComponent],
18
+ exports: [IDEADurationComponent]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZHVyYXRpb24vZHVyYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixhQUQxQixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsYUFFOUQscUJBQXFCOytHQUVwQixrQkFBa0IsWUFKbkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsc0JBQXNCOzsyRkFJN0Qsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO29CQUN6RSxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSURFQVRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFEdXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZHVyYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElvbmljTW9kdWxlLCBJREVBVHJhbnNsYXRpb25zTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbSURFQUR1cmF0aW9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0lERUFEdXJhdGlvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSURFQUR1cmF0aW9uTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { RouterModule } from '@angular/router';
6
+ import { IDEATranslationsModule } from '@idea-ionic/common';
7
+ import { IDEAEchoPage } from './echo.page';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/router";
10
+ const routes = [
11
+ { path: '', component: IDEAEchoPage },
12
+ { path: ':request', component: IDEAEchoPage }
13
+ ];
14
+ export class IDEAEchoModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoModule, declarations: [IDEAEchoPage], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, i1.RouterModule] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, RouterModule.forChild(routes)] }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, RouterModule.forChild(routes)],
23
+ declarations: [IDEAEchoPage]
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoby5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9lY2hvL2VjaG8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUUzQyxNQUFNLE1BQU0sR0FBRztJQUNiLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQ3JDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0NBQzlDLENBQUM7QUFNRixNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBRlYsWUFBWSxhQURqQixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQkFBc0I7K0dBRzdELGNBQWMsWUFIZixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzs7MkZBRzVGLGNBQWM7a0JBSjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEcsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJREVBVHJhbnNsYXRpb25zTW9kdWxlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUVjaG9QYWdlIH0gZnJvbSAnLi9lY2hvLnBhZ2UnO1xuXG5jb25zdCByb3V0ZXMgPSBbXG4gIHsgcGF0aDogJycsIGNvbXBvbmVudDogSURFQUVjaG9QYWdlIH0sXG4gIHsgcGF0aDogJzpyZXF1ZXN0JywgY29tcG9uZW50OiBJREVBRWNob1BhZ2UgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElvbmljTW9kdWxlLCBJREVBVHJhbnNsYXRpb25zTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGRlY2xhcmF0aW9uczogW0lERUFFY2hvUGFnZV1cbn0pXG5leHBvcnQgY2xhc3MgSURFQUVjaG9Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,165 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { ExternalCalendarSources, mdToHtml } from 'idea-toolbox';
4
+ import { IDEAEnvironment, IDEALoadingService, IDEATranslationsService } from '@idea-ionic/common';
5
+ import { IDEAAWSAPIService } from '../AWSAPI.service';
6
+ import { IDEATinCanService } from '../tinCan.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ionic/angular";
9
+ import * as i2 from "@idea-ionic/common";
10
+ export class IDEAEchoPage {
11
+ constructor() {
12
+ this._env = inject(IDEAEnvironment);
13
+ this._route = inject(ActivatedRoute);
14
+ this._tc = inject(IDEATinCanService);
15
+ this._loading = inject(IDEALoadingService);
16
+ this._API = inject(IDEAAWSAPIService);
17
+ this._translate = inject(IDEATranslationsService);
18
+ }
19
+ ngOnInit() {
20
+ const request = this._route.snapshot.paramMap.get('request') || this._route.snapshot.queryParams.request;
21
+ const code = this._route.snapshot.queryParams.code;
22
+ const user = decodeURIComponent(this._route.snapshot.queryParams.user);
23
+ const state = this._route.snapshot.queryParams.state;
24
+ switch (request) {
25
+ case EchoRequests.MAINTENANCE:
26
+ this.maintenanceMode();
27
+ break;
28
+ case EchoRequests.REGISTRATION:
29
+ this.followRegistrationLink(code, user);
30
+ break;
31
+ case EchoRequests.INVITATION:
32
+ this.followInvitationLink(code);
33
+ break;
34
+ case EchoRequests.EMAIL_CHANGE:
35
+ this.followEmailChangeConfirmationLink(code);
36
+ break;
37
+ case EchoRequests.GITHUB_INTEGRATION:
38
+ this.endGitHubIntegrationFlow(code === 'done');
39
+ break;
40
+ case EchoRequests.TRELLO_INTEGRATION:
41
+ this.endTrelloIntegrationFlow(code);
42
+ break;
43
+ case EchoRequests.MICROSOFT_CALENDARS_INTEGRATION:
44
+ this.endExternalCalendarsIntegrationFlow(ExternalCalendarSources.MICROSOFT, code, state);
45
+ break;
46
+ case EchoRequests.GOOGLE_CALENDARS_INTEGRATION:
47
+ this.endExternalCalendarsIntegrationFlow(ExternalCalendarSources.GOOGLE, code, state);
48
+ break;
49
+ default:
50
+ this.success = false;
51
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.INVALID_ACTION');
52
+ break;
53
+ }
54
+ }
55
+ maintenanceMode() {
56
+ const announcement = this._tc.get('idea-announcement');
57
+ if (announcement && announcement.content)
58
+ this.htmlContent = mdToHtml(announcement.content);
59
+ }
60
+ async followRegistrationLink(code, user) {
61
+ try {
62
+ await this._loading.show();
63
+ await this._API.postResource('cognito2', {
64
+ idea: true,
65
+ body: {
66
+ action: 'CONFIRM_SIGN_UP',
67
+ username: user,
68
+ confirmationCode: code,
69
+ cognitoUserPoolClientId: this._env.aws.cognito.userPoolClientId
70
+ }
71
+ });
72
+ this.success = true;
73
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.ACCOUNT_CONFIRMED');
74
+ }
75
+ catch (error) {
76
+ this.success = false;
77
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
78
+ }
79
+ finally {
80
+ this._loading.hide();
81
+ }
82
+ }
83
+ async followInvitationLink(code) {
84
+ try {
85
+ await this._loading.show();
86
+ await this._API.getResource('invitations', { idea: true, resourceId: code });
87
+ this.success = true;
88
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.TEAM_JOINED');
89
+ }
90
+ catch (error) {
91
+ this.success = false;
92
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
93
+ }
94
+ finally {
95
+ this._loading.hide();
96
+ }
97
+ }
98
+ async followEmailChangeConfirmationLink(code) {
99
+ try {
100
+ await this._loading.show();
101
+ await this._API.getResource('emailChangeRequests', {
102
+ idea: true,
103
+ resourceId: code,
104
+ params: { project: this._env.idea.project }
105
+ });
106
+ this.success = true;
107
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.EMAIL_CHANGED');
108
+ }
109
+ catch (error) {
110
+ this.success = false;
111
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
112
+ }
113
+ finally {
114
+ this._loading.hide();
115
+ }
116
+ }
117
+ endGitHubIntegrationFlow(success) {
118
+ this.success = success;
119
+ this.content = success
120
+ ? this._translate._('IDEA_UNCOMMON.ECHO.GITHUB_SOURCE_INTEGRATION_SUCCESS')
121
+ : this._translate._('IDEA_UNCOMMON.ECHO.GITHUB_SOURCE_INTEGRATION_ERROR');
122
+ }
123
+ endTrelloIntegrationFlow(token) {
124
+ this.success = Boolean(token);
125
+ this.content = token
126
+ ? this._translate._('IDEA_UNCOMMON.ECHO.TRELLO_SOURCE_INTEGRATION_SUCCESS', { token })
127
+ : this._translate._('IDEA_UNCOMMON.ECHO.TRELLO_SOURCE_INTEGRATION_ERROR');
128
+ }
129
+ async endExternalCalendarsIntegrationFlow(service, code, calendarId) {
130
+ try {
131
+ await this._loading.show();
132
+ await this._API.patchResource('calendars', {
133
+ idea: true,
134
+ body: { action: 'SET_EXTERNAL_INTEGRATION', service, code, calendarId, project: this._env.idea.project }
135
+ });
136
+ this.success = true;
137
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.EXTERNAL_CALENDARS_SOURCE_INTEGRATION_SUCCESS');
138
+ }
139
+ catch (error) {
140
+ this.success = false;
141
+ this.content = this._translate._('IDEA_UNCOMMON.ECHO.EXTERNAL_CALENDARS_SOURCE_INTEGRATION_ERROR');
142
+ }
143
+ finally {
144
+ this._loading.hide();
145
+ }
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAEchoPage, selector: "idea-echo", ngImport: i0, template: "<ion-content>\n <div class=\"flexBox\">\n <ion-card class=\"echoCard maxWidthContainer\">\n <ion-img [src]=\"'assets/icons/icon-auth.svg'\" />\n <ion-card-header>\n <ion-card-title>\n @if (success === true) {\n <ion-icon color=\"success\" name=\"checkmark\" />\n } @if (success === false) {\n <ion-icon color=\"danger\" name=\"close\" />\n }\n </ion-card-title>\n </ion-card-header>\n <ion-card-content class=\"selectable\">\n {{ content }} @if (htmlContent) {\n <div class=\"htmlContent\" [innerHTML]=\"htmlContent\"></div>\n } @if (success === false || success === true) {\n <p class=\"youCanCloseMe\">\n <i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>\n </p>\n }\n </ion-card-content>\n </ion-card>\n </div>\n</ion-content>\n", styles: [".echoCard{min-width:300px;padding:30px 20px;text-align:center}.echoCard ion-img{width:80px;display:block;margin:0 auto}.echoCard ion-icon{font-size:1.8em}.echoCard ion-card-content{margin-bottom:20px;font-size:1.2em}.echoCard ion-card-content p.youCanCloseMe{margin-top:12px}\n"], dependencies: [{ kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "pipe", type: i2.IDEATranslatePipe, name: "translate" }] }); }
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAEchoPage, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'idea-echo', template: "<ion-content>\n <div class=\"flexBox\">\n <ion-card class=\"echoCard maxWidthContainer\">\n <ion-img [src]=\"'assets/icons/icon-auth.svg'\" />\n <ion-card-header>\n <ion-card-title>\n @if (success === true) {\n <ion-icon color=\"success\" name=\"checkmark\" />\n } @if (success === false) {\n <ion-icon color=\"danger\" name=\"close\" />\n }\n </ion-card-title>\n </ion-card-header>\n <ion-card-content class=\"selectable\">\n {{ content }} @if (htmlContent) {\n <div class=\"htmlContent\" [innerHTML]=\"htmlContent\"></div>\n } @if (success === false || success === true) {\n <p class=\"youCanCloseMe\">\n <i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>\n </p>\n }\n </ion-card-content>\n </ion-card>\n </div>\n</ion-content>\n", styles: [".echoCard{min-width:300px;padding:30px 20px;text-align:center}.echoCard ion-img{width:80px;display:block;margin:0 auto}.echoCard ion-icon{font-size:1.8em}.echoCard ion-card-content{margin-bottom:20px;font-size:1.2em}.echoCard ion-card-content p.youCanCloseMe{margin-top:12px}\n"] }]
153
+ }] });
154
+ export var EchoRequests;
155
+ (function (EchoRequests) {
156
+ EchoRequests["MAINTENANCE"] = "maintenance";
157
+ EchoRequests["REGISTRATION"] = "registration";
158
+ EchoRequests["INVITATION"] = "invitation";
159
+ EchoRequests["EMAIL_CHANGE"] = "email-change";
160
+ EchoRequests["GITHUB_INTEGRATION"] = "github-integration";
161
+ EchoRequests["TRELLO_INTEGRATION"] = "trello-integration";
162
+ EchoRequests["MICROSOFT_CALENDARS_INTEGRATION"] = "microsoft-calendars-integration";
163
+ EchoRequests["GOOGLE_CALENDARS_INTEGRATION"] = "google-calendars-integration";
164
+ })(EchoRequests || (EchoRequests = {}));
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoby5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZWNoby9lY2hvLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9lY2hvL2VjaG8ucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQU90RCxNQUFNLE9BQU8sWUFBWTtJQUx6QjtRQU1ZLFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FvSXREO0lBOUhDLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxN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ekIsNkNBQTZCLENBQUE7SUFDN0IseURBQXlDLENBQUE7SUFDekMseURBQXlDLENBQUE7SUFDekMsbUZBQW1FLENBQUE7SUFDbkUsNkVBQTZELENBQUE7QUFDL0QsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsIG1kVG9IdG1sIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFFbnZpcm9ubWVudCwgSURFQUxvYWRpbmdTZXJ2aWNlLCBJREVBVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFBV1NBUElTZXJ2aWNlIH0gZnJvbSAnLi4vQVdTQVBJLnNlcnZpY2UnO1xuaW1wb3J0IHsgSURFQVRpbkNhblNlcnZpY2UgfSBmcm9tICcuLi90aW5DYW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtZWNobycsXG4gIHRlbXBsYXRlVXJsOiAnZWNoby5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZWNoby5wYWdlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBRWNob1BhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgX2VudiA9IGluamVjdChJREVBRW52aXJvbm1lbnQpO1xuICBwcml2YXRlIF9yb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgX3RjID0gaW5qZWN0KElERUFUaW5DYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGluamVjdChJREVBTG9hZGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9BUEkgPSBpbmplY3QoSURFQUFXU0FQSVNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgaHRtbENvbnRlbnQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0OiBFY2hvUmVxdWVzdHMgPVxuICAgICAgdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdyZXF1ZXN0JykgfHwgdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVxdWVzdDtcbiAgICBjb25zdCBjb2RlOiBzdHJpbmcgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5jb2RlO1xuICAgIGNvbnN0IHVzZXI6IHN0cmluZyA9IGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51c2VyKTtcbiAgICBjb25zdCBzdGF0ZTogc3RyaW5nID0gdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMuc3RhdGU7XG4gICAgc3dpdGNoIChyZXF1ZXN0KSB7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5NQUlOVEVOQU5DRTpcbiAgICAgICAgdGhpcy5tYWludGVuYW5jZU1vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5SRUdJU1RSQVRJT046XG4gICAgICAgIHRoaXMuZm9sbG93UmVnaXN0cmF0aW9uTGluayhjb2RlLCB1c2VyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5JTlZJVEFUSU9OOlxuICAgICAgICB0aGlzLmZvbGxvd0ludml0YXRpb25MaW5rKGNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLkVNQUlMX0NIQU5HRTpcbiAgICAgICAgdGhpcy5mb2xsb3dFbWFpbENoYW5nZUNvbmZpcm1hdGlvbkxpbmsoY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuR0lUSFVCX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhjb2RlID09PSAnZG9uZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLlRSRUxMT19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRUcmVsbG9JbnRlZ3JhdGlvbkZsb3coY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuTUlDUk9TT0ZUX0NBTEVOREFSU19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRFeHRlcm5hbENhbGVuZGFyc0ludGVncmF0aW9uRmxvdyhFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQsIGNvZGUsIHN0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5HT09HTEVfQ0FMRU5EQVJTX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEV4dGVybmFsQ2FsZW5kYXJzSW50ZWdyYXRpb25GbG93KEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRSwgY29kZSwgc3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLklOVkFMSURfQUNUSU9OJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG1haW50ZW5hbmNlTW9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhbm5vdW5jZW1lbnQgPSB0aGlzLl90Yy5nZXQoJ2lkZWEtYW5ub3VuY2VtZW50Jyk7XG4gICAgaWYgKGFubm91bmNlbWVudCAmJiBhbm5vdW5jZW1lbnQuY29udGVudCkgdGhpcy5odG1sQ29udGVudCA9IG1kVG9IdG1sKGFubm91bmNlbWVudC5jb250ZW50KTtcbiAgfVxuXG4gIGFzeW5jIGZvbGxvd1JlZ2lzdHJhdGlvbkxpbmsoY29kZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucG9zdFJlc291cmNlKCdjb2duaXRvMicsIHtcbiAgICAgICAgaWRlYTogdHJ1ZSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFjdGlvbjogJ0NPTkZJUk1fU0lHTl9VUCcsXG4gICAgICAgICAgdXNlcm5hbWU6IHVzZXIsXG4gICAgICAgICAgY29uZmlybWF0aW9uQ29kZTogY29kZSxcbiAgICAgICAgICBjb2duaXRvVXNlclBvb2xDbGllbnRJZDogdGhpcy5fZW52LmF3cy5jb2duaXRvLnVzZXJQb29sQ2xpZW50SWRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5BQ0NPVU5UX0NPTkZJUk1FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0ludml0YXRpb25MaW5rKGNvZGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9sb2FkaW5nLnNob3coKTtcbiAgICAgIGF3YWl0IHRoaXMuX0FQSS5nZXRSZXNvdXJjZSgnaW52aXRhdGlvbnMnLCB7IGlkZWE6IHRydWUsIHJlc291cmNlSWQ6IGNvZGUgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5URUFNX0pPSU5FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0VtYWlsQ2hhbmdlQ29uZmlybWF0aW9uTGluayhjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkuZ2V0UmVzb3VyY2UoJ2VtYWlsQ2hhbmdlUmVxdWVzdHMnLCB7XG4gICAgICAgIGlkZWE6IHRydWUsXG4gICAgICAgIHJlc291cmNlSWQ6IGNvZGUsXG4gICAgICAgIHBhcmFtczogeyBwcm9qZWN0OiB0aGlzLl9lbnYuaWRlYS5wcm9qZWN0IH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWNjZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uRU1BSUxfQ0hBTkdFRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhzdWNjZXNzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdWNjZXNzID0gc3VjY2VzcztcbiAgICB0aGlzLmNvbnRlbnQgPSBzdWNjZXNzXG4gICAgICA/IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uR0lUSFVCX1NPVVJDRV9JTlRFR1JBVElPTl9TVUNDRVNTJylcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5HSVRIVUJfU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgZW5kVHJlbGxvSW50ZWdyYXRpb25GbG93KHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN1Y2Nlc3MgPSBCb29sZWFuKHRva2VuKTtcbiAgICB0aGlzLmNvbnRlbnQgPSB0b2tlblxuICAgICAgPyB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLlRSRUxMT19TT1VSQ0VfSU5URUdSQVRJT05fU1VDQ0VTUycsIHsgdG9rZW4gfSlcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5UUkVMTE9fU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgYXN5bmMgZW5kRXh0ZXJuYWxDYWxlbmRhcnNJbnRlZ3JhdGlvbkZsb3coXG4gICAgc2VydmljZTogRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsXG4gICAgY29kZTogc3RyaW5nLFxuICAgIGNhbGVuZGFySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucGF0Y2hSZXNvdXJjZSgnY2FsZW5kYXJzJywge1xuICAgICAgICBpZGVhOiB0cnVlLFxuICAgICAgICBib2R5OiB7IGFjdGlvbjogJ1NFVF9FWFRFUk5BTF9JTlRFR1JBVElPTicsIHNlcnZpY2UsIGNvZGUsIGNhbGVuZGFySWQsIHByb2plY3Q6IHRoaXMuX2Vudi5pZGVhLnByb2plY3QgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5FWFRFUk5BTF9DQUxFTkRBUlNfU09VUkNFX0lOVEVHUkFUSU9OX1NVQ0NFU1MnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5zdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLkVYVEVSTkFMX0NBTEVOREFSU19TT1VSQ0VfSU5URUdSQVRJT05fRVJST1InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIEVjaG9SZXF1ZXN0cyB7XG4gIE1BSU5URU5BTkNFID0gJ21haW50ZW5hbmNlJyxcbiAgUkVHSVNUUkFUSU9OID0gJ3JlZ2lzdHJhdGlvbicsXG4gIElOVklUQVRJT04gPSAnaW52aXRhdGlvbicsXG4gIEVNQUlMX0NIQU5HRSA9ICdlbWFpbC1jaGFuZ2UnLFxuICBHSVRIVUJfSU5URUdSQVRJT04gPSAnZ2l0aHViLWludGVncmF0aW9uJyxcbiAgVFJFTExPX0lOVEVHUkFUSU9OID0gJ3RyZWxsby1pbnRlZ3JhdGlvbicsXG4gIE1JQ1JPU09GVF9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnbWljcm9zb2Z0LWNhbGVuZGFycy1pbnRlZ3JhdGlvbicsXG4gIEdPT0dMRV9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnZ29vZ2xlLWNhbGVuZGFycy1pbnRlZ3JhdGlvbidcbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImZsZXhCb3hcIj5cbiAgICA8aW9uLWNhcmQgY2xhc3M9XCJlY2hvQ2FyZCBtYXhXaWR0aENvbnRhaW5lclwiPlxuICAgICAgPGlvbi1pbWcgW3NyY109XCInYXNzZXRzL2ljb25zL2ljb24tYXV0aC5zdmcnXCIgLz5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICBAaWYgKHN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJzdWNjZXNzXCIgbmFtZT1cImNoZWNrbWFya1wiIC8+XG4gICAgICAgICAgfSBAaWYgKHN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImNsb3NlXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwic2VsZWN0YWJsZVwiPlxuICAgICAgICB7eyBjb250ZW50IH19IEBpZiAoaHRtbENvbnRlbnQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImh0bWxDb250ZW50XCIgW2lubmVySFRNTF09XCJodG1sQ29udGVudFwiPjwvZGl2PlxuICAgICAgICB9IEBpZiAoc3VjY2VzcyA9PT0gZmFsc2UgfHwgc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICA8cCBjbGFzcz1cInlvdUNhbkNsb3NlTWVcIj5cbiAgICAgICAgICA8aT57eyAnSURFQV9VTkNPTU1PTi5FQ0hPLllPVV9DQU5fQ0xPU0VfVEhFX1BBR0UnIHwgdHJhbnNsYXRlIH19PC9pPlxuICAgICAgICA8L3A+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Rpdj5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=