@idea-ionic/uncommon 8.2.6 → 8.2.8

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 (67) hide show
  1. package/esm2022/public-api.mjs +3 -12
  2. package/esm2022/src/AWSAPI.service.mjs +4 -3
  3. package/esm2022/src/AWSAPISocket.service.mjs +4 -3
  4. package/esm2022/src/address/address.component.mjs +320 -5
  5. package/esm2022/src/announcement/announcement.component.mjs +37 -6
  6. package/esm2022/src/colors/colorPicker.component.mjs +64 -8
  7. package/esm2022/src/contacts/contacts.component.mjs +131 -7
  8. package/esm2022/src/dateTime/calendarPicker.component.mjs +25 -8
  9. package/esm2022/src/dateTime/dateTime.component.mjs +90 -6
  10. package/esm2022/src/duration/duration.component.mjs +123 -5
  11. package/esm2022/src/echo/echo.page.mjs +74 -6
  12. package/esm2022/src/echo/echo.routes.mjs +6 -0
  13. package/esm2022/src/errorReporting.service.mjs +4 -3
  14. package/esm2022/src/mde/mde.component.mjs +106 -7
  15. package/esm2022/src/mde/mdeToolbar.component.mjs +17 -4
  16. package/esm2022/src/offline/cacheableResource.component.mjs +42 -4
  17. package/esm2022/src/offline/offline.service.mjs +4 -3
  18. package/esm2022/src/offline/offlineData.service.mjs +4 -3
  19. package/esm2022/src/offline/offlineIndicator.component.mjs +52 -5
  20. package/esm2022/src/offline/offlineManager.component.mjs +25 -8
  21. package/esm2022/src/pushNotifications.service.mjs +4 -3
  22. package/esm2022/src/sentiment/sentiment.component.mjs +47 -6
  23. package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +23 -7
  24. package/esm2022/src/timeInterval/timeInterval.component.mjs +89 -5
  25. package/fesm2022/idea-ionic-uncommon.mjs +1225 -212
  26. package/fesm2022/idea-ionic-uncommon.mjs.map +1 -1
  27. package/package.json +1 -1
  28. package/public-api.d.ts +2 -11
  29. package/src/address/address.component.d.ts +1 -1
  30. package/src/announcement/announcement.component.d.ts +1 -1
  31. package/src/colors/colorPicker.component.d.ts +2 -2
  32. package/src/contacts/contacts.component.d.ts +1 -1
  33. package/src/dateTime/calendarPicker.component.d.ts +1 -1
  34. package/src/dateTime/dateTime.component.d.ts +1 -1
  35. package/src/duration/duration.component.d.ts +1 -1
  36. package/src/echo/echo.page.d.ts +1 -1
  37. package/src/echo/echo.routes.d.ts +2 -0
  38. package/src/mde/mde.component.d.ts +1 -1
  39. package/src/mde/mdeToolbar.component.d.ts +1 -1
  40. package/src/offline/cacheableResource.component.d.ts +1 -1
  41. package/src/offline/offlineIndicator.component.d.ts +1 -1
  42. package/src/offline/offlineManager.component.d.ts +1 -1
  43. package/src/sentiment/sentiment.component.d.ts +1 -1
  44. package/src/timeInterval/fromTimeToTime.component.d.ts +1 -1
  45. package/src/timeInterval/timeInterval.component.d.ts +1 -1
  46. package/esm2022/src/address/address.module.mjs +0 -21
  47. package/esm2022/src/announcement/announcement.module.mjs +0 -21
  48. package/esm2022/src/colors/colorPicker.module.mjs +0 -20
  49. package/esm2022/src/contacts/contacts.module.mjs +0 -21
  50. package/esm2022/src/dateTime/dateTime.module.mjs +0 -22
  51. package/esm2022/src/duration/duration.module.mjs +0 -21
  52. package/esm2022/src/echo/echo.module.mjs +0 -26
  53. package/esm2022/src/mde/mde.module.mjs +0 -22
  54. package/esm2022/src/offline/offline.module.mjs +0 -22
  55. package/esm2022/src/sentiment/sentiment.module.mjs +0 -21
  56. package/esm2022/src/timeInterval/timeInterval.module.mjs +0 -22
  57. package/src/address/address.module.d.ts +0 -11
  58. package/src/announcement/announcement.module.d.ts +0 -11
  59. package/src/colors/colorPicker.module.d.ts +0 -10
  60. package/src/contacts/contacts.module.d.ts +0 -11
  61. package/src/dateTime/dateTime.module.d.ts +0 -12
  62. package/src/duration/duration.module.d.ts +0 -11
  63. package/src/echo/echo.module.d.ts +0 -12
  64. package/src/mde/mde.module.d.ts +0 -12
  65. package/src/offline/offline.module.d.ts +0 -12
  66. package/src/sentiment/sentiment.module.d.ts +0 -11
  67. package/src/timeInterval/timeInterval.module.d.ts +0 -12
