@idea-ionic/uncommon 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +21 -0
  3. package/css/global.scss +15 -0
  4. package/esm2022/idea-ionic-uncommon.mjs +5 -0
  5. package/esm2022/public-api.mjs +35 -0
  6. package/esm2022/src/AWSAPI.service.mjs +430 -0
  7. package/esm2022/src/AWSAPISocket.service.mjs +187 -0
  8. package/esm2022/src/address/address.component.mjs +94 -0
  9. package/esm2022/src/address/address.module.mjs +21 -0
  10. package/esm2022/src/announcement/announcement.component.mjs +41 -0
  11. package/esm2022/src/announcement/announcement.module.mjs +21 -0
  12. package/esm2022/src/cachedResources.service.mjs +55 -0
  13. package/esm2022/src/colors/colorPicker.component.mjs +135 -0
  14. package/esm2022/src/colors/colorPicker.module.mjs +20 -0
  15. package/esm2022/src/contacts/contacts.component.mjs +64 -0
  16. package/esm2022/src/contacts/contacts.module.mjs +21 -0
  17. package/esm2022/src/dateTime/calendarPicker.component.mjs +196 -0
  18. package/esm2022/src/dateTime/dateTime.component.mjs +133 -0
  19. package/esm2022/src/dateTime/dateTime.module.mjs +22 -0
  20. package/esm2022/src/duration/duration.component.mjs +77 -0
  21. package/esm2022/src/duration/duration.module.mjs +21 -0
  22. package/esm2022/src/echo/echo.module.mjs +26 -0
  23. package/esm2022/src/echo/echo.page.mjs +165 -0
  24. package/esm2022/src/errorReporting.service.mjs +68 -0
  25. package/esm2022/src/mde/mde.component.mjs +44 -0
  26. package/esm2022/src/mde/mde.module.mjs +22 -0
  27. package/esm2022/src/mde/mdeToolbar.component.mjs +12 -0
  28. package/esm2022/src/offline/cacheableResource.component.mjs +18 -0
  29. package/esm2022/src/offline/offline.module.mjs +22 -0
  30. package/esm2022/src/offline/offline.service.mjs +62 -0
  31. package/esm2022/src/offline/offlineData.service.mjs +479 -0
  32. package/esm2022/src/offline/offlineIndicator.component.mjs +58 -0
  33. package/esm2022/src/offline/offlineManager.component.mjs +84 -0
  34. package/esm2022/src/pushNotifications.service.mjs +56 -0
  35. package/esm2022/src/sentiment/sentiment.component.mjs +71 -0
  36. package/esm2022/src/sentiment/sentiment.module.mjs +21 -0
  37. package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +155 -0
  38. package/esm2022/src/timeInterval/timeInterval.component.mjs +122 -0
  39. package/esm2022/src/timeInterval/timeInterval.module.mjs +22 -0
  40. package/esm2022/src/tinCan.service.mjs +49 -0
  41. package/fesm2022/idea-ionic-uncommon.mjs +2891 -0
  42. package/fesm2022/idea-ionic-uncommon.mjs.map +1 -0
  43. package/index.d.ts +5 -0
  44. package/package.json +51 -0
  45. package/public-api.d.ts +34 -0
  46. package/src/AWSAPI.service.d.ts +178 -0
  47. package/src/AWSAPISocket.service.d.ts +129 -0
  48. package/src/address/address.component.d.ts +64 -0
  49. package/src/address/address.module.d.ts +11 -0
  50. package/src/announcement/announcement.component.d.ts +23 -0
  51. package/src/announcement/announcement.module.d.ts +11 -0
  52. package/src/cachedResources.service.d.ts +34 -0
  53. package/src/colors/colorPicker.component.d.ts +78 -0
  54. package/src/colors/colorPicker.module.d.ts +10 -0
  55. package/src/contacts/contacts.component.d.ts +31 -0
  56. package/src/contacts/contacts.module.d.ts +11 -0
  57. package/src/dateTime/calendarPicker.component.d.ts +45 -0
  58. package/src/dateTime/dateTime.component.d.ts +81 -0
  59. package/src/dateTime/dateTime.module.d.ts +12 -0
  60. package/src/duration/duration.component.d.ts +68 -0
  61. package/src/duration/duration.module.d.ts +11 -0
  62. package/src/echo/echo.module.d.ts +12 -0
  63. package/src/echo/echo.page.d.ts +34 -0
  64. package/src/errorReporting.service.d.ts +26 -0
  65. package/src/mde/mde.component.d.ts +39 -0
  66. package/src/mde/mde.module.d.ts +12 -0
  67. package/src/mde/mdeToolbar.component.d.ts +5 -0
  68. package/src/offline/cacheableResource.component.d.ts +11 -0
  69. package/src/offline/offline.module.d.ts +12 -0
  70. package/src/offline/offline.service.d.ts +39 -0
  71. package/src/offline/offlineData.service.d.ts +281 -0
  72. package/src/offline/offlineIndicator.component.d.ts +25 -0
  73. package/src/offline/offlineManager.component.d.ts +17 -0
  74. package/src/pushNotifications.service.d.ts +26 -0
  75. package/src/sentiment/sentiment.component.d.ts +35 -0
  76. package/src/sentiment/sentiment.module.d.ts +11 -0
  77. package/src/timeInterval/fromTimeToTime.component.d.ts +61 -0
  78. package/src/timeInterval/timeInterval.component.d.ts +84 -0
  79. package/src/timeInterval/timeInterval.module.d.ts +12 -0
  80. package/src/tinCan.service.d.ts +31 -0
