@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.
- package/LICENSE +373 -0
- package/README.md +21 -0
- package/css/global.scss +15 -0
- package/esm2022/idea-ionic-uncommon.mjs +5 -0
- package/esm2022/public-api.mjs +35 -0
- package/esm2022/src/AWSAPI.service.mjs +430 -0
- package/esm2022/src/AWSAPISocket.service.mjs +187 -0
- package/esm2022/src/address/address.component.mjs +94 -0
- package/esm2022/src/address/address.module.mjs +21 -0
- package/esm2022/src/announcement/announcement.component.mjs +41 -0
- package/esm2022/src/announcement/announcement.module.mjs +21 -0
- package/esm2022/src/cachedResources.service.mjs +55 -0
- package/esm2022/src/colors/colorPicker.component.mjs +135 -0
- package/esm2022/src/colors/colorPicker.module.mjs +20 -0
- package/esm2022/src/contacts/contacts.component.mjs +64 -0
- package/esm2022/src/contacts/contacts.module.mjs +21 -0
- package/esm2022/src/dateTime/calendarPicker.component.mjs +196 -0
- package/esm2022/src/dateTime/dateTime.component.mjs +133 -0
- package/esm2022/src/dateTime/dateTime.module.mjs +22 -0
- package/esm2022/src/duration/duration.component.mjs +77 -0
- package/esm2022/src/duration/duration.module.mjs +21 -0
- package/esm2022/src/echo/echo.module.mjs +26 -0
- package/esm2022/src/echo/echo.page.mjs +165 -0
- package/esm2022/src/errorReporting.service.mjs +68 -0
- package/esm2022/src/mde/mde.component.mjs +44 -0
- package/esm2022/src/mde/mde.module.mjs +22 -0
- package/esm2022/src/mde/mdeToolbar.component.mjs +12 -0
- package/esm2022/src/offline/cacheableResource.component.mjs +18 -0
- package/esm2022/src/offline/offline.module.mjs +22 -0
- package/esm2022/src/offline/offline.service.mjs +62 -0
- package/esm2022/src/offline/offlineData.service.mjs +479 -0
- package/esm2022/src/offline/offlineIndicator.component.mjs +58 -0
- package/esm2022/src/offline/offlineManager.component.mjs +84 -0
- package/esm2022/src/pushNotifications.service.mjs +56 -0
- package/esm2022/src/sentiment/sentiment.component.mjs +71 -0
- package/esm2022/src/sentiment/sentiment.module.mjs +21 -0
- package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +155 -0
- package/esm2022/src/timeInterval/timeInterval.component.mjs +122 -0
- package/esm2022/src/timeInterval/timeInterval.module.mjs +22 -0
- package/esm2022/src/tinCan.service.mjs +49 -0
- package/fesm2022/idea-ionic-uncommon.mjs +2891 -0
- package/fesm2022/idea-ionic-uncommon.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +51 -0
- package/public-api.d.ts +34 -0
- package/src/AWSAPI.service.d.ts +178 -0
- package/src/AWSAPISocket.service.d.ts +129 -0
- package/src/address/address.component.d.ts +64 -0
- package/src/address/address.module.d.ts +11 -0
- package/src/announcement/announcement.component.d.ts +23 -0
- package/src/announcement/announcement.module.d.ts +11 -0
- package/src/cachedResources.service.d.ts +34 -0
- package/src/colors/colorPicker.component.d.ts +78 -0
- package/src/colors/colorPicker.module.d.ts +10 -0
- package/src/contacts/contacts.component.d.ts +31 -0
- package/src/contacts/contacts.module.d.ts +11 -0
- package/src/dateTime/calendarPicker.component.d.ts +45 -0
- package/src/dateTime/dateTime.component.d.ts +81 -0
- package/src/dateTime/dateTime.module.d.ts +12 -0
- package/src/duration/duration.component.d.ts +68 -0
- package/src/duration/duration.module.d.ts +11 -0
- package/src/echo/echo.module.d.ts +12 -0
- package/src/echo/echo.page.d.ts +34 -0
- package/src/errorReporting.service.d.ts +26 -0
- package/src/mde/mde.component.d.ts +39 -0
- package/src/mde/mde.module.d.ts +12 -0
- package/src/mde/mdeToolbar.component.d.ts +5 -0
- package/src/offline/cacheableResource.component.d.ts +11 -0
- package/src/offline/offline.module.d.ts +12 -0
- package/src/offline/offline.service.d.ts +39 -0
- package/src/offline/offlineData.service.d.ts +281 -0
- package/src/offline/offlineIndicator.component.d.ts +25 -0
- package/src/offline/offlineManager.component.d.ts +17 -0
- package/src/pushNotifications.service.d.ts +26 -0
- package/src/sentiment/sentiment.component.d.ts +35 -0
- package/src/sentiment/sentiment.module.d.ts +11 -0
- package/src/timeInterval/fromTimeToTime.component.d.ts +61 -0
- package/src/timeInterval/timeInterval.component.d.ts +84 -0
- package/src/timeInterval/timeInterval.module.d.ts +12 -0
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoby5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZWNoby9lY2hvLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9lY2hvL2VjaG8ucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQU90RCxNQUFNLE9BQU8sWUFBWTtJQUx6QjtRQU1ZLFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FvSXREO0lBOUhDLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDM0YsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBVyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUM3RCxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssWUFBWSxDQUFDLFdBQVc7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssWUFBWSxDQUFDLFlBQVk7Z0JBQzVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxVQUFVO2dCQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxZQUFZO2dCQUM1QixJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdDLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxrQkFBa0I7Z0JBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQy9DLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxrQkFBa0I7Z0JBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUNSLEtBQUssWUFBWSxDQUFDLCtCQUErQjtnQkFDL0MsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3pGLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyw0QkFBNEI7Z0JBQzVDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0RixNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUMsQ0FBQztnQkFDdEUsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNyRCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsaUJBQWlCO29CQUN6QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxnQkFBZ0IsRUFBRSxJQUFJO29CQUN0Qix1QkFBdUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO2lCQUNoRTthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN4RSxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQVk7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUNELEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFZO1FBQ2xELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFO2dCQUNqRCxJQUFJLEVBQUUsSUFBSTtnQkFDVixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUM1QyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUNELHdCQUF3QixDQUFDLE9BQWdCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTztZQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsc0RBQXNELENBQUM7WUFDM0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELHdCQUF3QixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxzREFBc0QsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3RGLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxLQUFLLENBQUMsbUNBQW1DLENBQ3ZDLE9BQWdDLEVBQ2hDLElBQVksRUFDWixVQUFrQjtRQUVsQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pDLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2FBQ3pHLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUNyRyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDOzhHQXpJVSxZQUFZO2tHQUFaLFlBQVksaURDYnpCLDgzQkF5QkE7OzJGRFphLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsV0FBVzs7QUFnSnZCLE1BQU0sQ0FBTixJQUFZLFlBU1g7QUFURCxXQUFZLFlBQVk7SUFDdEIsMkNBQTJCLENBQUE7SUFDM0IsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsNkNBQTZCLENBQUE7SUFDN0IseURBQXlDLENBQUE7SUFDekMseURBQXlDLENBQUE7SUFDekMsbUZBQW1FLENBQUE7SUFDbkUsNkVBQTZELENBQUE7QUFDL0QsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsIG1kVG9IdG1sIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFFbnZpcm9ubWVudCwgSURFQUxvYWRpbmdTZXJ2aWNlLCBJREVBVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFBV1NBUElTZXJ2aWNlIH0gZnJvbSAnLi4vQVdTQVBJLnNlcnZpY2UnO1xuaW1wb3J0IHsgSURFQVRpbkNhblNlcnZpY2UgfSBmcm9tICcuLi90aW5DYW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtZWNobycsXG4gIHRlbXBsYXRlVXJsOiAnZWNoby5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZWNoby5wYWdlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBRWNob1BhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgX2VudiA9IGluamVjdChJREVBRW52aXJvbm1lbnQpO1xuICBwcml2YXRlIF9yb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgX3RjID0gaW5qZWN0KElERUFUaW5DYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGluamVjdChJREVBTG9hZGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9BUEkgPSBpbmplY3QoSURFQUFXU0FQSVNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgaHRtbENvbnRlbnQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0OiBFY2hvUmVxdWVzdHMgPVxuICAgICAgdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdyZXF1ZXN0JykgfHwgdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVxdWVzdDtcbiAgICBjb25zdCBjb2RlOiBzdHJpbmcgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5jb2RlO1xuICAgIGNvbnN0IHVzZXI6IHN0cmluZyA9IGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51c2VyKTtcbiAgICBjb25zdCBzdGF0ZTogc3RyaW5nID0gdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMuc3RhdGU7XG4gICAgc3dpdGNoIChyZXF1ZXN0KSB7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5NQUlOVEVOQU5DRTpcbiAgICAgICAgdGhpcy5tYWludGVuYW5jZU1vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5SRUdJU1RSQVRJT046XG4gICAgICAgIHRoaXMuZm9sbG93UmVnaXN0cmF0aW9uTGluayhjb2RlLCB1c2VyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5JTlZJVEFUSU9OOlxuICAgICAgICB0aGlzLmZvbGxvd0ludml0YXRpb25MaW5rKGNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLkVNQUlMX0NIQU5HRTpcbiAgICAgICAgdGhpcy5mb2xsb3dFbWFpbENoYW5nZUNvbmZpcm1hdGlvbkxpbmsoY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuR0lUSFVCX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhjb2RlID09PSAnZG9uZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLlRSRUxMT19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRUcmVsbG9JbnRlZ3JhdGlvbkZsb3coY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuTUlDUk9TT0ZUX0NBTEVOREFSU19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRFeHRlcm5hbENhbGVuZGFyc0ludGVncmF0aW9uRmxvdyhFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQsIGNvZGUsIHN0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5HT09HTEVfQ0FMRU5EQVJTX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEV4dGVybmFsQ2FsZW5kYXJzSW50ZWdyYXRpb25GbG93KEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRSwgY29kZSwgc3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLklOVkFMSURfQUNUSU9OJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG1haW50ZW5hbmNlTW9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhbm5vdW5jZW1lbnQgPSB0aGlzLl90Yy5nZXQoJ2lkZWEtYW5ub3VuY2VtZW50Jyk7XG4gICAgaWYgKGFubm91bmNlbWVudCAmJiBhbm5vdW5jZW1lbnQuY29udGVudCkgdGhpcy5odG1sQ29udGVudCA9IG1kVG9IdG1sKGFubm91bmNlbWVudC5jb250ZW50KTtcbiAgfVxuXG4gIGFzeW5jIGZvbGxvd1JlZ2lzdHJhdGlvbkxpbmsoY29kZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucG9zdFJlc291cmNlKCdjb2duaXRvMicsIHtcbiAgICAgICAgaWRlYTogdHJ1ZSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFjdGlvbjogJ0NPTkZJUk1fU0lHTl9VUCcsXG4gICAgICAgICAgdXNlcm5hbWU6IHVzZXIsXG4gICAgICAgICAgY29uZmlybWF0aW9uQ29kZTogY29kZSxcbiAgICAgICAgICBjb2duaXRvVXNlclBvb2xDbGllbnRJZDogdGhpcy5fZW52LmF3cy5jb2duaXRvLnVzZXJQb29sQ2xpZW50SWRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5BQ0NPVU5UX0NPTkZJUk1FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0ludml0YXRpb25MaW5rKGNvZGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9sb2FkaW5nLnNob3coKTtcbiAgICAgIGF3YWl0IHRoaXMuX0FQSS5nZXRSZXNvdXJjZSgnaW52aXRhdGlvbnMnLCB7IGlkZWE6IHRydWUsIHJlc291cmNlSWQ6IGNvZGUgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5URUFNX0pPSU5FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0VtYWlsQ2hhbmdlQ29uZmlybWF0aW9uTGluayhjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkuZ2V0UmVzb3VyY2UoJ2VtYWlsQ2hhbmdlUmVxdWVzdHMnLCB7XG4gICAgICAgIGlkZWE6IHRydWUsXG4gICAgICAgIHJlc291cmNlSWQ6IGNvZGUsXG4gICAgICAgIHBhcmFtczogeyBwcm9qZWN0OiB0aGlzLl9lbnYuaWRlYS5wcm9qZWN0IH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWNjZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uRU1BSUxfQ0hBTkdFRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhzdWNjZXNzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdWNjZXNzID0gc3VjY2VzcztcbiAgICB0aGlzLmNvbnRlbnQgPSBzdWNjZXNzXG4gICAgICA/IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uR0lUSFVCX1NPVVJDRV9JTlRFR1JBVElPTl9TVUNDRVNTJylcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5HSVRIVUJfU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgZW5kVHJlbGxvSW50ZWdyYXRpb25GbG93KHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN1Y2Nlc3MgPSBCb29sZWFuKHRva2VuKTtcbiAgICB0aGlzLmNvbnRlbnQgPSB0b2tlblxuICAgICAgPyB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLlRSRUxMT19TT1VSQ0VfSU5URUdSQVRJT05fU1VDQ0VTUycsIHsgdG9rZW4gfSlcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5UUkVMTE9fU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgYXN5bmMgZW5kRXh0ZXJuYWxDYWxlbmRhcnNJbnRlZ3JhdGlvbkZsb3coXG4gICAgc2VydmljZTogRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsXG4gICAgY29kZTogc3RyaW5nLFxuICAgIGNhbGVuZGFySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucGF0Y2hSZXNvdXJjZSgnY2FsZW5kYXJzJywge1xuICAgICAgICBpZGVhOiB0cnVlLFxuICAgICAgICBib2R5OiB7IGFjdGlvbjogJ1NFVF9FWFRFUk5BTF9JTlRFR1JBVElPTicsIHNlcnZpY2UsIGNvZGUsIGNhbGVuZGFySWQsIHByb2plY3Q6IHRoaXMuX2Vudi5pZGVhLnByb2plY3QgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5FWFRFUk5BTF9DQUxFTkRBUlNfU09VUkNFX0lOVEVHUkFUSU9OX1NVQ0NFU1MnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5zdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLkVYVEVSTkFMX0NBTEVOREFSU19TT1VSQ0VfSU5URUdSQVRJT05fRVJST1InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIEVjaG9SZXF1ZXN0cyB7XG4gIE1BSU5URU5BTkNFID0gJ21haW50ZW5hbmNlJyxcbiAgUkVHSVNUUkFUSU9OID0gJ3JlZ2lzdHJhdGlvbicsXG4gIElOVklUQVRJT04gPSAnaW52aXRhdGlvbicsXG4gIEVNQUlMX0NIQU5HRSA9ICdlbWFpbC1jaGFuZ2UnLFxuICBHSVRIVUJfSU5URUdSQVRJT04gPSAnZ2l0aHViLWludGVncmF0aW9uJyxcbiAgVFJFTExPX0lOVEVHUkFUSU9OID0gJ3RyZWxsby1pbnRlZ3JhdGlvbicsXG4gIE1JQ1JPU09GVF9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnbWljcm9zb2Z0LWNhbGVuZGFycy1pbnRlZ3JhdGlvbicsXG4gIEdPT0dMRV9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnZ29vZ2xlLWNhbGVuZGFycy1pbnRlZ3JhdGlvbidcbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImZsZXhCb3hcIj5cbiAgICA8aW9uLWNhcmQgY2xhc3M9XCJlY2hvQ2FyZCBtYXhXaWR0aENvbnRhaW5lclwiPlxuICAgICAgPGlvbi1pbWcgW3NyY109XCInYXNzZXRzL2ljb25zL2ljb24tYXV0aC5zdmcnXCIgLz5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICBAaWYgKHN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJzdWNjZXNzXCIgbmFtZT1cImNoZWNrbWFya1wiIC8+XG4gICAgICAgICAgfSBAaWYgKHN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImNsb3NlXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwic2VsZWN0YWJsZVwiPlxuICAgICAgICB7eyBjb250ZW50IH19IEBpZiAoaHRtbENvbnRlbnQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImh0bWxDb250ZW50XCIgW2lubmVySFRNTF09XCJodG1sQ29udGVudFwiPjwvZGl2PlxuICAgICAgICB9IEBpZiAoc3VjY2VzcyA9PT0gZmFsc2UgfHwgc3VjY2VzcyA9PT0gdHJ1ZSkge1xuICAgICAgICA8cCBjbGFzcz1cInlvdUNhbkNsb3NlTWVcIj5cbiAgICAgICAgICA8aT57eyAnSURFQV9VTkNPTU1PTi5FQ0hPLllPVV9DQU5fQ0xPU0VfVEhFX1BBR0UnIHwgdHJhbnNsYXRlIH19PC9pPlxuICAgICAgICA8L3A+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Rpdj5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|