@idea-ionic/uncommon 8.5.13 → 8.6.0

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 +11 -12
  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,143 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input, inject } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { ModalController, IonHeader, IonToolbar, IonButtons, IonButton, IonIcon, IonTitle, IonContent, IonText, IonTextarea } from '@ionic/angular/standalone';
5
- import { IDEATranslatePipe } from '@idea-ionic/common';
6
- import { IDEAMDEToolbarComponent } from './mdeToolbar.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- export class IDEAMDEComponent {
10
- constructor() {
11
- this._modal = inject(ModalController);
12
- }
13
- ngOnInit() {
14
- this.id = this.id || 'mde';
15
- this.variables = this.variables || new Array();
16
- this.value = this.initialValue;
17
- }
18
- close() {
19
- this._modal.dismiss();
20
- }
21
- confirm() {
22
- this._modal.dismiss(this.value);
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAMDEComponent, isStandalone: true, selector: "idea-mde", inputs: { id: "id", title: "title", header: "header", description: "description", variables: "variables", initialValue: "initialValue", placeholder: "placeholder" }, ngImport: i0, template: `
26
- <ion-header>
27
- <ion-toolbar color="ideaToolbar">
28
- <ion-buttons slot="start">
29
- <ion-button [title]="'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate" (click)="close()">
30
- <ion-icon name="close" slot="icon-only" />
31
- </ion-button>
32
- </ion-buttons>
33
- <ion-title>
34
- {{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}
35
- </ion-title>
36
- <ion-buttons slot="end">
37
- <ion-button [title]="'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate" (click)="confirm()">
38
- <ion-icon name="checkmark" slot="icon-only" />
39
- </ion-button>
40
- </ion-buttons>
41
- </ion-toolbar>
42
- </ion-header>
43
- <ion-content class="ion-padding">
44
- @if (header) {
45
- <h2 class="header">
46
- {{ header }}
47
- </h2>
48
- }
49
- @if (description) {
50
- <p class="description">
51
- {{ description }}
52
- </p>
53
- }
54
- @if (variables?.length) {
55
- <p class="variables">
56
- <b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>
57
- @for (v of variables; track v) {
58
- <ion-text>
59
- {{ v.concat(' ') }}
60
- </ion-text>
61
- }
62
- </p>
63
- }
64
- <ion-textarea rows="12" [id]="id" [placeholder]="placeholder" [(ngModel)]="value" />
65
- <idea-mde-toolbar />
66
- </ion-content>
67
- `, isInline: true, styles: ["ion-content{--ion-background-color: #f4f4f4}h2.header{margin:0;font-size:.7em;font-weight:700;text-transform:uppercase}.description{margin-top:5px;margin-bottom:20px;font-size:.9em}.variables{margin:10px 5px;font-size:.8em}ion-textarea{--background: var(--ion-color-white);padding:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IDEAMDEToolbarComponent, selector: "idea-mde-toolbar" }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }] }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: 'idea-mde', standalone: true, imports: [
72
- CommonModule,
73
- FormsModule,
74
- IDEATranslatePipe,
75
- IDEAMDEToolbarComponent,
76
- IonTextarea,
77
- IonText,
78
- IonContent,
79
- IonTitle,
80
- IonIcon,
81
- IonButton,
82
- IonButtons,
83
- IonToolbar,
84
- IonHeader
85
- ], template: `
86
- <ion-header>
87
- <ion-toolbar color="ideaToolbar">
88
- <ion-buttons slot="start">
89
- <ion-button [title]="'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate" (click)="close()">
90
- <ion-icon name="close" slot="icon-only" />
91
- </ion-button>
92
- </ion-buttons>
93
- <ion-title>
94
- {{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}
95
- </ion-title>
96
- <ion-buttons slot="end">
97
- <ion-button [title]="'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate" (click)="confirm()">
98
- <ion-icon name="checkmark" slot="icon-only" />
99
- </ion-button>
100
- </ion-buttons>
101
- </ion-toolbar>
102
- </ion-header>
103
- <ion-content class="ion-padding">
104
- @if (header) {
105
- <h2 class="header">
106
- {{ header }}
107
- </h2>
108
- }
109
- @if (description) {
110
- <p class="description">
111
- {{ description }}
112
- </p>
113
- }
114
- @if (variables?.length) {
115
- <p class="variables">
116
- <b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>
117
- @for (v of variables; track v) {
118
- <ion-text>
119
- {{ v.concat(' ') }}
120
- </ion-text>
121
- }
122
- </p>
123
- }
124
- <ion-textarea rows="12" [id]="id" [placeholder]="placeholder" [(ngModel)]="value" />
125
- <idea-mde-toolbar />
126
- </ion-content>
127
- `, styles: ["ion-content{--ion-background-color: #f4f4f4}h2.header{margin:0;font-size:.7em;font-weight:700;text-transform:uppercase}.description{margin-top:5px;margin-bottom:20px;font-size:.9em}.variables{margin:10px 5px;font-size:.8em}ion-textarea{--background: var(--ion-color-white);padding:10px}\n"] }]
128
- }], propDecorators: { id: [{
129
- type: Input
130
- }], title: [{
131
- type: Input
132
- }], header: [{
133
- type: Input
134
- }], description: [{
135
- type: Input
136
- }], variables: [{
137
- type: Input
138
- }], initialValue: [{
139
- type: Input
140
- }], placeholder: [{
141
- type: Input
142
- }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL21kZS9tZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE9BQU8sRUFDUCxXQUFXLEVBQ1osTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBMEZqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBeEY3QjtRQXlGVSxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBNkMxQztJQVpDLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0E3Q1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsME9BdEVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENULHlXQXhEQyxZQUFZLDhCQUNaLFdBQVcsMFZBQ1gsaUJBQWlCLGtEQUNqQix1QkFBdUIsNkRBQ3ZCLFdBQVcsaWFBQ1gsT0FBTyxnRkFDUCxVQUFVLHdLQUNWLFFBQVEsaUZBQ1IsT0FBTywySkFDUCxTQUFTLG9QQUNULFVBQVUsOEVBQ1YsVUFBVSxtRkFDVixTQUFTOzsyRkF3RUEsZ0JBQWdCO2tCQXhGNUIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsUUFBUTt3QkFDUixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7cUJBQ1YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENUOzhCQWtDUSxFQUFFO3NCQUFWLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE1vZGFsQ29udHJvbGxlcixcbiAgSW9uSGVhZGVyLFxuICBJb25Ub29sYmFyLFxuICBJb25CdXR0b25zLFxuICBJb25CdXR0b24sXG4gIElvbkljb24sXG4gIElvblRpdGxlLFxuICBJb25Db250ZW50LFxuICBJb25UZXh0LFxuICBJb25UZXh0YXJlYVxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IElERUFUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQU1ERVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL21kZVRvb2xiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1tZGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIElERUFUcmFuc2xhdGVQaXBlLFxuICAgIElERUFNREVUb29sYmFyQ29tcG9uZW50LFxuICAgIElvblRleHRhcmVhLFxuICAgIElvblRleHQsXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25UaXRsZSxcbiAgICBJb25JY29uLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25CdXR0b25zLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uSGVhZGVyXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXIgY29sb3I9XCJpZGVhVG9vbGJhclwiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLk1ERS5DTE9TRV9XSVRIT1VUX1NBVklORycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi10aXRsZT5cbiAgICAgICAgICB7eyB0aXRsZSB8fCAoJ0lERUFfVU5DT01NT04uTURFLlRJVExFJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgICAgPC9pb24tdGl0bGU+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLk1ERS5TQVZFX0FORF9DTE9TRScgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICBAaWYgKGhlYWRlcikge1xuICAgICAgICA8aDIgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICB7eyBoZWFkZXIgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIH1cbiAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgICAgIDwvcD5cbiAgICAgIH1cbiAgICAgIEBpZiAodmFyaWFibGVzPy5sZW5ndGgpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJ2YXJpYWJsZXNcIj5cbiAgICAgICAgICA8Yj4ge3sgJ0lERUFfVU5DT01NT04uTURFLlZBUklBQkxFUycgfCB0cmFuc2xhdGUgfX06IDwvYj5cbiAgICAgICAgICBAZm9yICh2IG9mIHZhcmlhYmxlczsgdHJhY2sgdikge1xuICAgICAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgICAgICB7eyB2LmNvbmNhdCgnICcpIH19XG4gICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9wPlxuICAgICAgfVxuICAgICAgPGlvbi10ZXh0YXJlYSByb3dzPVwiMTJcIiBbaWRdPVwiaWRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgLz5cbiAgICAgIDxpZGVhLW1kZS10b29sYmFyIC8+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAgICAgfVxuICAgICAgaDIuaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuN2VtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIH1cbiAgICAgIC52YXJpYWJsZXMge1xuICAgICAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgfVxuICAgICAgaW9uLXRleHRhcmVhIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itd2hpdGUpO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBTURFQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfbW9kYWwgPSBpbmplY3QoTW9kYWxDb250cm9sbGVyKTtcblxuICAvKipcbiAgICogSWQgdG8gaWRlbnRpZnkgdGhpcyBzcGVjaWZpYyBNYXJrZG93biBFZGl0b3IgKGRlZmF1bHQ6ICdtZGUnKS5cbiAgICovXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKi9cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoZWFkZXIgdGV4dCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3ViLWhlYWRlciBkZXNjcmlwdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHNlcmllcyBvZiB0ZXh0IHZhcmlhYmxlcyB0byBzdWJzdGl0dXRlIHdpdGggdmFsdWVzLlxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFibGVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIElmIHNldCwgd2lsbCBjdXN0b21pemUgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIGVkaXRvci5cbiAgICovXG4gIEBJbnB1dCgpIGluaXRpYWxWYWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIHBsYWNlaG9sZGVyIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgdmFsdWU6IHN0cmluZztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCAnbWRlJztcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHRoaXMudmFyaWFibGVzIHx8IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5pdGlhbFZhbHVlO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWwuZGlzbWlzcygpO1xuICB9XG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWwuZGlzbWlzcyh0aGlzLnZhbHVlKTtcbiAgfVxufVxuIl19
@@ -1,25 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component } from '@angular/core';
3
- import { IDEATranslatePipe } from '@idea-ionic/common';
4
- import * as i0 from "@angular/core";
5
- export class IDEAMDEToolbarComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IDEAMDEToolbarComponent, isStandalone: true, selector: "idea-mde-toolbar", ngImport: i0, template: `
8
- <div class="mdeToolbar">
9
- <b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>
10
- <i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>
11
- ~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~
12
- </div>
13
- `, isInline: true, styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar :is(b,i){padding-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }] }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMDEToolbarComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: 'idea-mde-toolbar', standalone: true, imports: [CommonModule, IDEATranslatePipe], template: `
18
- <div class="mdeToolbar">
19
- <b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>
20
- <i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>
21
- ~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~
22
- </div>
23
- `, styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar :is(b,i){padding-right:5px}\n"] }]
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRlVG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9tZGUvbWRlVG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBNEJ2RCxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0RUF0QnhCOzs7Ozs7R0FNVCx1TEFQUyxZQUFZLDBCQUFFLGlCQUFpQjs7MkZBdUI5Qix1QkFBdUI7a0JBMUJuQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFDaEM7Ozs7OztHQU1UIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURFQVRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLW1kZS10b29sYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSURFQVRyYW5zbGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJtZGVUb29sYmFyXCI+XG4gICAgICA8Yj4qKnt7ICdJREVBX1VOQ09NTU9OLk1ERS5UT09MQkFSLkJPTEQnIHwgdHJhbnNsYXRlIH19Kio8L2I+XG4gICAgICA8aT4qe3sgJ0lERUFfVU5DT01NT04uTURFLlRPT0xCQVIuSVRBTElDJyB8IHRyYW5zbGF0ZSB9fSo8L2k+XG4gICAgICB+e3sgJ0lERUFfVU5DT01NT04uTURFLlRPT0xCQVIuU1RSSUtFJyB8IHRyYW5zbGF0ZSB9fX5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLm1kZVRvb2xiYXIge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgY29sb3I6ICNhYWE7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBiLFxuICAgICAgICBpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSURFQU1ERVRvb2xiYXJDb21wb25lbnQge31cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input, inject } from '@angular/core';
3
- import { IonItem, IonLabel, IonIcon, IonSpinner } from '@ionic/angular/standalone';
4
- import { IDEAOfflineDataService } from './offlineData.service';
5
- import * as i0 from "@angular/core";
6
- export class IDEACacheableResourceComponent {
7
- constructor() {
8
- this._offline = inject(IDEAOfflineDataService);
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACacheableResourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACacheableResourceComponent, isStandalone: true, selector: "idea-cacheable-resource", inputs: { resource: "resource" }, ngImport: i0, template: `
12
- <ion-item class="cacheableResourceItem">
13
- <ion-label>{{ resource.description }}</ion-label>
14
- @if (resource.error) {
15
- <ion-icon slot="end" name="alert-circle" color="danger" />
16
- }
17
- @if (!resource.error && _offline.synchronizing && resource.synchronizing) {
18
- <ion-spinner slot="end" name="dots" />
19
- }
20
- @if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {
21
- <ion-icon slot="end" name="checkmark" color="success" />
22
- }
23
- @if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {
24
- <ion-icon slot="end" name="pause" color="dark" />
25
- }
26
- </ion-item>
27
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }] }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACacheableResourceComponent, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'idea-cacheable-resource',
33
- standalone: true,
34
- imports: [CommonModule, IonSpinner, IonIcon, IonLabel, IonItem],
35
- template: `
36
- <ion-item class="cacheableResourceItem">
37
- <ion-label>{{ resource.description }}</ion-label>
38
- @if (resource.error) {
39
- <ion-icon slot="end" name="alert-circle" color="danger" />
40
- }
41
- @if (!resource.error && _offline.synchronizing && resource.synchronizing) {
42
- <ion-spinner slot="end" name="dots" />
43
- }
44
- @if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {
45
- <ion-icon slot="end" name="checkmark" color="success" />
46
- }
47
- @if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {
48
- <ion-icon slot="end" name="pause" color="dark" />
49
- }
50
- </ion-item>
51
- `
52
- }]
53
- }], propDecorators: { resource: [{
54
- type: Input
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVhYmxlUmVzb3VyY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvb2ZmbGluZS9jYWNoZWFibGVSZXNvdXJjZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHVCQUF1QixDQUFDOztBQXdCbEYsTUFBTSxPQUFPLDhCQUE4QjtJQXRCM0M7UUF1QkUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBTTNDOzhHQVBZLDhCQUE4QjtrR0FBOUIsOEJBQThCLHFIQWxCL0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsMkRBakJTLFlBQVksK0JBQUUsVUFBVSx5R0FBRSxPQUFPLDJKQUFFLFFBQVEsNkZBQUUsT0FBTzs7MkZBbUJuRCw4QkFBOEI7a0JBdEIxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO29CQUMvRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7aUJBQ0Y7OEJBT1UsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkl0ZW0sIElvbkxhYmVsLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IElERUFPZmZsaW5lRGF0YVNlcnZpY2UsIENhY2hlYWJsZVJlc291cmNlIH0gZnJvbSAnLi9vZmZsaW5lRGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jYWNoZWFibGUtcmVzb3VyY2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25TcGlubmVyLCBJb25JY29uLCBJb25MYWJlbCwgSW9uSXRlbV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1pdGVtIGNsYXNzPVwiY2FjaGVhYmxlUmVzb3VyY2VJdGVtXCI+XG4gICAgICA8aW9uLWxhYmVsPnt7IHJlc291cmNlLmRlc2NyaXB0aW9uIH19PC9pb24tbGFiZWw+XG4gICAgICBAaWYgKHJlc291cmNlLmVycm9yKSB7XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiIGNvbG9yPVwiZGFuZ2VyXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoIXJlc291cmNlLmVycm9yICYmIF9vZmZsaW5lLnN5bmNocm9uaXppbmcgJiYgcmVzb3VyY2Uuc3luY2hyb25pemluZykge1xuICAgICAgICA8aW9uLXNwaW5uZXIgc2xvdD1cImVuZFwiIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoIXJlc291cmNlLmVycm9yICYmICFyZXNvdXJjZS5zeW5jaHJvbml6aW5nICYmICFfb2ZmbGluZS5yZXF1aXJlc01hbnVhbENvbmZpcm1hdGlvbikge1xuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJjaGVja21hcmtcIiBjb2xvcj1cInN1Y2Nlc3NcIiAvPlxuICAgICAgfVxuICAgICAgQGlmICghcmVzb3VyY2UuZXJyb3IgJiYgIXJlc291cmNlLnN5bmNocm9uaXppbmcgJiYgX29mZmxpbmUucmVxdWlyZXNNYW51YWxDb25maXJtYXRpb24pIHtcbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGF1c2VcIiBjb2xvcj1cImRhcmtcIiAvPlxuICAgICAgfVxuICAgIDwvaW9uLWl0ZW0+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgSURFQUNhY2hlYWJsZVJlc291cmNlQ29tcG9uZW50IHtcbiAgX29mZmxpbmUgPSBpbmplY3QoSURFQU9mZmxpbmVEYXRhU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdWVjZSB0byBtYW5hZ2UuXG4gICAqL1xuICBASW5wdXQoKSByZXNvdXJjZTogQ2FjaGVhYmxlUmVzb3VyY2U7XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { Network } from '@capacitor/network';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Utility to monitor the network connection.
7
- * Note: don't use it directly, if you're also using IDEAOfflineDataService.
8
- */
9
- export class IDEAOfflineService {
10
- constructor() {
11
- // get an instant status
12
- this._isOffline = !navigator.onLine;
13
- if (Network) {
14
- // set the basic listener for changes
15
- this.listenerHandler = Network.addListener('networkStatusChange', status => (this._isOffline = !status.connected));
16
- // create the observable to subscribe to the network changes; note: it won't run until subscribed
17
- this.observable = new Observable(observer => {
18
- // remove the basic listener add add one that supports a subscription
19
- Network.removeAllListeners();
20
- this.listenerHandler = Network.addListener('networkStatusChange', status => {
21
- this._isOffline = !status.connected;
22
- if (observer)
23
- observer.next(status.connected);
24
- });
25
- });
26
- }
27
- }
28
- /**
29
- * Subscribe to be notified when the connection status changes.
30
- */
31
- subscribe(callback) {
32
- return this.observable.subscribe(callback);
33
- }
34
- /**
35
- * Quickly check the connection status.
36
- */
37
- isOnline() {
38
- return !this._isOffline;
39
- }
40
- /**
41
- * Quickly check the connection status.
42
- */
43
- isOffline() {
44
- return this._isOffline;
45
- }
46
- /**
47
- * Quickly check for online connection.
48
- */
49
- async check() {
50
- if (!Network)
51
- return false;
52
- const status = await Network.getStatus();
53
- this._isOffline = !status.connected;
54
- return status.connected;
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, providedIn: 'root' }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAOfflineService, decorators: [{
60
- type: Injectable,
61
- args: [{ providedIn: 'root' }]
62
- }], ctorParameters: () => [] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvb2ZmbGluZS9vZmZsaW5lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTdDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFjN0I7UUFDRSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLHFDQUFxQztZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQ3hDLHFCQUFxQixFQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDaEQsQ0FBQztZQUNGLGlHQUFpRztZQUNqRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxxRUFBcUU7Z0JBQ3JFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUNwQyxJQUFJLFFBQVE7d0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQXFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzFCLENBQUM7SUFDRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDOzhHQS9EVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQURMLE1BQU07OzJGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnQGNhcGFjaXRvci9uZXR3b3JrJztcblxuLyoqXG4gKiBVdGlsaXR5IHRvIG1vbml0b3IgdGhlIG5ldHdvcmsgY29ubmVjdGlvbi5cbiAqIE5vdGU6IGRvbid0IHVzZSBpdCBkaXJlY3RseSwgaWYgeW91J3JlIGFsc28gdXNpbmcgSURFQU9mZmxpbmVEYXRhU2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJREVBT2ZmbGluZVNlcnZpY2Uge1xuICAvKipcbiAgICogVHJ1ZS9mYWxzZSBpZiB0aGUgcGxhdGZvcm0gaXMgb2ZmbGluZS9vbmxpbmUuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2lzT2ZmbGluZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIGZvciBzdWJzY3JpYmluZyB0byBvbmxpbmUvb2ZmbGluZSBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIHByb3RlY3RlZCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVGhlIGhhbmRsZXIgZm9yIGxpc3RlbmlnIHRvIG5ldHdvcmsgY2hhbmdlcy5cbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5lckhhbmRsZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBnZXQgYW4gaW5zdGFudCBzdGF0dXNcbiAgICB0aGlzLl9pc09mZmxpbmUgPSAhbmF2aWdhdG9yLm9uTGluZTtcbiAgICBpZiAoTmV0d29yaykge1xuICAgICAgLy8gc2V0IHRoZSBiYXNpYyBsaXN0ZW5lciBmb3IgY2hhbmdlc1xuICAgICAgdGhpcy5saXN0ZW5lckhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKFxuICAgICAgICAnbmV0d29ya1N0YXR1c0NoYW5nZScsXG4gICAgICAgIHN0YXR1cyA9PiAodGhpcy5faXNPZmZsaW5lID0gIXN0YXR1cy5jb25uZWN0ZWQpXG4gICAgICApO1xuICAgICAgLy8gY3JlYXRlIHRoZSBvYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0byB0aGUgbmV0d29yayBjaGFuZ2VzOyBub3RlOiBpdCB3b24ndCBydW4gdW50aWwgc3Vic2NyaWJlZFxuICAgICAgdGhpcy5vYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgICAvLyByZW1vdmUgdGhlIGJhc2ljIGxpc3RlbmVyIGFkZCBhZGQgb25lIHRoYXQgc3VwcG9ydHMgYSBzdWJzY3JpcHRpb25cbiAgICAgICAgTmV0d29yay5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5saXN0ZW5lckhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKCduZXR3b3JrU3RhdHVzQ2hhbmdlJywgc3RhdHVzID0+IHtcbiAgICAgICAgICB0aGlzLl9pc09mZmxpbmUgPSAhc3RhdHVzLmNvbm5lY3RlZDtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIpIG9ic2VydmVyLm5leHQoc3RhdHVzLmNvbm5lY3RlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgY29ubmVjdGlvbiBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIHN1YnNjcmliZShjYWxsYmFjazogKGlzT25saW5lOiBib29sZWFuKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZShjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogUXVpY2tseSBjaGVjayB0aGUgY29ubmVjdGlvbiBzdGF0dXMuXG4gICAqL1xuICBpc09ubGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2lzT2ZmbGluZTtcbiAgfVxuICAvKipcbiAgICogUXVpY2tseSBjaGVjayB0aGUgY29ubmVjdGlvbiBzdGF0dXMuXG4gICAqL1xuICBpc09mZmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT2ZmbGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWlja2x5IGNoZWNrIGZvciBvbmxpbmUgY29ubmVjdGlvbi5cbiAgICovXG4gIGFzeW5jIGNoZWNrKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghTmV0d29yaykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgTmV0d29yay5nZXRTdGF0dXMoKTtcbiAgICB0aGlzLl9pc09mZmxpbmUgPSAhc3RhdHVzLmNvbm5lY3RlZDtcbiAgICByZXR1cm4gc3RhdHVzLmNvbm5lY3RlZDtcbiAgfVxufVxuIl19