@@ -1,8 +1,8 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
2
- import { PopoverController } from '@ionic/angular/standalone';
3
+ import { PopoverController, IonItem, IonButton, IonIcon, IonLabel, IonText, IonAvatar, IonContent, IonGrid, IonRow, IonCol } from '@ionic/angular/standalone';
3
4
  import { COLORS } from 'idea-toolbox';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@ionic/angular";
6
6
  /**
7
7
  * Pick a color from a defined set.
8
8
  */
@@ -39,11 +39,67 @@ export class IDEAColorPickerComponent {
39
39
  this.iconSelect.emit(event);
40
40
  }
41
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, 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: "<ion-item\n class=\"colorPickerItem\"\n [color]=\"color\"\n [lines]=\"lines\"\n [button]=\"!disabled\"\n [title]=\"placeholder || ''\"\n [class.withLabel]=\"label\"\n (click)=\"openPalette($event)\"\n>\n @if (icon) {\n <ion-button fill=\"clear\" slot=\"start\" [color]=\"iconColor\" (click)=\"doIconSelect($event)\">\n <ion-icon [name]=\"icon\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (label) {\n <ion-label [class.selectable]=\"!disabled\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-avatar slot=\"end\" class=\"colorCircle\" [style.background-color]=\"current\" />\n @if (!disabled) {\n <ion-icon slot=\"end\" name=\"caret-down\" class=\"selectIcon\" [class.selectable]=\"!disabled\" />\n }\n</ion-item>\n", 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: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
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"] }] }); }
43
71
  }
