@idea-ionic/uncommon 8.2.7 → 8.2.9
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/esm2022/public-api.mjs +3 -12
- package/esm2022/src/AWSAPI.service.mjs +4 -3
- package/esm2022/src/AWSAPISocket.service.mjs +4 -3
- package/esm2022/src/address/address.component.mjs +320 -5
- package/esm2022/src/announcement/announcement.component.mjs +37 -6
- package/esm2022/src/colors/colorPicker.component.mjs +64 -8
- package/esm2022/src/contacts/contacts.component.mjs +131 -7
- package/esm2022/src/dateTime/calendarPicker.component.mjs +25 -8
- package/esm2022/src/dateTime/dateTime.component.mjs +90 -6
- package/esm2022/src/duration/duration.component.mjs +123 -5
- package/esm2022/src/echo/echo.page.mjs +74 -6
- package/esm2022/src/echo/echo.routes.mjs +6 -0
- package/esm2022/src/errorReporting.service.mjs +4 -3
- package/esm2022/src/mde/mde.component.mjs +106 -7
- package/esm2022/src/mde/mdeToolbar.component.mjs +17 -4
- package/esm2022/src/offline/cacheableResource.component.mjs +42 -4
- package/esm2022/src/offline/offline.service.mjs +4 -3
- package/esm2022/src/offline/offlineData.service.mjs +4 -3
- package/esm2022/src/offline/offlineIndicator.component.mjs +52 -5
- package/esm2022/src/offline/offlineManager.component.mjs +25 -8
- package/esm2022/src/pushNotifications.service.mjs +4 -3
- package/esm2022/src/sentiment/sentiment.component.mjs +47 -6
- package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +23 -7
- package/esm2022/src/timeInterval/timeInterval.component.mjs +89 -5
- package/fesm2022/idea-ionic-uncommon.mjs +1225 -212
- package/fesm2022/idea-ionic-uncommon.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -11
- package/src/address/address.component.d.ts +1 -1
- package/src/announcement/announcement.component.d.ts +1 -1
- package/src/colors/colorPicker.component.d.ts +2 -2
- package/src/contacts/contacts.component.d.ts +1 -1
- package/src/dateTime/calendarPicker.component.d.ts +1 -1
- package/src/dateTime/dateTime.component.d.ts +1 -1
- package/src/duration/duration.component.d.ts +1 -1
- package/src/echo/echo.page.d.ts +1 -1
- package/src/echo/echo.routes.d.ts +2 -0
- package/src/mde/mde.component.d.ts +1 -1
- package/src/mde/mdeToolbar.component.d.ts +1 -1
- package/src/offline/cacheableResource.component.d.ts +1 -1
- package/src/offline/offlineIndicator.component.d.ts +1 -1
- package/src/offline/offlineManager.component.d.ts +1 -1
- package/src/sentiment/sentiment.component.d.ts +1 -1
- package/src/timeInterval/fromTimeToTime.component.d.ts +1 -1
- package/src/timeInterval/timeInterval.component.d.ts +1 -1
- package/esm2022/src/address/address.module.mjs +0 -21
- package/esm2022/src/announcement/announcement.module.mjs +0 -21
- package/esm2022/src/colors/colorPicker.module.mjs +0 -20
- package/esm2022/src/contacts/contacts.module.mjs +0 -21
- package/esm2022/src/dateTime/dateTime.module.mjs +0 -22
- package/esm2022/src/duration/duration.module.mjs +0 -21
- package/esm2022/src/echo/echo.module.mjs +0 -26
- package/esm2022/src/mde/mde.module.mjs +0 -22
- package/esm2022/src/offline/offline.module.mjs +0 -22
- package/esm2022/src/sentiment/sentiment.module.mjs +0 -21
- package/esm2022/src/timeInterval/timeInterval.module.mjs +0 -22
- package/src/address/address.module.d.ts +0 -11
- package/src/announcement/announcement.module.d.ts +0 -11
- package/src/colors/colorPicker.module.d.ts +0 -10
- package/src/contacts/contacts.module.d.ts +0 -11
- package/src/dateTime/dateTime.module.d.ts +0 -12
- package/src/duration/duration.module.d.ts +0 -11
- package/src/echo/echo.module.d.ts +0 -12
- package/src/mde/mde.module.d.ts +0 -12
- package/src/offline/offline.module.d.ts +0 -12
- package/src/sentiment/sentiment.module.d.ts +0 -11
- package/src/timeInterval/timeInterval.module.d.ts +0 -12
|
@@ -1,17 +1,13 @@
|
|
|
1
|
+
import * as i1$1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, ViewChild,
|
|
3
|
-
import { Countries, Suggestion, mdToHtml, COLORS, Contacts, ErrorReport, ClientInfo, ExternalCalendarSources, Sentiment, TimeInterval, PushNotificationsDevice, PushNotificationsPlatforms } from 'idea-toolbox';
|
|
4
|
+
import { EventEmitter, Component, Input, Output, ViewChild, Injectable, inject } from '@angular/core';
|
|
4
5
|
import * as i1 from '@angular/forms';
|
|
5
6
|
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import * as i2 from '@angular/common';
|
|
11
|
-
import { CommonModule } from '@angular/common';
|
|
12
|
-
import { PopoverController, AlertController, ModalController, Platform } from '@ionic/angular/standalone';
|
|
13
|
-
import * as i1$2 from '@angular/router';
|
|
14
|
-
import { ActivatedRoute, RouterModule } from '@angular/router';
|
|
7
|
+
import { IonText, IonList, IonInput, IonItem, IonAccordion, IonAccordionGroup, IonButton, IonCardContent, IonCard, PopoverController, IonAvatar, IonLabel, IonIcon, IonContent, IonGrid, IonRow, IonCol, AlertController, ModalController, IonFooter, IonButtons, IonTitle, IonToolbar, IonHeader, Platform, IonCardTitle, IonCardHeader, IonImg, IonTextarea, IonSpinner, IonListHeader, IonFab, IonFabButton, IonBadge, IonSegmentButton, IonSegment } from '@ionic/angular/standalone';
|
|
8
|
+
import { Countries, Suggestion, mdToHtml, COLORS, Contacts, ErrorReport, ClientInfo, ExternalCalendarSources, Sentiment, TimeInterval, PushNotificationsDevice, PushNotificationsPlatforms } from 'idea-toolbox';
|
|
9
|
+
import { IDEATranslatePipe, IDEASelectComponent, IDEAEnvironment, IDEAStorageService, IDEATranslationsService, IDEALocalizedDatePipe, IDEALoadingService, IDEAActionSheetController } from '@idea-ionic/common';
|
|
10
|
+
import { ActivatedRoute } from '@angular/router';
|
|
15
11
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
16
12
|
import { Observable } from 'rxjs';
|
|
17
13
|
import { Network } from '@capacitor/network';
|
|
@@ -70,11 +66,324 @@ class IDEAAddressComponent {
|
|
|
70
66
|
this.addressChange.emit(this.address);
|
|
71
67
|
}
|
|
72
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAAddressComponent, selector: "idea-address", inputs: { address: "address", showContact: "showContact", showAddress2: "showAddress2", showPhone: "showPhone", showEmail: "showEmail", editMode: "editMode", obligatory: "obligatory", lines: "lines", color: "color", label: "label", placeholder: "placeholder", openByDefault: "openByDefault" }, outputs: { addressChange: "addressChange" }, viewQueries: [{ propertyName: "accordion", first: true, predicate: ["accordion"], descendants: true }], ngImport: i0, template:
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAAddressComponent, isStandalone: true, selector: "idea-address", inputs: { address: "address", showContact: "showContact", showAddress2: "showAddress2", showPhone: "showPhone", showEmail: "showEmail", editMode: "editMode", obligatory: "obligatory", lines: "lines", color: "color", label: "label", placeholder: "placeholder", openByDefault: "openByDefault" }, outputs: { addressChange: "addressChange" }, viewQueries: [{ propertyName: "accordion", first: true, predicate: ["accordion"], descendants: true }], ngImport: i0, template: `
|
|
70
|
+
@if (address) {
|
|
71
|
+
<ion-accordion-group #accordion>
|
|
72
|
+
<ion-accordion value="open">
|
|
73
|
+
<ion-item slot="header" button [color]="color" [lines]="lines">
|
|
74
|
+
@if (isCollapsed()) {
|
|
75
|
+
<ion-input
|
|
76
|
+
readonly
|
|
77
|
+
[labelPlacement]="isCollapsed() ? 'stacked' : ''"
|
|
78
|
+
[label]="label || ('IDEA_UNCOMMON.ADDRESS.COMPLETE_ADDRESS' | translate)"
|
|
79
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.COMPLETE_ADDRESS_HINT' | translate"
|
|
80
|
+
[placeholder]="placeholder"
|
|
81
|
+
[value]="address.getFullAddress()"
|
|
82
|
+
(ionChange)="addressChange.emit(address)"
|
|
83
|
+
/>
|
|
84
|
+
}
|
|
85
|
+
</ion-item>
|
|
86
|
+
<ion-list slot="content">
|
|
87
|
+
@if (showContact) {
|
|
88
|
+
<ion-item [color]="color">
|
|
89
|
+
<ion-input
|
|
90
|
+
autocomplete="new"
|
|
91
|
+
labelPlacement="stacked"
|
|
92
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.CONTACT' | translate"
|
|
93
|
+
[disabled]="!editMode"
|
|
94
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.CONTACT_HINT' | translate"
|
|
95
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.CONTACT_HINT' | translate"
|
|
96
|
+
[(ngModel)]="address.contact"
|
|
97
|
+
(ionChange)="addressChange.emit(address)"
|
|
98
|
+
/>
|
|
99
|
+
</ion-item>
|
|
100
|
+
}
|
|
101
|
+
@if (showEmail) {
|
|
102
|
+
<ion-item [color]="color">
|
|
103
|
+
<ion-input
|
|
104
|
+
autocomplete="new"
|
|
105
|
+
labelPlacement="stacked"
|
|
106
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.EMAIL' | translate"
|
|
107
|
+
[disabled]="!editMode"
|
|
108
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.EMAIL_HINT' | translate"
|
|
109
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.EMAIL_HINT' | translate"
|
|
110
|
+
[(ngModel)]="address.email"
|
|
111
|
+
(ionChange)="addressChange.emit(address)"
|
|
112
|
+
/>
|
|
113
|
+
</ion-item>
|
|
114
|
+
}
|
|
115
|
+
@if (showPhone) {
|
|
116
|
+
<ion-item [color]="color">
|
|
117
|
+
<ion-input
|
|
118
|
+
autocomplete="new"
|
|
119
|
+
labelPlacement="stacked"
|
|
120
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.PHONE' | translate"
|
|
121
|
+
[disabled]="!editMode"
|
|
122
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.PHONE_HINT' | translate"
|
|
123
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.PHONE_HINT' | translate"
|
|
124
|
+
[(ngModel)]="address.phone"
|
|
125
|
+
(ionChange)="addressChange.emit(address)"
|
|
126
|
+
/>
|
|
127
|
+
</ion-item>
|
|
128
|
+
}
|
|
129
|
+
<ion-item [color]="color">
|
|
130
|
+
<ion-input
|
|
131
|
+
autocomplete="new"
|
|
132
|
+
labelPlacement="stacked"
|
|
133
|
+
[disabled]="!editMode"
|
|
134
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.ADDRESS_HINT' | translate"
|
|
135
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.ADDRESS_HINT' | translate"
|
|
136
|
+
[(ngModel)]="address.address"
|
|
137
|
+
(ionChange)="addressChange.emit(address)"
|
|
138
|
+
>
|
|
139
|
+
<div slot="label">
|
|
140
|
+
{{ 'IDEA_UNCOMMON.ADDRESS.ADDRESS' | translate }}
|
|
141
|
+
@if (editMode && obligatory) {
|
|
142
|
+
<ion-text class="obligatoryDot" />
|
|
143
|
+
}
|
|
144
|
+
</div>
|
|
145
|
+
</ion-input>
|
|
146
|
+
</ion-item>
|
|
147
|
+
@if (showAddress2) {
|
|
148
|
+
<ion-item [color]="color">
|
|
149
|
+
<ion-input
|
|
150
|
+
autocomplete="new"
|
|
151
|
+
labelPlacement="stacked"
|
|
152
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2' | translate"
|
|
153
|
+
[disabled]="!editMode"
|
|
154
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2_HINT' | translate"
|
|
155
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2_HINT' | translate"
|
|
156
|
+
[(ngModel)]="address.address2"
|
|
157
|
+
(ionChange)="addressChange.emit(address)"
|
|
158
|
+
/>
|
|
159
|
+
</ion-item>
|
|
160
|
+
}
|
|
161
|
+
<ion-item [color]="color">
|
|
162
|
+
<ion-input
|
|
163
|
+
autocomplete="new"
|
|
164
|
+
labelPlacement="stacked"
|
|
165
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.POSTCODE' | translate"
|
|
166
|
+
[disabled]="!editMode"
|
|
167
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.POSTCODE_HINT' | translate"
|
|
168
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.POSTCODE_HINT' | translate"
|
|
169
|
+
[(ngModel)]="address.postcode"
|
|
170
|
+
(ionChange)="addressChange.emit(address)"
|
|
171
|
+
/>
|
|
172
|
+
</ion-item>
|
|
173
|
+
<ion-item [color]="color">
|
|
174
|
+
<ion-input
|
|
175
|
+
autocomplete="new"
|
|
176
|
+
[disabled]="!editMode"
|
|
177
|
+
labelPlacement="stacked"
|
|
178
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.CITY_HINT' | translate"
|
|
179
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.CITY_HINT' | translate"
|
|
180
|
+
[(ngModel)]="address.city"
|
|
181
|
+
(ionChange)="addressChange.emit(address)"
|
|
182
|
+
>
|
|
183
|
+
<div slot="label">
|
|
184
|
+
{{ 'IDEA_UNCOMMON.ADDRESS.CITY' | translate }}
|
|
185
|
+
@if (editMode && obligatory) {
|
|
186
|
+
<ion-text class="obligatoryDot" />
|
|
187
|
+
}
|
|
188
|
+
</div>
|
|
189
|
+
</ion-input>
|
|
190
|
+
</ion-item>
|
|
191
|
+
<ion-item [color]="color">
|
|
192
|
+
<ion-input
|
|
193
|
+
autocomplete="new"
|
|
194
|
+
labelPlacement="stacked"
|
|
195
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.PROVINCE' | translate"
|
|
196
|
+
[disabled]="!editMode"
|
|
197
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.PROVINCE_HINT' | translate"
|
|
198
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.PROVINCE_HINT' | translate"
|
|
199
|
+
[(ngModel)]="address.province"
|
|
200
|
+
(ionChange)="addressChange.emit(address)"
|
|
201
|
+
/>
|
|
202
|
+
</ion-item>
|
|
203
|
+
<idea-select
|
|
204
|
+
[color]="color"
|
|
205
|
+
[data]="countriesSuggestions"
|
|
206
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.COUNTRY' | translate"
|
|
207
|
+
[lines]="editMode ? lines : null"
|
|
208
|
+
[description]="getCountryName(address.country)"
|
|
209
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.COUNTRY_HINT' | translate"
|
|
210
|
+
[searchPlaceholder]="'IDEA_UNCOMMON.ADDRESS.COUNTRY_HINT' | translate"
|
|
211
|
+
[hideIdFromUI]="true"
|
|
212
|
+
[avoidAutoSelection]="true"
|
|
213
|
+
[disabled]="!editMode"
|
|
214
|
+
(select)="setCountryFromSuggestion($event)"
|
|
215
|
+
/>
|
|
216
|
+
</ion-list>
|
|
217
|
+
</ion-accordion>
|
|
218
|
+
</ion-accordion-group>
|
|
219
|
+
}
|
|
220
|
+
`, isInline: true, styles: ["ion-item[slot=header] ion-input{--highlight-color-focused: transparent;--highlight-color-valid: transparent;--highlight-color-invalid: transparent}ion-list[slot=content]{padding-top:0;padding-left:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IDEASelectComponent, selector: "idea-select", inputs: ["description", "data", "dataProvider", "label", "icon", "iconColor", "placeholder", "searchPlaceholder", "noElementsFoundText", "disabled", "tappableWhenDisabled", "obligatory", "lines", "color", "allowUnlistedValues", "allowUnlistedValuesPrefix", "sortData", "clearValueAfterSelection", "hideIdFromUI", "hideClearButton", "mustChoose", "category1", "category2", "showCategoriesFilters", "avoidAutoSelection"], outputs: ["select", "iconSelect", "selectWhenDisabled"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "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", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }] }); }
|
|
74
221
|
}
|
|
75
222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressComponent, decorators: [{
|
|
76
223
|
type: Component,
|
|
77
|
-
args: [{ selector: 'idea-address',
|
|
224
|
+
args: [{ selector: 'idea-address', standalone: true, imports: [
|
|
225
|
+
CommonModule,
|
|
226
|
+
FormsModule,
|
|
227
|
+
IDEATranslatePipe,
|
|
228
|
+
IDEASelectComponent,
|
|
229
|
+
IonText,
|
|
230
|
+
IonList,
|
|
231
|
+
IonInput,
|
|
232
|
+
IonItem,
|
|
233
|
+
IonAccordion,
|
|
234
|
+
IonAccordionGroup
|
|
235
|
+
], template: `
|
|
236
|
+
@if (address) {
|
|
237
|
+
<ion-accordion-group #accordion>
|
|
238
|
+
<ion-accordion value="open">
|
|
239
|
+
<ion-item slot="header" button [color]="color" [lines]="lines">
|
|
240
|
+
@if (isCollapsed()) {
|
|
241
|
+
<ion-input
|
|
242
|
+
readonly
|
|
243
|
+
[labelPlacement]="isCollapsed() ? 'stacked' : ''"
|
|
244
|
+
[label]="label || ('IDEA_UNCOMMON.ADDRESS.COMPLETE_ADDRESS' | translate)"
|
|
245
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.COMPLETE_ADDRESS_HINT' | translate"
|
|
246
|
+
[placeholder]="placeholder"
|
|
247
|
+
[value]="address.getFullAddress()"
|
|
248
|
+
(ionChange)="addressChange.emit(address)"
|
|
249
|
+
/>
|
|
250
|
+
}
|
|
251
|
+
</ion-item>
|
|
252
|
+
<ion-list slot="content">
|
|
253
|
+
@if (showContact) {
|
|
254
|
+
<ion-item [color]="color">
|
|
255
|
+
<ion-input
|
|
256
|
+
autocomplete="new"
|
|
257
|
+
labelPlacement="stacked"
|
|
258
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.CONTACT' | translate"
|
|
259
|
+
[disabled]="!editMode"
|
|
260
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.CONTACT_HINT' | translate"
|
|
261
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.CONTACT_HINT' | translate"
|
|
262
|
+
[(ngModel)]="address.contact"
|
|
263
|
+
(ionChange)="addressChange.emit(address)"
|
|
264
|
+
/>
|
|
265
|
+
</ion-item>
|
|
266
|
+
}
|
|
267
|
+
@if (showEmail) {
|
|
268
|
+
<ion-item [color]="color">
|
|
269
|
+
<ion-input
|
|
270
|
+
autocomplete="new"
|
|
271
|
+
labelPlacement="stacked"
|
|
272
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.EMAIL' | translate"
|
|
273
|
+
[disabled]="!editMode"
|
|
274
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.EMAIL_HINT' | translate"
|
|
275
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.EMAIL_HINT' | translate"
|
|
276
|
+
[(ngModel)]="address.email"
|
|
277
|
+
(ionChange)="addressChange.emit(address)"
|
|
278
|
+
/>
|
|
279
|
+
</ion-item>
|
|
280
|
+
}
|
|
281
|
+
@if (showPhone) {
|
|
282
|
+
<ion-item [color]="color">
|
|
283
|
+
<ion-input
|
|
284
|
+
autocomplete="new"
|
|
285
|
+
labelPlacement="stacked"
|
|
286
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.PHONE' | translate"
|
|
287
|
+
[disabled]="!editMode"
|
|
288
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.PHONE_HINT' | translate"
|
|
289
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.PHONE_HINT' | translate"
|
|
290
|
+
[(ngModel)]="address.phone"
|
|
291
|
+
(ionChange)="addressChange.emit(address)"
|
|
292
|
+
/>
|
|
293
|
+
</ion-item>
|
|
294
|
+
}
|
|
295
|
+
<ion-item [color]="color">
|
|
296
|
+
<ion-input
|
|
297
|
+
autocomplete="new"
|
|
298
|
+
labelPlacement="stacked"
|
|
299
|
+
[disabled]="!editMode"
|
|
300
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.ADDRESS_HINT' | translate"
|
|
301
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.ADDRESS_HINT' | translate"
|
|
302
|
+
[(ngModel)]="address.address"
|
|
303
|
+
(ionChange)="addressChange.emit(address)"
|
|
304
|
+
>
|
|
305
|
+
<div slot="label">
|
|
306
|
+
{{ 'IDEA_UNCOMMON.ADDRESS.ADDRESS' | translate }}
|
|
307
|
+
@if (editMode && obligatory) {
|
|
308
|
+
<ion-text class="obligatoryDot" />
|
|
309
|
+
}
|
|
310
|
+
</div>
|
|
311
|
+
</ion-input>
|
|
312
|
+
</ion-item>
|
|
313
|
+
@if (showAddress2) {
|
|
314
|
+
<ion-item [color]="color">
|
|
315
|
+
<ion-input
|
|
316
|
+
autocomplete="new"
|
|
317
|
+
labelPlacement="stacked"
|
|
318
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2' | translate"
|
|
319
|
+
[disabled]="!editMode"
|
|
320
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2_HINT' | translate"
|
|
321
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.ADDRESS2_HINT' | translate"
|
|
322
|
+
[(ngModel)]="address.address2"
|
|
323
|
+
(ionChange)="addressChange.emit(address)"
|
|
324
|
+
/>
|
|
325
|
+
</ion-item>
|
|
326
|
+
}
|
|
327
|
+
<ion-item [color]="color">
|
|
328
|
+
<ion-input
|
|
329
|
+
autocomplete="new"
|
|
330
|
+
labelPlacement="stacked"
|
|
331
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.POSTCODE' | translate"
|
|
332
|
+
[disabled]="!editMode"
|
|
333
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.POSTCODE_HINT' | translate"
|
|
334
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.POSTCODE_HINT' | translate"
|
|
335
|
+
[(ngModel)]="address.postcode"
|
|
336
|
+
(ionChange)="addressChange.emit(address)"
|
|
337
|
+
/>
|
|
338
|
+
</ion-item>
|
|
339
|
+
<ion-item [color]="color">
|
|
340
|
+
<ion-input
|
|
341
|
+
autocomplete="new"
|
|
342
|
+
[disabled]="!editMode"
|
|
343
|
+
labelPlacement="stacked"
|
|
344
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.CITY_HINT' | translate"
|
|
345
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.CITY_HINT' | translate"
|
|
346
|
+
[(ngModel)]="address.city"
|
|
347
|
+
(ionChange)="addressChange.emit(address)"
|
|
348
|
+
>
|
|
349
|
+
<div slot="label">
|
|
350
|
+
{{ 'IDEA_UNCOMMON.ADDRESS.CITY' | translate }}
|
|
351
|
+
@if (editMode && obligatory) {
|
|
352
|
+
<ion-text class="obligatoryDot" />
|
|
353
|
+
}
|
|
354
|
+
</div>
|
|
355
|
+
</ion-input>
|
|
356
|
+
</ion-item>
|
|
357
|
+
<ion-item [color]="color">
|
|
358
|
+
<ion-input
|
|
359
|
+
autocomplete="new"
|
|
360
|
+
labelPlacement="stacked"
|
|
361
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.PROVINCE' | translate"
|
|
362
|
+
[disabled]="!editMode"
|
|
363
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.PROVINCE_HINT' | translate"
|
|
364
|
+
[title]="'IDEA_UNCOMMON.ADDRESS.PROVINCE_HINT' | translate"
|
|
365
|
+
[(ngModel)]="address.province"
|
|
366
|
+
(ionChange)="addressChange.emit(address)"
|
|
367
|
+
/>
|
|
368
|
+
</ion-item>
|
|
369
|
+
<idea-select
|
|
370
|
+
[color]="color"
|
|
371
|
+
[data]="countriesSuggestions"
|
|
372
|
+
[label]="'IDEA_UNCOMMON.ADDRESS.COUNTRY' | translate"
|
|
373
|
+
[lines]="editMode ? lines : null"
|
|
374
|
+
[description]="getCountryName(address.country)"
|
|
375
|
+
[placeholder]="'IDEA_UNCOMMON.ADDRESS.COUNTRY_HINT' | translate"
|
|
376
|
+
[searchPlaceholder]="'IDEA_UNCOMMON.ADDRESS.COUNTRY_HINT' | translate"
|
|
377
|
+
[hideIdFromUI]="true"
|
|
378
|
+
[avoidAutoSelection]="true"
|
|
379
|
+
[disabled]="!editMode"
|
|
380
|
+
(select)="setCountryFromSuggestion($event)"
|
|
381
|
+
/>
|
|
382
|
+
</ion-list>
|
|
383
|
+
</ion-accordion>
|
|
384
|
+
</ion-accordion-group>
|
|
385
|
+
}
|
|
386
|
+
`, styles: ["ion-item[slot=header] ion-input{--highlight-color-focused: transparent;--highlight-color-valid: transparent;--highlight-color-invalid: transparent}ion-list[slot=content]{padding-top:0;padding-left:20px}\n"] }]
|
|
78
387
|
}], propDecorators: { address: [{
|
|
79
388
|
type: Input
|
|
80
389
|
}], addressChange: [{
|
|
@@ -106,20 +415,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
106
415
|
args: ['accordion']
|
|
107
416
|
}] } });
|
|
108
417
|
|
|
109
|
-
class IDEAAddressModule {
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
111
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressModule, declarations: [IDEAAddressComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent], exports: [IDEAAddressComponent] }); }
|
|
112
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent] }); }
|
|
113
|
-
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAddressModule, decorators: [{
|
|
115
|
-
type: NgModule,
|
|
116
|
-
args: [{
|
|
117
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent],
|
|
118
|
-
declarations: [IDEAAddressComponent],
|
|
119
|
-
exports: [IDEAAddressComponent]
|
|
120
|
-
}]
|
|
121
|
-
}] });
|
|
122
|
-
|
|
123
418
|
/**
|
|
124
419
|
* @deprecated use a specific App service instead.
|
|
125
420
|
*/
|
|
@@ -192,29 +487,46 @@ class IDEAAnnouncementComponent {
|
|
|
192
487
|
this.htmlContent = null;
|
|
193
488
|
}
|
|
194
489
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAAnnouncementComponent, selector: "idea-announcement", inputs: { color: "color" }, ngImport: i0, template:
|
|
490
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAAnnouncementComponent, isStandalone: true, selector: "idea-announcement", inputs: { color: "color" }, ngImport: i0, template: `
|
|
491
|
+
@if (htmlContent) {
|
|
492
|
+
<ion-card class="announcementCard" [color]="color">
|
|
493
|
+
<ion-card-content>
|
|
494
|
+
<p class="htmlContent" [innerHTML]="htmlContent"></p>
|
|
495
|
+
<p class="ion-text-right">
|
|
496
|
+
<ion-button color="primary" (click)="markAsRead()">
|
|
497
|
+
{{ 'COMMON.GOT_IT' | translate }}
|
|
498
|
+
</ion-button>
|
|
499
|
+
</p>
|
|
500
|
+
</ion-card-content>
|
|
501
|
+
</ion-card>
|
|
502
|
+
}
|
|
503
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: 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: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
196
504
|
}
|
|
197
505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementComponent, decorators: [{
|
|
198
506
|
type: Component,
|
|
199
|
-
args: [{
|
|
507
|
+
args: [{
|
|
508
|
+
selector: 'idea-announcement',
|
|
509
|
+
standalone: true,
|
|
510
|
+
imports: [CommonModule, IDEATranslatePipe, IonButton, IonCardContent, IonCard],
|
|
511
|
+
template: `
|
|
512
|
+
@if (htmlContent) {
|
|
513
|
+
<ion-card class="announcementCard" [color]="color">
|
|
514
|
+
<ion-card-content>
|
|
515
|
+
<p class="htmlContent" [innerHTML]="htmlContent"></p>
|
|
516
|
+
<p class="ion-text-right">
|
|
517
|
+
<ion-button color="primary" (click)="markAsRead()">
|
|
518
|
+
{{ 'COMMON.GOT_IT' | translate }}
|
|
519
|
+
</ion-button>
|
|
520
|
+
</p>
|
|
521
|
+
</ion-card-content>
|
|
522
|
+
</ion-card>
|
|
523
|
+
}
|
|
524
|
+
`
|
|
525
|
+
}]
|
|
200
526
|
}], ctorParameters: () => [], propDecorators: { color: [{
|
|
201
527
|
type: Input
|
|
202
528
|
}] } });
|
|
203
529
|
|
|
204
|
-
class IDEAAnnouncementModule {
|
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
206
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementModule, declarations: [IDEAAnnouncementComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEAAnnouncementComponent] }); }
|
|
207
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
208
|
-
}
|
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAnnouncementModule, decorators: [{
|
|
210
|
-
type: NgModule,
|
|
211
|
-
args: [{
|
|
212
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
213
|
-
declarations: [IDEAAnnouncementComponent],
|
|
214
|
-
exports: [IDEAAnnouncementComponent]
|
|
215
|
-
}]
|
|
216
|
-
}] });
|
|
217
|
-
|
|
218
530
|
/**
|
|
219
531
|
* Pick a color from a defined set.
|
|
220
532
|
*/
|
|
@@ -251,11 +563,67 @@ class IDEAColorPickerComponent {
|
|
|
251
563
|
this.iconSelect.emit(event);
|
|
252
564
|
}
|
|
253
565
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAColorPickerComponent, selector: "idea-color-picker", inputs: { colors: "colors", current: "current", label: "label", placeholder: "placeholder", icon: "icon", iconColor: "iconColor", disabled: "disabled", obligatory: "obligatory", lines: "lines", color: "color" }, outputs: { select: "select", iconSelect: "iconSelect" }, ngImport: i0, template:
|
|
566
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAColorPickerComponent, isStandalone: true, selector: "idea-color-picker", inputs: { colors: "colors", current: "current", label: "label", placeholder: "placeholder", icon: "icon", iconColor: "iconColor", disabled: "disabled", obligatory: "obligatory", lines: "lines", color: "color" }, outputs: { select: "select", iconSelect: "iconSelect" }, ngImport: i0, template: `
|
|
567
|
+
<ion-item
|
|
568
|
+
class="colorPickerItem"
|
|
569
|
+
[color]="color"
|
|
570
|
+
[lines]="lines"
|
|
571
|
+
[button]="!disabled"
|
|
572
|
+
[title]="placeholder || ''"
|
|
573
|
+
[class.withLabel]="label"
|
|
574
|
+
(click)="openPalette($event)"
|
|
575
|
+
>
|
|
576
|
+
@if (icon) {
|
|
577
|
+
<ion-button fill="clear" slot="start" [color]="iconColor" (click)="doIconSelect($event)">
|
|
578
|
+
<ion-icon [name]="icon" slot="icon-only" />
|
|
579
|
+
</ion-button>
|
|
580
|
+
}
|
|
581
|
+
@if (label) {
|
|
582
|
+
<ion-label [class.selectable]="!disabled">
|
|
583
|
+
{{ label }}
|
|
584
|
+
@if (obligatory && !disabled) {
|
|
585
|
+
<ion-text class="obligatoryDot" />
|
|
586
|
+
}
|
|
587
|
+
</ion-label>
|
|
588
|
+
}
|
|
589
|
+
<ion-avatar slot="end" class="colorCircle" [style.background-color]="current" />
|
|
590
|
+
@if (!disabled) {
|
|
591
|
+
<ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
592
|
+
}
|
|
593
|
+
</ion-item>
|
|
594
|
+
`, isInline: true, styles: [".colorPickerItem{min-height:48px;height:auto}.colorPickerItem .placeholder{color:var(--ion-color-medium)}.colorPickerItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.selectItem.withLabel{min-height:58px;height:auto}.selectItem.withLabel .selectIcon{padding-top:25px}.selectItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}ion-avatar.colorCircle{width:20px;height:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonAvatar, selector: "ion-avatar" }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
255
595
|
}
|
|
256
596
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerComponent, decorators: [{
|
|
257
597
|
type: Component,
|
|
258
|
-
args: [{ selector: 'idea-color-picker',
|
|
598
|
+
args: [{ selector: 'idea-color-picker', standalone: true, imports: [CommonModule, IonAvatar, IonText, IonLabel, IonIcon, IonButton, IonItem], template: `
|
|
599
|
+
<ion-item
|
|
600
|
+
class="colorPickerItem"
|
|
601
|
+
[color]="color"
|
|
602
|
+
[lines]="lines"
|
|
603
|
+
[button]="!disabled"
|
|
604
|
+
[title]="placeholder || ''"
|
|
605
|
+
[class.withLabel]="label"
|
|
606
|
+
(click)="openPalette($event)"
|
|
607
|
+
>
|
|
608
|
+
@if (icon) {
|
|
609
|
+
<ion-button fill="clear" slot="start" [color]="iconColor" (click)="doIconSelect($event)">
|
|
610
|
+
<ion-icon [name]="icon" slot="icon-only" />
|
|
611
|
+
</ion-button>
|
|
612
|
+
}
|
|
613
|
+
@if (label) {
|
|
614
|
+
<ion-label [class.selectable]="!disabled">
|
|
615
|
+
{{ label }}
|
|
616
|
+
@if (obligatory && !disabled) {
|
|
617
|
+
<ion-text class="obligatoryDot" />
|
|
618
|
+
}
|
|
619
|
+
</ion-label>
|
|
620
|
+
}
|
|
621
|
+
<ion-avatar slot="end" class="colorCircle" [style.background-color]="current" />
|
|
622
|
+
@if (!disabled) {
|
|
623
|
+
<ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
624
|
+
}
|
|
625
|
+
</ion-item>
|
|
626
|
+
`, styles: [".colorPickerItem{min-height:48px;height:auto}.colorPickerItem .placeholder{color:var(--ion-color-medium)}.colorPickerItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.selectItem.withLabel{min-height:58px;height:auto}.selectItem.withLabel .selectIcon{padding-top:25px}.selectItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}ion-avatar.colorCircle{width:20px;height:20px}\n"] }]
|
|
259
627
|
}], propDecorators: { colors: [{
|
|
260
628
|
type: Input
|
|
261
629
|
}], current: [{
|
|
@@ -292,7 +660,7 @@ class ColorsPaletteComponent {
|
|
|
292
660
|
this._popover.dismiss(color);
|
|
293
661
|
}
|
|
294
662
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
295
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: ColorsPaletteComponent, selector: "idea-colors-palette", inputs: { colors: "colors", current: "current" }, ngImport: i0, template: `
|
|
663
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: ColorsPaletteComponent, isStandalone: true, selector: "idea-colors-palette", inputs: { colors: "colors", current: "current" }, ngImport: i0, template: `
|
|
296
664
|
<ion-content>
|
|
297
665
|
<ion-grid>
|
|
298
666
|
<ion-row>
|
|
@@ -313,11 +681,11 @@ class ColorsPaletteComponent {
|
|
|
313
681
|
</ion-row>
|
|
314
682
|
</ion-grid>
|
|
315
683
|
</ion-content>
|
|
316
|
-
`, isInline: true, styles: ["ion-content{--background: var(--ion-color-white)}ion-avatar.colorCircle{width:20px;height:20px}.tappable{cursor:pointer}ion-avatar.colorCircle ion-icon{color:#fff;font-size:1.2em}\n"], dependencies: [{ kind: "
|
|
684
|
+
`, isInline: true, styles: ["ion-content{--background: var(--ion-color-white)}ion-avatar.colorCircle{width:20px;height:20px}.tappable{cursor:pointer}ion-avatar.colorCircle ion-icon{color:#fff;font-size:1.2em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonAvatar, selector: "ion-avatar" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
317
685
|
}
|
|
318
686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, decorators: [{
|
|
319
687
|
type: Component,
|
|
320
|
-
args: [{ selector: 'idea-colors-palette', template: `
|
|
688
|
+
args: [{ selector: 'idea-colors-palette', standalone: true, imports: [CommonModule, IonContent, IonGrid, IonRow, IonCol, IonAvatar, IonIcon], template: `
|
|
321
689
|
<ion-content>
|
|
322
690
|
<ion-grid>
|
|
323
691
|
<ion-row>
|
|
@@ -345,20 +713,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
345
713
|
type: Input
|
|
346
714
|
}] } });
|
|
347
715
|
|
|
348
|
-
class IDEAColorPickerModule {
|
|
349
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
350
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerModule, declarations: [IDEAColorPickerComponent, ColorsPaletteComponent], imports: [CommonModule, FormsModule, IonicModule], exports: [IDEAColorPickerComponent, ColorsPaletteComponent] }); }
|
|
351
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerModule, imports: [CommonModule, FormsModule, IonicModule] }); }
|
|
352
|
-
}
|
|
353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerModule, decorators: [{
|
|
354
|
-
type: NgModule,
|
|
355
|
-
args: [{
|
|
356
|
-
imports: [CommonModule, FormsModule, IonicModule],
|
|
357
|
-
declarations: [IDEAColorPickerComponent, ColorsPaletteComponent],
|
|
358
|
-
exports: [IDEAColorPickerComponent, ColorsPaletteComponent]
|
|
359
|
-
}]
|
|
360
|
-
}] });
|
|
361
|
-
|
|
362
716
|
class IDEAContactsComponent {
|
|
363
717
|
constructor() {
|
|
364
718
|
this._alert = inject(AlertController);
|
|
@@ -398,11 +752,135 @@ class IDEAContactsComponent {
|
|
|
398
752
|
this._alert.create({ header, message, buttons, cssClass }).then(alert => alert.present());
|
|
399
753
|
}
|
|
400
754
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
401
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAContactsComponent, selector: "idea-contacts", inputs: { contacts: "contacts", showName: "showName", editMode: "editMode", lines: "lines", color: "color" }, ngImport: i0, template:
|
|
755
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAContactsComponent, isStandalone: true, selector: "idea-contacts", inputs: { contacts: "contacts", showName: "showName", editMode: "editMode", lines: "lines", color: "color" }, ngImport: i0, template: `
|
|
756
|
+
<div class="contacts">
|
|
757
|
+
@if (showName) {
|
|
758
|
+
<ion-item [lines]="lines" [color]="color">
|
|
759
|
+
<ion-input
|
|
760
|
+
autocomplete="new"
|
|
761
|
+
labelPlacement="stacked"
|
|
762
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.NAME' | translate"
|
|
763
|
+
[disabled]="!editMode"
|
|
764
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
|
|
765
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
|
|
766
|
+
[(ngModel)]="contacts.name"
|
|
767
|
+
/>
|
|
768
|
+
</ion-item>
|
|
769
|
+
}
|
|
770
|
+
<ion-item [lines]="lines" [color]="color">
|
|
771
|
+
<ion-input
|
|
772
|
+
autocomplete="new"
|
|
773
|
+
labelPlacement="stacked"
|
|
774
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.PHONE' | translate"
|
|
775
|
+
[disabled]="!editMode"
|
|
776
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
|
|
777
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
|
|
778
|
+
[(ngModel)]="contacts.phone"
|
|
779
|
+
/>
|
|
780
|
+
@if (!editMode) {
|
|
781
|
+
<ion-button
|
|
782
|
+
slot="end"
|
|
783
|
+
fill="clear"
|
|
784
|
+
color="dark"
|
|
785
|
+
class="marginTop"
|
|
786
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.CALL' | translate"
|
|
787
|
+
(click)="call()"
|
|
788
|
+
>
|
|
789
|
+
<ion-icon name="call" slot="icon-only" />
|
|
790
|
+
</ion-button>
|
|
791
|
+
}
|
|
792
|
+
</ion-item>
|
|
793
|
+
<ion-item [lines]="lines" [color]="color">
|
|
794
|
+
<ion-input
|
|
795
|
+
autocomplete="new"
|
|
796
|
+
labelPlacement="stacked"
|
|
797
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate"
|
|
798
|
+
[disabled]="!editMode"
|
|
799
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
|
|
800
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
|
|
801
|
+
[(ngModel)]="contacts.email"
|
|
802
|
+
/>
|
|
803
|
+
@if (!editMode) {
|
|
804
|
+
<ion-button
|
|
805
|
+
slot="end"
|
|
806
|
+
fill="clear"
|
|
807
|
+
color="dark"
|
|
808
|
+
class="marginTop"
|
|
809
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate"
|
|
810
|
+
(click)="sendEmail()"
|
|
811
|
+
>
|
|
812
|
+
<ion-icon name="mail" slot="icon-only" />
|
|
813
|
+
</ion-button>
|
|
814
|
+
}
|
|
815
|
+
</ion-item>
|
|
816
|
+
</div>
|
|
817
|
+
`, isInline: true, styles: [".marginTop{margin-top:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "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", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
402
818
|
}
|
|
403
819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsComponent, decorators: [{
|
|
404
820
|
type: Component,
|
|
405
|
-
args: [{ selector: 'idea-contacts',
|
|
821
|
+
args: [{ selector: 'idea-contacts', standalone: true, imports: [CommonModule, FormsModule, IDEATranslatePipe, IDEASelectComponent, IonInput, IonIcon, IonButton, IonItem], template: `
|
|
822
|
+
<div class="contacts">
|
|
823
|
+
@if (showName) {
|
|
824
|
+
<ion-item [lines]="lines" [color]="color">
|
|
825
|
+
<ion-input
|
|
826
|
+
autocomplete="new"
|
|
827
|
+
labelPlacement="stacked"
|
|
828
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.NAME' | translate"
|
|
829
|
+
[disabled]="!editMode"
|
|
830
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
|
|
831
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
|
|
832
|
+
[(ngModel)]="contacts.name"
|
|
833
|
+
/>
|
|
834
|
+
</ion-item>
|
|
835
|
+
}
|
|
836
|
+
<ion-item [lines]="lines" [color]="color">
|
|
837
|
+
<ion-input
|
|
838
|
+
autocomplete="new"
|
|
839
|
+
labelPlacement="stacked"
|
|
840
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.PHONE' | translate"
|
|
841
|
+
[disabled]="!editMode"
|
|
842
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
|
|
843
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
|
|
844
|
+
[(ngModel)]="contacts.phone"
|
|
845
|
+
/>
|
|
846
|
+
@if (!editMode) {
|
|
847
|
+
<ion-button
|
|
848
|
+
slot="end"
|
|
849
|
+
fill="clear"
|
|
850
|
+
color="dark"
|
|
851
|
+
class="marginTop"
|
|
852
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.CALL' | translate"
|
|
853
|
+
(click)="call()"
|
|
854
|
+
>
|
|
855
|
+
<ion-icon name="call" slot="icon-only" />
|
|
856
|
+
</ion-button>
|
|
857
|
+
}
|
|
858
|
+
</ion-item>
|
|
859
|
+
<ion-item [lines]="lines" [color]="color">
|
|
860
|
+
<ion-input
|
|
861
|
+
autocomplete="new"
|
|
862
|
+
labelPlacement="stacked"
|
|
863
|
+
[label]="'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate"
|
|
864
|
+
[disabled]="!editMode"
|
|
865
|
+
[placeholder]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
|
|
866
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
|
|
867
|
+
[(ngModel)]="contacts.email"
|
|
868
|
+
/>
|
|
869
|
+
@if (!editMode) {
|
|
870
|
+
<ion-button
|
|
871
|
+
slot="end"
|
|
872
|
+
fill="clear"
|
|
873
|
+
color="dark"
|
|
874
|
+
class="marginTop"
|
|
875
|
+
[title]="'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate"
|
|
876
|
+
(click)="sendEmail()"
|
|
877
|
+
>
|
|
878
|
+
<ion-icon name="mail" slot="icon-only" />
|
|
879
|
+
</ion-button>
|
|
880
|
+
}
|
|
881
|
+
</ion-item>
|
|
882
|
+
</div>
|
|
883
|
+
`, styles: [".marginTop{margin-top:14px}\n"] }]
|
|
406
884
|
}], propDecorators: { contacts: [{
|
|
407
885
|
type: Input
|
|
408
886
|
}], showName: [{
|
|
@@ -415,20 +893,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
415
893
|
type: Input
|
|
416
894
|
}] } });
|
|
417
895
|
|
|
418
|
-
class IDEAContactsModule {
|
|
419
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
420
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsModule, declarations: [IDEAContactsComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent], exports: [IDEAContactsComponent] }); }
|
|
421
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent] }); }
|
|
422
|
-
}
|
|
423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsModule, decorators: [{
|
|
424
|
-
type: NgModule,
|
|
425
|
-
args: [{
|
|
426
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, IDEASelectComponent],
|
|
427
|
-
declarations: [IDEAContactsComponent],
|
|
428
|
-
exports: [IDEAContactsComponent]
|
|
429
|
-
}]
|
|
430
|
-
}] });
|
|
431
|
-
|
|
432
896
|
/**
|
|
433
897
|
* A random sunday, used as reference to calculate the week days.
|
|
434
898
|
*/
|
|
@@ -597,11 +1061,28 @@ class IDEACalendarPickerComponent {
|
|
|
597
1061
|
this._modal.dismiss();
|
|
598
1062
|
}
|
|
599
1063
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
600
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACalendarPickerComponent, selector: "idea-calendar-picker", inputs: { inputDate: "inputDate", timePicker: "timePicker", manualTimePicker: "manualTimePicker", title: "title", hideClearButton: "hideClearButton", min: "min", max: "max" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n @if (!hideClearButton) {\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.RESET' | translate\" (click)=\"save(true)\">\n <ion-icon slot=\"icon-only\" name=\"arrow-undo\" />\n </ion-button>\n }\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.CLOSE_WITHOUT_SAVING' | translate\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid fixed class=\"ion-no-padding\">\n <ion-row>\n <h1 class=\"headerLabel\">{{ 'IDEA_UNCOMMON.CALENDAR.SET_DATE' | translate }}</h1>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\">\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"5\">\n <ion-row class=\"ion-align-items-center ion-justify-content-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\">\n <ion-input\n type=\"text\"\n [placeholder]=\"'IDEA_UNCOMMON.CALENDAR.YEAR' | translate\"\n [value]=\"refDate.getFullYear()\"\n (ionFocus)=\"$event.target.value = ''\"\n (ionChange)=\"setYear($event?.target?.value)\"\n >\n </ion-input>\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"7\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\" (click)=\"showMonths()\">\n {{ refDate | dateLocale: 'MMMM' }}\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\" class=\"headerLabel\">\n @for (ddd of weekDays; track ddd) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n {{ ddd }}\n </ion-col>\n }\n </ion-row>\n @for (row of calendarGrid; track row; let i = $index) {\n <ion-row class=\"ion-align-items-center\">\n @for (col of row; track col; let j = $index) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"\n isSameDay(calendarGrid[i][j], today) || isSameDay(calendarGrid[i][j], selectedDate)\n ? 'primary'\n : isSameMonth(calendarGrid[i][j], refDate)\n ? 'dark'\n : 'medium'\n \"\n [fill]=\"\n isSameDay(calendarGrid[i][j], selectedDate)\n ? 'solid'\n : isSameDay(calendarGrid[i][j], today)\n ? 'outline'\n : 'clear'\n \"\n [disabled]=\"!isDateSelectable(calendarGrid[i][j])\"\n (click)=\"selectDate(calendarGrid[i][j])\"\n >\n {{ calendarGrid[i][j] | date: 'd' }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n }\n @if (timePicker || manualTimePicker) {\n <ion-row>\n <h1 class=\"headerLabel\">\n {{ 'IDEA_UNCOMMON.CALENDAR.SET_TIME' | translate }}\n </h1>\n </ion-row>\n }\n @if (timePicker) {\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-no-padding\" [size]=\"7\">\n <ion-row>\n @for (hour of hours; track hour) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"2\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameHour(hour) ? 'primary' : 'dark'\"\n [fill]=\"isSameHour(hour) ? 'solid' : 'clear'\"\n (click)=\"selectHour(hour)\"\n >\n {{ hour }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"1\"> : </ion-col>\n <ion-col class=\"ion-no-padding\" [size]=\"4\">\n <ion-row>\n @for (minute of minutes; track minute) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"4\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameMinute(minute) ? 'primary' : 'dark'\"\n [fill]=\"isSameMinute(minute) ? 'solid' : 'clear'\"\n (click)=\"selectMinute(minute)\"\n >\n {{ minute }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n </ion-row>\n }\n @if (manualTimePicker) {\n <ion-row class=\"ion-align-items-center manualTimePicker\">\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <input type=\"number\" min=\"0\" max=\"23\" [value]=\"hour\" (change)=\"selectHour($event.target.value)\" />\n <span>:</span>\n <input type=\"number\" min=\"0\" max=\"59\" [value]=\"minute\" (change)=\"selectMinute($event.target.value)\" />\n </ion-col>\n </ion-row>\n }\n </ion-grid>\n</ion-content>\n<ion-footer>\n <ion-toolbar color=\"ideaToolbar\" class=\"tappable\" (click)=\"save()\">\n <ion-title class=\"ion-text-center\">\n <ion-icon name=\"checkmark\" />\n </ion-title>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--background: var(--ion-color-white)}h1{margin:10px}.headerLabel{font-size:.7em;font-weight:700;text-transform:uppercase}ion-col,ion-button{font-size:.95em}ion-button{margin:3px 0}ion-footer ion-toolbar{--min-height: 40px}.tappable{cursor:pointer}.manualTimePicker{padding:20px}.manualTimePicker input[type=number],.manualTimePicker span{font-size:2.5em}.manualTimePicker input[type=number]{border:none;border-bottom:2px solid var(--ion-color-dark);text-align:center}.manualTimePicker span{padding-left:4px;padding-right:4px}\n"], dependencies: [{ kind: "component", type: i1$1.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$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.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: i1$1.IonRow, selector: "ion-row" }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }, { kind: "pipe", type: i3.IDEALocalizedDatePipe, name: "dateLocale" }] }); }
|
|
1064
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACalendarPickerComponent, isStandalone: true, selector: "idea-calendar-picker", inputs: { inputDate: "inputDate", timePicker: "timePicker", manualTimePicker: "manualTimePicker", title: "title", hideClearButton: "hideClearButton", min: "min", max: "max" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n @if (!hideClearButton) {\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.RESET' | translate\" (click)=\"save(true)\">\n <ion-icon slot=\"icon-only\" name=\"arrow-undo\" />\n </ion-button>\n }\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.CLOSE_WITHOUT_SAVING' | translate\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid fixed class=\"ion-no-padding\">\n <ion-row>\n <h1 class=\"headerLabel\">{{ 'IDEA_UNCOMMON.CALENDAR.SET_DATE' | translate }}</h1>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\">\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"5\">\n <ion-row class=\"ion-align-items-center ion-justify-content-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\">\n <ion-input\n type=\"text\"\n [placeholder]=\"'IDEA_UNCOMMON.CALENDAR.YEAR' | translate\"\n [value]=\"refDate.getFullYear()\"\n (ionFocus)=\"$event.target.value = ''\"\n (ionChange)=\"setYear($event?.target?.value)\"\n >\n </ion-input>\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"7\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\" (click)=\"showMonths()\">\n {{ refDate | dateLocale: 'MMMM' }}\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\" class=\"headerLabel\">\n @for (ddd of weekDays; track ddd) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n {{ ddd }}\n </ion-col>\n }\n </ion-row>\n @for (row of calendarGrid; track row; let i = $index) {\n <ion-row class=\"ion-align-items-center\">\n @for (col of row; track col; let j = $index) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"\n isSameDay(calendarGrid[i][j], today) || isSameDay(calendarGrid[i][j], selectedDate)\n ? 'primary'\n : isSameMonth(calendarGrid[i][j], refDate)\n ? 'dark'\n : 'medium'\n \"\n [fill]=\"\n isSameDay(calendarGrid[i][j], selectedDate)\n ? 'solid'\n : isSameDay(calendarGrid[i][j], today)\n ? 'outline'\n : 'clear'\n \"\n [disabled]=\"!isDateSelectable(calendarGrid[i][j])\"\n (click)=\"selectDate(calendarGrid[i][j])\"\n >\n {{ calendarGrid[i][j] | date: 'd' }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n }\n @if (timePicker || manualTimePicker) {\n <ion-row>\n <h1 class=\"headerLabel\">\n {{ 'IDEA_UNCOMMON.CALENDAR.SET_TIME' | translate }}\n </h1>\n </ion-row>\n }\n @if (timePicker) {\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-no-padding\" [size]=\"7\">\n <ion-row>\n @for (hour of hours; track hour) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"2\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameHour(hour) ? 'primary' : 'dark'\"\n [fill]=\"isSameHour(hour) ? 'solid' : 'clear'\"\n (click)=\"selectHour(hour)\"\n >\n {{ hour }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"1\"> : </ion-col>\n <ion-col class=\"ion-no-padding\" [size]=\"4\">\n <ion-row>\n @for (minute of minutes; track minute) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"4\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameMinute(minute) ? 'primary' : 'dark'\"\n [fill]=\"isSameMinute(minute) ? 'solid' : 'clear'\"\n (click)=\"selectMinute(minute)\"\n >\n {{ minute }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n </ion-row>\n }\n @if (manualTimePicker) {\n <ion-row class=\"ion-align-items-center manualTimePicker\">\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <input type=\"number\" min=\"0\" max=\"23\" [value]=\"hour\" (change)=\"selectHour($event.target.value)\" />\n <span>:</span>\n <input type=\"number\" min=\"0\" max=\"59\" [value]=\"minute\" (change)=\"selectMinute($event.target.value)\" />\n </ion-col>\n </ion-row>\n }\n </ion-grid>\n</ion-content>\n<ion-footer>\n <ion-toolbar color=\"ideaToolbar\" class=\"tappable\" (click)=\"save()\">\n <ion-title class=\"ion-text-center\">\n <ion-icon name=\"checkmark\" />\n </ion-title>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--background: var(--ion-color-white)}h1{margin:10px}.headerLabel{font-size:.7em;font-weight:700;text-transform:uppercase}ion-col,ion-button{font-size:.95em}ion-button{margin:3px 0}ion-footer ion-toolbar{--min-height: 40px}.tappable{cursor:pointer}.manualTimePicker{padding:20px}.manualTimePicker input[type=number],.manualTimePicker span{font-size:2.5em}.manualTimePicker input[type=number]{border:none;border-bottom:2px solid var(--ion-color-dark);text-align:center}.manualTimePicker span{padding-left:4px;padding-right:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "pipe", type: IDEALocalizedDatePipe, name: "dateLocale" }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "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", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }] }); }
|
|
601
1065
|
}
|
|
602
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarPickerComponent, decorators: [{
|
|
603
1067
|
type: Component,
|
|
604
|
-
args: [{ selector: 'idea-calendar-picker',
|
|
1068
|
+
args: [{ selector: 'idea-calendar-picker', standalone: true, imports: [
|
|
1069
|
+
CommonModule,
|
|
1070
|
+
FormsModule,
|
|
1071
|
+
IDEATranslatePipe,
|
|
1072
|
+
IDEALocalizedDatePipe,
|
|
1073
|
+
IonFooter,
|
|
1074
|
+
IonInput,
|
|
1075
|
+
IonCol,
|
|
1076
|
+
IonRow,
|
|
1077
|
+
IonContent,
|
|
1078
|
+
IonGrid,
|
|
1079
|
+
IonIcon,
|
|
1080
|
+
IonButton,
|
|
1081
|
+
IonButtons,
|
|
1082
|
+
IonTitle,
|
|
1083
|
+
IonToolbar,
|
|
1084
|
+
IonHeader
|
|
1085
|
+
], template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n @if (!hideClearButton) {\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.RESET' | translate\" (click)=\"save(true)\">\n <ion-icon slot=\"icon-only\" name=\"arrow-undo\" />\n </ion-button>\n }\n <ion-button [title]=\"'IDEA_UNCOMMON.CALENDAR.CLOSE_WITHOUT_SAVING' | translate\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid fixed class=\"ion-no-padding\">\n <ion-row>\n <h1 class=\"headerLabel\">{{ 'IDEA_UNCOMMON.CALENDAR.SET_DATE' | translate }}</h1>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\">\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"5\">\n <ion-row class=\"ion-align-items-center ion-justify-content-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\">\n <ion-input\n type=\"text\"\n [placeholder]=\"'IDEA_UNCOMMON.CALENDAR.YEAR' | translate\"\n [value]=\"refDate.getFullYear()\"\n (ionFocus)=\"$event.target.value = ''\"\n (ionChange)=\"setYear($event?.target?.value)\"\n >\n </ion-input>\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addYears(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"7\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(-1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-back\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding tappable\" [size]=\"6\" (click)=\"showMonths()\">\n {{ refDate | dateLocale: 'MMMM' }}\n </ion-col>\n <ion-col class=\"ion-text-left ion-no-padding\" [size]=\"3\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"addMonths(+1)\">\n <ion-icon slot=\"icon-only\" name=\"chevron-forward\" />\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-col>\n </ion-row>\n <ion-row style=\"margin-bottom: 8px\" class=\"headerLabel\">\n @for (ddd of weekDays; track ddd) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n {{ ddd }}\n </ion-col>\n }\n </ion-row>\n @for (row of calendarGrid; track row; let i = $index) {\n <ion-row class=\"ion-align-items-center\">\n @for (col of row; track col; let j = $index) {\n <ion-col class=\"ion-text-center ion-no-padding\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"\n isSameDay(calendarGrid[i][j], today) || isSameDay(calendarGrid[i][j], selectedDate)\n ? 'primary'\n : isSameMonth(calendarGrid[i][j], refDate)\n ? 'dark'\n : 'medium'\n \"\n [fill]=\"\n isSameDay(calendarGrid[i][j], selectedDate)\n ? 'solid'\n : isSameDay(calendarGrid[i][j], today)\n ? 'outline'\n : 'clear'\n \"\n [disabled]=\"!isDateSelectable(calendarGrid[i][j])\"\n (click)=\"selectDate(calendarGrid[i][j])\"\n >\n {{ calendarGrid[i][j] | date: 'd' }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n }\n @if (timePicker || manualTimePicker) {\n <ion-row>\n <h1 class=\"headerLabel\">\n {{ 'IDEA_UNCOMMON.CALENDAR.SET_TIME' | translate }}\n </h1>\n </ion-row>\n }\n @if (timePicker) {\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-no-padding\" [size]=\"7\">\n <ion-row>\n @for (hour of hours; track hour) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"2\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameHour(hour) ? 'primary' : 'dark'\"\n [fill]=\"isSameHour(hour) ? 'solid' : 'clear'\"\n (click)=\"selectHour(hour)\"\n >\n {{ hour }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"1\"> : </ion-col>\n <ion-col class=\"ion-no-padding\" [size]=\"4\">\n <ion-row>\n @for (minute of minutes; track minute) {\n <ion-col class=\"ion-text-center ion-no-padding\" [size]=\"4\">\n <ion-button\n size=\"small\"\n shape=\"round\"\n [color]=\"isSameMinute(minute) ? 'primary' : 'dark'\"\n [fill]=\"isSameMinute(minute) ? 'solid' : 'clear'\"\n (click)=\"selectMinute(minute)\"\n >\n {{ minute }}\n </ion-button>\n </ion-col>\n }\n </ion-row>\n </ion-col>\n </ion-row>\n }\n @if (manualTimePicker) {\n <ion-row class=\"ion-align-items-center manualTimePicker\">\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <input type=\"number\" min=\"0\" max=\"23\" [value]=\"hour\" (change)=\"selectHour($event.target.value)\" />\n <span>:</span>\n <input type=\"number\" min=\"0\" max=\"59\" [value]=\"minute\" (change)=\"selectMinute($event.target.value)\" />\n </ion-col>\n </ion-row>\n }\n </ion-grid>\n</ion-content>\n<ion-footer>\n <ion-toolbar color=\"ideaToolbar\" class=\"tappable\" (click)=\"save()\">\n <ion-title class=\"ion-text-center\">\n <ion-icon name=\"checkmark\" />\n </ion-title>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--background: var(--ion-color-white)}h1{margin:10px}.headerLabel{font-size:.7em;font-weight:700;text-transform:uppercase}ion-col,ion-button{font-size:.95em}ion-button{margin:3px 0}ion-footer ion-toolbar{--min-height: 40px}.tappable{cursor:pointer}.manualTimePicker{padding:20px}.manualTimePicker input[type=number],.manualTimePicker span{font-size:2.5em}.manualTimePicker input[type=number]{border:none;border-bottom:2px solid var(--ion-color-dark);text-align:center}.manualTimePicker span{padding-left:4px;padding-right:4px}\n"] }]
|
|
605
1086
|
}], propDecorators: { inputDate: [{
|
|
606
1087
|
type: Input
|
|
607
1088
|
}], timePicker: [{
|
|
@@ -704,11 +1185,95 @@ class IDEADateTimeComponent {
|
|
|
704
1185
|
this.iconSelect.emit();
|
|
705
1186
|
}
|
|
706
1187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
707
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", 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:
|
|
1188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEADateTimeComponent, isStandalone: true, 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: `
|
|
1189
|
+
<ion-item
|
|
1190
|
+
class="dateTimeItem"
|
|
1191
|
+
[color]="color"
|
|
1192
|
+
[lines]="lines"
|
|
1193
|
+
[title]="placeholder || label || ''"
|
|
1194
|
+
[button]="!disabled"
|
|
1195
|
+
[disabled]="isOpening"
|
|
1196
|
+
[class.withLabel]="label"
|
|
1197
|
+
(click)="openCalendarPicker()"
|
|
1198
|
+
>
|
|
1199
|
+
@if (icon) {
|
|
1200
|
+
<ion-button
|
|
1201
|
+
fill="clear"
|
|
1202
|
+
slot="start"
|
|
1203
|
+
[color]="iconColor"
|
|
1204
|
+
[class.marginTop]="label"
|
|
1205
|
+
(click)="doIconSelect($event)"
|
|
1206
|
+
>
|
|
1207
|
+
<ion-icon [icon]="icon" slot="icon-only" />
|
|
1208
|
+
</ion-button>
|
|
1209
|
+
}
|
|
1210
|
+
@if (label) {
|
|
1211
|
+
<ion-label position="stacked" [class.selectable]="!disabled">
|
|
1212
|
+
{{ label }}
|
|
1213
|
+
@if (obligatory && !disabled) {
|
|
1214
|
+
<ion-text class="obligatoryDot" />
|
|
1215
|
+
}
|
|
1216
|
+
</ion-label>
|
|
1217
|
+
}
|
|
1218
|
+
<ion-label class="value" [class.selectable]="!disabled">
|
|
1219
|
+
@if (!valueToDisplay && !disabled) {
|
|
1220
|
+
<ion-text class="placeholder" [class.selectable]="!disabled">
|
|
1221
|
+
{{ placeholder }}
|
|
1222
|
+
</ion-text>
|
|
1223
|
+
}
|
|
1224
|
+
{{ valueToDisplay }}
|
|
1225
|
+
</ion-label>
|
|
1226
|
+
@if (!disabled) {
|
|
1227
|
+
<ion-icon slot="end" icon="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
1228
|
+
}
|
|
1229
|
+
</ion-item>
|
|
1230
|
+
`, isInline: true, 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: "ngmodule", type: CommonModule }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
708
1231
|
}
|
|
709
1232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeComponent, decorators: [{
|
|
710
1233
|
type: Component,
|
|
711
|
-
args: [{ selector: 'idea-date-time',
|
|
1234
|
+
args: [{ selector: 'idea-date-time', standalone: true, imports: [CommonModule, IDEATranslatePipe, IonText, IonLabel, IonIcon, IonButton, IonItem], template: `
|
|
1235
|
+
<ion-item
|
|
1236
|
+
class="dateTimeItem"
|
|
1237
|
+
[color]="color"
|
|
1238
|
+
[lines]="lines"
|
|
1239
|
+
[title]="placeholder || label || ''"
|
|
1240
|
+
[button]="!disabled"
|
|
1241
|
+
[disabled]="isOpening"
|
|
1242
|
+
[class.withLabel]="label"
|
|
1243
|
+
(click)="openCalendarPicker()"
|
|
1244
|
+
>
|
|
1245
|
+
@if (icon) {
|
|
1246
|
+
<ion-button
|
|
1247
|
+
fill="clear"
|
|
1248
|
+
slot="start"
|
|
1249
|
+
[color]="iconColor"
|
|
1250
|
+
[class.marginTop]="label"
|
|
1251
|
+
(click)="doIconSelect($event)"
|
|
1252
|
+
>
|
|
1253
|
+
<ion-icon [icon]="icon" slot="icon-only" />
|
|
1254
|
+
</ion-button>
|
|
1255
|
+
}
|
|
1256
|
+
@if (label) {
|
|
1257
|
+
<ion-label position="stacked" [class.selectable]="!disabled">
|
|
1258
|
+
{{ label }}
|
|
1259
|
+
@if (obligatory && !disabled) {
|
|
1260
|
+
<ion-text class="obligatoryDot" />
|
|
1261
|
+
}
|
|
1262
|
+
</ion-label>
|
|
1263
|
+
}
|
|
1264
|
+
<ion-label class="value" [class.selectable]="!disabled">
|
|
1265
|
+
@if (!valueToDisplay && !disabled) {
|
|
1266
|
+
<ion-text class="placeholder" [class.selectable]="!disabled">
|
|
1267
|
+
{{ placeholder }}
|
|
1268
|
+
</ion-text>
|
|
1269
|
+
}
|
|
1270
|
+
{{ valueToDisplay }}
|
|
1271
|
+
</ion-label>
|
|
1272
|
+
@if (!disabled) {
|
|
1273
|
+
<ion-icon slot="end" icon="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
1274
|
+
}
|
|
1275
|
+
</ion-item>
|
|
1276
|
+
`, 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"] }]
|
|
712
1277
|
}], propDecorators: { date: [{
|
|
713
1278
|
type: Input
|
|
714
1279
|
}], timePicker: [{
|
|
@@ -745,20 +1310,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
745
1310
|
type: Output
|
|
746
1311
|
}] } });
|
|
747
1312
|
|
|
748
|
-
class IDEADateTimeModule {
|
|
749
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
750
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeModule, declarations: [IDEADateTimeComponent, IDEACalendarPickerComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEADateTimeComponent, IDEACalendarPickerComponent] }); }
|
|
751
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
752
|
-
}
|
|
753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADateTimeModule, decorators: [{
|
|
754
|
-
type: NgModule,
|
|
755
|
-
args: [{
|
|
756
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
757
|
-
declarations: [IDEADateTimeComponent, IDEACalendarPickerComponent],
|
|
758
|
-
exports: [IDEADateTimeComponent, IDEACalendarPickerComponent]
|
|
759
|
-
}]
|
|
760
|
-
}] });
|
|
761
|
-
|
|
762
1313
|
class IDEADurationComponent {
|
|
763
1314
|
constructor() {
|
|
764
1315
|
/**
|
|
@@ -802,11 +1353,127 @@ class IDEADurationComponent {
|
|
|
802
1353
|
this.set.emit(this.hours * 3600 + this.minutes * 60 + this.seconds);
|
|
803
1354
|
}
|
|
804
1355
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
805
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", 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:
|
|
1356
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEADurationComponent, isStandalone: true, 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: `
|
|
1357
|
+
<ion-item class="durationItem" [lines]="lines" [color]="color" [title]="title || label">
|
|
1358
|
+
@if (icon) {
|
|
1359
|
+
<ion-icon slot="start" [name]="icon" />
|
|
1360
|
+
}
|
|
1361
|
+
@if (!icon && label) {
|
|
1362
|
+
<ion-label position="stacked">
|
|
1363
|
+
{{ label }}
|
|
1364
|
+
@if (obligatory && !disabled) {
|
|
1365
|
+
<ion-text class="obligatoryDot" />
|
|
1366
|
+
}
|
|
1367
|
+
</ion-label>
|
|
1368
|
+
}
|
|
1369
|
+
<ion-label class="value">
|
|
1370
|
+
<ion-input
|
|
1371
|
+
type="number"
|
|
1372
|
+
min="0"
|
|
1373
|
+
max="23"
|
|
1374
|
+
inputmode="numeric"
|
|
1375
|
+
[disabled]="disabled"
|
|
1376
|
+
[(ngModel)]="hours"
|
|
1377
|
+
(ionChange)="setDuration('hours')"
|
|
1378
|
+
/>
|
|
1379
|
+
<ion-text>{{
|
|
1380
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()
|
|
1381
|
+
}}</ion-text>
|
|
1382
|
+
<ion-input
|
|
1383
|
+
type="number"
|
|
1384
|
+
min="0"
|
|
1385
|
+
max="59"
|
|
1386
|
+
inputmode="numeric"
|
|
1387
|
+
[disabled]="disabled"
|
|
1388
|
+
[(ngModel)]="minutes"
|
|
1389
|
+
(ionChange)="setDuration('minutes')"
|
|
1390
|
+
/>
|
|
1391
|
+
<ion-text>{{
|
|
1392
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()
|
|
1393
|
+
}}</ion-text>
|
|
1394
|
+
@if (!hideSeconds) {
|
|
1395
|
+
<ion-input
|
|
1396
|
+
type="number"
|
|
1397
|
+
min="0"
|
|
1398
|
+
max="59"
|
|
1399
|
+
inputmode="numeric"
|
|
1400
|
+
[disabled]="disabled"
|
|
1401
|
+
[(ngModel)]="seconds"
|
|
1402
|
+
(ionChange)="setDuration('seconds')"
|
|
1403
|
+
/>
|
|
1404
|
+
}
|
|
1405
|
+
@if (!hideSeconds) {
|
|
1406
|
+
<ion-text>
|
|
1407
|
+
{{
|
|
1408
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase()
|
|
1409
|
+
}}
|
|
1410
|
+
</ion-text>
|
|
1411
|
+
}
|
|
1412
|
+
</ion-label>
|
|
1413
|
+
</ion-item>
|
|
1414
|
+
`, isInline: true, 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: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "pipe", type: IDEATranslatePipe, name: "translate" }] }); }
|
|
806
1415
|
}
|
|
807
1416
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationComponent, decorators: [{
|
|
808
1417
|
type: Component,
|
|
809
|
-
args: [{ selector: 'idea-duration',
|
|
1418
|
+
args: [{ selector: 'idea-duration', standalone: true, imports: [IonText, IonLabel, IonIcon, IonItem, CommonModule, FormsModule, IDEATranslatePipe], template: `
|
|
1419
|
+
<ion-item class="durationItem" [lines]="lines" [color]="color" [title]="title || label">
|
|
1420
|
+
@if (icon) {
|
|
1421
|
+
<ion-icon slot="start" [name]="icon" />
|
|
1422
|
+
}
|
|
1423
|
+
@if (!icon && label) {
|
|
1424
|
+
<ion-label position="stacked">
|
|
1425
|
+
{{ label }}
|
|
1426
|
+
@if (obligatory && !disabled) {
|
|
1427
|
+
<ion-text class="obligatoryDot" />
|
|
1428
|
+
}
|
|
1429
|
+
</ion-label>
|
|
1430
|
+
}
|
|
1431
|
+
<ion-label class="value">
|
|
1432
|
+
<ion-input
|
|
1433
|
+
type="number"
|
|
1434
|
+
min="0"
|
|
1435
|
+
max="23"
|
|
1436
|
+
inputmode="numeric"
|
|
1437
|
+
[disabled]="disabled"
|
|
1438
|
+
[(ngModel)]="hours"
|
|
1439
|
+
(ionChange)="setDuration('hours')"
|
|
1440
|
+
/>
|
|
1441
|
+
<ion-text>{{
|
|
1442
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()
|
|
1443
|
+
}}</ion-text>
|
|
1444
|
+
<ion-input
|
|
1445
|
+
type="number"
|
|
1446
|
+
min="0"
|
|
1447
|
+
max="59"
|
|
1448
|
+
inputmode="numeric"
|
|
1449
|
+
[disabled]="disabled"
|
|
1450
|
+
[(ngModel)]="minutes"
|
|
1451
|
+
(ionChange)="setDuration('minutes')"
|
|
1452
|
+
/>
|
|
1453
|
+
<ion-text>{{
|
|
1454
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()
|
|
1455
|
+
}}</ion-text>
|
|
1456
|
+
@if (!hideSeconds) {
|
|
1457
|
+
<ion-input
|
|
1458
|
+
type="number"
|
|
1459
|
+
min="0"
|
|
1460
|
+
max="59"
|
|
1461
|
+
inputmode="numeric"
|
|
1462
|
+
[disabled]="disabled"
|
|
1463
|
+
[(ngModel)]="seconds"
|
|
1464
|
+
(ionChange)="setDuration('seconds')"
|
|
1465
|
+
/>
|
|
1466
|
+
}
|
|
1467
|
+
@if (!hideSeconds) {
|
|
1468
|
+
<ion-text>
|
|
1469
|
+
{{
|
|
1470
|
+
((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase()
|
|
1471
|
+
}}
|
|
1472
|
+
</ion-text>
|
|
1473
|
+
}
|
|
1474
|
+
</ion-label>
|
|
1475
|
+
</ion-item>
|
|
1476
|
+
`, 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"] }]
|
|
810
1477
|
}], ctorParameters: () => [], propDecorators: { default: [{
|
|
811
1478
|
type: Input
|
|
812
1479
|
}], label: [{
|
|
@@ -831,20 +1498,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
831
1498
|
type: Output
|
|
832
1499
|
}] } });
|
|
833
1500
|
|
|
834
|
-
class IDEADurationModule {
|
|
835
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
836
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationModule, declarations: [IDEADurationComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEADurationComponent] }); }
|
|
837
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
838
|
-
}
|
|
839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationModule, decorators: [{
|
|
840
|
-
type: NgModule,
|
|
841
|
-
args: [{
|
|
842
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
843
|
-
declarations: [IDEADurationComponent],
|
|
844
|
-
exports: [IDEADurationComponent]
|
|
845
|
-
}]
|
|
846
|
-
}] });
|
|
847
|
-
|
|
848
1501
|
class IDEAErrorReportingService {
|
|
849
1502
|
constructor() {
|
|
850
1503
|
this._env = inject(IDEAEnvironment);
|
|
@@ -901,10 +1554,11 @@ class IDEAErrorReportingService {
|
|
|
901
1554
|
});
|
|
902
1555
|
}
|
|
903
1556
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
904
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService }); }
|
|
1557
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, providedIn: 'root' }); }
|
|
905
1558
|
}
|
|
906
1559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, decorators: [{
|
|
907
|
-
type: Injectable
|
|
1560
|
+
type: Injectable,
|
|
1561
|
+
args: [{ providedIn: 'root' }]
|
|
908
1562
|
}], ctorParameters: () => [] });
|
|
909
1563
|
|
|
910
1564
|
/**
|
|
@@ -959,10 +1613,11 @@ class IDEAOfflineService {
|
|
|
959
1613
|
return status.connected;
|
|
960
1614
|
}
|
|
961
1615
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
962
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService }); }
|
|
1616
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, providedIn: 'root' }); }
|
|
963
1617
|
}
|
|
964
1618
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, decorators: [{
|
|
965
|
-
type: Injectable
|
|
1619
|
+
type: Injectable,
|
|
1620
|
+
args: [{ providedIn: 'root' }]
|
|
966
1621
|
}], ctorParameters: () => [] });
|
|
967
1622
|
|
|
968
1623
|
/**
|
|
@@ -1353,10 +2008,11 @@ class IDEAAWSAPIService {
|
|
|
1353
2008
|
return this.request(resource, 'DELETE', options);
|
|
1354
2009
|
}
|
|
1355
2010
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPIService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1356
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPIService }); }
|
|
2011
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPIService, providedIn: 'root' }); }
|
|
1357
2012
|
}
|
|
1358
2013
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPIService, decorators: [{
|
|
1359
|
-
type: Injectable
|
|
2014
|
+
type: Injectable,
|
|
2015
|
+
args: [{ providedIn: 'root' }]
|
|
1360
2016
|
}], ctorParameters: () => [] });
|
|
1361
2017
|
/**
|
|
1362
2018
|
* The options of an API request.
|
|
@@ -1524,11 +2180,79 @@ class IDEAEchoPage {
|
|
|
1524
2180
|
}
|
|
1525
2181
|
}
|
|
1526
2182
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1527
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAEchoPage, selector: "idea-echo", ngImport: i0, template:
|
|
2183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAEchoPage, isStandalone: true, selector: "idea-echo", ngImport: i0, template: `
|
|
2184
|
+
<ion-content>
|
|
2185
|
+
<div class="flexBox">
|
|
2186
|
+
<ion-card class="echoCard maxWidthContainer">
|
|
2187
|
+
<ion-img [src]="'assets/icons/icon-auth.svg'" />
|
|
2188
|
+
<ion-card-header>
|
|
2189
|
+
<ion-card-title>
|
|
2190
|
+
@if (success === true) {
|
|
2191
|
+
<ion-icon color="success" name="checkmark" />
|
|
2192
|
+
}
|
|
2193
|
+
@if (success === false) {
|
|
2194
|
+
<ion-icon color="danger" name="close" />
|
|
2195
|
+
}
|
|
2196
|
+
</ion-card-title>
|
|
2197
|
+
</ion-card-header>
|
|
2198
|
+
<ion-card-content class="selectable">
|
|
2199
|
+
{{ content }}
|
|
2200
|
+
@if (htmlContent) {
|
|
2201
|
+
<div class="htmlContent" [innerHTML]="htmlContent"></div>
|
|
2202
|
+
}
|
|
2203
|
+
@if (success === false || success === true) {
|
|
2204
|
+
<p class="youCanCloseMe">
|
|
2205
|
+
<i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>
|
|
2206
|
+
</p>
|
|
2207
|
+
}
|
|
2208
|
+
</ion-card-content>
|
|
2209
|
+
</ion-card>
|
|
2210
|
+
</div>
|
|
2211
|
+
</ion-content>
|
|
2212
|
+
`, isInline: true, 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: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }] }); }
|
|
1528
2213
|
}
|
|
1529
2214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoPage, decorators: [{
|
|
1530
2215
|
type: Component,
|
|
1531
|
-
args: [{ selector: 'idea-echo',
|
|
2216
|
+
args: [{ selector: 'idea-echo', standalone: true, imports: [
|
|
2217
|
+
CommonModule,
|
|
2218
|
+
IDEATranslatePipe,
|
|
2219
|
+
IonCardContent,
|
|
2220
|
+
IonIcon,
|
|
2221
|
+
IonCardTitle,
|
|
2222
|
+
IonCardHeader,
|
|
2223
|
+
IonImg,
|
|
2224
|
+
IonCard,
|
|
2225
|
+
IonContent
|
|
2226
|
+
], template: `
|
|
2227
|
+
<ion-content>
|
|
2228
|
+
<div class="flexBox">
|
|
2229
|
+
<ion-card class="echoCard maxWidthContainer">
|
|
2230
|
+
<ion-img [src]="'assets/icons/icon-auth.svg'" />
|
|
2231
|
+
<ion-card-header>
|
|
2232
|
+
<ion-card-title>
|
|
2233
|
+
@if (success === true) {
|
|
2234
|
+
<ion-icon color="success" name="checkmark" />
|
|
2235
|
+
}
|
|
2236
|
+
@if (success === false) {
|
|
2237
|
+
<ion-icon color="danger" name="close" />
|
|
2238
|
+
}
|
|
2239
|
+
</ion-card-title>
|
|
2240
|
+
</ion-card-header>
|
|
2241
|
+
<ion-card-content class="selectable">
|
|
2242
|
+
{{ content }}
|
|
2243
|
+
@if (htmlContent) {
|
|
2244
|
+
<div class="htmlContent" [innerHTML]="htmlContent"></div>
|
|
2245
|
+
}
|
|
2246
|
+
@if (success === false || success === true) {
|
|
2247
|
+
<p class="youCanCloseMe">
|
|
2248
|
+
<i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>
|
|
2249
|
+
</p>
|
|
2250
|
+
}
|
|
2251
|
+
</ion-card-content>
|
|
2252
|
+
</ion-card>
|
|
2253
|
+
</div>
|
|
2254
|
+
</ion-content>
|
|
2255
|
+
`, 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"] }]
|
|
1532
2256
|
}] });
|
|
1533
2257
|
var EchoRequests;
|
|
1534
2258
|
(function (EchoRequests) {
|
|
@@ -1542,30 +2266,30 @@ var EchoRequests;
|
|
|
1542
2266
|
EchoRequests["GOOGLE_CALENDARS_INTEGRATION"] = "google-calendars-integration";
|
|
1543
2267
|
})(EchoRequests || (EchoRequests = {}));
|
|
1544
2268
|
|
|
1545
|
-
const
|
|
2269
|
+
const ideaEchoRoutes = [
|
|
1546
2270
|
{ path: '', component: IDEAEchoPage },
|
|
1547
2271
|
{ path: ':request', component: IDEAEchoPage }
|
|
1548
2272
|
];
|
|
1549
|
-
class IDEAEchoModule {
|
|
1550
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1551
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoModule, declarations: [IDEAEchoPage], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, i1$2.RouterModule] }); }
|
|
1552
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, RouterModule.forChild(routes)] }); }
|
|
1553
|
-
}
|
|
1554
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoModule, decorators: [{
|
|
1555
|
-
type: NgModule,
|
|
1556
|
-
args: [{
|
|
1557
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule, RouterModule.forChild(routes)],
|
|
1558
|
-
declarations: [IDEAEchoPage]
|
|
1559
|
-
}]
|
|
1560
|
-
}] });
|
|
1561
2273
|
|
|
1562
2274
|
class IDEAMDEToolbarComponent {
|
|
1563
2275
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1564
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IDEAMDEToolbarComponent, selector: "idea-mde-toolbar", ngImport: i0, template:
|
|
2276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IDEAMDEToolbarComponent, isStandalone: true, selector: "idea-mde-toolbar", ngImport: i0, template: `
|
|
2277
|
+
<div class="mdeToolbar">
|
|
2278
|
+
<b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>
|
|
2279
|
+
<i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>
|
|
2280
|
+
~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~
|
|
2281
|
+
</div>
|
|
2282
|
+
`, isInline: true, styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar :is(b,i){padding-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }] }); }
|
|
1565
2283
|
}
|
|
1566
2284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEToolbarComponent, decorators: [{
|
|
1567
2285
|
type: Component,
|
|
1568
|
-
args: [{ selector: 'idea-mde-toolbar',
|
|
2286
|
+
args: [{ selector: 'idea-mde-toolbar', standalone: true, imports: [CommonModule, IDEATranslatePipe], template: `
|
|
2287
|
+
<div class="mdeToolbar">
|
|
2288
|
+
<b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>
|
|
2289
|
+
<i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>
|
|
2290
|
+
~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~
|
|
2291
|
+
</div>
|
|
2292
|
+
`, styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar :is(b,i){padding-right:5px}\n"] }]
|
|
1569
2293
|
}] });
|
|
1570
2294
|
|
|
1571
2295
|
class IDEAMDEComponent {
|
|
@@ -1584,11 +2308,109 @@ class IDEAMDEComponent {
|
|
|
1584
2308
|
this._modal.dismiss(this.value);
|
|
1585
2309
|
}
|
|
1586
2310
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1587
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAMDEComponent, selector: "idea-mde", inputs: { id: "id", title: "title", header: "header", description: "description", variables: "variables", initialValue: "initialValue", placeholder: "placeholder" }, ngImport: i0, template:
|
|
2311
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAMDEComponent, isStandalone: true, selector: "idea-mde", inputs: { id: "id", title: "title", header: "header", description: "description", variables: "variables", initialValue: "initialValue", placeholder: "placeholder" }, ngImport: i0, template: `
|
|
2312
|
+
<ion-header>
|
|
2313
|
+
<ion-toolbar color="ideaToolbar">
|
|
2314
|
+
<ion-buttons slot="start">
|
|
2315
|
+
<ion-button [title]="'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate" (click)="close()">
|
|
2316
|
+
<ion-icon name="close" slot="icon-only" />
|
|
2317
|
+
</ion-button>
|
|
2318
|
+
</ion-buttons>
|
|
2319
|
+
<ion-title>
|
|
2320
|
+
{{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}
|
|
2321
|
+
</ion-title>
|
|
2322
|
+
<ion-buttons slot="end">
|
|
2323
|
+
<ion-button [title]="'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate" (click)="confirm()">
|
|
2324
|
+
<ion-icon name="checkmark" slot="icon-only" />
|
|
2325
|
+
</ion-button>
|
|
2326
|
+
</ion-buttons>
|
|
2327
|
+
</ion-toolbar>
|
|
2328
|
+
</ion-header>
|
|
2329
|
+
<ion-content class="ion-padding">
|
|
2330
|
+
@if (header) {
|
|
2331
|
+
<h2 class="header">
|
|
2332
|
+
{{ header }}
|
|
2333
|
+
</h2>
|
|
2334
|
+
}
|
|
2335
|
+
@if (description) {
|
|
2336
|
+
<p class="description">
|
|
2337
|
+
{{ description }}
|
|
2338
|
+
</p>
|
|
2339
|
+
}
|
|
2340
|
+
@if (variables?.length) {
|
|
2341
|
+
<p class="variables">
|
|
2342
|
+
<b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>
|
|
2343
|
+
@for (v of variables; track v) {
|
|
2344
|
+
<ion-text>
|
|
2345
|
+
{{ v.concat(' ') }}
|
|
2346
|
+
</ion-text>
|
|
2347
|
+
}
|
|
2348
|
+
</p>
|
|
2349
|
+
}
|
|
2350
|
+
<ion-textarea rows="12" [id]="id" [placeholder]="placeholder" [(ngModel)]="value" />
|
|
2351
|
+
<idea-mde-toolbar />
|
|
2352
|
+
</ion-content>
|
|
2353
|
+
`, isInline: true, styles: ["ion-content{--ion-background-color: #f4f4f4}h2.header{margin:0;font-size:.7em;font-weight:700;text-transform:uppercase}.description{margin-top:5px;margin-bottom:20px;font-size:.9em}.variables{margin:10px 5px;font-size:.8em}ion-textarea{--background: var(--ion-color-white);padding:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IDEAMDEToolbarComponent, selector: "idea-mde-toolbar" }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }] }); }
|
|
1588
2354
|
}
|
|
1589
2355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEComponent, decorators: [{
|
|
1590
2356
|
type: Component,
|
|
1591
|
-
args: [{ selector: 'idea-mde',
|
|
2357
|
+
args: [{ selector: 'idea-mde', standalone: true, imports: [
|
|
2358
|
+
CommonModule,
|
|
2359
|
+
FormsModule,
|
|
2360
|
+
IDEATranslatePipe,
|
|
2361
|
+
IDEAMDEToolbarComponent,
|
|
2362
|
+
IonTextarea,
|
|
2363
|
+
IonText,
|
|
2364
|
+
IonContent,
|
|
2365
|
+
IonTitle,
|
|
2366
|
+
IonIcon,
|
|
2367
|
+
IonButton,
|
|
2368
|
+
IonButtons,
|
|
2369
|
+
IonToolbar,
|
|
2370
|
+
IonHeader
|
|
2371
|
+
], template: `
|
|
2372
|
+
<ion-header>
|
|
2373
|
+
<ion-toolbar color="ideaToolbar">
|
|
2374
|
+
<ion-buttons slot="start">
|
|
2375
|
+
<ion-button [title]="'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate" (click)="close()">
|
|
2376
|
+
<ion-icon name="close" slot="icon-only" />
|
|
2377
|
+
</ion-button>
|
|
2378
|
+
</ion-buttons>
|
|
2379
|
+
<ion-title>
|
|
2380
|
+
{{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}
|
|
2381
|
+
</ion-title>
|
|
2382
|
+
<ion-buttons slot="end">
|
|
2383
|
+
<ion-button [title]="'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate" (click)="confirm()">
|
|
2384
|
+
<ion-icon name="checkmark" slot="icon-only" />
|
|
2385
|
+
</ion-button>
|
|
2386
|
+
</ion-buttons>
|
|
2387
|
+
</ion-toolbar>
|
|
2388
|
+
</ion-header>
|
|
2389
|
+
<ion-content class="ion-padding">
|
|
2390
|
+
@if (header) {
|
|
2391
|
+
<h2 class="header">
|
|
2392
|
+
{{ header }}
|
|
2393
|
+
</h2>
|
|
2394
|
+
}
|
|
2395
|
+
@if (description) {
|
|
2396
|
+
<p class="description">
|
|
2397
|
+
{{ description }}
|
|
2398
|
+
</p>
|
|
2399
|
+
}
|
|
2400
|
+
@if (variables?.length) {
|
|
2401
|
+
<p class="variables">
|
|
2402
|
+
<b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>
|
|
2403
|
+
@for (v of variables; track v) {
|
|
2404
|
+
<ion-text>
|
|
2405
|
+
{{ v.concat(' ') }}
|
|
2406
|
+
</ion-text>
|
|
2407
|
+
}
|
|
2408
|
+
</p>
|
|
2409
|
+
}
|
|
2410
|
+
<ion-textarea rows="12" [id]="id" [placeholder]="placeholder" [(ngModel)]="value" />
|
|
2411
|
+
<idea-mde-toolbar />
|
|
2412
|
+
</ion-content>
|
|
2413
|
+
`, styles: ["ion-content{--ion-background-color: #f4f4f4}h2.header{margin:0;font-size:.7em;font-weight:700;text-transform:uppercase}.description{margin-top:5px;margin-bottom:20px;font-size:.9em}.variables{margin:10px 5px;font-size:.8em}ion-textarea{--background: var(--ion-color-white);padding:10px}\n"] }]
|
|
1592
2414
|
}], propDecorators: { id: [{
|
|
1593
2415
|
type: Input
|
|
1594
2416
|
}], title: [{
|
|
@@ -1605,20 +2427,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
1605
2427
|
type: Input
|
|
1606
2428
|
}] } });
|
|
1607
2429
|
|
|
1608
|
-
class IDEAMDEModule {
|
|
1609
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1610
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEModule, declarations: [IDEAMDEComponent, IDEAMDEToolbarComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEAMDEComponent, IDEAMDEToolbarComponent] }); }
|
|
1611
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
1612
|
-
}
|
|
1613
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEModule, decorators: [{
|
|
1614
|
-
type: NgModule,
|
|
1615
|
-
args: [{
|
|
1616
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
1617
|
-
declarations: [IDEAMDEComponent, IDEAMDEToolbarComponent],
|
|
1618
|
-
exports: [IDEAMDEComponent, IDEAMDEToolbarComponent]
|
|
1619
|
-
}]
|
|
1620
|
-
}] });
|
|
1621
|
-
|
|
1622
2430
|
/**
|
|
1623
2431
|
* After how much time we need to request a synchronisation to keep the contents up-to-date.
|
|
1624
2432
|
*/
|
|
@@ -2074,10 +2882,11 @@ class IDEAOfflineDataService {
|
|
|
2074
2882
|
this._storage.clear().then(() => this.synchronize(true));
|
|
2075
2883
|
}
|
|
2076
2884
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2077
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineDataService }); }
|
|
2885
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineDataService, providedIn: 'root' }); }
|
|
2078
2886
|
}
|
|
2079
2887
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineDataService, decorators: [{
|
|
2080
|
-
type: Injectable
|
|
2888
|
+
type: Injectable,
|
|
2889
|
+
args: [{ providedIn: 'root' }]
|
|
2081
2890
|
}], ctorParameters: () => [] });
|
|
2082
2891
|
/**
|
|
2083
2892
|
* The abstract class to implement for each resource to cache offline from the back-end (DOWNLOAD).
|
|
@@ -2098,11 +2907,48 @@ class IDEACacheableResourceComponent {
|
|
|
2098
2907
|
this._offline = inject(IDEAOfflineDataService);
|
|
2099
2908
|
}
|
|
2100
2909
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACacheableResourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACacheableResourceComponent, selector: "idea-cacheable-resource", inputs: { resource: "resource" }, ngImport: i0, template:
|
|
2910
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACacheableResourceComponent, isStandalone: true, selector: "idea-cacheable-resource", inputs: { resource: "resource" }, ngImport: i0, template: `
|
|
2911
|
+
<ion-item class="cacheableResourceItem">
|
|
2912
|
+
<ion-label>{{ resource.description }}</ion-label>
|
|
2913
|
+
@if (resource.error) {
|
|
2914
|
+
<ion-icon slot="end" name="alert-circle" color="danger" />
|
|
2915
|
+
}
|
|
2916
|
+
@if (!resource.error && _offline.synchronizing && resource.synchronizing) {
|
|
2917
|
+
<ion-spinner slot="end" name="dots" />
|
|
2918
|
+
}
|
|
2919
|
+
@if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {
|
|
2920
|
+
<ion-icon slot="end" name="checkmark" color="success" />
|
|
2921
|
+
}
|
|
2922
|
+
@if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {
|
|
2923
|
+
<ion-icon slot="end" name="pause" color="dark" />
|
|
2924
|
+
}
|
|
2925
|
+
</ion-item>
|
|
2926
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
2102
2927
|
}
|
|
2103
2928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACacheableResourceComponent, decorators: [{
|
|
2104
2929
|
type: Component,
|
|
2105
|
-
args: [{
|
|
2930
|
+
args: [{
|
|
2931
|
+
selector: 'idea-cacheable-resource',
|
|
2932
|
+
standalone: true,
|
|
2933
|
+
imports: [CommonModule, IonSpinner, IonIcon, IonLabel, IonItem],
|
|
2934
|
+
template: `
|
|
2935
|
+
<ion-item class="cacheableResourceItem">
|
|
2936
|
+
<ion-label>{{ resource.description }}</ion-label>
|
|
2937
|
+
@if (resource.error) {
|
|
2938
|
+
<ion-icon slot="end" name="alert-circle" color="danger" />
|
|
2939
|
+
}
|
|
2940
|
+
@if (!resource.error && _offline.synchronizing && resource.synchronizing) {
|
|
2941
|
+
<ion-spinner slot="end" name="dots" />
|
|
2942
|
+
}
|
|
2943
|
+
@if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {
|
|
2944
|
+
<ion-icon slot="end" name="checkmark" color="success" />
|
|
2945
|
+
}
|
|
2946
|
+
@if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {
|
|
2947
|
+
<ion-icon slot="end" name="pause" color="dark" />
|
|
2948
|
+
}
|
|
2949
|
+
</ion-item>
|
|
2950
|
+
`
|
|
2951
|
+
}]
|
|
2106
2952
|
}], propDecorators: { resource: [{
|
|
2107
2953
|
type: Input
|
|
2108
2954
|
}] } });
|
|
@@ -2175,11 +3021,29 @@ class IDEAOfflineManagerComponent {
|
|
|
2175
3021
|
this._modal.dismiss();
|
|
2176
3022
|
}
|
|
2177
3023
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAOfflineManagerComponent, selector: "idea-offline-manager", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>\n {{ 'IDEA_UNCOMMON.OFFLINE.OFFLINE_MANAGER' | translate }}\n </ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'IDEA_UNCOMMON.OFFLINE.ADVANCED_ACTIONS' | translate\" (click)=\"actions()\">\n <ion-icon slot=\"icon-only\" name=\"ellipsis-vertical\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-list class=\"aList\">\n @if (!_offline.synchronizing && _offline.requiresManualConfirmation) {\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.HUGE_SYNC_NEED_MANUAL_CONFIRMATION' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n }\n @if (!_offline.synchronizing) {\n <ion-list-header>\n <ion-label class=\"ion-text-wrap\">\n <h3 class=\"lastSyncAt\">\n {{ 'IDEA_UNCOMMON.OFFLINE.LAST_SYNC' | translate }}:\n <ion-text>\n {{\n _offline.lastSyncAt\n ? (_offline.lastSyncAt | dateLocale: 'medium')\n : ('IDEA_UNCOMMON.OFFLINE.NEVER' | translate)\n }}\n </ion-text>\n </h3>\n @if (_offline.errorInLastSync) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_DURING_LAST_SYNC' | translate }}</b>\n </ion-text>\n </p>\n }\n </ion-label>\n <ion-button\n size=\"small\"\n fill=\"solid\"\n [color]=\"_offline.errorInLastSync ? 'danger' : 'dark'\"\n [disabled]=\"_offline.isOffline()\"\n (click)=\"sync()\"\n >\n <ion-icon slot=\"start\" name=\"sync\" /> {{ 'IDEA_UNCOMMON.OFFLINE.SYNC_NOW' | translate }}\n </ion-button>\n </ion-list-header>\n }\n </ion-list>\n @if (_offline.synchronizing) {\n <ion-list class=\"aList\">\n <ion-item>\n <ion-label class=\"ion-text-center\">\n <ion-spinner name=\"crescent\" color=\"primary\" />\n </ion-label>\n </ion-item>\n </ion-list>\n }\n @if (_offline.useQueueAPIRequests) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD_QUEUE_REQUESTS_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @if (!_offline.queueAPIRequests.length) {\n <ion-item>\n <i>{{ 'IDEA_UNCOMMON.OFFLINE.NO_ELEMENTS_TO_UPLOAD' | translate }}</i>\n <ion-icon slot=\"end\" size=\"small\" name=\"checkmark\" color=\"success\" />\n </ion-item>\n }\n @for (r of _offline.queueAPIRequests; track r; let odd = $odd) {\n <ion-item [class.oddItem]=\"odd\">\n <ion-label class=\"ion-text-wrap\">\n {{ r.description }}\n @if (r.error) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_CODE' | translate }}: {{ r.error }}</b>\n </ion-text>\n <br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_I' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_II' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_III' | translate }}\n </p>\n }\n </ion-label>\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"danger\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.CANCEL_REQUEST' | translate\"\n (click)=\"deleteRequest(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"trash\" />\n </ion-button>\n }\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"medium\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_LOG' | translate\"\n (click)=\"downloadRequestLog(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"download\" />\n </ion-button>\n }\n @if (_offline.synchronizing) {\n <ion-spinner slot=\"end\" name=\"dots\" />\n }\n </ion-item>\n }\n </ion-list>\n }\n @if (_offline.getResources().length) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_RESOURCES_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @for (r of _offline.getResources(); track r) {\n <idea-cacheable-resource [resource]=\"_offline.getCacheableResource(r)\" />\n }\n </ion-list>\n }\n</ion-content>\n", styles: [".aList{max-width:500px;margin:0 auto}.aList ion-list-header{padding-right:10px}.aList ion-list-header h3.lastSyncAt{margin-top:6px}\n"], dependencies: [{ kind: "
|
|
3024
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAOfflineManagerComponent, isStandalone: true, selector: "idea-offline-manager", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>\n {{ 'IDEA_UNCOMMON.OFFLINE.OFFLINE_MANAGER' | translate }}\n </ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'IDEA_UNCOMMON.OFFLINE.ADVANCED_ACTIONS' | translate\" (click)=\"actions()\">\n <ion-icon slot=\"icon-only\" name=\"ellipsis-vertical\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-list class=\"aList\">\n @if (!_offline.synchronizing && _offline.requiresManualConfirmation) {\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.HUGE_SYNC_NEED_MANUAL_CONFIRMATION' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n }\n @if (!_offline.synchronizing) {\n <ion-list-header>\n <ion-label class=\"ion-text-wrap\">\n <h3 class=\"lastSyncAt\">\n {{ 'IDEA_UNCOMMON.OFFLINE.LAST_SYNC' | translate }}:\n <ion-text>\n {{\n _offline.lastSyncAt\n ? (_offline.lastSyncAt | dateLocale: 'medium')\n : ('IDEA_UNCOMMON.OFFLINE.NEVER' | translate)\n }}\n </ion-text>\n </h3>\n @if (_offline.errorInLastSync) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_DURING_LAST_SYNC' | translate }}</b>\n </ion-text>\n </p>\n }\n </ion-label>\n <ion-button\n size=\"small\"\n fill=\"solid\"\n [color]=\"_offline.errorInLastSync ? 'danger' : 'dark'\"\n [disabled]=\"_offline.isOffline()\"\n (click)=\"sync()\"\n >\n <ion-icon slot=\"start\" name=\"sync\" /> {{ 'IDEA_UNCOMMON.OFFLINE.SYNC_NOW' | translate }}\n </ion-button>\n </ion-list-header>\n }\n </ion-list>\n @if (_offline.synchronizing) {\n <ion-list class=\"aList\">\n <ion-item>\n <ion-label class=\"ion-text-center\">\n <ion-spinner name=\"crescent\" color=\"primary\" />\n </ion-label>\n </ion-item>\n </ion-list>\n }\n @if (_offline.useQueueAPIRequests) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD_QUEUE_REQUESTS_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @if (!_offline.queueAPIRequests.length) {\n <ion-item>\n <i>{{ 'IDEA_UNCOMMON.OFFLINE.NO_ELEMENTS_TO_UPLOAD' | translate }}</i>\n <ion-icon slot=\"end\" size=\"small\" name=\"checkmark\" color=\"success\" />\n </ion-item>\n }\n @for (r of _offline.queueAPIRequests; track r; let odd = $odd) {\n <ion-item [class.oddItem]=\"odd\">\n <ion-label class=\"ion-text-wrap\">\n {{ r.description }}\n @if (r.error) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_CODE' | translate }}: {{ r.error }}</b>\n </ion-text>\n <br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_I' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_II' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_III' | translate }}\n </p>\n }\n </ion-label>\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"danger\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.CANCEL_REQUEST' | translate\"\n (click)=\"deleteRequest(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"trash\" />\n </ion-button>\n }\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"medium\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_LOG' | translate\"\n (click)=\"downloadRequestLog(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"download\" />\n </ion-button>\n }\n @if (_offline.synchronizing) {\n <ion-spinner slot=\"end\" name=\"dots\" />\n }\n </ion-item>\n }\n </ion-list>\n }\n @if (_offline.getResources().length) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_RESOURCES_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @for (r of _offline.getResources(); track r) {\n <idea-cacheable-resource [resource]=\"_offline.getCacheableResource(r)\" />\n }\n </ion-list>\n }\n</ion-content>\n", styles: [".aList{max-width:500px;margin:0 auto}.aList ion-list-header{padding-right:10px}.aList ion-list-header h3.lastSyncAt{margin-top:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "pipe", type: IDEALocalizedDatePipe, name: "dateLocale" }, { kind: "component", type: IDEACacheableResourceComponent, selector: "idea-cacheable-resource", inputs: ["resource"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }] }); }
|
|
2179
3025
|
}
|
|
2180
3026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineManagerComponent, decorators: [{
|
|
2181
3027
|
type: Component,
|
|
2182
|
-
args: [{ selector: 'idea-offline-manager',
|
|
3028
|
+
args: [{ selector: 'idea-offline-manager', standalone: true, imports: [
|
|
3029
|
+
CommonModule,
|
|
3030
|
+
IDEATranslatePipe,
|
|
3031
|
+
IDEALocalizedDatePipe,
|
|
3032
|
+
IDEACacheableResourceComponent,
|
|
3033
|
+
IonSpinner,
|
|
3034
|
+
IonItem,
|
|
3035
|
+
IonText,
|
|
3036
|
+
IonLabel,
|
|
3037
|
+
IonListHeader,
|
|
3038
|
+
IonList,
|
|
3039
|
+
IonContent,
|
|
3040
|
+
IonTitle,
|
|
3041
|
+
IonButtons,
|
|
3042
|
+
IonIcon,
|
|
3043
|
+
IonButton,
|
|
3044
|
+
IonToolbar,
|
|
3045
|
+
IonHeader
|
|
3046
|
+
], template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>\n {{ 'IDEA_UNCOMMON.OFFLINE.OFFLINE_MANAGER' | translate }}\n </ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'IDEA_UNCOMMON.OFFLINE.ADVANCED_ACTIONS' | translate\" (click)=\"actions()\">\n <ion-icon slot=\"icon-only\" name=\"ellipsis-vertical\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-list class=\"aList\">\n @if (!_offline.synchronizing && _offline.requiresManualConfirmation) {\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.HUGE_SYNC_NEED_MANUAL_CONFIRMATION' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n }\n @if (!_offline.synchronizing) {\n <ion-list-header>\n <ion-label class=\"ion-text-wrap\">\n <h3 class=\"lastSyncAt\">\n {{ 'IDEA_UNCOMMON.OFFLINE.LAST_SYNC' | translate }}:\n <ion-text>\n {{\n _offline.lastSyncAt\n ? (_offline.lastSyncAt | dateLocale: 'medium')\n : ('IDEA_UNCOMMON.OFFLINE.NEVER' | translate)\n }}\n </ion-text>\n </h3>\n @if (_offline.errorInLastSync) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_DURING_LAST_SYNC' | translate }}</b>\n </ion-text>\n </p>\n }\n </ion-label>\n <ion-button\n size=\"small\"\n fill=\"solid\"\n [color]=\"_offline.errorInLastSync ? 'danger' : 'dark'\"\n [disabled]=\"_offline.isOffline()\"\n (click)=\"sync()\"\n >\n <ion-icon slot=\"start\" name=\"sync\" /> {{ 'IDEA_UNCOMMON.OFFLINE.SYNC_NOW' | translate }}\n </ion-button>\n </ion-list-header>\n }\n </ion-list>\n @if (_offline.synchronizing) {\n <ion-list class=\"aList\">\n <ion-item>\n <ion-label class=\"ion-text-center\">\n <ion-spinner name=\"crescent\" color=\"primary\" />\n </ion-label>\n </ion-item>\n </ion-list>\n }\n @if (_offline.useQueueAPIRequests) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.UPLOAD_QUEUE_REQUESTS_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @if (!_offline.queueAPIRequests.length) {\n <ion-item>\n <i>{{ 'IDEA_UNCOMMON.OFFLINE.NO_ELEMENTS_TO_UPLOAD' | translate }}</i>\n <ion-icon slot=\"end\" size=\"small\" name=\"checkmark\" color=\"success\" />\n </ion-item>\n }\n @for (r of _offline.queueAPIRequests; track r; let odd = $odd) {\n <ion-item [class.oddItem]=\"odd\">\n <ion-label class=\"ion-text-wrap\">\n {{ r.description }}\n @if (r.error) {\n <p>\n <ion-text color=\"danger\">\n <b>{{ 'IDEA_UNCOMMON.OFFLINE.ERROR_CODE' | translate }}: {{ r.error }}</b>\n </ion-text>\n <br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_I' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_II' | translate }}<br />\n {{ 'IDEA_UNCOMMON.OFFLINE.REQUEST_FAILED_EXPLANATION_III' | translate }}\n </p>\n }\n </ion-label>\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"danger\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.CANCEL_REQUEST' | translate\"\n (click)=\"deleteRequest(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"trash\" />\n </ion-button>\n }\n @if (r.error) {\n <ion-button\n fill=\"clear\"\n slot=\"end\"\n color=\"medium\"\n [title]=\"'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_LOG' | translate\"\n (click)=\"downloadRequestLog(r)\"\n >\n <ion-icon slot=\"icon-only\" name=\"download\" />\n </ion-button>\n }\n @if (_offline.synchronizing) {\n <ion-spinner slot=\"end\" name=\"dots\" />\n }\n </ion-item>\n }\n </ion-list>\n }\n @if (_offline.getResources().length) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD' | translate }}</h2>\n <p>{{ 'IDEA_UNCOMMON.OFFLINE.DOWNLOAD_RESOURCES_EXPLANATION' | translate }}</p>\n </ion-label>\n </ion-list-header>\n @for (r of _offline.getResources(); track r) {\n <idea-cacheable-resource [resource]=\"_offline.getCacheableResource(r)\" />\n }\n </ion-list>\n }\n</ion-content>\n", styles: [".aList{max-width:500px;margin:0 auto}.aList ion-list-header{padding-right:10px}.aList ion-list-header h3.lastSyncAt{margin-top:6px}\n"] }]
|
|
2183
3047
|
}] });
|
|
2184
3048
|
|
|
2185
3049
|
class IDEAOfflineIndicatorComponent {
|
|
@@ -2220,11 +3084,58 @@ class IDEAOfflineIndicatorComponent {
|
|
|
2220
3084
|
}
|
|
2221
3085
|
}
|
|
2222
3086
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2223
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAOfflineIndicatorComponent, selector: "idea-offline-indicator", inputs: { vertical: "vertical", horizontal: "horizontal", edge: "edge" }, ngImport: i0, template:
|
|
3087
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAOfflineIndicatorComponent, isStandalone: true, selector: "idea-offline-indicator", inputs: { vertical: "vertical", horizontal: "horizontal", edge: "edge" }, ngImport: i0, template: `
|
|
3088
|
+
@if (
|
|
3089
|
+
_platform.is('mobile') && (_offline.isOffline() || _offline.synchronizing || _offline.requiresManualConfirmation)
|
|
3090
|
+
) {
|
|
3091
|
+
<ion-fab [vertical]="vertical" [horizontal]="horizontal" [edge]="edge">
|
|
3092
|
+
<ion-fab-button color="dark" size="small" (click)="showStatus()">
|
|
3093
|
+
<!-- OFFLINE -->
|
|
3094
|
+
@if (_offline.isOffline()) {
|
|
3095
|
+
<ion-icon name="airplane" />
|
|
3096
|
+
}
|
|
3097
|
+
<!-- SYNCHRONISING -->
|
|
3098
|
+
@if (_offline.isOnline() && _offline.synchronizing) {
|
|
3099
|
+
<ion-icon name="sync" />
|
|
3100
|
+
}
|
|
3101
|
+
<!-- NEED MANAL SYNCHRONISATION -->
|
|
3102
|
+
@if (_offline.isOnline() && _offline.requiresManualConfirmation) {
|
|
3103
|
+
<ion-icon name="pause" />
|
|
3104
|
+
}
|
|
3105
|
+
</ion-fab-button>
|
|
3106
|
+
</ion-fab>
|
|
3107
|
+
}
|
|
3108
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { kind: "component", type: IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
2224
3109
|
}
|
|
2225
3110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineIndicatorComponent, decorators: [{
|
|
2226
3111
|
type: Component,
|
|
2227
|
-
args: [{
|
|
3112
|
+
args: [{
|
|
3113
|
+
selector: 'idea-offline-indicator',
|
|
3114
|
+
standalone: true,
|
|
3115
|
+
imports: [CommonModule, IonFab, IonFabButton, IonIcon],
|
|
3116
|
+
template: `
|
|
3117
|
+
@if (
|
|
3118
|
+
_platform.is('mobile') && (_offline.isOffline() || _offline.synchronizing || _offline.requiresManualConfirmation)
|
|
3119
|
+
) {
|
|
3120
|
+
<ion-fab [vertical]="vertical" [horizontal]="horizontal" [edge]="edge">
|
|
3121
|
+
<ion-fab-button color="dark" size="small" (click)="showStatus()">
|
|
3122
|
+
<!-- OFFLINE -->
|
|
3123
|
+
@if (_offline.isOffline()) {
|
|
3124
|
+
<ion-icon name="airplane" />
|
|
3125
|
+
}
|
|
3126
|
+
<!-- SYNCHRONISING -->
|
|
3127
|
+
@if (_offline.isOnline() && _offline.synchronizing) {
|
|
3128
|
+
<ion-icon name="sync" />
|
|
3129
|
+
}
|
|
3130
|
+
<!-- NEED MANAL SYNCHRONISATION -->
|
|
3131
|
+
@if (_offline.isOnline() && _offline.requiresManualConfirmation) {
|
|
3132
|
+
<ion-icon name="pause" />
|
|
3133
|
+
}
|
|
3134
|
+
</ion-fab-button>
|
|
3135
|
+
</ion-fab>
|
|
3136
|
+
}
|
|
3137
|
+
`
|
|
3138
|
+
}]
|
|
2228
3139
|
}], propDecorators: { vertical: [{
|
|
2229
3140
|
type: Input
|
|
2230
3141
|
}], horizontal: [{
|
|
@@ -2233,20 +3144,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
2233
3144
|
type: Input
|
|
2234
3145
|
}] } });
|
|
2235
3146
|
|
|
2236
|
-
class IDEAOfflineModule {
|
|
2237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2238
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineModule, declarations: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent], imports: [CommonModule, IonicModule, IDEATranslationsModule], exports: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent] }); }
|
|
2239
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineModule, imports: [CommonModule, IonicModule, IDEATranslationsModule] }); }
|
|
2240
|
-
}
|
|
2241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineModule, decorators: [{
|
|
2242
|
-
type: NgModule,
|
|
2243
|
-
args: [{
|
|
2244
|
-
imports: [CommonModule, IonicModule, IDEATranslationsModule],
|
|
2245
|
-
declarations: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent],
|
|
2246
|
-
exports: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent]
|
|
2247
|
-
}]
|
|
2248
|
-
}] });
|
|
2249
|
-
|
|
2250
3147
|
class IDEASentimentComponent {
|
|
2251
3148
|
constructor() {
|
|
2252
3149
|
this._env = inject(IDEAEnvironment);
|
|
@@ -2295,11 +3192,52 @@ class IDEASentimentComponent {
|
|
|
2295
3192
|
}
|
|
2296
3193
|
}
|
|
2297
3194
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2298
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASentimentComponent, selector: "idea-sentiment", inputs: { text: "text", lines: "lines", color: "color" }, outputs: { change: "change" }, usesOnChanges: true, ngImport: i0, template:
|
|
3195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASentimentComponent, isStandalone: true, selector: "idea-sentiment", inputs: { text: "text", lines: "lines", color: "color" }, outputs: { change: "change" }, usesOnChanges: true, ngImport: i0, template: `
|
|
3196
|
+
@if (text && _offline.isOnline()) {
|
|
3197
|
+
<ion-item [lines]="lines" [color]="color">
|
|
3198
|
+
@if (!sentiment) {
|
|
3199
|
+
<ion-spinner slot="end" size="small" />
|
|
3200
|
+
}
|
|
3201
|
+
@if (sentiment) {
|
|
3202
|
+
<ion-badge
|
|
3203
|
+
slot="end"
|
|
3204
|
+
size="small"
|
|
3205
|
+
[color]="getColorBySentiment()"
|
|
3206
|
+
[title]="'IDEA_UNCOMMON.SENTIMENT.RESULT_HINT' | translate: { sentiment: sentiment }"
|
|
3207
|
+
>
|
|
3208
|
+
{{ 'IDEA_UNCOMMON.SENTIMENT.RESULT.' + sentiment | translate }}
|
|
3209
|
+
</ion-badge>
|
|
3210
|
+
}
|
|
3211
|
+
</ion-item>
|
|
3212
|
+
}
|
|
3213
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
|
|
2299
3214
|
}
|
|
2300
3215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentComponent, decorators: [{
|
|
2301
3216
|
type: Component,
|
|
2302
|
-
args: [{
|
|
3217
|
+
args: [{
|
|
3218
|
+
selector: 'idea-sentiment',
|
|
3219
|
+
standalone: true,
|
|
3220
|
+
imports: [CommonModule, IDEATranslatePipe, IonBadge, IonSpinner, IonItem],
|
|
3221
|
+
template: `
|
|
3222
|
+
@if (text && _offline.isOnline()) {
|
|
3223
|
+
<ion-item [lines]="lines" [color]="color">
|
|
3224
|
+
@if (!sentiment) {
|
|
3225
|
+
<ion-spinner slot="end" size="small" />
|
|
3226
|
+
}
|
|
3227
|
+
@if (sentiment) {
|
|
3228
|
+
<ion-badge
|
|
3229
|
+
slot="end"
|
|
3230
|
+
size="small"
|
|
3231
|
+
[color]="getColorBySentiment()"
|
|
3232
|
+
[title]="'IDEA_UNCOMMON.SENTIMENT.RESULT_HINT' | translate: { sentiment: sentiment }"
|
|
3233
|
+
>
|
|
3234
|
+
{{ 'IDEA_UNCOMMON.SENTIMENT.RESULT.' + sentiment | translate }}
|
|
3235
|
+
</ion-badge>
|
|
3236
|
+
}
|
|
3237
|
+
</ion-item>
|
|
3238
|
+
}
|
|
3239
|
+
`
|
|
3240
|
+
}]
|
|
2303
3241
|
}], propDecorators: { text: [{
|
|
2304
3242
|
type: Input
|
|
2305
3243
|
}], lines: [{
|
|
@@ -2310,20 +3248,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
2310
3248
|
type: Output
|
|
2311
3249
|
}] } });
|
|
2312
3250
|
|
|
2313
|
-
class IDEASentimentModule {
|
|
2314
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2315
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentModule, declarations: [IDEASentimentComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEASentimentComponent] }); }
|
|
2316
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
2317
|
-
}
|
|
2318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASentimentModule, decorators: [{
|
|
2319
|
-
type: NgModule,
|
|
2320
|
-
args: [{
|
|
2321
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
2322
|
-
declarations: [IDEASentimentComponent],
|
|
2323
|
-
exports: [IDEASentimentComponent]
|
|
2324
|
-
}]
|
|
2325
|
-
}] });
|
|
2326
|
-
|
|
2327
3251
|
class IDEAFromTimeToTimeComponent {
|
|
2328
3252
|
constructor() {
|
|
2329
3253
|
this._modal = inject(ModalController);
|
|
@@ -2439,11 +3363,28 @@ class IDEAFromTimeToTimeComponent {
|
|
|
2439
3363
|
this._modal.dismiss();
|
|
2440
3364
|
}
|
|
2441
3365
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAFromTimeToTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2442
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAFromTimeToTimeComponent, selector: "idea-from-time-to-time", inputs: { timeInterval: "timeInterval", period: "period", notEarlierThan: "notEarlierThan", notLaterThan: "notLaterThan", title: "title" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.RESET' | translate\" (click)=\"reset()\">\n <ion-icon name=\"arrow-undo\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid class=\"clockGrid\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"5\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(12) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12)\"\n [disabled]=\"!isAllowed(12)\"\n (click)=\"setInterval(12)\"\n >\n {{ getClockButtonContent(12) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(12, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12, minutes)\"\n [disabled]=\"!isAllowed(12, minutes)\"\n (click)=\"setInterval(12, minutes)\"\n >\n {{ getClockButtonContent(12, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"3\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(11, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11, minutes)\"\n [disabled]=\"!isAllowed(11, minutes)\"\n (click)=\"setInterval(11, minutes)\"\n >\n {{ getClockButtonContent(11, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(11) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11)\"\n [disabled]=\"!isAllowed(11)\"\n (click)=\"setInterval(11)\"\n >\n {{ getClockButtonContent(11) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(1) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1)\"\n [disabled]=\"!isAllowed(1)\"\n (click)=\"setInterval(1)\"\n >\n {{ getClockButtonContent(1) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(1, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1, minutes)\"\n [disabled]=\"!isAllowed(1, minutes)\"\n (click)=\"setInterval(1, minutes)\"\n >\n {{ getClockButtonContent(1, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(10, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10, minutes)\"\n [disabled]=\"!isAllowed(10, minutes)\"\n (click)=\"setInterval(10, minutes)\"\n >\n {{ getClockButtonContent(10, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(10) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10)\"\n [disabled]=\"!isAllowed(10)\"\n (click)=\"setInterval(10)\"\n >\n {{ getClockButtonContent(10) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(2) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2)\"\n [disabled]=\"!isAllowed(2)\"\n (click)=\"setInterval(2)\"\n >\n {{ getClockButtonContent(2) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(2, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2, minutes)\"\n [disabled]=\"!isAllowed(2, minutes)\"\n (click)=\"setInterval(2, minutes)\"\n >\n {{ getClockButtonContent(2, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(9, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9, minutes)\"\n [disabled]=\"!isAllowed(9, minutes)\"\n (click)=\"setInterval(9, minutes)\"\n >\n {{ getClockButtonContent(9, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(9) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9)\"\n [disabled]=\"!isAllowed(9)\"\n (click)=\"setInterval(9)\"\n >\n {{ getClockButtonContent(9) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center displayText\" [size]=\"4\">\n <ion-text [class.fromSelected]=\"segment === Segments.TO\">\n {{ 'IDEA_UNCOMMON.FTTT.FROM' | translate }}\n @if (segment === Segments.TO) {\n <span>{{ msToTimeString(_timeInterval.from) }}</span>\n }\n </ion-text>\n @if (segment === Segments.TO) {\n <ion-text>{{ 'IDEA_UNCOMMON.FTTT.TO' | translate }}</ion-text>\n }\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(3) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3)\"\n [disabled]=\"!isAllowed(3)\"\n (click)=\"setInterval(3)\"\n >\n {{ getClockButtonContent(3) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(3, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3, minutes)\"\n [disabled]=\"!isAllowed(3, minutes)\"\n (click)=\"setInterval(3, minutes)\"\n >\n {{ getClockButtonContent(3, minutes) }}\n </ion-button>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(8, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8, minutes)\"\n [disabled]=\"!isAllowed(8, minutes)\"\n (click)=\"setInterval(8, minutes)\"\n >\n {{ getClockButtonContent(8, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(8) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8)\"\n [disabled]=\"!isAllowed(8)\"\n (click)=\"setInterval(8)\"\n >\n {{ getClockButtonContent(8) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(4) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4)\"\n [disabled]=\"!isAllowed(4)\"\n (click)=\"setInterval(4)\"\n >\n {{ getClockButtonContent(4) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(4, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4, minutes)\"\n [disabled]=\"!isAllowed(4, minutes)\"\n (click)=\"setInterval(4, minutes)\"\n >\n {{ getClockButtonContent(4, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(7, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7, minutes)\"\n [disabled]=\"!isAllowed(7, minutes)\"\n (click)=\"setInterval(7, minutes)\"\n >\n {{ getClockButtonContent(7, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(7) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7)\"\n [disabled]=\"!isAllowed(7)\"\n (click)=\"setInterval(7)\"\n >\n {{ getClockButtonContent(7) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(5) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5)\"\n [disabled]=\"!isAllowed(5)\"\n (click)=\"setInterval(5)\"\n >\n {{ getClockButtonContent(5) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(5, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5, minutes)\"\n [disabled]=\"!isAllowed(5, minutes)\"\n (click)=\"setInterval(5, minutes)\"\n >\n {{ getClockButtonContent(5, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"3\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(6, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6, minutes)\"\n [disabled]=\"!isAllowed(6, minutes)\"\n (click)=\"setInterval(6, minutes)\"\n >\n {{ getClockButtonContent(6, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(6) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6)\"\n [disabled]=\"!isAllowed(6)\"\n (click)=\"setInterval(6)\"\n >\n {{ getClockButtonContent(6) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"5\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.PERIOD' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"period\" (ionChange)=\"period = $event?.detail?.value || period\">\n <ion-segment-button [value]=\"Periods.AM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.AM' | translate }}</ion-label>\n </ion-segment-button>\n <ion-segment-button [value]=\"Periods.PM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.PM' | translate }}</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.MINUTES_PREFERENCE' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"minutes\" (ionChange)=\"minutes = $event?.detail?.value || minutes\">\n <ion-segment-button value=\"15\">\n <ion-label>15</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"30\">\n <ion-label>30</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"45\">\n <ion-label>45</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", styles: ["ion-grid.clockGrid ion-button[size=large]{width:50px;height:50px;font-size:1.1em;font-weight:700}ion-grid.clockGrid ion-button[size=small]{font-size:.75em}ion-grid.clockGrid ion-button.oppositeMeridian{--border-color: var(--ion-color-medium);--border-style: dashed;--border-width: 1px}ion-grid.clockGrid .displayText ion-text{font-size:1.3em;font-weight:700}ion-grid.clockGrid .displayText ion-text.fromSelected{display:block;padding-bottom:3px;font-size:.9em}ion-grid.clockGrid ion-segment ion-segment-button{min-width:50px;--color-checked: var(--ion-color-dark);--border-color: var(--ion-color-dark)}ion-grid.clockGrid .prefLabel{font-size:.6em;font-weight:700;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: i1$1.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$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonRow, selector: "ion-row" }, { kind: "component", type: i1$1.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i1$1.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: i1$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
|
|
3366
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAFromTimeToTimeComponent, isStandalone: true, selector: "idea-from-time-to-time", inputs: { timeInterval: "timeInterval", period: "period", notEarlierThan: "notEarlierThan", notLaterThan: "notLaterThan", title: "title" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.RESET' | translate\" (click)=\"reset()\">\n <ion-icon name=\"arrow-undo\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid class=\"clockGrid\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"5\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(12) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12)\"\n [disabled]=\"!isAllowed(12)\"\n (click)=\"setInterval(12)\"\n >\n {{ getClockButtonContent(12) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(12, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12, minutes)\"\n [disabled]=\"!isAllowed(12, minutes)\"\n (click)=\"setInterval(12, minutes)\"\n >\n {{ getClockButtonContent(12, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"3\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(11, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11, minutes)\"\n [disabled]=\"!isAllowed(11, minutes)\"\n (click)=\"setInterval(11, minutes)\"\n >\n {{ getClockButtonContent(11, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(11) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11)\"\n [disabled]=\"!isAllowed(11)\"\n (click)=\"setInterval(11)\"\n >\n {{ getClockButtonContent(11) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(1) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1)\"\n [disabled]=\"!isAllowed(1)\"\n (click)=\"setInterval(1)\"\n >\n {{ getClockButtonContent(1) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(1, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1, minutes)\"\n [disabled]=\"!isAllowed(1, minutes)\"\n (click)=\"setInterval(1, minutes)\"\n >\n {{ getClockButtonContent(1, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(10, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10, minutes)\"\n [disabled]=\"!isAllowed(10, minutes)\"\n (click)=\"setInterval(10, minutes)\"\n >\n {{ getClockButtonContent(10, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(10) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10)\"\n [disabled]=\"!isAllowed(10)\"\n (click)=\"setInterval(10)\"\n >\n {{ getClockButtonContent(10) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(2) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2)\"\n [disabled]=\"!isAllowed(2)\"\n (click)=\"setInterval(2)\"\n >\n {{ getClockButtonContent(2) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(2, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2, minutes)\"\n [disabled]=\"!isAllowed(2, minutes)\"\n (click)=\"setInterval(2, minutes)\"\n >\n {{ getClockButtonContent(2, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(9, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9, minutes)\"\n [disabled]=\"!isAllowed(9, minutes)\"\n (click)=\"setInterval(9, minutes)\"\n >\n {{ getClockButtonContent(9, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(9) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9)\"\n [disabled]=\"!isAllowed(9)\"\n (click)=\"setInterval(9)\"\n >\n {{ getClockButtonContent(9) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center displayText\" [size]=\"4\">\n <ion-text [class.fromSelected]=\"segment === Segments.TO\">\n {{ 'IDEA_UNCOMMON.FTTT.FROM' | translate }}\n @if (segment === Segments.TO) {\n <span>{{ msToTimeString(timeIntervalWC.from) }}</span>\n }\n </ion-text>\n @if (segment === Segments.TO) {\n <ion-text>{{ 'IDEA_UNCOMMON.FTTT.TO' | translate }}</ion-text>\n }\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(3) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3)\"\n [disabled]=\"!isAllowed(3)\"\n (click)=\"setInterval(3)\"\n >\n {{ getClockButtonContent(3) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(3, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3, minutes)\"\n [disabled]=\"!isAllowed(3, minutes)\"\n (click)=\"setInterval(3, minutes)\"\n >\n {{ getClockButtonContent(3, minutes) }}\n </ion-button>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(8, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8, minutes)\"\n [disabled]=\"!isAllowed(8, minutes)\"\n (click)=\"setInterval(8, minutes)\"\n >\n {{ getClockButtonContent(8, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(8) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8)\"\n [disabled]=\"!isAllowed(8)\"\n (click)=\"setInterval(8)\"\n >\n {{ getClockButtonContent(8) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(4) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4)\"\n [disabled]=\"!isAllowed(4)\"\n (click)=\"setInterval(4)\"\n >\n {{ getClockButtonContent(4) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(4, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4, minutes)\"\n [disabled]=\"!isAllowed(4, minutes)\"\n (click)=\"setInterval(4, minutes)\"\n >\n {{ getClockButtonContent(4, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(7, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7, minutes)\"\n [disabled]=\"!isAllowed(7, minutes)\"\n (click)=\"setInterval(7, minutes)\"\n >\n {{ getClockButtonContent(7, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(7) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7)\"\n [disabled]=\"!isAllowed(7)\"\n (click)=\"setInterval(7)\"\n >\n {{ getClockButtonContent(7) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(5) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5)\"\n [disabled]=\"!isAllowed(5)\"\n (click)=\"setInterval(5)\"\n >\n {{ getClockButtonContent(5) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(5, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5, minutes)\"\n [disabled]=\"!isAllowed(5, minutes)\"\n (click)=\"setInterval(5, minutes)\"\n >\n {{ getClockButtonContent(5, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"3\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(6, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6, minutes)\"\n [disabled]=\"!isAllowed(6, minutes)\"\n (click)=\"setInterval(6, minutes)\"\n >\n {{ getClockButtonContent(6, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(6) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6)\"\n [disabled]=\"!isAllowed(6)\"\n (click)=\"setInterval(6)\"\n >\n {{ getClockButtonContent(6) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"5\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.PERIOD' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"period\" (ionChange)=\"period = $event?.detail?.value || period\">\n <ion-segment-button [value]=\"Periods.AM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.AM' | translate }}</ion-label>\n </ion-segment-button>\n <ion-segment-button [value]=\"Periods.PM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.PM' | translate }}</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.MINUTES_PREFERENCE' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"minutes\" (ionChange)=\"minutes = $event?.detail?.value || minutes\">\n <ion-segment-button value=\"15\">\n <ion-label>15</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"30\">\n <ion-label>30</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"45\">\n <ion-label>45</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", styles: ["ion-grid.clockGrid ion-button[size=large]{width:50px;height:50px;font-size:1.1em;font-weight:700}ion-grid.clockGrid ion-button[size=small]{font-size:.75em}ion-grid.clockGrid ion-button.oppositeMeridian{--border-color: var(--ion-color-medium);--border-style: dashed;--border-width: 1px}ion-grid.clockGrid .displayText ion-text{font-size:1.3em;font-weight:700}ion-grid.clockGrid .displayText ion-text.fromSelected{display:block;padding-bottom:3px;font-size:.9em}ion-grid.clockGrid ion-segment ion-segment-button{min-width:50px;--color-checked: var(--ion-color-dark);--border-color: var(--ion-color-dark)}ion-grid.clockGrid .prefLabel{font-size:.6em;font-weight:700;text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }] }); }
|
|
2443
3367
|
}
|
|
2444
3368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAFromTimeToTimeComponent, decorators: [{
|
|
2445
3369
|
type: Component,
|
|
2446
|
-
args: [{ selector: 'idea-from-time-to-time', template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.RESET' | translate\" (click)=\"reset()\">\n <ion-icon name=\"arrow-undo\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid class=\"clockGrid\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"5\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(12) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12)\"\n [disabled]=\"!isAllowed(12)\"\n (click)=\"setInterval(12)\"\n >\n {{ getClockButtonContent(12) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(12, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12, minutes)\"\n [disabled]=\"!isAllowed(12, minutes)\"\n (click)=\"setInterval(12, minutes)\"\n >\n {{ getClockButtonContent(12, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"3\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(11, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11, minutes)\"\n [disabled]=\"!isAllowed(11, minutes)\"\n (click)=\"setInterval(11, minutes)\"\n >\n {{ getClockButtonContent(11, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(11) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11)\"\n [disabled]=\"!isAllowed(11)\"\n (click)=\"setInterval(11)\"\n >\n {{ getClockButtonContent(11) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(1) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1)\"\n [disabled]=\"!isAllowed(1)\"\n (click)=\"setInterval(1)\"\n >\n {{ getClockButtonContent(1) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(1, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1, minutes)\"\n [disabled]=\"!isAllowed(1, minutes)\"\n (click)=\"setInterval(1, minutes)\"\n >\n {{ getClockButtonContent(1, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(10, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10, minutes)\"\n [disabled]=\"!isAllowed(10, minutes)\"\n (click)=\"setInterval(10, minutes)\"\n >\n {{ getClockButtonContent(10, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(10) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10)\"\n [disabled]=\"!isAllowed(10)\"\n (click)=\"setInterval(10)\"\n >\n {{ getClockButtonContent(10) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(2) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2)\"\n [disabled]=\"!isAllowed(2)\"\n (click)=\"setInterval(2)\"\n >\n {{ getClockButtonContent(2) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(2, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2, minutes)\"\n [disabled]=\"!isAllowed(2, minutes)\"\n (click)=\"setInterval(2, minutes)\"\n >\n {{ getClockButtonContent(2, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(9, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9, minutes)\"\n [disabled]=\"!isAllowed(9, minutes)\"\n (click)=\"setInterval(9, minutes)\"\n >\n {{ getClockButtonContent(9, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(9) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9)\"\n [disabled]=\"!isAllowed(9)\"\n (click)=\"setInterval(9)\"\n >\n {{ getClockButtonContent(9) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center displayText\" [size]=\"4\">\n <ion-text [class.fromSelected]=\"segment === Segments.TO\">\n {{ 'IDEA_UNCOMMON.FTTT.FROM' | translate }}\n @if (segment === Segments.TO) {\n <span>{{ msToTimeString(_timeInterval.from) }}</span>\n }\n </ion-text>\n @if (segment === Segments.TO) {\n <ion-text>{{ 'IDEA_UNCOMMON.FTTT.TO' | translate }}</ion-text>\n }\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(3) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3)\"\n [disabled]=\"!isAllowed(3)\"\n (click)=\"setInterval(3)\"\n >\n {{ getClockButtonContent(3) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(3, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3, minutes)\"\n [disabled]=\"!isAllowed(3, minutes)\"\n (click)=\"setInterval(3, minutes)\"\n >\n {{ getClockButtonContent(3, minutes) }}\n </ion-button>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(8, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8, minutes)\"\n [disabled]=\"!isAllowed(8, minutes)\"\n (click)=\"setInterval(8, minutes)\"\n >\n {{ getClockButtonContent(8, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(8) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8)\"\n [disabled]=\"!isAllowed(8)\"\n (click)=\"setInterval(8)\"\n >\n {{ getClockButtonContent(8) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(4) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4)\"\n [disabled]=\"!isAllowed(4)\"\n (click)=\"setInterval(4)\"\n >\n {{ getClockButtonContent(4) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(4, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4, minutes)\"\n [disabled]=\"!isAllowed(4, minutes)\"\n (click)=\"setInterval(4, minutes)\"\n >\n {{ getClockButtonContent(4, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(7, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7, minutes)\"\n [disabled]=\"!isAllowed(7, minutes)\"\n (click)=\"setInterval(7, minutes)\"\n >\n {{ getClockButtonContent(7, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(7) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7)\"\n [disabled]=\"!isAllowed(7)\"\n (click)=\"setInterval(7)\"\n >\n {{ getClockButtonContent(7) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(5) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5)\"\n [disabled]=\"!isAllowed(5)\"\n (click)=\"setInterval(5)\"\n >\n {{ getClockButtonContent(5) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(5, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5, minutes)\"\n [disabled]=\"!isAllowed(5, minutes)\"\n (click)=\"setInterval(5, minutes)\"\n >\n {{ getClockButtonContent(5, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"3\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(6, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6, minutes)\"\n [disabled]=\"!isAllowed(6, minutes)\"\n (click)=\"setInterval(6, minutes)\"\n >\n {{ getClockButtonContent(6, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(6) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6)\"\n [disabled]=\"!isAllowed(6)\"\n (click)=\"setInterval(6)\"\n >\n {{ getClockButtonContent(6) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"5\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.PERIOD' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"period\" (ionChange)=\"period = $event?.detail?.value || period\">\n <ion-segment-button [value]=\"Periods.AM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.AM' | translate }}</ion-label>\n </ion-segment-button>\n <ion-segment-button [value]=\"Periods.PM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.PM' | translate }}</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.MINUTES_PREFERENCE' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"minutes\" (ionChange)=\"minutes = $event?.detail?.value || minutes\">\n <ion-segment-button value=\"15\">\n <ion-label>15</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"30\">\n <ion-label>30</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"45\">\n <ion-label>45</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", styles: ["ion-grid.clockGrid ion-button[size=large]{width:50px;height:50px;font-size:1.1em;font-weight:700}ion-grid.clockGrid ion-button[size=small]{font-size:.75em}ion-grid.clockGrid ion-button.oppositeMeridian{--border-color: var(--ion-color-medium);--border-style: dashed;--border-width: 1px}ion-grid.clockGrid .displayText ion-text{font-size:1.3em;font-weight:700}ion-grid.clockGrid .displayText ion-text.fromSelected{display:block;padding-bottom:3px;font-size:.9em}ion-grid.clockGrid ion-segment ion-segment-button{min-width:50px;--color-checked: var(--ion-color-dark);--border-color: var(--ion-color-dark)}ion-grid.clockGrid .prefLabel{font-size:.6em;font-weight:700;text-transform:uppercase}\n"] }]
|
|
3370
|
+
args: [{ selector: 'idea-from-time-to-time', standalone: true, imports: [
|
|
3371
|
+
CommonModule,
|
|
3372
|
+
IDEATranslatePipe,
|
|
3373
|
+
IonLabel,
|
|
3374
|
+
IonSegmentButton,
|
|
3375
|
+
IonSegment,
|
|
3376
|
+
IonText,
|
|
3377
|
+
IonCol,
|
|
3378
|
+
IonRow,
|
|
3379
|
+
IonGrid,
|
|
3380
|
+
IonContent,
|
|
3381
|
+
IonTitle,
|
|
3382
|
+
IonIcon,
|
|
3383
|
+
IonButton,
|
|
3384
|
+
IonButtons,
|
|
3385
|
+
IonToolbar,
|
|
3386
|
+
IonHeader
|
|
3387
|
+
], template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ title }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.RESET' | translate\" (click)=\"reset()\">\n <ion-icon name=\"arrow-undo\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-grid class=\"clockGrid\">\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"5\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(12) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12)\"\n [disabled]=\"!isAllowed(12)\"\n (click)=\"setInterval(12)\"\n >\n {{ getClockButtonContent(12) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(12, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(12, minutes)\"\n [disabled]=\"!isAllowed(12, minutes)\"\n (click)=\"setInterval(12, minutes)\"\n >\n {{ getClockButtonContent(12, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"3\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(11, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11, minutes)\"\n [disabled]=\"!isAllowed(11, minutes)\"\n (click)=\"setInterval(11, minutes)\"\n >\n {{ getClockButtonContent(11, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(11) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(11)\"\n [disabled]=\"!isAllowed(11)\"\n (click)=\"setInterval(11)\"\n >\n {{ getClockButtonContent(11) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(1) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1)\"\n [disabled]=\"!isAllowed(1)\"\n (click)=\"setInterval(1)\"\n >\n {{ getClockButtonContent(1) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(1, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(1, minutes)\"\n [disabled]=\"!isAllowed(1, minutes)\"\n (click)=\"setInterval(1, minutes)\"\n >\n {{ getClockButtonContent(1, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(10, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10, minutes)\"\n [disabled]=\"!isAllowed(10, minutes)\"\n (click)=\"setInterval(10, minutes)\"\n >\n {{ getClockButtonContent(10, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(10) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(10)\"\n [disabled]=\"!isAllowed(10)\"\n (click)=\"setInterval(10)\"\n >\n {{ getClockButtonContent(10) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(2) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2)\"\n [disabled]=\"!isAllowed(2)\"\n (click)=\"setInterval(2)\"\n >\n {{ getClockButtonContent(2) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(2, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(2, minutes)\"\n [disabled]=\"!isAllowed(2, minutes)\"\n (click)=\"setInterval(2, minutes)\"\n >\n {{ getClockButtonContent(2, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(9, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9, minutes)\"\n [disabled]=\"!isAllowed(9, minutes)\"\n (click)=\"setInterval(9, minutes)\"\n >\n {{ getClockButtonContent(9, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(9) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(9)\"\n [disabled]=\"!isAllowed(9)\"\n (click)=\"setInterval(9)\"\n >\n {{ getClockButtonContent(9) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center displayText\" [size]=\"4\">\n <ion-text [class.fromSelected]=\"segment === Segments.TO\">\n {{ 'IDEA_UNCOMMON.FTTT.FROM' | translate }}\n @if (segment === Segments.TO) {\n <span>{{ msToTimeString(timeIntervalWC.from) }}</span>\n }\n </ion-text>\n @if (segment === Segments.TO) {\n <ion-text>{{ 'IDEA_UNCOMMON.FTTT.TO' | translate }}</ion-text>\n }\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(3) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3)\"\n [disabled]=\"!isAllowed(3)\"\n (click)=\"setInterval(3)\"\n >\n {{ getClockButtonContent(3) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(3, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(3, minutes)\"\n [disabled]=\"!isAllowed(3, minutes)\"\n (click)=\"setInterval(3, minutes)\"\n >\n {{ getClockButtonContent(3, minutes) }}\n </ion-button>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"1\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(8, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8, minutes)\"\n [disabled]=\"!isAllowed(8, minutes)\"\n (click)=\"setInterval(8, minutes)\"\n >\n {{ getClockButtonContent(8, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(8) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(8)\"\n [disabled]=\"!isAllowed(8)\"\n (click)=\"setInterval(8)\"\n >\n {{ getClockButtonContent(8) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(4) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4)\"\n [disabled]=\"!isAllowed(4)\"\n (click)=\"setInterval(4)\"\n >\n {{ getClockButtonContent(4) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(4, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(4, minutes)\"\n [disabled]=\"!isAllowed(4, minutes)\"\n (click)=\"setInterval(4, minutes)\"\n >\n {{ getClockButtonContent(4, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"1\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"2\"> </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(7, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7, minutes)\"\n [disabled]=\"!isAllowed(7, minutes)\"\n (click)=\"setInterval(7, minutes)\"\n >\n {{ getClockButtonContent(7, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-left\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(7) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(7)\"\n [disabled]=\"!isAllowed(7)\"\n (click)=\"setInterval(7)\"\n >\n {{ getClockButtonContent(7) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(5) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5)\"\n [disabled]=\"!isAllowed(5)\"\n (click)=\"setInterval(5)\"\n >\n {{ getClockButtonContent(5) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(5, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(5, minutes)\"\n [disabled]=\"!isAllowed(5, minutes)\"\n (click)=\"setInterval(5, minutes)\"\n >\n {{ getClockButtonContent(5, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"2\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col [size]=\"3\"> </ion-col>\n <ion-col class=\"ion-text-right\" [size]=\"2\">\n <ion-button\n size=\"small\"\n [color]=\"equalsFrom(6, minutes) ? 'primary' : 'light'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6, minutes)\"\n [disabled]=\"!isAllowed(6, minutes)\"\n (click)=\"setInterval(6, minutes)\"\n >\n {{ getClockButtonContent(6, minutes) }}\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"2\">\n <ion-button\n size=\"large\"\n shape=\"round\"\n [color]=\"equalsFrom(6) ? 'primary' : 'dark'\"\n [class.oppositeMeridian]=\"isHourOfOppositeMeridian(6)\"\n [disabled]=\"!isAllowed(6)\"\n (click)=\"setInterval(6)\"\n >\n {{ getClockButtonContent(6) }}\n </ion-button>\n </ion-col>\n <ion-col [size]=\"5\"> </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.PERIOD' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"period\" (ionChange)=\"period = $event?.detail?.value || period\">\n <ion-segment-button [value]=\"Periods.AM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.AM' | translate }}</ion-label>\n </ion-segment-button>\n <ion-segment-button [value]=\"Periods.PM\">\n <ion-label>{{ 'IDEA_UNCOMMON.FTTT.PM' | translate }}</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-right\" [size]=\"3\" [sizeSm]=\"7\">\n <ion-text class=\"prefLabel\">{{ 'IDEA_UNCOMMON.FTTT.MINUTES_PREFERENCE' | translate }}:</ion-text>\n </ion-col>\n <ion-col [size]=\"9\" [sizeSm]=\"5\">\n <ion-segment [value]=\"minutes\" (ionChange)=\"minutes = $event?.detail?.value || minutes\">\n <ion-segment-button value=\"15\">\n <ion-label>15</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"30\">\n <ion-label>30</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"45\">\n <ion-label>45</ion-label>\n </ion-segment-button>\n </ion-segment>\n </ion-col>\n </ion-row>\n </ion-grid>\n</ion-content>\n", styles: ["ion-grid.clockGrid ion-button[size=large]{width:50px;height:50px;font-size:1.1em;font-weight:700}ion-grid.clockGrid ion-button[size=small]{font-size:.75em}ion-grid.clockGrid ion-button.oppositeMeridian{--border-color: var(--ion-color-medium);--border-style: dashed;--border-width: 1px}ion-grid.clockGrid .displayText ion-text{font-size:1.3em;font-weight:700}ion-grid.clockGrid .displayText ion-text.fromSelected{display:block;padding-bottom:3px;font-size:.9em}ion-grid.clockGrid ion-segment ion-segment-button{min-width:50px;--color-checked: var(--ion-color-dark);--border-color: var(--ion-color-dark)}ion-grid.clockGrid .prefLabel{font-size:.6em;font-weight:700;text-transform:uppercase}\n"] }]
|
|
2447
3388
|
}], propDecorators: { timeInterval: [{
|
|
2448
3389
|
type: Input
|
|
2449
3390
|
}], period: [{
|
|
@@ -2549,11 +3490,95 @@ class IDEATimeIntervalComponent {
|
|
|
2549
3490
|
this.iconSelect.emit(event);
|
|
2550
3491
|
}
|
|
2551
3492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2552
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEATimeIntervalComponent, selector: "idea-time-interval", inputs: { timeInterval: "timeInterval", period: "period", notEarlierThan: "notEarlierThan", notLaterThan: "notLaterThan", label: "label", icon: "icon", iconColor: "iconColor", placeholder: "placeholder", disabled: "disabled", tappableWhenDisabled: "tappableWhenDisabled", obligatory: "obligatory", lines: "lines", color: "color" }, outputs: { select: "select", iconSelect: "iconSelect", selectWhenDisabled: "selectWhenDisabled" }, usesOnChanges: true, ngImport: i0, template:
|
|
3493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEATimeIntervalComponent, isStandalone: true, selector: "idea-time-interval", inputs: { timeInterval: "timeInterval", period: "period", notEarlierThan: "notEarlierThan", notLaterThan: "notLaterThan", label: "label", icon: "icon", iconColor: "iconColor", placeholder: "placeholder", disabled: "disabled", tappableWhenDisabled: "tappableWhenDisabled", obligatory: "obligatory", lines: "lines", color: "color" }, outputs: { select: "select", iconSelect: "iconSelect", selectWhenDisabled: "selectWhenDisabled" }, usesOnChanges: true, ngImport: i0, template: `
|
|
3494
|
+
<ion-item
|
|
3495
|
+
class="timeIntervalItem"
|
|
3496
|
+
[color]="color"
|
|
3497
|
+
[lines]="lines"
|
|
3498
|
+
[button]="!disabled"
|
|
3499
|
+
[disabled]="isOpening"
|
|
3500
|
+
[title]="placeholder || valueToDisplay || ''"
|
|
3501
|
+
[class.withLabel]="label"
|
|
3502
|
+
(click)="disabled ? doSelectWhenDisabled() : pickTimeInterval()"
|
|
3503
|
+
>
|
|
3504
|
+
@if (icon) {
|
|
3505
|
+
<ion-button
|
|
3506
|
+
fill="clear"
|
|
3507
|
+
slot="start"
|
|
3508
|
+
[color]="iconColor"
|
|
3509
|
+
[class.marginTop]="label"
|
|
3510
|
+
(click)="doIconSelect($event)"
|
|
3511
|
+
>
|
|
3512
|
+
<ion-icon [name]="icon" slot="icon-only" />
|
|
3513
|
+
</ion-button>
|
|
3514
|
+
}
|
|
3515
|
+
@if (label) {
|
|
3516
|
+
<ion-label position="stacked" [class.selectable]="!disabled || tappableWhenDisabled">
|
|
3517
|
+
{{ label }}
|
|
3518
|
+
@if (obligatory && !disabled) {
|
|
3519
|
+
<ion-text class="obligatoryDot" />
|
|
3520
|
+
}
|
|
3521
|
+
</ion-label>
|
|
3522
|
+
}
|
|
3523
|
+
<ion-label class="description" [class.selectable]="!disabled || tappableWhenDisabled">
|
|
3524
|
+
@if (!valueToDisplay && !disabled) {
|
|
3525
|
+
<ion-text class="placeholder" [class.selectable]="!disabled">
|
|
3526
|
+
{{ placeholder }}
|
|
3527
|
+
</ion-text>
|
|
3528
|
+
}
|
|
3529
|
+
{{ valueToDisplay }}
|
|
3530
|
+
</ion-label>
|
|
3531
|
+
@if (!disabled) {
|
|
3532
|
+
<ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
3533
|
+
}
|
|
3534
|
+
</ion-item>
|
|
3535
|
+
`, isInline: true, styles: [".timeIntervalItem{min-height:48px;height:auto}.timeIntervalItem .description{margin:10px 0;height:20px;line-height:20px;width:100%}.timeIntervalItem .placeholder{color:var(--ion-color-medium)}.timeIntervalItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.timeIntervalItem.withLabel{min-height:58px;height:auto}.timeIntervalItem.withLabel .selectIcon{padding-top:25px}.timeIntervalItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}\n"], dependencies: [{ kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "ngmodule", type: CommonModule }] }); }
|
|
2553
3536
|
}
|
|
2554
3537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalComponent, decorators: [{
|
|
2555
3538
|
type: Component,
|
|
2556
|
-
args: [{ selector: 'idea-time-interval',
|
|
3539
|
+
args: [{ selector: 'idea-time-interval', standalone: true, imports: [IonLabel, IonText, IonIcon, IonButton, IonItem, CommonModule], template: `
|
|
3540
|
+
<ion-item
|
|
3541
|
+
class="timeIntervalItem"
|
|
3542
|
+
[color]="color"
|
|
3543
|
+
[lines]="lines"
|
|
3544
|
+
[button]="!disabled"
|
|
3545
|
+
[disabled]="isOpening"
|
|
3546
|
+
[title]="placeholder || valueToDisplay || ''"
|
|
3547
|
+
[class.withLabel]="label"
|
|
3548
|
+
(click)="disabled ? doSelectWhenDisabled() : pickTimeInterval()"
|
|
3549
|
+
>
|
|
3550
|
+
@if (icon) {
|
|
3551
|
+
<ion-button
|
|
3552
|
+
fill="clear"
|
|
3553
|
+
slot="start"
|
|
3554
|
+
[color]="iconColor"
|
|
3555
|
+
[class.marginTop]="label"
|
|
3556
|
+
(click)="doIconSelect($event)"
|
|
3557
|
+
>
|
|
3558
|
+
<ion-icon [name]="icon" slot="icon-only" />
|
|
3559
|
+
</ion-button>
|
|
3560
|
+
}
|
|
3561
|
+
@if (label) {
|
|
3562
|
+
<ion-label position="stacked" [class.selectable]="!disabled || tappableWhenDisabled">
|
|
3563
|
+
{{ label }}
|
|
3564
|
+
@if (obligatory && !disabled) {
|
|
3565
|
+
<ion-text class="obligatoryDot" />
|
|
3566
|
+
}
|
|
3567
|
+
</ion-label>
|
|
3568
|
+
}
|
|
3569
|
+
<ion-label class="description" [class.selectable]="!disabled || tappableWhenDisabled">
|
|
3570
|
+
@if (!valueToDisplay && !disabled) {
|
|
3571
|
+
<ion-text class="placeholder" [class.selectable]="!disabled">
|
|
3572
|
+
{{ placeholder }}
|
|
3573
|
+
</ion-text>
|
|
3574
|
+
}
|
|
3575
|
+
{{ valueToDisplay }}
|
|
3576
|
+
</ion-label>
|
|
3577
|
+
@if (!disabled) {
|
|
3578
|
+
<ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
|
|
3579
|
+
}
|
|
3580
|
+
</ion-item>
|
|
3581
|
+
`, styles: [".timeIntervalItem{min-height:48px;height:auto}.timeIntervalItem .description{margin:10px 0;height:20px;line-height:20px;width:100%}.timeIntervalItem .placeholder{color:var(--ion-color-medium)}.timeIntervalItem .selectIcon{margin:0;padding-left:4px;font-size:.8em;color:var(--ion-color-medium)}.timeIntervalItem.withLabel{min-height:58px;height:auto}.timeIntervalItem.withLabel .selectIcon{padding-top:25px}.timeIntervalItem.withLabel ion-button[slot=start]{margin-top:16px}.selectable{cursor:pointer}\n"] }]
|
|
2557
3582
|
}], propDecorators: { timeInterval: [{
|
|
2558
3583
|
type: Input
|
|
2559
3584
|
}], period: [{
|
|
@@ -2588,20 +3613,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
2588
3613
|
type: Output
|
|
2589
3614
|
}] } });
|
|
2590
3615
|
|
|
2591
|
-
class IDEATimeIntervalModule {
|
|
2592
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2593
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalModule, declarations: [IDEAFromTimeToTimeComponent, IDEATimeIntervalComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEAFromTimeToTimeComponent, IDEATimeIntervalComponent] }); }
|
|
2594
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
|
|
2595
|
-
}
|
|
2596
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEATimeIntervalModule, decorators: [{
|
|
2597
|
-
type: NgModule,
|
|
2598
|
-
args: [{
|
|
2599
|
-
imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
|
|
2600
|
-
declarations: [IDEAFromTimeToTimeComponent, IDEATimeIntervalComponent],
|
|
2601
|
-
exports: [IDEAFromTimeToTimeComponent, IDEATimeIntervalComponent]
|
|
2602
|
-
}]
|
|
2603
|
-
}] });
|
|
2604
|
-
|
|
2605
3616
|
/**
|
|
2606
3617
|
* To communicate with an AWS API Gateway websocket istance.
|
|
2607
3618
|
*
|
|
@@ -2777,10 +3788,11 @@ class IDEAAWSAPISocketService {
|
|
|
2777
3788
|
return minutes * 60 * 1000;
|
|
2778
3789
|
}
|
|
2779
3790
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPISocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2780
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPISocketService }); }
|
|
3791
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPISocketService, providedIn: 'root' }); }
|
|
2781
3792
|
}
|
|
2782
3793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAWSAPISocketService, decorators: [{
|
|
2783
|
-
type: Injectable
|
|
3794
|
+
type: Injectable,
|
|
3795
|
+
args: [{ providedIn: 'root' }]
|
|
2784
3796
|
}], ctorParameters: () => [] });
|
|
2785
3797
|
|
|
2786
3798
|
/**
|
|
@@ -2878,15 +3890,16 @@ class IDEAPushNotificationsService {
|
|
|
2878
3890
|
PushNotifications.register();
|
|
2879
3891
|
}
|
|
2880
3892
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPushNotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2881
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPushNotificationsService }); }
|
|
3893
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPushNotificationsService, providedIn: 'root' }); }
|
|
2882
3894
|
}
|
|
2883
3895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPushNotificationsService, decorators: [{
|
|
2884
|
-
type: Injectable
|
|
3896
|
+
type: Injectable,
|
|
3897
|
+
args: [{ providedIn: 'root' }]
|
|
2885
3898
|
}], ctorParameters: () => [] });
|
|
2886
3899
|
|
|
2887
3900
|
/**
|
|
2888
3901
|
* Generated bundle index. Do not edit.
|
|
2889
3902
|
*/
|
|
2890
3903
|
|
|
2891
|
-
export { APIRequestOption, CacheModes, CacheableResource, ColorsPaletteComponent, IDEAAWSAPIService, IDEAAWSAPISocketService, IDEAAddressComponent,
|
|
3904
|
+
export { APIRequestOption, CacheModes, CacheableResource, ColorsPaletteComponent, EchoRequests, IDEAAWSAPIService, IDEAAWSAPISocketService, IDEAAddressComponent, IDEAAnnouncementComponent, IDEACacheableResourceComponent, IDEACachedResourcesService, IDEACalendarPickerComponent, IDEAColorPickerComponent, IDEAContactsComponent, IDEADateTimeComponent, IDEADurationComponent, IDEAEchoPage, IDEAErrorReportingService, IDEAFromTimeToTimeComponent, IDEAMDEComponent, IDEAMDEToolbarComponent, IDEAOfflineDataService, IDEAOfflineIndicatorComponent, IDEAOfflineManagerComponent, IDEAOfflineService, IDEAPushNotificationsService, IDEASentimentComponent, IDEATimeIntervalComponent, IDEATinCanService, LAST_SYNC_KEY, NUM_ELEMENTS_WITHOUT_MANUAL_SYNC, NUM_ELEMENTS_WITH_MANUAL_SYNC, Periods, QUEUE_API_REQUESTS_KEY, SYNC_EXPIRATION_INTERVAL, ideaEchoRoutes };
|
|
2892
3905
|
//# sourceMappingURL=idea-ionic-uncommon.mjs.map
|