@idea-ionic/uncommon 8.5.12 → 8.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/fesm2022/idea-ionic-uncommon.mjs +85 -85
  2. package/fesm2022/idea-ionic-uncommon.mjs.map +1 -1
  3. package/index.d.ts +1405 -3
  4. package/package.json +12 -13
  5. package/esm2022/idea-ionic-uncommon.mjs +0 -5
  6. package/esm2022/public-api.mjs +0 -26
  7. package/esm2022/src/AWSAPI.service.mjs +0 -431
  8. package/esm2022/src/AWSAPISocket.service.mjs +0 -188
  9. package/esm2022/src/address/address.component.mjs +0 -409
  10. package/esm2022/src/announcement/announcement.component.mjs +0 -72
  11. package/esm2022/src/cachedResources.service.mjs +0 -55
  12. package/esm2022/src/colors/colorPicker.component.mjs +0 -191
  13. package/esm2022/src/contacts/contacts.component.mjs +0 -188
  14. package/esm2022/src/dateTime/calendarPicker.component.mjs +0 -213
  15. package/esm2022/src/dateTime/dateTime.component.mjs +0 -217
  16. package/esm2022/src/duration/duration.component.mjs +0 -195
  17. package/esm2022/src/echo/echo.page.mjs +0 -233
  18. package/esm2022/src/echo/echo.routes.mjs +0 -6
  19. package/esm2022/src/errorReporting.service.mjs +0 -69
  20. package/esm2022/src/mde/mde.component.mjs +0 -143
  21. package/esm2022/src/mde/mdeToolbar.component.mjs +0 -25
  22. package/esm2022/src/offline/cacheableResource.component.mjs +0 -56
  23. package/esm2022/src/offline/offline.service.mjs +0 -63
  24. package/esm2022/src/offline/offlineData.service.mjs +0 -480
  25. package/esm2022/src/offline/offlineIndicator.component.mjs +0 -105
  26. package/esm2022/src/offline/offlineManager.component.mjs +0 -101
  27. package/esm2022/src/pushNotifications.service.mjs +0 -57
  28. package/esm2022/src/sentiment/sentiment.component.mjs +0 -112
  29. package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +0 -171
  30. package/esm2022/src/timeInterval/timeInterval.component.mjs +0 -206
  31. package/esm2022/src/tinCan.service.mjs +0 -49
  32. package/public-api.d.ts +0 -25
  33. package/src/AWSAPI.service.d.ts +0 -178
  34. package/src/AWSAPISocket.service.d.ts +0 -129
  35. package/src/address/address.component.d.ts +0 -64
  36. package/src/announcement/announcement.component.d.ts +0 -23
  37. package/src/cachedResources.service.d.ts +0 -34
  38. package/src/colors/colorPicker.component.d.ts +0 -78
  39. package/src/contacts/contacts.component.d.ts +0 -31
  40. package/src/dateTime/calendarPicker.component.d.ts +0 -45
  41. package/src/dateTime/dateTime.component.d.ts +0 -81
  42. package/src/duration/duration.component.d.ts +0 -68
  43. package/src/echo/echo.page.d.ts +0 -34
  44. package/src/echo/echo.routes.d.ts +0 -2
  45. package/src/errorReporting.service.d.ts +0 -26
  46. package/src/mde/mde.component.d.ts +0 -39
  47. package/src/mde/mdeToolbar.component.d.ts +0 -5
  48. package/src/offline/cacheableResource.component.d.ts +0 -11
  49. package/src/offline/offline.service.d.ts +0 -39
  50. package/src/offline/offlineData.service.d.ts +0 -281
  51. package/src/offline/offlineIndicator.component.d.ts +0 -25
  52. package/src/offline/offlineManager.component.d.ts +0 -17
  53. package/src/pushNotifications.service.d.ts +0 -26
  54. package/src/sentiment/sentiment.component.d.ts +0 -35
  55. package/src/timeInterval/fromTimeToTime.component.d.ts +0 -61
  56. package/src/timeInterval/timeInterval.component.d.ts +0 -84
  57. package/src/tinCan.service.d.ts +0 -31