44
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAColorPickerComponent, decorators: [{
45
73
  type: Component,
46
- args: [{ selector: 'idea-color-picker', template: "<ion-item\n class=\"colorPickerItem\"\n [color]=\"color\"\n [lines]=\"lines\"\n [button]=\"!disabled\"\n [title]=\"placeholder || ''\"\n [class.withLabel]=\"label\"\n (click)=\"openPalette($event)\"\n>\n @if (icon) {\n <ion-button fill=\"clear\" slot=\"start\" [color]=\"iconColor\" (click)=\"doIconSelect($event)\">\n <ion-icon [name]=\"icon\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (label) {\n <ion-label [class.selectable]=\"!disabled\">\n {{ label }}\n @if (obligatory && !disabled) {\n <ion-text class=\"obligatoryDot\" />\n }\n </ion-label>\n }\n <ion-avatar slot=\"end\" class=\"colorCircle\" [style.background-color]=\"current\" />\n @if (!disabled) {\n <ion-icon slot=\"end\" name=\"caret-down\" class=\"selectIcon\" [class.selectable]=\"!disabled\" />\n }\n</ion-item>\n", 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"] }]
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"] }]
47
103
  }], propDecorators: { colors: [{
48
104
  type: Input
49
105
  }], current: [{
@@ -80,7 +136,7 @@ export class ColorsPaletteComponent {
80
136
  this._popover.dismiss(color);
81
137
  }
82
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
- 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: `
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: `
84
140
  <ion-content>
85
141
  <ion-grid>
86
142
  <ion-row>
@@ -101,11 +157,11 @@ export class ColorsPaletteComponent {
101
157
  </ion-row>
102
158
  </ion-grid>
103
159
  </ion-content>
104
- `, 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: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.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.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }] }); }
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"] }] }); }
105
161
  }
106
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColorsPaletteComponent, decorators: [{
107
163
  type: Component,
108
- args: [{ selector: 'idea-colors-palette', template: `
164
+ args: [{ selector: 'idea-colors-palette', standalone: true, imports: [CommonModule, IonContent, IonGrid, IonRow, IonCol, IonAvatar, IonIcon], template: `
109
165
  <ion-content>
110
166
  <ion-grid>
111
167
  <ion-row>
@@ -132,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
132
188
  }], current: [{
133
189
  type: Input
134
190
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29sb3JzL2NvbG9yUGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL2NvbG9ycy9jb2xvclBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFN0M7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTUU7O1dBRUc7UUFDTSxXQUFNLEdBQVksTUFBTSxDQUFDO1FBcUNsQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDOztXQUVHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBaUI5QztJQWZDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBVTtRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUUxQixNQUFNLGNBQWMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxLQUFLO1lBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBbEVVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHNVQ1pyQywrMEJBMkJBOzsyRkRmYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQVFwQixNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNOztBQXFCVDs7R0FFRztBQTRDSCxNQUFNLE9BQU8sc0JBQXNCO0lBM0NuQztRQTRDVSxhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FjOUM7SUFIQyxJQUFJLENBQUMsS0FBYTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDZHQXpDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs7MkZBb0JVLHNCQUFzQjtrQkEzQ2xDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7OEJBMEJRLE1BQU07c0JBQWQsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgQ29sb3IsIENPTE9SUyB9IGZyb20gJ2lkZWEtdG9vbGJveCc7XG5cbi8qKlxuICogUGljayBhIGNvbG9yIGZyb20gYSBkZWZpbmVkIHNldC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jb2xvci1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJ2NvbG9yUGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvbG9yUGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQUNvbG9yUGlja2VyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBwaWNrYWJsZSBjb2xvcnMuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcnM6IENvbG9yW10gPSBDT0xPUlM7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBjb2xvci5cbiAgICovXG4gIEBJbnB1dCgpIGN1cnJlbnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgcGxhY2Vob2xkZXIgZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbG9yIG9mIHRoZSBpY29uLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbkNvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgb2JsaWdhdG9yeSBkb3QgaXMgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKSBvYmxpZ2F0b3J5OiBib29sZWFuO1xuICAvKipcbiAgICogTGluZXMgcHJlZmVyZW5jZXMgZm9yIHRoZSBpdGVtLlxuICAgKi9cbiAgQElucHV0KCkgbGluZXM6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPbiBzZWxlY3QgZXZlbnQuXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIC8qKlxuICAgKiBJY29uIHNlbGVjdC5cbiAgICovXG4gIEBPdXRwdXQoKSBpY29uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3BvcG92ZXIgPSBpbmplY3QoUG9wb3ZlckNvbnRyb2xsZXIpO1xuXG4gIGFzeW5jIG9wZW5QYWxldHRlKGV2ZW50OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29tcG9uZW50UHJvcHMgPSB7IGNvbG9yczogdGhpcy5jb2xvcnMsIGN1cnJlbnQ6IHRoaXMuY3VycmVudCB9O1xuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLl9wb3BvdmVyLmNyZWF0ZSh7IGNvbXBvbmVudDogQ29sb3JzUGFsZXR0ZUNvbXBvbmVudCwgY29tcG9uZW50UHJvcHMsIGV2ZW50IH0pO1xuICAgIHBvcG92ZXIub25EaWREaXNtaXNzKCkudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSkgdGhpcy5zZWxlY3QuZW1pdChyZXMuZGF0YSk7XG4gICAgfSk7XG4gICAgcG9wb3Zlci5wcmVzZW50KCk7XG4gIH1cblxuICBkb0ljb25TZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pY29uU2VsZWN0LmVtaXQoZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIG9wZW4gaW4gYSBwb3BvdmVyIGZvciBkaXNwbGF5aW5nIHRoZSBjb2xvcnMgYXZhaWxhYmxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWNvbG9ycy1wYWxldHRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICA8aW9uLWdyaWQ+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIEBmb3IgKGMgb2YgY29sb3JzOyB0cmFjayBjKSB7XG4gICAgICAgICAgICA8aW9uLWNvbCBbc2l6ZV09XCIyXCI+XG4gICAgICAgICAgICAgIDxpb24tYXZhdGFyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvckNpcmNsZSB0YXBwYWJsZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYy5oZXhcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjLm5hbWUgfHwgYy5oZXhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwaWNrKGMuaGV4KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGMuaGV4ID09PSBjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFya1wiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2lvbi1hdmF0YXI+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICAgICAgfVxuICAgICAgaW9uLWF2YXRhci5jb2xvckNpcmNsZSB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgICAudGFwcGFibGUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgICBpb24tYXZhdGFyLmNvbG9yQ2lyY2xlIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2xvcnNQYWxldHRlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfcG9wb3ZlciA9IGluamVjdChQb3BvdmVyQ29udHJvbGxlcik7XG5cbiAgLyoqXG4gICAqIFRoZSBwaWNrYWJsZSBjb2xvcnMuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcnM6IENvbG9yW107XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBjb2xvci5cbiAgICovXG4gIEBJbnB1dCgpIGN1cnJlbnQ6IHN0cmluZztcblxuICBwaWNrKGNvbG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3BvdmVyLmRpc21pc3MoY29sb3IpO1xuICB9XG59XG4iLCI8aW9uLWl0ZW1cbiAgY2xhc3M9XCJjb2xvclBpY2tlckl0ZW1cIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICBbbGluZXNdPVwibGluZXNcIlxuICBbYnV0dG9uXT1cIiFkaXNhYmxlZFwiXG4gIFt0aXRsZV09XCJwbGFjZWhvbGRlciB8fCAnJ1wiXG4gIFtjbGFzcy53aXRoTGFiZWxdPVwibGFiZWxcIlxuICAoY2xpY2spPVwib3BlblBhbGV0dGUoJGV2ZW50KVwiXG4+XG4gIEBpZiAoaWNvbikge1xuICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIHNsb3Q9XCJzdGFydFwiIFtjb2xvcl09XCJpY29uQ29sb3JcIiAoY2xpY2spPVwiZG9JY29uU2VsZWN0KCRldmVudClcIj5cbiAgICAgIDxpb24taWNvbiBbbmFtZV09XCJpY29uXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgPC9pb24tYnV0dG9uPlxuICB9XG4gIEBpZiAobGFiZWwpIHtcbiAgICA8aW9uLWxhYmVsIFtjbGFzcy5zZWxlY3RhYmxlXT1cIiFkaXNhYmxlZFwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICAgIEBpZiAob2JsaWdhdG9yeSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwib2JsaWdhdG9yeURvdFwiIC8+XG4gICAgICB9XG4gICAgPC9pb24tbGFiZWw+XG4gIH1cbiAgPGlvbi1hdmF0YXIgc2xvdD1cImVuZFwiIGNsYXNzPVwiY29sb3JDaXJjbGVcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjdXJyZW50XCIgLz5cbiAgQGlmICghZGlzYWJsZWQpIHtcbiAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjYXJldC1kb3duXCIgY2xhc3M9XCJzZWxlY3RJY29uXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCIgLz5cbiAgfVxuPC9pb24taXRlbT5cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JQaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29sb3JzL2NvbG9yUGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU3Qzs7R0FFRztBQXFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBcEVyQztRQXFFRTs7V0FFRztRQUNNLFdBQU0sR0FBWSxNQUFNLENBQUM7UUFxQ2xDOztXQUVHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUM7O1dBRUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FpQjlDO0lBZkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTFCLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUk7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLEtBQUs7WUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FsRVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsMFZBaEV6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxtZ0JBN0JTLFlBQVksK0JBQUUsU0FBUyx1REFBRSxPQUFPLGdGQUFFLFFBQVEsNkZBQUUsT0FBTywySkFBRSxTQUFTLG9QQUFFLE9BQU87OzJGQWlFdEUsd0JBQXdCO2tCQXBFcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQ3hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJUOzhCQXdDUSxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNOztBQXFCVDs7R0FFRztBQThDSCxNQUFNLE9BQU8sc0JBQXNCO0lBN0NuQztRQThDVSxhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FjOUM7SUFIQyxJQUFJLENBQUMsS0FBYTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWRVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlJQXpDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCw4UEF0QlMsWUFBWSwrQkFBRSxVQUFVLHdLQUFFLE9BQU8sd0VBQUUsTUFBTSxvREFBRSxNQUFNLGtUQUFFLFNBQVMsdURBQUUsT0FBTzs7MkZBMENwRSxzQkFBc0I7a0JBN0NsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFDdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs4QkEwQlEsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQb3BvdmVyQ29udHJvbGxlcixcbiAgSW9uSXRlbSxcbiAgSW9uQnV0dG9uLFxuICBJb25JY29uLFxuICBJb25MYWJlbCxcbiAgSW9uVGV4dCxcbiAgSW9uQXZhdGFyLFxuICBJb25Db250ZW50LFxuICBJb25HcmlkLFxuICBJb25Sb3csXG4gIElvbkNvbFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbG9yLCBDT0xPUlMgfSBmcm9tICdpZGVhLXRvb2xib3gnO1xuXG4vKipcbiAqIFBpY2sgYSBjb2xvciBmcm9tIGEgZGVmaW5lZCBzZXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY29sb3ItcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQXZhdGFyLCBJb25UZXh0LCBJb25MYWJlbCwgSW9uSWNvbiwgSW9uQnV0dG9uLCBJb25JdGVtXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWl0ZW1cbiAgICAgIGNsYXNzPVwiY29sb3JQaWNrZXJJdGVtXCJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICBbbGluZXNdPVwibGluZXNcIlxuICAgICAgW2J1dHRvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgW3RpdGxlXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgIFtjbGFzcy53aXRoTGFiZWxdPVwibGFiZWxcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5QYWxldHRlKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzbG90PVwic3RhcnRcIiBbY29sb3JdPVwiaWNvbkNvbG9yXCIgKGNsaWNrKT1cImRvSWNvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChsYWJlbCkge1xuICAgICAgICA8aW9uLWxhYmVsIFtjbGFzcy5zZWxlY3RhYmxlXT1cIiFkaXNhYmxlZFwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgQGlmIChvYmxpZ2F0b3J5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwib2JsaWdhdG9yeURvdFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgIH1cbiAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJlbmRcIiBjbGFzcz1cImNvbG9yQ2lyY2xlXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY3VycmVudFwiIC8+XG4gICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjYXJldC1kb3duXCIgY2xhc3M9XCJzZWxlY3RJY29uXCIgW2NsYXNzLnNlbGVjdGFibGVdPVwiIWRpc2FibGVkXCIgLz5cbiAgICAgIH1cbiAgICA8L2lvbi1pdGVtPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY29sb3JQaWNrZXJJdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAucGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgfVxuICAgICAgICAuc2VsZWN0SWNvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuc2VsZWN0SXRlbS53aXRoTGFiZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIC5zZWxlY3RJY29uIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgfVxuICAgICAgICBpb24tYnV0dG9uW3Nsb3Q9J3N0YXJ0J10ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zZWxlY3RhYmxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgaW9uLWF2YXRhci5jb2xvckNpcmNsZSB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElERUFDb2xvclBpY2tlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgcGlja2FibGUgY29sb3JzLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3JzOiBDb2xvcltdID0gQ09MT1JTO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgY29sb3IuXG4gICAqL1xuICBASW5wdXQoKSBjdXJyZW50OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIGljb25Db2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG9ibGlnYXRvcnkgZG90IGlzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgb2JsaWdhdG9yeTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIExpbmVzIHByZWZlcmVuY2VzIGZvciB0aGUgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpIGxpbmVzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3IgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogT24gc2VsZWN0IGV2ZW50LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAvKipcbiAgICogSWNvbiBzZWxlY3QuXG4gICAqL1xuICBAT3V0cHV0KCkgaWNvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wb3BvdmVyID0gaW5qZWN0KFBvcG92ZXJDb250cm9sbGVyKTtcblxuICBhc3luYyBvcGVuUGFsZXR0ZShldmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0geyBjb2xvcnM6IHRoaXMuY29sb3JzLCBjdXJyZW50OiB0aGlzLmN1cnJlbnQgfTtcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5fcG9wb3Zlci5jcmVhdGUoeyBjb21wb25lbnQ6IENvbG9yc1BhbGV0dGVDb21wb25lbnQsIGNvbXBvbmVudFByb3BzLCBldmVudCB9KTtcbiAgICBwb3BvdmVyLm9uRGlkRGlzbWlzcygpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEpIHRoaXMuc2VsZWN0LmVtaXQocmVzLmRhdGEpO1xuICAgIH0pO1xuICAgIHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgZG9JY29uU2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaWNvblNlbGVjdC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBvbmVudCB0byBvcGVuIGluIGEgcG9wb3ZlciBmb3IgZGlzcGxheWluZyB0aGUgY29sb3JzIGF2YWlsYWJsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jb2xvcnMtcGFsZXR0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkNvbnRlbnQsIElvbkdyaWQsIElvblJvdywgSW9uQ29sLCBJb25BdmF0YXIsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY29udGVudD5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgQGZvciAoYyBvZiBjb2xvcnM7IHRyYWNrIGMpIHtcbiAgICAgICAgICAgIDxpb24tY29sIFtzaXplXT1cIjJcIj5cbiAgICAgICAgICAgICAgPGlvbi1hdmF0YXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbG9yQ2lyY2xlIHRhcHBhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjLmhleFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImMubmFtZSB8fCBjLmhleFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBpY2soYy5oZXgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoYy5oZXggPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci13aGl0ZSk7XG4gICAgICB9XG4gICAgICBpb24tYXZhdGFyLmNvbG9yQ2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIH1cbiAgICAgIC50YXBwYWJsZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIGlvbi1hdmF0YXIuY29sb3JDaXJjbGUgaW9uLWljb24ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yc1BhbGV0dGVDb21wb25lbnQge1xuICBwcml2YXRlIF9wb3BvdmVyID0gaW5qZWN0KFBvcG92ZXJDb250cm9sbGVyKTtcblxuICAvKipcbiAgICogVGhlIHBpY2thYmxlIGNvbG9ycy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yczogQ29sb3JbXTtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGNvbG9yLlxuICAgKi9cbiAgQElucHV0KCkgY3VycmVudDogc3RyaW5nO1xuXG4gIHBpY2soY29sb3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3BvcG92ZXIuZGlzbWlzcyhjb2xvcik7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { Component, Input, inject } from '@angular/core';
2
- import { AlertController } from '@ionic/angular/standalone';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { AlertController, IonItem, IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';
3
5
  import { Contacts } from 'idea-toolbox';
4
- import { IDEATranslationsService } from '@idea-ionic/common';
6
+ import { IDEASelectComponent, IDEATranslatePipe, IDEATranslationsService } from '@idea-ionic/common';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "@angular/forms";
7
- import * as i2 from "@ionic/angular";
8
- import * as i3 from "@idea-ionic/common";
9
9
  export class IDEAContactsComponent {
10
10
  constructor() {
11
11
  this._alert = inject(AlertController);
@@ -45,11 +45,135 @@ export class IDEAContactsComponent {
45
45
  this._alert.create({ header, message, buttons, cssClass }).then(alert => alert.present());
46
46
  }
47
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, selector: "idea-contacts", inputs: { contacts: "contacts", showName: "showName", editMode: "editMode", lines: "lines", color: "color" }, ngImport: i0, template: "<div class=\"contacts\">\n @if (showName) {\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.NAME' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate\"\n [(ngModel)]=\"contacts.name\"\n />\n </ion-item>\n }\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.PHONE' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate\"\n [(ngModel)]=\"contacts.phone\"\n />\n @if (!editMode) {\n <ion-button\n slot=\"end\"\n fill=\"clear\"\n color=\"dark\"\n class=\"marginTop\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.CALL' | translate\"\n (click)=\"call()\"\n >\n <ion-icon name=\"call\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-item>\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate\"\n [(ngModel)]=\"contacts.email\"\n />\n @if (!editMode) {\n <ion-button\n slot=\"end\"\n fill=\"clear\"\n color=\"dark\"\n class=\"marginTop\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate\"\n (click)=\"sendEmail()\"\n >\n <ion-icon name=\"mail\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-item>\n</div>\n", styles: [".marginTop{margin-top:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.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: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
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"] }] }); }
49
111
  }
50
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAContactsComponent, decorators: [{
51
113
  type: Component,
52
- args: [{ selector: 'idea-contacts', template: "<div class=\"contacts\">\n @if (showName) {\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.NAME' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.NAME_HINT' | translate\"\n [(ngModel)]=\"contacts.name\"\n />\n </ion-item>\n }\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.PHONE' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.PHONE_HINT' | translate\"\n [(ngModel)]=\"contacts.phone\"\n />\n @if (!editMode) {\n <ion-button\n slot=\"end\"\n fill=\"clear\"\n color=\"dark\"\n class=\"marginTop\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.CALL' | translate\"\n (click)=\"call()\"\n >\n <ion-icon name=\"call\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-item>\n <ion-item [lines]=\"lines\" [color]=\"color\">\n <ion-input\n autocomplete=\"new\"\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL' | translate\"\n [disabled]=\"!editMode\"\n [placeholder]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.EMAIL_HINT' | translate\"\n [(ngModel)]=\"contacts.email\"\n />\n @if (!editMode) {\n <ion-button\n slot=\"end\"\n fill=\"clear\"\n color=\"dark\"\n class=\"marginTop\"\n [title]=\"'IDEA_UNCOMMON.CONTACTS.SEND_EMAIL' | translate\"\n (click)=\"sendEmail()\"\n >\n <ion-icon name=\"mail\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-item>\n</div>\n", styles: [".marginTop{margin-top:14px}\n"] }]
114
+ args: [{ selector: 'idea-contacts', standalone: true, imports: [CommonModule, FormsModule, IDEATranslatePipe, IDEASelectComponent, 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"] }]
53
177
  }], propDecorators: { contacts: [{
54
178
  type: Input
55
179
  }], showName: [{
@@ -61,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
61
185
  }], color: [{
62
186
  type: Input
63
187
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQU83RCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDTSxhQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM3Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsSUFBSSxDQUFDO0tBOEIxQjtJQXBCQyxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUFFLE9BQU87UUFDakMsTUFBTSxHQUFHLEdBQUcsVUFBVSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUFFLE9BQU87UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUFlLEVBQUUsRUFBYztRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHO1lBQ2QsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7U0FDekUsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQTVDVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixtS0NWbEMsdTlEQTZEQTs7MkZEbkRhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzhCQVdoQixRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbnRhY3RzIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jb250YWN0cycsXG4gIHRlbXBsYXRlVXJsOiAnY29udGFjdHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY29udGFjdHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ29udGFjdHNDb21wb25lbnQge1xuICBwcml2YXRlIF9hbGVydCA9IGluamVjdChBbGVydENvbnRyb2xsZXIpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFjdHMgdG8gbWFuYWdlLlxuICAgKi9cbiAgQElucHV0KCkgY29udGFjdHM6IENvbnRhY3RzID0gbmV3IENvbnRhY3RzKCk7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBzaG93IHRoZSBmaWVsZCBgbmFtZWAuXG4gICAqL1xuICBASW5wdXQoKSBzaG93TmFtZSA9IGZhbHNlO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGRzIGFyZSBlZGl0YWJsZSBvciBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFRoZSBsaW5lcyBhdHRyaWJ1dGUgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBASW5wdXQoKSBsaW5lczogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbG9yIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBzZW5kRW1haWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhY3RzLmVtYWlsKSByZXR1cm47XG4gICAgY29uc3QgdXJsID0gYG1haWx0bzoke3RoaXMuY29udGFjdHMuZW1haWx9YDtcbiAgICB0aGlzLnByZUV4dGVybmFsQWN0aW9uKHRoaXMuY29udGFjdHMuZW1haWwsICgpOiBXaW5kb3cgPT4gd2luZG93Lm9wZW4odXJsLCAnX3N5c3RlbScpKTtcbiAgfVxuICBjYWxsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250YWN0cy5waG9uZSkgcmV0dXJuO1xuICAgIGNvbnN0IHVybCA9IGB0ZWw6JHt0aGlzLmNvbnRhY3RzLnBob25lfWA7XG4gICAgdGhpcy5wcmVFeHRlcm5hbEFjdGlvbih0aGlzLmNvbnRhY3RzLnBob25lLCAoKTogV2luZG93ID0+IHdpbmRvdy5vcGVuKHVybCwgJ19zeXN0ZW0nKSk7XG4gIH1cblxuICBwcml2YXRlIHByZUV4dGVybmFsQWN0aW9uKG1lc3NhZ2U6IHN0cmluZywgY2I6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkRPX1lPVV9XQU5UX1RPX1BST0NFRUQnKTtcbiAgICBjb25zdCBidXR0b25zID0gW1xuICAgICAgeyB0ZXh0OiB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkNBTkNFTCcpIH0sXG4gICAgICB7IHRleHQ6IHRoaXMuX3RyYW5zbGF0ZS5fKCdDT01NT04uQ09ORklSTScpLCBoYW5kbGVyOiAoKTogdm9pZCA9PiBjYigpIH1cbiAgICBdO1xuICAgIGNvbnN0IGNzc0NsYXNzID0gJ3NlbGVjdGFibGVBbGVydE1lc3NhZ2UnO1xuICAgIHRoaXMuX2FsZXJ0LmNyZWF0ZSh7IGhlYWRlciwgbWVzc2FnZSwgYnV0dG9ucywgY3NzQ2xhc3MgfSkudGhlbihhbGVydCA9PiBhbGVydC5wcmVzZW50KCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFjdHNcIj5cbiAgQGlmIChzaG93TmFtZSkge1xuICAgIDxpb24taXRlbSBbbGluZXNdPVwibGluZXNcIiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICAgIDxpb24taW5wdXRcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3XCJcbiAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgW2xhYmVsXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLk5BTUUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5OQU1FX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLk5BTUVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRhY3RzLm5hbWVcIlxuICAgICAgLz5cbiAgICA8L2lvbi1pdGVtPlxuICB9XG4gIDxpb24taXRlbSBbbGluZXNdPVwibGluZXNcIiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICA8aW9uLWlucHV0XG4gICAgICBhdXRvY29tcGxldGU9XCJuZXdcIlxuICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgIFtsYWJlbF09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5QSE9ORScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuUEhPTkVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLlBIT05FX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFsobmdNb2RlbCldPVwiY29udGFjdHMucGhvbmVcIlxuICAgIC8+XG4gICAgQGlmICghZWRpdE1vZGUpIHtcbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIHNsb3Q9XCJlbmRcIlxuICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICBjbGFzcz1cIm1hcmdpblRvcFwiXG4gICAgICAgIFt0aXRsZV09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5DQUxMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJjYWxsKClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbGxcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICB9XG4gIDwvaW9uLWl0ZW0+XG4gIDxpb24taXRlbSBbbGluZXNdPVwibGluZXNcIiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICA8aW9uLWlucHV0XG4gICAgICBhdXRvY29tcGxldGU9XCJuZXdcIlxuICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgIFtsYWJlbF09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5FTUFJTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuRU1BSUxfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFsobmdNb2RlbCldPVwiY29udGFjdHMuZW1haWxcIlxuICAgIC8+XG4gICAgQGlmICghZWRpdE1vZGUpIHtcbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIHNsb3Q9XCJlbmRcIlxuICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICBjbGFzcz1cIm1hcmdpblRvcFwiXG4gICAgICAgIFt0aXRsZV09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5TRU5EX0VNQUlMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzZW5kRW1haWwoKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwibWFpbFwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIH1cbiAgPC9pb24taXRlbT5cbjwvZGl2PlxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvY29udGFjdHMvY29udGFjdHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBNkVyRyxNQUFNLE9BQU8scUJBQXFCO0lBM0VsQztRQTRFVSxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNNLGFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzdDOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7V0FFRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7S0E4QjFCO0lBcEJDLFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxNQUFNLEdBQUcsR0FBRyxVQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxFQUFjO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUc7WUFDZCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM1QyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtTQUN6RSxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7OEdBNUNVLHFCQUFxQjtrR0FBckIscUJBQXFCLHVMQXZFdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOERULHNHQS9EUyxZQUFZLDhCQUFFLFdBQVcsMFZBQUUsaUJBQWlCLGtEQUF1QixRQUFRLDhlQUFFLE9BQU8sMkpBQUUsU0FBUyxvUEFBRSxPQUFPOzsyRkF3RXZHLHFCQUFxQjtrQkEzRWpDLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQ3pHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThEVDs4QkFnQlEsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBJb25JdGVtLCBJb25CdXR0b24sIElvbkljb24sIElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb250YWN0cyB9IGZyb20gJ2lkZWEtdG9vbGJveCc7XG5pbXBvcnQgeyBJREVBU2VsZWN0Q29tcG9uZW50LCBJREVBVHJhbnNsYXRlUGlwZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWNvbnRhY3RzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElERUFUcmFuc2xhdGVQaXBlLCBJREVBU2VsZWN0Q29tcG9uZW50LCBJb25JbnB1dCwgSW9uSWNvbiwgSW9uQnV0dG9uLCBJb25JdGVtXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFjdHNcIj5cbiAgICAgIEBpZiAoc2hvd05hbWUpIHtcbiAgICAgICAgPGlvbi1pdGVtIFtsaW5lc109XCJsaW5lc1wiIFtjb2xvcl09XCJjb2xvclwiPlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ld1wiXG4gICAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLk5BTUUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdE1vZGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLk5BTUVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLk5BTUVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250YWN0cy5uYW1lXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgfVxuICAgICAgPGlvbi1pdGVtIFtsaW5lc109XCJsaW5lc1wiIFtjb2xvcl09XCJjb2xvclwiPlxuICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3XCJcbiAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgIFtsYWJlbF09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5QSE9ORScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdE1vZGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5QSE9ORV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLlBIT05FX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRhY3RzLnBob25lXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmICghZWRpdE1vZGUpIHtcbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgc2xvdD1cImVuZFwiXG4gICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICAgIGNsYXNzPVwibWFyZ2luVG9wXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9VTkNPTU1PTi5DT05UQUNUUy5DQUxMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FsbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbGxcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICA8aW9uLWl0ZW0gW2xpbmVzXT1cImxpbmVzXCIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXdcIlxuICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgW2xhYmVsXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLkVNQUlMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0TW9kZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0lERUFfVU5DT01NT04uQ09OVEFDVFMuRU1BSUxfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGFjdHMuZW1haWxcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKCFlZGl0TW9kZSkge1xuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICBzbG90PVwiZW5kXCJcbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYXJnaW5Ub3BcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLkNPTlRBQ1RTLlNFTkRfRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZW5kRW1haWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1pdGVtPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubWFyZ2luVG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSURFQUNvbnRhY3RzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfYWxlcnQgPSBpbmplY3QoQWxlcnRDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlID0gaW5qZWN0KElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGhlIGNvbnRhY3RzIHRvIG1hbmFnZS5cbiAgICovXG4gIEBJbnB1dCgpIGNvbnRhY3RzOiBDb250YWN0cyA9IG5ldyBDb250YWN0cygpO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgc2hvdyB0aGUgZmllbGQgYG5hbWVgLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd05hbWUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkcyBhcmUgZWRpdGFibGUgb3IgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoKSBlZGl0TW9kZSA9IHRydWU7XG4gIC8qKlxuICAgKiBUaGUgbGluZXMgYXR0cmlidXRlIG9mIHRoZSBpdGVtLlxuICAgKi9cbiAgQElucHV0KCkgbGluZXM6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XG5cbiAgc2VuZEVtYWlsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250YWN0cy5lbWFpbCkgcmV0dXJuO1xuICAgIGNvbnN0IHVybCA9IGBtYWlsdG86JHt0aGlzLmNvbnRhY3RzLmVtYWlsfWA7XG4gICAgdGhpcy5wcmVFeHRlcm5hbEFjdGlvbih0aGlzLmNvbnRhY3RzLmVtYWlsLCAoKTogV2luZG93ID0+IHdpbmRvdy5vcGVuKHVybCwgJ19zeXN0ZW0nKSk7XG4gIH1cbiAgY2FsbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udGFjdHMucGhvbmUpIHJldHVybjtcbiAgICBjb25zdCB1cmwgPSBgdGVsOiR7dGhpcy5jb250YWN0cy5waG9uZX1gO1xuICAgIHRoaXMucHJlRXh0ZXJuYWxBY3Rpb24odGhpcy5jb250YWN0cy5waG9uZSwgKCk6IFdpbmRvdyA9PiB3aW5kb3cub3Blbih1cmwsICdfc3lzdGVtJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVFeHRlcm5hbEFjdGlvbihtZXNzYWdlOiBzdHJpbmcsIGNiOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0NPTU1PTi5ET19ZT1VfV0FOVF9UT19QUk9DRUVEJyk7XG4gICAgY29uc3QgYnV0dG9ucyA9IFtcbiAgICAgIHsgdGV4dDogdGhpcy5fdHJhbnNsYXRlLl8oJ0NPTU1PTi5DQU5DRUwnKSB9LFxuICAgICAgeyB0ZXh0OiB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkNPTkZJUk0nKSwgaGFuZGxlcjogKCk6IHZvaWQgPT4gY2IoKSB9XG4gICAgXTtcbiAgICBjb25zdCBjc3NDbGFzcyA9ICdzZWxlY3RhYmxlQWxlcnRNZXNzYWdlJztcbiAgICB0aGlzLl9hbGVydC5jcmVhdGUoeyBoZWFkZXIsIG1lc3NhZ2UsIGJ1dHRvbnMsIGNzc0NsYXNzIH0pLnRoZW4oYWxlcnQgPT4gYWxlcnQucHJlc2VudCgpKTtcbiAgfVxufVxuIl19