@@ -0,0 +1,68 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Platform } from '@ionic/angular';
4
+ import { ClientInfo, ErrorReport } from 'idea-toolbox';
5
+ import { IDEAEnvironment } from '@idea-ionic/common';
6
+ import * as i0 from "@angular/core";
7
+ export class IDEAErrorReportingService {
8
+ constructor() {
9
+ this._env = inject(IDEAEnvironment);
10
+ this._http = inject(HttpClient);
11
+ this._platform = inject(Platform);
12
+ this.apiStage = this._env.idea.ideaApi?.stage || this._env.idea.ideaApi?.version;
13
+ this.apiUrl = 'https://'.concat([this._env.idea.ideaApi?.url, this.apiStage].filter(x => x).join('/'));
14
+ }
15
+ /**
16
+ * Send the error report to the back-end.
17
+ */
18
+ sendReport(error, forceSend) {
19
+ return new Promise(resolve => {
20
+ // skip in case we don't want to send the report or the report is useless (blank error)
21
+ if ((!this.shouldSend() && !forceSend) || !error?.name)
22
+ return resolve();
23
+ // prepare and send the report
24
+ const report = new ErrorReport({
25
+ version: this._env.idea.app.version,
26
+ stage: this.apiStage,
27
+ client: this.getClientInfo(),
28
+ type: error.name,
29
+ error: error.message,
30
+ stack: error.stack
31
+ });
32
+ this._http
33
+ .post(this.apiUrl.concat(`/projects/${this._env.idea.project}/errorReporting`), report)
34
+ .toPromise()
35
+ .catch(() => { }) // note: never throw an error when reporting an error
36
+ .finally(() => resolve());
37
+ });
38
+ }
39
+ /**
40
+ * Whether we should send the reporting or we are in a scenario in which we should skip it.
41
+ */
42
+ shouldSend() {
43
+ return this.apiStage === 'prod';
44
+ }
45
+ /**
46
+ * Acquire the client's info.
47
+ */
48
+ getClientInfo() {
49
+ return new ClientInfo({
50
+ timestamp: new Date().toISOString(),
51
+ platform: this._platform.platforms().join(' '),
52
+ screenWidth: this._platform.width(),
53
+ screenHeight: this._platform.height(),
54
+ isLandScape: this._platform.isLandscape(),
55
+ url: this._platform.url(),
56
+ referrer: document.referrer,
57
+ isOnline: navigator.onLine,
58
+ language: navigator.language,
59
+ userAgent: navigator.userAgent
60
+ });
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAErrorReportingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAErrorReportingService }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAErrorReportingService, decorators: [{
66
+ type: Injectable
67
+ }], ctorParameters: () => [] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL2Vycm9yUmVwb3J0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3JELE1BQU0sT0FBTyx5QkFBeUI7SUFRcEM7UUFQVSxTQUFJLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU1yQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBZSxFQUFFLE9BQU8sQ0FBQztRQUMxRixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsS0FBWSxFQUFFLFNBQW1CO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsdUZBQXVGO1lBQ3ZGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUk7Z0JBQUUsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUN6RSw4QkFBOEI7WUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTztnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDNUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzthQUNuQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSztpQkFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUFDO2lCQUN0RixTQUFTLEVBQUU7aUJBQ1gsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtpQkFDckUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUM5QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDbkMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUN6QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQzNCLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtZQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBNURVLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBDbGllbnRJbmZvLCBFcnJvclJlcG9ydCB9IGZyb20gJ2lkZWEtdG9vbGJveCc7XG5pbXBvcnQgeyBJREVBRW52aXJvbm1lbnQgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSURFQUVycm9yUmVwb3J0aW5nU2VydmljZSB7XG4gIHByb3RlY3RlZCBfZW52ID0gaW5qZWN0KElERUFFbnZpcm9ubWVudCk7XG4gIHByb3RlY3RlZCBfaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIF9wbGF0Zm9ybSA9IGluamVjdChQbGF0Zm9ybSk7XG5cbiAgYXBpU3RhZ2U6IHN0cmluZztcbiAgYXBpVXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hcGlTdGFnZSA9IHRoaXMuX2Vudi5pZGVhLmlkZWFBcGk/LnN0YWdlIHx8ICh0aGlzLl9lbnYuaWRlYS5pZGVhQXBpIGFzIGFueSk/LnZlcnNpb247XG4gICAgdGhpcy5hcGlVcmwgPSAnaHR0cHM6Ly8nLmNvbmNhdChbdGhpcy5fZW52LmlkZWEuaWRlYUFwaT8udXJsLCB0aGlzLmFwaVN0YWdlXS5maWx0ZXIoeCA9PiB4KS5qb2luKCcvJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgdGhlIGVycm9yIHJlcG9ydCB0byB0aGUgYmFjay1lbmQuXG4gICAqL1xuICBzZW5kUmVwb3J0KGVycm9yOiBFcnJvciwgZm9yY2VTZW5kPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIC8vIHNraXAgaW4gY2FzZSB3ZSBkb24ndCB3YW50IHRvIHNlbmQgdGhlIHJlcG9ydCBvciB0aGUgcmVwb3J0IGlzIHVzZWxlc3MgKGJsYW5rIGVycm9yKVxuICAgICAgaWYgKCghdGhpcy5zaG91bGRTZW5kKCkgJiYgIWZvcmNlU2VuZCkgfHwgIWVycm9yPy5uYW1lKSByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgLy8gcHJlcGFyZSBhbmQgc2VuZCB0aGUgcmVwb3J0XG4gICAgICBjb25zdCByZXBvcnQgPSBuZXcgRXJyb3JSZXBvcnQoe1xuICAgICAgICB2ZXJzaW9uOiB0aGlzLl9lbnYuaWRlYS5hcHAudmVyc2lvbixcbiAgICAgICAgc3RhZ2U6IHRoaXMuYXBpU3RhZ2UsXG4gICAgICAgIGNsaWVudDogdGhpcy5nZXRDbGllbnRJbmZvKCksXG4gICAgICAgIHR5cGU6IGVycm9yLm5hbWUsXG4gICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2tcbiAgICAgIH0pO1xuICAgICAgdGhpcy5faHR0cFxuICAgICAgICAucG9zdCh0aGlzLmFwaVVybC5jb25jYXQoYC9wcm9qZWN0cy8ke3RoaXMuX2Vudi5pZGVhLnByb2plY3R9L2Vycm9yUmVwb3J0aW5nYCksIHJlcG9ydClcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSkgLy8gbm90ZTogbmV2ZXIgdGhyb3cgYW4gZXJyb3Igd2hlbiByZXBvcnRpbmcgYW4gZXJyb3JcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHdlIHNob3VsZCBzZW5kIHRoZSByZXBvcnRpbmcgb3Igd2UgYXJlIGluIGEgc2NlbmFyaW8gaW4gd2hpY2ggd2Ugc2hvdWxkIHNraXAgaXQuXG4gICAqL1xuICBzaG91bGRTZW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwaVN0YWdlID09PSAncHJvZCc7XG4gIH1cblxuICAvKipcbiAgICogQWNxdWlyZSB0aGUgY2xpZW50J3MgaW5mby5cbiAgICovXG4gIGdldENsaWVudEluZm8oKTogQ2xpZW50SW5mbyB7XG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvKHtcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgcGxhdGZvcm06IHRoaXMuX3BsYXRmb3JtLnBsYXRmb3JtcygpLmpvaW4oJyAnKSxcbiAgICAgIHNjcmVlbldpZHRoOiB0aGlzLl9wbGF0Zm9ybS53aWR0aCgpLFxuICAgICAgc2NyZWVuSGVpZ2h0OiB0aGlzLl9wbGF0Zm9ybS5oZWlnaHQoKSxcbiAgICAgIGlzTGFuZFNjYXBlOiB0aGlzLl9wbGF0Zm9ybS5pc0xhbmRzY2FwZSgpLFxuICAgICAgdXJsOiB0aGlzLl9wbGF0Zm9ybS51cmwoKSxcbiAgICAgIHJlZmVycmVyOiBkb2N1bWVudC5yZWZlcnJlcixcbiAgICAgIGlzT25saW5lOiBuYXZpZ2F0b3Iub25MaW5lLFxuICAgICAgbGFuZ3VhZ2U6IG5hdmlnYXRvci5sYW5ndWFnZSxcbiAgICAgIHVzZXJBZ2VudDogbmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component, Input, inject } from '@angular/core';
2
+ import { ModalController } from '@ionic/angular';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@ionic/angular";
6
+ import * as i3 from "./mdeToolbar.component";
7
+ import * as i4 from "@idea-ionic/common";
8
+ export class IDEAMDEComponent {
9
+ constructor() {
10
+ this._modal = inject(ModalController);
11
+ }
12
+ ngOnInit() {
13
+ this.id = this.id || 'mde';
14
+ this.variables = this.variables || new Array();
15
+ this.value = this.initialValue;
16
+ }
17
+ close() {
18
+ this._modal.dismiss();
19
+ }
20
+ confirm() {
21
+ this._modal.dismiss(this.value);
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAMDEComponent, selector: "idea-mde", inputs: { id: "id", title: "title", header: "header", description: "description", variables: "variables", initialValue: "initialValue", placeholder: "placeholder" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>\n {{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}\n </ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate\" (click)=\"confirm()\">\n <ion-icon name=\"checkmark\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n @if (header) {\n <h2 class=\"header\">\n {{ header }}\n </h2>\n }\n @if (description) {\n <p class=\"description\">\n {{ description }}\n </p>\n }\n @if (variables?.length) {\n <p class=\"variables\">\n <b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>\n @for (v of variables; track v) {\n <ion-text>\n {{ v.concat(' ') }}\n </ion-text>\n }\n </p>\n }\n <ion-textarea rows=\"12\" [id]=\"id\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" />\n <idea-mde-toolbar />\n</ion-content>\n", 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: "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.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.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: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "component", type: i3.IDEAMDEToolbarComponent, selector: "idea-mde-toolbar" }, { kind: "pipe", type: i4.IDEATranslatePipe, name: "translate" }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'idea-mde', template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'IDEA_UNCOMMON.MDE.CLOSE_WITHOUT_SAVING' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>\n {{ title || ('IDEA_UNCOMMON.MDE.TITLE' | translate) }}\n </ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'IDEA_UNCOMMON.MDE.SAVE_AND_CLOSE' | translate\" (click)=\"confirm()\">\n <ion-icon name=\"checkmark\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n @if (header) {\n <h2 class=\"header\">\n {{ header }}\n </h2>\n }\n @if (description) {\n <p class=\"description\">\n {{ description }}\n </p>\n }\n @if (variables?.length) {\n <p class=\"variables\">\n <b> {{ 'IDEA_UNCOMMON.MDE.VARIABLES' | translate }}: </b>\n @for (v of variables; track v) {\n <ion-text>\n {{ v.concat(' ') }}\n </ion-text>\n }\n </p>\n }\n <ion-textarea rows=\"12\" [id]=\"id\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" />\n <idea-mde-toolbar />\n</ion-content>\n", 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"] }]
29
+ }], propDecorators: { id: [{
30
+ type: Input
31
+ }], title: [{
32
+ type: Input
33
+ }], header: [{
34
+ type: Input
35
+ }], description: [{
36
+ type: Input
37
+ }], variables: [{
38
+ type: Input
39
+ }], initialValue: [{
40
+ type: Input
41
+ }], placeholder: [{
42
+ type: Input
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL21kZS9tZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvbWRlL21kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPakQsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0E2QzFDO0lBWkMsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksS0FBSyxFQUFVLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQTdDVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixzTkNSN0IsOHVDQXlDQTs7MkZEakNhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVOzhCQVVYLEVBQUU7c0JBQVYsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLW1kZScsXG4gIHRlbXBsYXRlVXJsOiAnbWRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ21kZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFNREVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9tb2RhbCA9IGluamVjdChNb2RhbENvbnRyb2xsZXIpO1xuXG4gIC8qKlxuICAgKiBJZCB0byBpZGVudGlmeSB0aGlzIHNwZWNpZmljIE1hcmtkb3duIEVkaXRvciAoZGVmYXVsdDogJ21kZScpLlxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgbW9kYWwuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGhlYWRlciB0ZXh0IGNvbnRlbnQuXG4gICAqL1xuICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdWItaGVhZGVyIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIEEgc2VyaWVzIG9mIHRleHQgdmFyaWFibGVzIHRvIHN1YnN0aXR1dGUgd2l0aCB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKSB2YXJpYWJsZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogSWYgc2V0LCB3aWxsIGN1c3RvbWl6ZSB0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZWRpdG9yLlxuICAgKi9cbiAgQElucHV0KCkgaW5pdGlhbFZhbHVlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gcGxhY2Vob2xkZXIgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICB2YWx1ZTogc3RyaW5nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLmlkIHx8ICdtZGUnO1xuICAgIHRoaXMudmFyaWFibGVzID0gdGhpcy52YXJpYWJsZXMgfHwgbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5pbml0aWFsVmFsdWU7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKCk7XG4gIH1cbiAgY29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCI8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwiaWRlYVRvb2xiYXJcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiBbdGl0bGVdPVwiJ0lERUFfVU5DT01NT04uTURFLkNMT1NFX1dJVEhPVVRfU0FWSU5HJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eyB0aXRsZSB8fCAoJ0lERUFfVU5DT01NT04uTURFLlRJVExFJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICA8L2lvbi10aXRsZT5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidJREVBX1VOQ09NTU9OLk1ERS5TQVZFX0FORF9DTE9TRScgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gIEBpZiAoaGVhZGVyKSB7XG4gICAgPGgyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICB7eyBoZWFkZXIgfX1cbiAgICA8L2gyPlxuICB9XG4gIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgIDwvcD5cbiAgfVxuICBAaWYgKHZhcmlhYmxlcz8ubGVuZ3RoKSB7XG4gICAgPHAgY2xhc3M9XCJ2YXJpYWJsZXNcIj5cbiAgICAgIDxiPiB7eyAnSURFQV9VTkNPTU1PTi5NREUuVkFSSUFCTEVTJyB8IHRyYW5zbGF0ZSB9fTogPC9iPlxuICAgICAgQGZvciAodiBvZiB2YXJpYWJsZXM7IHRyYWNrIHYpIHtcbiAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgIHt7IHYuY29uY2F0KCcgJykgfX1cbiAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgIH1cbiAgICA8L3A+XG4gIH1cbiAgPGlvbi10ZXh0YXJlYSByb3dzPVwiMTJcIiBbaWRdPVwiaWRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgLz5cbiAgPGlkZWEtbWRlLXRvb2xiYXIgLz5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { IDEATranslationsModule } from '@idea-ionic/common';
6
+ import { IDEAMDEComponent } from './mde.component';
7
+ import { IDEAMDEToolbarComponent } from './mdeToolbar.component';
8
+ import * as i0 from "@angular/core";
9
+ export class IDEAMDEModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEModule, declarations: [IDEAMDEComponent, IDEAMDEToolbarComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEAMDEComponent, IDEAMDEToolbarComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
18
+ declarations: [IDEAMDEComponent, IDEAMDEToolbarComponent],
19
+ exports: [IDEAMDEComponent, IDEAMDEToolbarComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL21kZS9tZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBT2pFLE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSxpQkFIVCxnQkFBZ0IsRUFBRSx1QkFBdUIsYUFEOUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLGFBRTlELGdCQUFnQixFQUFFLHVCQUF1QjsrR0FFeEMsYUFBYSxZQUpkLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHNCQUFzQjs7MkZBSTdELGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3pFLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDO29CQUN6RCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztpQkFDckQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJREVBVHJhbnNsYXRpb25zTW9kdWxlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQU1ERUNvbXBvbmVudCB9IGZyb20gJy4vbWRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJREVBTURFVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vbWRlVG9vbGJhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW9uaWNNb2R1bGUsIElERUFUcmFuc2xhdGlvbnNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtJREVBTURFQ29tcG9uZW50LCBJREVBTURFVG9vbGJhckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtJREVBTURFQ29tcG9uZW50LCBJREVBTURFVG9vbGJhckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSURFQU1ERU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@idea-ionic/common";
4
+ export class IDEAMDEToolbarComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: IDEAMDEToolbarComponent, selector: "idea-mde-toolbar", ngImport: i0, template: "<div class=\"mdeToolbar\">\n <b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>\n <i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>\n ~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~\n</div>\n", styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar b,.mdeToolbar i{padding-right:5px}\n"], dependencies: [{ kind: "pipe", type: i1.IDEATranslatePipe, name: "translate" }] }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMDEToolbarComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'idea-mde-toolbar', template: "<div class=\"mdeToolbar\">\n <b>**{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.BOLD' | translate }}**</b>\n <i>*{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.ITALIC' | translate }}*</i>\n ~{{ 'IDEA_UNCOMMON.MDE.TOOLBAR.STRIKE' | translate }}~\n</div>\n", styles: [".mdeToolbar{text-align:right;color:#aaa;padding:5px 0;font-size:.9em}.mdeToolbar b,.mdeToolbar i{padding-right:5px}\n"] }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRlVG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9tZGUvbWRlVG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9tZGUvbWRlVG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPMUMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd0RDUHBDLGtPQUtBOzsyRkRFYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtbWRlLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJ21kZVRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbWRlVG9vbGJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFNREVUb29sYmFyQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwibWRlVG9vbGJhclwiPlxuICA8Yj4qKnt7ICdJREVBX1VOQ09NTU9OLk1ERS5UT09MQkFSLkJPTEQnIHwgdHJhbnNsYXRlIH19Kio8L2I+XG4gIDxpPip7eyAnSURFQV9VTkNPTU1PTi5NREUuVE9PTEJBUi5JVEFMSUMnIHwgdHJhbnNsYXRlIH19KjwvaT5cbiAgfnt7ICdJREVBX1VOQ09NTU9OLk1ERS5UT09MQkFSLlNUUklLRScgfCB0cmFuc2xhdGUgfX1+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component, Input, inject } from '@angular/core';
2
+ import { IDEAOfflineDataService } from './offlineData.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ionic/angular";
5
+ export class IDEACacheableResourceComponent {
6
+ constructor() {
7
+ this._offline = inject(IDEAOfflineDataService);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEACacheableResourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEACacheableResourceComponent, selector: "idea-cacheable-resource", inputs: { resource: "resource" }, ngImport: i0, template: "<ion-item class=\"cacheableResourceItem\">\n <ion-label>{{ resource.description }}</ion-label>\n @if (resource.error) {\n <ion-icon slot=\"end\" name=\"alert-circle\" color=\"danger\" />\n }\n @if (!resource.error && _offline.synchronizing && resource.synchronizing) {\n <ion-spinner slot=\"end\" name=\"dots\" />\n }\n @if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {\n <ion-icon slot=\"end\" name=\"checkmark\" color=\"success\" />\n }\n @if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {\n <ion-icon slot=\"end\" name=\"pause\" color=\"dark\" />\n }\n</ion-item>\n", styles: [""], dependencies: [{ 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.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEACacheableResourceComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'idea-cacheable-resource', template: "<ion-item class=\"cacheableResourceItem\">\n <ion-label>{{ resource.description }}</ion-label>\n @if (resource.error) {\n <ion-icon slot=\"end\" name=\"alert-circle\" color=\"danger\" />\n }\n @if (!resource.error && _offline.synchronizing && resource.synchronizing) {\n <ion-spinner slot=\"end\" name=\"dots\" />\n }\n @if (!resource.error && !resource.synchronizing && !_offline.requiresManualConfirmation) {\n <ion-icon slot=\"end\" name=\"checkmark\" color=\"success\" />\n }\n @if (!resource.error && !resource.synchronizing && _offline.requiresManualConfirmation) {\n <ion-icon slot=\"end\" name=\"pause\" color=\"dark\" />\n }\n</ion-item>\n" }]
15
+ }], propDecorators: { resource: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVhYmxlUmVzb3VyY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvb2ZmbGluZS9jYWNoZWFibGVSZXNvdXJjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9vZmZsaW5lL2NhY2hlYWJsZVJlc291cmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7OztBQU9sRixNQUFNLE9BQU8sOEJBQThCO0lBTDNDO1FBTUUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBTTNDOzhHQVBZLDhCQUE4QjtrR0FBOUIsOEJBQThCLGlHQ1QzQywrcEJBZUE7OzJGRE5hLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSx5QkFBeUI7OEJBVTFCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSURFQU9mZmxpbmVEYXRhU2VydmljZSwgQ2FjaGVhYmxlUmVzb3VyY2UgfSBmcm9tICcuL29mZmxpbmVEYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWNhY2hlYWJsZS1yZXNvdXJjZScsXG4gIHRlbXBsYXRlVXJsOiAnY2FjaGVhYmxlUmVzb3VyY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2FjaGVhYmxlUmVzb3VyY2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ2FjaGVhYmxlUmVzb3VyY2VDb21wb25lbnQge1xuICBfb2ZmbGluZSA9IGluamVjdChJREVBT2ZmbGluZURhdGFTZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGhlIHJlc291ZWNlIHRvIG1hbmFnZS5cbiAgICovXG4gIEBJbnB1dCgpIHJlc291cmNlOiBDYWNoZWFibGVSZXNvdXJjZTtcbn1cbiIsIjxpb24taXRlbSBjbGFzcz1cImNhY2hlYWJsZVJlc291cmNlSXRlbVwiPlxuICA8aW9uLWxhYmVsPnt7IHJlc291cmNlLmRlc2NyaXB0aW9uIH19PC9pb24tbGFiZWw+XG4gIEBpZiAocmVzb3VyY2UuZXJyb3IpIHtcbiAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJhbGVydC1jaXJjbGVcIiBjb2xvcj1cImRhbmdlclwiIC8+XG4gIH1cbiAgQGlmICghcmVzb3VyY2UuZXJyb3IgJiYgX29mZmxpbmUuc3luY2hyb25pemluZyAmJiByZXNvdXJjZS5zeW5jaHJvbml6aW5nKSB7XG4gICAgPGlvbi1zcGlubmVyIHNsb3Q9XCJlbmRcIiBuYW1lPVwiZG90c1wiIC8+XG4gIH1cbiAgQGlmICghcmVzb3VyY2UuZXJyb3IgJiYgIXJlc291cmNlLnN5bmNocm9uaXppbmcgJiYgIV9vZmZsaW5lLnJlcXVpcmVzTWFudWFsQ29uZmlybWF0aW9uKSB7XG4gICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwiY2hlY2ttYXJrXCIgY29sb3I9XCJzdWNjZXNzXCIgLz5cbiAgfVxuICBAaWYgKCFyZXNvdXJjZS5lcnJvciAmJiAhcmVzb3VyY2Uuc3luY2hyb25pemluZyAmJiBfb2ZmbGluZS5yZXF1aXJlc01hbnVhbENvbmZpcm1hdGlvbikge1xuICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cInBhdXNlXCIgY29sb3I9XCJkYXJrXCIgLz5cbiAgfVxuPC9pb24taXRlbT5cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { IDEATranslationsModule } from '@idea-ionic/common';
5
+ import { IDEAOfflineManagerComponent } from './offlineManager.component';
6
+ import { IDEAOfflineIndicatorComponent } from './offlineIndicator.component';
7
+ import { IDEACacheableResourceComponent } from './cacheableResource.component';
8
+ import * as i0 from "@angular/core";
9
+ export class IDEAOfflineModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineModule, declarations: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent], imports: [CommonModule, IonicModule, IDEATranslationsModule], exports: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineModule, imports: [CommonModule, IonicModule, IDEATranslationsModule] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [CommonModule, IonicModule, IDEATranslationsModule],
18
+ declarations: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent],
19
+ exports: [IDEAOfflineManagerComponent, IDEAOfflineIndicatorComponent, IDEACacheableResourceComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9vZmZsaW5lL29mZmxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPL0UsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSGIsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLGFBRC9GLFlBQVksRUFBRSxXQUFXLEVBQUUsc0JBQXNCLGFBRWpELDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDhCQUE4QjsrR0FFekYsaUJBQWlCLFlBSmxCLFlBQVksRUFBRSxXQUFXLEVBQUUsc0JBQXNCOzsyRkFJaEQsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsc0JBQXNCLENBQUM7b0JBQzVELFlBQVksRUFBRSxDQUFDLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDhCQUE4QixDQUFDO29CQUMxRyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDdEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSURFQVRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFPZmZsaW5lTWFuYWdlckNvbXBvbmVudCB9IGZyb20gJy4vb2ZmbGluZU1hbmFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElERUFPZmZsaW5lSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9vZmZsaW5lSW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJREVBQ2FjaGVhYmxlUmVzb3VyY2VDb21wb25lbnQgfSBmcm9tICcuL2NhY2hlYWJsZVJlc291cmNlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBJREVBVHJhbnNsYXRpb25zTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbSURFQU9mZmxpbmVNYW5hZ2VyQ29tcG9uZW50LCBJREVBT2ZmbGluZUluZGljYXRvckNvbXBvbmVudCwgSURFQUNhY2hlYWJsZVJlc291cmNlQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0lERUFPZmZsaW5lTWFuYWdlckNvbXBvbmVudCwgSURFQU9mZmxpbmVJbmRpY2F0b3JDb21wb25lbnQsIElERUFDYWNoZWFibGVSZXNvdXJjZUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSURFQU9mZmxpbmVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,62 @@
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.1.1", ngImport: i0, type: IDEAOfflineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineService }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAOfflineService, decorators: [{
60
+ type: Injectable
61
+ }], ctorParameters: () => [] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvb2ZmbGluZS9vZmZsaW5lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTdDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFjN0I7UUFDRSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLHFDQUFxQztZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQ3hDLHFCQUFxQixFQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDaEQsQ0FBQztZQUNGLGlHQUFpRztZQUNqRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxxRUFBcUU7Z0JBQ3JFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUNwQyxJQUFJLFFBQVE7d0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFFBQXFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzFCLENBQUM7SUFDRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDOzhHQS9EVSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJ0BjYXBhY2l0b3IvbmV0d29yayc7XG5cbi8qKlxuICogVXRpbGl0eSB0byBtb25pdG9yIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24uXG4gKiBOb3RlOiBkb24ndCB1c2UgaXQgZGlyZWN0bHksIGlmIHlvdSdyZSBhbHNvIHVzaW5nIElERUFPZmZsaW5lRGF0YVNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJREVBT2ZmbGluZVNlcnZpY2Uge1xuICAvKipcbiAgICogVHJ1ZS9mYWxzZSBpZiB0aGUgcGxhdGZvcm0gaXMgb2ZmbGluZS9vbmxpbmUuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2lzT2ZmbGluZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIGZvciBzdWJzY3JpYmluZyB0byBvbmxpbmUvb2ZmbGluZSBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIHByb3RlY3RlZCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVGhlIGhhbmRsZXIgZm9yIGxpc3RlbmlnIHRvIG5ldHdvcmsgY2hhbmdlcy5cbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5lckhhbmRsZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBnZXQgYW4gaW5zdGFudCBzdGF0dXNcbiAgICB0aGlzLl9pc09mZmxpbmUgPSAhbmF2aWdhdG9yLm9uTGluZTtcbiAgICBpZiAoTmV0d29yaykge1xuICAgICAgLy8gc2V0IHRoZSBiYXNpYyBsaXN0ZW5lciBmb3IgY2hhbmdlc1xuICAgICAgdGhpcy5saXN0ZW5lckhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKFxuICAgICAgICAnbmV0d29ya1N0YXR1c0NoYW5nZScsXG4gICAgICAgIHN0YXR1cyA9PiAodGhpcy5faXNPZmZsaW5lID0gIXN0YXR1cy5jb25uZWN0ZWQpXG4gICAgICApO1xuICAgICAgLy8gY3JlYXRlIHRoZSBvYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0byB0aGUgbmV0d29yayBjaGFuZ2VzOyBub3RlOiBpdCB3b24ndCBydW4gdW50aWwgc3Vic2NyaWJlZFxuICAgICAgdGhpcy5vYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgICAvLyByZW1vdmUgdGhlIGJhc2ljIGxpc3RlbmVyIGFkZCBhZGQgb25lIHRoYXQgc3VwcG9ydHMgYSBzdWJzY3JpcHRpb25cbiAgICAgICAgTmV0d29yay5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5saXN0ZW5lckhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKCduZXR3b3JrU3RhdHVzQ2hhbmdlJywgc3RhdHVzID0+IHtcbiAgICAgICAgICB0aGlzLl9pc09mZmxpbmUgPSAhc3RhdHVzLmNvbm5lY3RlZDtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIpIG9ic2VydmVyLm5leHQoc3RhdHVzLmNvbm5lY3RlZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgY29ubmVjdGlvbiBzdGF0dXMgY2hhbmdlcy5cbiAgICovXG4gIHN1YnNjcmliZShjYWxsYmFjazogKGlzT25saW5lOiBib29sZWFuKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZShjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogUXVpY2tseSBjaGVjayB0aGUgY29ubmVjdGlvbiBzdGF0dXMuXG4gICAqL1xuICBpc09ubGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2lzT2ZmbGluZTtcbiAgfVxuICAvKipcbiAgICogUXVpY2tseSBjaGVjayB0aGUgY29ubmVjdGlvbiBzdGF0dXMuXG4gICAqL1xuICBpc09mZmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT2ZmbGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWlja2x5IGNoZWNrIGZvciBvbmxpbmUgY29ubmVjdGlvbi5cbiAgICovXG4gIGFzeW5jIGNoZWNrKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghTmV0d29yaykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgTmV0d29yay5nZXRTdGF0dXMoKTtcbiAgICB0aGlzLl9pc09mZmxpbmUgPSAhc3RhdHVzLmNvbm5lY3RlZDtcbiAgICByZXR1cm4gc3RhdHVzLmNvbm5lY3RlZDtcbiAgfVxufVxuIl19