@@ -1,191 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
3
- import { PopoverController, IonItem, IonButton, IonIcon, IonLabel, IonText, IonAvatar, IonContent, IonGrid, IonRow, IonCol } from '@ionic/angular/standalone';
4
- import { COLORS } from 'idea-toolbox';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Pick a color from a defined set.
8
- */
9
- export class IDEAColorPickerComponent {
10
- constructor() {
11
- /**
12
- * The pickable colors.
13
- */
14
- this.colors = COLORS;
15
- /**
16
- * On select event.
17
- */
18
- this.select = new EventEmitter();
19
- /**
20
- * Icon select.
21
- */
22
- this.iconSelect = new EventEmitter();
23
- this._popover = inject(PopoverController);
24
- }
25
- async openPalette(event) {
26
- if (this.disabled)
27
- return;
28
- const componentProps = { colors: this.colors, current: this.current };
29
- const popover = await this._popover.create({ component: ColorsPaletteComponent, componentProps, event });
30
- popover.onDidDismiss().then(res => {
31
- if (res && res.data)
32
- this.select.emit(res.data);
33
- });
34
- popover.present();
35
- }
36
- doIconSelect(event) {
37
- if (event)
38
- event.stopPropagation();
39
- this.iconSelect.emit(event);
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- 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: `
43
- <ion-item
44
- class="colorPickerItem"
45
- [color]="color"
46
- [lines]="lines"
47
- [button]="!disabled"
48
- [title]="placeholder || ''"
49
- [class.withLabel]="label"
50
- (click)="openPalette($event)"
51
- >
52
- @if (icon) {
53
- <ion-button fill="clear" slot="start" [color]="iconColor" (click)="doIconSelect($event)">
54
- <ion-icon [name]="icon" slot="icon-only" />
55
- </ion-button>
56
- }
57
- @if (label) {
58
- <ion-label [class.selectable]="!disabled">
59
- {{ label }}
60
- @if (obligatory && !disabled) {
61
- <ion-text class="obligatoryDot" />
62
- }
63
- </ion-label>
64
- }
65
- <ion-avatar slot="end" class="colorCircle" [style.background-color]="current" />
66
- @if (!disabled) {
67
- <ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
68
- }
69
- </ion-item>
70
- `, 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"] }] }); }
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerComponent, decorators: [{
73
- type: Component,
74
- args: [{ selector: 'idea-color-picker', standalone: true, imports: [CommonModule, IonAvatar, IonText, IonLabel, IonIcon, IonButton, IonItem], template: `
75
- <ion-item
76
- class="colorPickerItem"
77
- [color]="color"
78
- [lines]="lines"
79
- [button]="!disabled"
80
- [title]="placeholder || ''"
81
- [class.withLabel]="label"
82
- (click)="openPalette($event)"
83
- >
84
- @if (icon) {
85
- <ion-button fill="clear" slot="start" [color]="iconColor" (click)="doIconSelect($event)">
86
- <ion-icon [name]="icon" slot="icon-only" />
87
- </ion-button>
88
- }
89
- @if (label) {
90
- <ion-label [class.selectable]="!disabled">
91
- {{ label }}
92
- @if (obligatory && !disabled) {
93
- <ion-text class="obligatoryDot" />
94
- }
95
- </ion-label>
96
- }
97
- <ion-avatar slot="end" class="colorCircle" [style.background-color]="current" />
98
- @if (!disabled) {
99
- <ion-icon slot="end" name="caret-down" class="selectIcon" [class.selectable]="!disabled" />
100
- }
101
- </ion-item>
102
- `, 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"] }]
103
- }], propDecorators: { colors: [{
104
- type: Input
105
- }], current: [{
106
- type: Input
107
- }], label: [{
108
- type: Input
109
- }], placeholder: [{
110
- type: Input
111
- }], icon: [{
112
- type: Input
113
- }], iconColor: [{
114
- type: Input
115
- }], disabled: [{
116
- type: Input
117
- }], obligatory: [{
118
- type: Input
119
- }], lines: [{
120
- type: Input
121
- }], color: [{
122
- type: Input
123
- }], select: [{
124
- type: Output
125
- }], iconSelect: [{
126
- type: Output
127
- }] } });
128
- /**
129
- * Component to open in a popover for displaying the colors available.
130
- */
131
- export class ColorsPaletteComponent {
132
- constructor() {
133
- this._popover = inject(PopoverController);
134
- }
135
- pick(color) {
136
- this._popover.dismiss(color);
137
- }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- 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: `
140
- <ion-content>
141
- <ion-grid>
142
- <ion-row>
143
- @for (c of colors; track c) {
144
- <ion-col [size]="2">
145
- <ion-avatar
146
- class="colorCircle tappable"
147
- [style.background-color]="c.hex"
148
- [title]="c.name || c.hex"
149
- (click)="pick(c.hex)"
150
- >
151
- @if (c.hex === current) {
152
- <ion-icon name="checkmark" />
153
- }
154
- </ion-avatar>
155
- </ion-col>
156
- }
157
- </ion-row>
158
- </ion-grid>
159
- </ion-content>
160
- `, 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"] }] }); }
161
- }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, decorators: [{
163
- type: Component,
164
- args: [{ selector: 'idea-colors-palette', standalone: true, imports: [CommonModule, IonContent, IonGrid, IonRow, IonCol, IonAvatar, IonIcon], template: `
165
- <ion-content>
166
- <ion-grid>
167
- <ion-row>
168
- @for (c of colors; track c) {
169
- <ion-col [size]="2">
170
- <ion-avatar
171
- class="colorCircle tappable"
172
- [style.background-color]="c.hex"
173
- [title]="c.name || c.hex"
174
- (click)="pick(c.hex)"
175
- >
176
- @if (c.hex === current) {
177
- <ion-icon name="checkmark" />
178
- }
179
- </ion-avatar>
180
- </ion-col>
181
- }
182
- </ion-row>
183
- </ion-grid>
184
- </ion-content>
185
- `, 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"] }]
186
- }], propDecorators: { colors: [{
187
- type: Input
188
- }], current: [{
189
- type: Input
190
- }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29sb3JzL2NvbG9yUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU3Qzs7R0FFRztBQXFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBcEVyQztRQXFFRTs7V0FFRztRQUNNLFdBQU0sR0FBWSxNQUFNLENBQUM7UUFxQ2xDOztXQUVHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUM7O1dBRUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FpQjlDO0lBZkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTFCLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUk7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLEtBQUs7WUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FsRVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsMFZBaEV6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxtZ0JBN0JTLFlBQVksK0JBQUUsU0FBUyx1REFBRSxPQUFPLGdGQUFFLFFBQVEsNkZBQUUsT0FBTywySkFBRSxTQUFTLG9QQUFFLE9BQU87OzJGQWlFdEUsd0JBQXdCO2tCQXBFcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQ3hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJUOzhCQXdDUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNOztBQXFCVDs7R0FFRztBQThDSCxNQUFNLE9BQU8sc0JBQXNCO0lBN0NuQztRQThDVSxhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FjOUM7SUFIQyxJQUFJLENBQUMsS0FBYTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlJQXpDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCw4UEF0QlMsWUFBWSwrQkFBRSxVQUFVLHdLQUFFLE9BQU8sd0VBQUUsTUFBTSxvREFBRSxNQUFNLGtUQUFFLFNBQVMsdURBQUUsT0FBTzs7MkZBMENwRSxzQkFBc0I7a0JBN0NsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFDdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs4QkEwQlEsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQb3BvdmVyQ29udHJvbGxlcixcbiAgSW9uSXRlbSxcbiAgSW9uQnV0dG9uLFxuICBJb25JY29uLFxuICBJb25MYWJlbCxcbiAgSW9uVGV4dCxcbiAgSW9uQXZhdGFyLFxuICBJb25Db250ZW50LFxuICBJb25HcmlkLFxuICBJb25Sb3csXG4gIElvbkNvbFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbG9yLCBDT0xPUlMgfSBmcm9tICdpZGVhLXRvb2xib3gnO1xuXG4vKipcbiAqIFBpY2sgYSBjb2xvciBmcm9tIGEgZGVmaW5lZCBzZXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY29sb3ItcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQXZhdGFyLCBJb25UZXh0LCBJb25MYWJlbCwgSW9uSWNvbiwgSW9uQnV0dG9uLCBJb25JdGVtXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWl0ZW1cbiAgICAgIGNsYXNzPVwiY29sb3JQaWNrZXJJdGVtXCJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICBbbGluZXNdPVwibGluZXNcIlxuICAgICAgW2J1dHRvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgW3RpdGxlXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgIFtjbGFzcy53aXRoTGFiZWxdPVwibGFiZWxcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5QYWxldHRlKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzbG90PVwic3RhcnRcIiBbY29sb3JdPVwiaWNvbkNvbG9yXCIgKGNsaWNrKT1cImRvSWNvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChsYWJlbCkge1xuICAgICAgICA8aW9uLWxhYmVsIFtjbGFzcy5zZWxlY3RhYmxlXT1cIiFkaXNhYmxlZFwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgQGlmIChvYmxpZ2F0b3J5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwib2JsaWdhdG9yeURvdFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgIH1cbiAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJlbmRcIiBjbGFzcz1cImNvbG9yQ2lyY2xlXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY3VycmVudFwiIC8+XG4gICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjYXJldC1kb3duXCIgY2xhc3M9XCJzZWxlY3RJY29uXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCIgLz5cbiAgICAgIH1cbiAgICA8L2lvbi1pdGVtPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY29sb3JQaWNrZXJJdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAucGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgfVxuICAgICAgICAuc2VsZWN0SWNvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuc2VsZWN0SXRlbS53aXRoTGFiZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIC5zZWxlY3RJY29uIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgfVxuICAgICAgICBpb24tYnV0dG9uW3Nsb3Q9J3N0YXJ0J10ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zZWxlY3RhYmxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgaW9uLWF2YXRhci5jb2xvckNpcmNsZSB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElERUFDb2xvclBpY2tlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgcGlja2FibGUgY29sb3JzLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3JzOiBDb2xvcltdID0gQ09MT1JTO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgY29sb3IuXG4gICAqL1xuICBASW5wdXQoKSBjdXJyZW50OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIGljb25Db2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG9ibGlnYXRvcnkgZG90IGlzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgb2JsaWdhdG9yeTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIExpbmVzIHByZWZlcmVuY2VzIGZvciB0aGUgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpIGxpbmVzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3IgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogT24gc2VsZWN0IGV2ZW50LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAvKipcbiAgICogSWNvbiBzZWxlY3QuXG4gICAqL1xuICBAT3V0cHV0KCkgaWNvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wb3BvdmVyID0gaW5qZWN0KFBvcG92ZXJDb250cm9sbGVyKTtcblxuICBhc3luYyBvcGVuUGFsZXR0ZShldmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0geyBjb2xvcnM6IHRoaXMuY29sb3JzLCBjdXJyZW50OiB0aGlzLmN1cnJlbnQgfTtcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5fcG9wb3Zlci5jcmVhdGUoeyBjb21wb25lbnQ6IENvbG9yc1BhbGV0dGVDb21wb25lbnQsIGNvbXBvbmVudFByb3BzLCBldmVudCB9KTtcbiAgICBwb3BvdmVyLm9uRGlkRGlzbWlzcygpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEpIHRoaXMuc2VsZWN0LmVtaXQocmVzLmRhdGEpO1xuICAgIH0pO1xuICAgIHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgZG9JY29uU2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaWNvblNlbGVjdC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBvbmVudCB0byBvcGVuIGluIGEgcG9wb3ZlciBmb3IgZGlzcGxheWluZyB0aGUgY29sb3JzIGF2YWlsYWJsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jb2xvcnMtcGFsZXR0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkNvbnRlbnQsIElvbkdyaWQsIElvblJvdywgSW9uQ29sLCBJb25BdmF0YXIsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY29udGVudD5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgQGZvciAoYyBvZiBjb2xvcnM7IHRyYWNrIGMpIHtcbiAgICAgICAgICAgIDxpb24tY29sIFtzaXplXT1cIjJcIj5cbiAgICAgICAgICAgICAgPGlvbi1hdmF0YXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbG9yQ2lyY2xlIHRhcHBhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjLmhleFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImMubmFtZSB8fCBjLmhleFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBpY2soYy5oZXgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoYy5oZXggPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgICB9XG4gICAgICBpb24tYXZhdGFyLmNvbG9yQ2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIH1cbiAgICAgIC50YXBwYWJsZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIGlvbi1hdmF0YXIuY29sb3JDaXJjbGUgaW9uLWljb24ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yc1BhbGV0dGVDb21wb25lbnQge1xuICBwcml2YXRlIF9wb3BvdmVyID0gaW5qZWN0KFBvcG92ZXJDb250cm9sbGVyKTtcblxuICAvKipcbiAgICogVGhlIHBpY2thYmxlIGNvbG9ycy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yczogQ29sb3JbXTtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGNvbG9yLlxuICAgKi9cbiAgQElucHV0KCkgY3VycmVudDogc3RyaW5nO1xuXG4gIHBpY2soY29sb3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3BvcG92ZXIuZGlzbWlzcyhjb2xvcik7XG4gIH1cbn1cbiJdfQ==
@@ -1,188 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input, inject } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { AlertController, IonItem, IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';
5
- import { Contacts } from 'idea-toolbox';
6
- import { IDEATranslatePipe, IDEATranslationsService } from '@idea-ionic/common';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- export class IDEAContactsComponent {
10
- constructor() {
11
- this._alert = inject(AlertController);
12
- this._translate = inject(IDEATranslationsService);
13
- /**
14
- * The contacts to manage.
15
- */
16
- this.contacts = new Contacts();
17
- /**
18
- * If true, show the field `name`.
19
- */
20
- this.showName = false;
21
- /**
22
- * Whether the fields are editable or disabled.
23
- */
24
- this.editMode = true;
25
- }
26
- sendEmail() {
27
- if (!this.contacts.email)
28
- return;
29
- const url = `mailto:${this.contacts.email}`;
30
- this.preExternalAction(this.contacts.email, () => window.open(url, '_system'));
31
- }
32
- call() {
33
- if (!this.contacts.phone)
34
- return;
35
- const url = `tel:${this.contacts.phone}`;
36
- this.preExternalAction(this.contacts.phone, () => window.open(url, '_system'));
37
- }
38
- preExternalAction(message, cb) {
39
- const header = this._translate._('COMMON.DO_YOU_WANT_TO_PROCEED');
40
- const buttons = [
41
- { text: this._translate._('COMMON.CANCEL') },
42
- { text: this._translate._('COMMON.CONFIRM'), handler: () => cb() }
43
- ];
44
- const cssClass = 'selectableAlertMessage';
45
- this._alert.create({ header, message, buttons, cssClass }).then(alert => alert.present());
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- 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: `
49
- <div class="contacts">
50
- @if (showName) {
51
- <ion-item [lines]="lines" [color]="color">
52
- <ion-input
53
- autocomplete="new"
54
- labelPlacement="stacked"
55
- [label]="'IDEA_UNCOMMON.CONTACTS.NAME' | translate"
56
- [disabled]="!editMode"
57
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
58
- [title]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
59
- [(ngModel)]="contacts.name"
60
- />
61
- </ion-item>
62
- }
63
- <ion-item [lines]="lines" [color]="color">
64
- <ion-input
65
- autocomplete="new"
66
- labelPlacement="stacked"
67
- [label]="'IDEA_UNCOMMON.CONTACTS.PHONE' | translate"
68
- [disabled]="!editMode"
69
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
70
- [title]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
71
- [(ngModel)]="contacts.phone"
72
- />
73
- @if (!editMode) {
74
- <ion-button
75
- slot="end"
76
- fill="clear"
77
- color="dark"
78
- class="marginTop"
79
- [title]="'IDEA_UNCOMMON.CONTACTS.CALL' | translate"
80
- (click)="call()"
81
- >
82
- <ion-icon name="call" slot="icon-only" />
83
- </ion-button>
84
- }
85
- </ion-item>
86
- <ion-item [lines]="lines" [color]="color">
87
- <ion-input
88
- autocomplete="new"
89
- labelPlacement="stacked"
90
- [label]="'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate"
91
- [disabled]="!editMode"
92
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
93
- [title]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
94
- [(ngModel)]="contacts.email"
95
- />
96
- @if (!editMode) {
97
- <ion-button
98
- slot="end"
99
- fill="clear"
100
- color="dark"
101
- class="marginTop"
102
- [title]="'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate"
103
- (click)="sendEmail()"
104
- >
105
- <ion-icon name="mail" slot="icon-only" />
106
- </ion-button>
107
- }
108
- </ion-item>
109
- </div>
110
- `, 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"] }] }); }
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsComponent, decorators: [{
113
- type: Component,
114
- args: [{ selector: 'idea-contacts', standalone: true, imports: [CommonModule, FormsModule, IDEATranslatePipe, IonInput, IonIcon, IonButton, IonItem], template: `
115
- <div class="contacts">
116
- @if (showName) {
117
- <ion-item [lines]="lines" [color]="color">
118
- <ion-input
119
- autocomplete="new"
120
- labelPlacement="stacked"
121
- [label]="'IDEA_UNCOMMON.CONTACTS.NAME' | translate"
122
- [disabled]="!editMode"
123
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
124
- [title]="'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate"
125
- [(ngModel)]="contacts.name"
126
- />
127
- </ion-item>
128
- }
129
- <ion-item [lines]="lines" [color]="color">
130
- <ion-input
131
- autocomplete="new"
132
- labelPlacement="stacked"
133
- [label]="'IDEA_UNCOMMON.CONTACTS.PHONE' | translate"
134
- [disabled]="!editMode"
135
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
136
- [title]="'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate"
137
- [(ngModel)]="contacts.phone"
138
- />
139
- @if (!editMode) {
140
- <ion-button
141
- slot="end"
142
- fill="clear"
143
- color="dark"
144
- class="marginTop"
145
- [title]="'IDEA_UNCOMMON.CONTACTS.CALL' | translate"
146
- (click)="call()"
147
- >
148
- <ion-icon name="call" slot="icon-only" />
149
- </ion-button>
150
- }
151
- </ion-item>
152
- <ion-item [lines]="lines" [color]="color">
153
- <ion-input
154
- autocomplete="new"
155
- labelPlacement="stacked"
156
- [label]="'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate"
157
- [disabled]="!editMode"
158
- [placeholder]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
159
- [title]="'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate"
160
- [(ngModel)]="contacts.email"
161
- />
162
- @if (!editMode) {
163
- <ion-button
164
- slot="end"
165
- fill="clear"
166
- color="dark"
167
- class="marginTop"
168
- [title]="'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate"
169
- (click)="sendEmail()"
170
- >
171
- <ion-icon name="mail" slot="icon-only" />
172
- </ion-button>
173
- }
174
- </ion-item>
175
- </div>
176
- `, styles: [".marginTop{margin-top:14px}\n"] }]
177
- }], propDecorators: { contacts: [{
178
- type: Input
179
- }], showName: [{
180
- type: Input
181
- }], editMode: [{
182
- type: Input
183
- }], lines: [{
184
- type: Input
185
- }], color: [{
186
- type: Input
187
- }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBNkVoRixNQUFNLE9BQU8scUJBQXFCO0lBM0VsQztRQTRFVSxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNNLGFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzdDOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7V0FFRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7S0E4QjFCO0lBcEJDLFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxNQUFNLEdBQUcsR0FBRyxVQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxFQUFjO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUc7WUFDZCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM1QyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtTQUN6RSxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7OEdBNUNVLHFCQUFxQjtrR0FBckIscUJBQXFCLHVMQXZFdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOERULHNHQS9EUyxZQUFZLDhCQUFFLFdBQVcsMFZBQUUsaUJBQWlCLGtEQUFFLFFBQVEsOGVBQUUsT0FBTywySkFBRSxTQUFTLG9QQUFFLE9BQU87OzJGQXdFbEYscUJBQXFCO2tCQTNFakMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFDcEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOERUOzhCQWdCUSxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIsIElvbkl0ZW0sIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbnRhY3RzIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFUcmFuc2xhdGVQaXBlLCBJREVBVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY29udGFjdHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSURFQVRyYW5zbGF0ZVBpcGUsIElvbklucHV0LCBJb25JY29uLCBJb25CdXR0b24sIElvbkl0ZW1dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWN0c1wiPlxuICAgICAgQGlmIChzaG93TmFtZSkge1xuICAgICAgICA8aW9uLWl0ZW0gW2xpbmVzXT1cImxpbmVzXCIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3XCJcbiAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuTkFNRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuTkFNRV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuTkFNRV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRhY3RzLm5hbWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICB9XG4gICAgICA8aW9uLWl0ZW0gW2xpbmVzXT1cImxpbmVzXCIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXdcIlxuICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgW2xhYmVsXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLlBIT05FJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLlBIT05FX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuUEhPTkVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGFjdHMucGhvbmVcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKCFlZGl0TW9kZSkge1xuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICBzbG90PVwiZW5kXCJcbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYXJnaW5Ub3BcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLkNBTEwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjYWxsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FsbFwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9pb24taXRlbT5cbiAgICAgIDxpb24taXRlbSBbbGluZXNdPVwibGluZXNcIiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ld1wiXG4gICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRNb2RlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuRU1BSUxfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt0aXRsZV09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5FTUFJTF9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250YWN0cy5lbWFpbFwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAoIWVkaXRNb2RlKSB7XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIHNsb3Q9XCJlbmRcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgICBjbGFzcz1cIm1hcmdpblRvcFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuU0VORF9FTUFJTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRFbWFpbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIm1haWxcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5tYXJnaW5Ub3Age1xuICAgICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ29udGFjdHNDb21wb25lbnQge1xuICBwcml2YXRlIF9hbGVydCA9IGluamVjdChBbGVydENvbnRyb2xsZXIpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFjdHMgdG8gbWFuYWdlLlxuICAgKi9cbiAgQElucHV0KCkgY29udGFjdHM6IENvbnRhY3RzID0gbmV3IENvbnRhY3RzKCk7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBzaG93IHRoZSBmaWVsZCBgbmFtZWAuXG4gICAqL1xuICBASW5wdXQoKSBzaG93TmFtZSA9IGZhbHNlO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGRzIGFyZSBlZGl0YWJsZSBvciBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFRoZSBsaW5lcyBhdHRyaWJ1dGUgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBASW5wdXQoKSBsaW5lczogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbG9yIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBzZW5kRW1haWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhY3RzLmVtYWlsKSByZXR1cm47XG4gICAgY29uc3QgdXJsID0gYG1haWx0bzoke3RoaXMuY29udGFjdHMuZW1haWx9YDtcbiAgICB0aGlzLnByZUV4dGVybmFsQWN0aW9uKHRoaXMuY29udGFjdHMuZW1haWwsICgpOiBXaW5kb3cgPT4gd2luZG93Lm9wZW4odXJsLCAnX3N5c3RlbScpKTtcbiAgfVxuICBjYWxsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250YWN0cy5waG9uZSkgcmV0dXJuO1xuICAgIGNvbnN0IHVybCA9IGB0ZWw6JHt0aGlzLmNvbnRhY3RzLnBob25lfWA7XG4gICAgdGhpcy5wcmVFeHRlcm5hbEFjdGlvbih0aGlzLmNvbnRhY3RzLnBob25lLCAoKTogV2luZG93ID0+IHdpbmRvdy5vcGVuKHVybCwgJ19zeXN0ZW0nKSk7XG4gIH1cblxuICBwcml2YXRlIHByZUV4dGVybmFsQWN0aW9uKG1lc3NhZ2U6IHN0cmluZywgY2I6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkRPX1lPVV9XQU5UX1RPX1BST0NFRUQnKTtcbiAgICBjb25zdCBidXR0b25zID0gW1xuICAgICAgeyB0ZXh0OiB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkNBTkNFTCcpIH0sXG4gICAgICB7IHRleHQ6IHRoaXMuX3RyYW5zbGF0ZS5fKCdDT01NT04uQ09ORklSTScpLCBoYW5kbGVyOiAoKTogdm9pZCA9PiBjYigpIH1cbiAgICBdO1xuICAgIGNvbnN0IGNzc0NsYXNzID0gJ3NlbGVjdGFibGVBbGVydE1lc3NhZ2UnO1xuICAgIHRoaXMuX2FsZXJ0LmNyZWF0ZSh7IGhlYWRlciwgbWVzc2FnZSwgYnV0dG9ucywgY3NzQ2xhc3MgfSkudGhlbihhbGVydCA9PiBhbGVydC5wcmVzZW50KCkpO1xuICB9XG59XG4iXX0=