@igo2/context 1.15.4 → 16.0.0-rc.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 (168) hide show
  1. package/context-theme.scss +5 -0
  2. package/{esm2020 → esm2022}/igo2-context.mjs +4 -4
  3. package/esm2022/lib/context-import-export/context-import-export/context-import-export.component.mjs +258 -0
  4. package/esm2022/lib/context-import-export/context-import-export.module.mjs +81 -0
  5. package/{esm2020 → esm2022}/lib/context-import-export/index.mjs +3 -3
  6. package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.errors.mjs +15 -15
  7. package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.interface.mjs +2 -2
  8. package/esm2022/lib/context-import-export/shared/context-export.service.mjs +38 -0
  9. package/esm2022/lib/context-import-export/shared/context-export.utils.mjs +15 -0
  10. package/esm2022/lib/context-import-export/shared/context-import.errors.mjs +33 -0
  11. package/esm2022/lib/context-import-export/shared/context-import.service.mjs +82 -0
  12. package/esm2022/lib/context-import-export/shared/context-import.utils.mjs +148 -0
  13. package/{esm2020 → esm2022}/lib/context-import-export/shared/index.mjs +8 -8
  14. package/esm2022/lib/context-manager/context-edit/context-edit-binding.directive.mjs +57 -0
  15. package/esm2022/lib/context-manager/context-edit/context-edit.component.mjs +48 -0
  16. package/{esm2020 → esm2022}/lib/context-manager/context-edit/index.mjs +3 -3
  17. package/esm2022/lib/context-manager/context-form/context-form.component.mjs +151 -0
  18. package/{esm2020 → esm2022}/lib/context-manager/context-form/index.mjs +2 -2
  19. package/esm2022/lib/context-manager/context-item/context-item.component.mjs +251 -0
  20. package/{esm2020 → esm2022}/lib/context-manager/context-item/index.mjs +2 -2
  21. package/esm2022/lib/context-manager/context-list/context-list-binding.directive.mjs +259 -0
  22. package/esm2022/lib/context-manager/context-list/context-list.component.mjs +616 -0
  23. package/{esm2020 → esm2022}/lib/context-manager/context-list/context-list.enum.mjs +7 -7
  24. package/{esm2020 → esm2022}/lib/context-manager/context-list/index.mjs +3 -3
  25. package/esm2022/lib/context-manager/context-manager.module.mjs +157 -0
  26. package/esm2022/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +108 -0
  27. package/esm2022/lib/context-manager/context-permissions/context-permissions.component.mjs +331 -0
  28. package/{esm2020 → esm2022}/lib/context-manager/context-permissions/index.mjs +3 -3
  29. package/{esm2020 → esm2022}/lib/context-manager/index.mjs +7 -7
  30. package/{esm2020 → esm2022}/lib/context-manager/shared/context.enum.mjs +13 -13
  31. package/esm2022/lib/context-manager/shared/context.interface.mjs +2 -0
  32. package/esm2022/lib/context-manager/shared/context.service.mjs +662 -0
  33. package/{esm2020 → esm2022}/lib/context-manager/shared/index.mjs +6 -6
  34. package/esm2022/lib/context-manager/shared/layer-context.directive.mjs +172 -0
  35. package/esm2022/lib/context-manager/shared/map-context.directive.mjs +79 -0
  36. package/esm2022/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +74 -0
  37. package/esm2022/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +53 -0
  38. package/{esm2020 → esm2022}/lib/context-map-button/bookmark-button/index.mjs +3 -3
  39. package/esm2022/lib/context-map-button/context-map-button.module.mjs +104 -0
  40. package/{esm2020 → esm2022}/lib/context-map-button/index.mjs +4 -4
  41. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/index.mjs +4 -4
  42. package/esm2022/lib/context-map-button/poi-button/poi-button.component.mjs +179 -0
  43. package/esm2022/lib/context-map-button/poi-button/poi-dialog.component.mjs +53 -0
  44. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/index.mjs +3 -3
  45. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/poi.interface.mjs +2 -2
  46. package/esm2022/lib/context-map-button/poi-button/shared/poi.service.mjs +38 -0
  47. package/{esm2020 → esm2022}/lib/context-map-button/user-button/index.mjs +3 -3
  48. package/{esm2020 → esm2022}/lib/context-map-button/user-button/user-button.animation.mjs +17 -17
  49. package/esm2022/lib/context-map-button/user-button/user-button.component.mjs +112 -0
  50. package/esm2022/lib/context-map-button/user-button/user-dialog.component.mjs +74 -0
  51. package/{esm2020 → esm2022}/lib/context.module.mjs +45 -45
  52. package/{esm2020 → esm2022}/lib/share-map/index.mjs +5 -5
  53. package/esm2022/lib/share-map/share-map/share-map-api.component.mjs +186 -0
  54. package/esm2022/lib/share-map/share-map/share-map-url.component.mjs +251 -0
  55. package/esm2022/lib/share-map/share-map/share-map.component.mjs +60 -0
  56. package/{esm2020 → esm2022}/lib/share-map/share-map.module.mjs +67 -67
  57. package/{esm2020 → esm2022}/lib/share-map/shared/index.mjs +2 -2
  58. package/esm2022/lib/share-map/shared/share-map.service.mjs +221 -0
  59. package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
  60. package/esm2022/lib/sidenav/sidenav.component.mjs +178 -0
  61. package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +61 -61
  62. package/{esm2020 → esm2022}/public_api.mjs +15 -15
  63. package/{fesm2020 → fesm2022}/igo2-context.mjs +4844 -4614
  64. package/fesm2022/igo2-context.mjs.map +1 -0
  65. package/index.d.ts +5 -5
  66. package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +46 -44
  67. package/lib/context-import-export/context-import-export.module.d.ts +23 -23
  68. package/lib/context-import-export/index.d.ts +2 -2
  69. package/lib/context-import-export/shared/context-export.errors.d.ts +8 -8
  70. package/lib/context-import-export/shared/context-export.interface.d.ts +5 -5
  71. package/lib/context-import-export/shared/context-export.service.d.ts +10 -10
  72. package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
  73. package/lib/context-import-export/shared/context-import.errors.d.ts +17 -17
  74. package/lib/context-import-export/shared/context-import.service.d.ts +18 -18
  75. package/lib/context-import-export/shared/context-import.utils.d.ts +15 -17
  76. package/lib/context-import-export/shared/index.d.ts +7 -7
  77. package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +20 -20
  78. package/lib/context-manager/context-edit/context-edit.component.d.ts +14 -14
  79. package/lib/context-manager/context-edit/index.d.ts +2 -2
  80. package/lib/context-manager/context-form/context-form.component.d.ts +30 -30
  81. package/lib/context-manager/context-form/index.d.ts +1 -1
  82. package/lib/context-manager/context-item/context-item.component.d.ts +32 -32
  83. package/lib/context-manager/context-item/context-item.theming.scss +21 -0
  84. package/lib/context-manager/context-item/index.d.ts +1 -1
  85. package/lib/context-manager/context-list/context-list-binding.directive.d.ts +46 -46
  86. package/lib/context-manager/context-list/context-list.component.d.ts +93 -93
  87. package/lib/context-manager/context-list/context-list.enum.d.ts +5 -5
  88. package/lib/context-manager/context-list/context-list.theming.scss +23 -0
  89. package/lib/context-manager/context-list/index.d.ts +2 -2
  90. package/lib/context-manager/context-manager.module.d.ts +37 -37
  91. package/lib/context-manager/context-manager.theming.scss +7 -0
  92. package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +23 -23
  93. package/lib/context-manager/context-permissions/context-permissions.component.d.ts +40 -40
  94. package/lib/context-manager/context-permissions/index.d.ts +2 -2
  95. package/lib/context-manager/index.d.ts +6 -6
  96. package/lib/context-manager/shared/context.enum.d.ts +10 -10
  97. package/lib/context-manager/shared/context.interface.d.ts +81 -75
  98. package/lib/context-manager/shared/context.service.d.ts +76 -75
  99. package/lib/context-manager/shared/index.d.ts +5 -5
  100. package/lib/context-manager/shared/layer-context.directive.d.ts +28 -28
  101. package/lib/context-manager/shared/map-context.directive.d.ts +19 -19
  102. package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +20 -20
  103. package/lib/context-map-button/bookmark-button/bookmark-dialog.component.d.ts +9 -9
  104. package/lib/context-map-button/bookmark-button/index.d.ts +2 -2
  105. package/lib/context-map-button/context-map-button.module.d.ts +27 -27
  106. package/lib/context-map-button/index.d.ts +3 -3
  107. package/lib/context-map-button/poi-button/index.d.ts +3 -3
  108. package/lib/context-map-button/poi-button/poi-button.component.d.ts +34 -34
  109. package/lib/context-map-button/poi-button/poi-dialog.component.d.ts +9 -9
  110. package/lib/context-map-button/poi-button/shared/index.d.ts +2 -2
  111. package/lib/context-map-button/poi-button/shared/poi.interface.d.ts +7 -7
  112. package/lib/context-map-button/poi-button/shared/poi.service.d.ts +16 -16
  113. package/lib/context-map-button/user-button/index.d.ts +2 -2
  114. package/lib/context-map-button/user-button/user-button.animation.d.ts +2 -2
  115. package/lib/context-map-button/user-button/user-button.component.d.ts +25 -25
  116. package/lib/context-map-button/user-button/user-dialog.component.d.ts +15 -15
  117. package/lib/context.module.d.ts +16 -16
  118. package/lib/share-map/index.d.ts +4 -4
  119. package/lib/share-map/share-map/share-map-api.component.d.ts +27 -27
  120. package/lib/share-map/share-map/share-map-url.component.d.ts +26 -26
  121. package/lib/share-map/share-map/share-map.component.d.ts +11 -11
  122. package/lib/share-map/share-map.module.d.ts +21 -21
  123. package/lib/share-map/shared/index.d.ts +1 -1
  124. package/lib/share-map/shared/share-map.service.d.ts +17 -17
  125. package/lib/sidenav/index.d.ts +1 -1
  126. package/lib/sidenav/sidenav.component.d.ts +35 -35
  127. package/lib/sidenav/sidenav.module.d.ts +18 -18
  128. package/locale/en.context.json +199 -0
  129. package/locale/fr.context.json +199 -0
  130. package/package.json +20 -26
  131. package/public_api.d.ts +11 -11
  132. package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +0 -228
  133. package/esm2020/lib/context-import-export/context-import-export.module.mjs +0 -85
  134. package/esm2020/lib/context-import-export/shared/context-export.service.mjs +0 -38
  135. package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +0 -15
  136. package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +0 -33
  137. package/esm2020/lib/context-import-export/shared/context-import.service.mjs +0 -79
  138. package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +0 -133
  139. package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +0 -50
  140. package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +0 -46
  141. package/esm2020/lib/context-manager/context-form/context-form.component.mjs +0 -143
  142. package/esm2020/lib/context-manager/context-item/context-item.component.mjs +0 -245
  143. package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +0 -240
  144. package/esm2020/lib/context-manager/context-list/context-list.component.mjs +0 -592
  145. package/esm2020/lib/context-manager/context-manager.module.mjs +0 -162
  146. package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +0 -99
  147. package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +0 -306
  148. package/esm2020/lib/context-manager/shared/context.interface.mjs +0 -2
  149. package/esm2020/lib/context-manager/shared/context.service.mjs +0 -632
  150. package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +0 -162
  151. package/esm2020/lib/context-manager/shared/map-context.directive.mjs +0 -70
  152. package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +0 -66
  153. package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +0 -50
  154. package/esm2020/lib/context-map-button/context-map-button.module.mjs +0 -96
  155. package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +0 -161
  156. package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +0 -50
  157. package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +0 -33
  158. package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +0 -104
  159. package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +0 -66
  160. package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +0 -170
  161. package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +0 -243
  162. package/esm2020/lib/share-map/share-map/share-map.component.mjs +0 -57
  163. package/esm2020/lib/share-map/shared/share-map.service.mjs +0 -210
  164. package/esm2020/lib/sidenav/sidenav.component.mjs +0 -170
  165. package/fesm2015/igo2-context.mjs +0 -5094
  166. package/fesm2015/igo2-context.mjs.map +0 -1
  167. package/fesm2020/igo2-context.mjs.map +0 -1
  168. package/ngcc.config.js +0 -3
@@ -0,0 +1,82 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { ConfigService } from '@igo2/core';
4
+ import { ImportInvalidFileError, ImportUnreadableFileError, ImportSizeError } from './context-import.errors';
5
+ import { getFileExtension } from './context-import.utils';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@igo2/core";
8
+ export class ContextImportService {
9
+ config;
10
+ static allowedMimeTypes = ['application/json'];
11
+ static allowedExtensions = 'json';
12
+ clientSideFileSizeMax;
13
+ constructor(config) {
14
+ this.config = config;
15
+ const configFileSizeMb = this.config.getConfig('importExport.clientSideFileSizeMaxMb');
16
+ this.clientSideFileSizeMax =
17
+ (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
18
+ }
19
+ import(file) {
20
+ return this.importAsync(file);
21
+ }
22
+ getFileImporter(file) {
23
+ const extension = getFileExtension(file);
24
+ const mimeType = file.type;
25
+ const allowedMimeTypes = [...ContextImportService.allowedMimeTypes];
26
+ const allowedExtensions = ContextImportService.allowedExtensions;
27
+ if (allowedMimeTypes.indexOf(mimeType) < 0 &&
28
+ allowedExtensions.indexOf(extension) < 0) {
29
+ return undefined;
30
+ }
31
+ else if (mimeType === 'application/json' ||
32
+ extension === ContextImportService.allowedExtensions) {
33
+ return this.importFile;
34
+ }
35
+ return undefined;
36
+ }
37
+ importAsync(file) {
38
+ const doImport = (observer) => {
39
+ if (file.size >= this.clientSideFileSizeMax) {
40
+ observer.error(new ImportSizeError());
41
+ return;
42
+ }
43
+ const importer = this.getFileImporter(file);
44
+ if (importer === undefined) {
45
+ observer.error(new ImportInvalidFileError());
46
+ return;
47
+ }
48
+ importer.call(this, file, observer);
49
+ };
50
+ return new Observable(doImport);
51
+ }
52
+ importFile(file, observer) {
53
+ const reader = new FileReader();
54
+ reader.onload = (event) => {
55
+ try {
56
+ const context = this.parseContextFromFile(file, event.target.result);
57
+ observer.next(context);
58
+ }
59
+ catch (e) {
60
+ observer.error(new ImportUnreadableFileError());
61
+ }
62
+ observer.complete();
63
+ };
64
+ reader.onerror = (evt) => {
65
+ observer.error(new ImportUnreadableFileError());
66
+ };
67
+ reader.readAsText(file, 'UTF-8');
68
+ }
69
+ parseContextFromFile(file, data) {
70
+ const context = JSON.parse(data);
71
+ return context;
72
+ }
73
+ static ɵfac = function ContextImportService_Factory(t) { return new (t || ContextImportService)(i0.ɵɵinject(i1.ConfigService)); };
74
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ContextImportService, factory: ContextImportService.ɵfac, providedIn: 'root' });
75
+ }
76
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextImportService, [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root'
80
+ }]
81
+ }], function () { return [{ type: i1.ConfigService }]; }, null); })();
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1pbXBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LWltcG9ydC1leHBvcnQvc2hhcmVkL2NvbnRleHQtaW1wb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsZUFBZSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFNMUQsTUFBTSxPQUFPLG9CQUFvQjtJQU9YO0lBTnBCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0MsTUFBTSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUUxQixxQkFBcUIsQ0FBUztJQUV0QyxZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzVDLHNDQUFzQyxDQUN2QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQjtZQUN4QixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFD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ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHtcbiAgSW1wb3J0SW52YWxpZEZpbGVFcnJvcixcbiAgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcixcbiAgSW1wb3J0U2l6ZUVycm9yXG59IGZyb20gJy4vY29udGV4dC1pbXBvcnQuZXJyb3JzJztcbmltcG9ydCB7IGdldEZpbGVFeHRlbnNpb24gfSBmcm9tICcuL2NvbnRleHQtaW1wb3J0LnV0aWxzJztcbmltcG9ydCB7IERldGFpbGVkQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0SW1wb3J0U2VydmljZSB7XG4gIHN0YXRpYyBhbGxvd2VkTWltZVR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG5cbiAgc3RhdGljIGFsbG93ZWRFeHRlbnNpb25zID0gJ2pzb24nO1xuXG4gIHByaXZhdGUgY2xpZW50U2lkZUZpbGVTaXplTWF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBjb25zdCBjb25maWdGaWxlU2l6ZU1iID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKFxuICAgICAgJ2ltcG9ydEV4cG9ydC5jbGllbnRTaWRlRmlsZVNpemVNYXhNYidcbiAgICApO1xuICAgIHRoaXMuY2xpZW50U2lkZUZpbGVTaXplTWF4ID1cbiAgICAgIChjb25maWdGaWxlU2l6ZU1iID8gY29uZmlnRmlsZVNpemVNYiA6IDMwKSAqIE1hdGgucG93KDEwMjQsIDIpO1xuICB9XG5cbiAgaW1wb3J0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmltcG9ydEFzeW5jKGZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlSW1wb3J0ZXIoXG4gICAgZmlsZTogRmlsZVxuICApOiAoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RGV0YWlsZWRDb250ZXh0PixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSA9PiB2b2lkIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS50eXBlO1xuICAgIGNvbnN0IGFsbG93ZWRNaW1lVHlwZXMgPSBbLi4uQ29udGV4dEltcG9ydFNlcnZpY2UuYWxsb3dlZE1pbWVUeXBlc107XG4gICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPSBDb250ZXh0SW1wb3J0U2VydmljZS5hbGxvd2VkRXh0ZW5zaW9ucztcblxuICAgIGlmIChcbiAgICAgIGFsbG93ZWRNaW1lVHlwZXMuaW5kZXhPZihtaW1lVHlwZSkgPCAwICYmXG4gICAgICBhbGxvd2VkRXh0ZW5zaW9ucy5pbmRleE9mKGV4dGVuc2lvbikgPCAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nIHx8XG4gICAgICBleHRlbnNpb24gPT09IENvbnRleHRJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbXBvcnRGaWxlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRBc3luYyhmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBjb25zdCBkb0ltcG9ydCA9IChvYnNlcnZlcjogT2JzZXJ2ZXI8RGV0YWlsZWRDb250ZXh0PikgPT4ge1xuICAgICAgaWYgKGZpbGUuc2l6ZSA+PSB0aGlzLmNsaWVudFNpZGVGaWxlU2l6ZU1heCkge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0U2l6ZUVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpbXBvcnRlciA9IHRoaXMuZ2V0RmlsZUltcG9ydGVyKGZpbGUpO1xuICAgICAgaWYgKGltcG9ydGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydEludmFsaWRGaWxlRXJyb3IoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaW1wb3J0ZXIuY2FsbCh0aGlzLCBmaWxlLCBvYnNlcnZlcik7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkb0ltcG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEZpbGUoZmlsZTogRmlsZSwgb2JzZXJ2ZXI6IE9ic2VydmVyPERldGFpbGVkQ29udGV4dD4pIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgcmVhZGVyLm9ubG9hZCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wYXJzZUNvbnRleHRGcm9tRmlsZShmaWxlLCBldmVudC50YXJnZXQucmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChjb250ZXh0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICB9XG5cbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIHJlYWRlci5vbmVycm9yID0gKGV2dCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgfTtcblxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUNvbnRleHRGcm9tRmlsZShmaWxlOiBGaWxlLCBkYXRhOiBzdHJpbmcpOiBEZXRhaWxlZENvbnRleHQge1xuICAgIGNvbnN0IGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,148 @@
1
+ import { FeatureDataSource, VectorLayer, ClusterDataSource, featureRandomStyle, featureRandomStyleFunction } from '@igo2/geo';
2
+ import GeoJSON from 'ol/format/GeoJSON';
3
+ export function handleFileImportSuccess(file, context, messageService, contextService) {
4
+ if (Object.keys(context).length <= 0) {
5
+ handleNothingToImportError(file, messageService);
6
+ return;
7
+ }
8
+ const contextTitle = computeLayerTitleFromFile(file);
9
+ addContextToContextList(context, contextTitle, contextService);
10
+ messageService.success('igo.context.contextImportExport.import.success.text', 'igo.context.contextImportExport.import.success.title', undefined, {
11
+ value: contextTitle
12
+ });
13
+ }
14
+ export function handleFileImportError(file, error, messageService, sizeMb) {
15
+ sizeMb = sizeMb ? sizeMb : 30;
16
+ const errMapping = {
17
+ 'Invalid file': handleInvalidFileImportError,
18
+ 'File is too large': handleSizeFileImportError,
19
+ 'Failed to read file': handleUnreadbleFileImportError
20
+ };
21
+ errMapping[error.message](file, error, messageService, sizeMb);
22
+ }
23
+ export function handleInvalidFileImportError(file, error, messageService) {
24
+ messageService.error('igo.context.contextImportExport.import.invalid.text', 'igo.context.contextImportExport.import.invalid.title', undefined, {
25
+ value: file.name,
26
+ mimeType: file.type
27
+ });
28
+ }
29
+ export function handleSizeFileImportError(file, error, messageService, sizeMb) {
30
+ messageService.error('igo.context.contextImportExport.import.tooLarge.text', 'igo.context.contextImportExport.import.tooLarge.title', undefined, {
31
+ value: file.name,
32
+ size: sizeMb
33
+ });
34
+ }
35
+ export function handleUnreadbleFileImportError(file, error, messageService) {
36
+ messageService.error('igo.context.contextImportExport.import.unreadable.text', 'igo.context.contextImportExport.import.unreadable.title', undefined, {
37
+ value: file.name
38
+ });
39
+ }
40
+ export function handleNothingToImportError(file, messageService) {
41
+ messageService.error('igo.context.contextImportExport.import.empty.text', 'igo.context.contextImportExport.import.empty.title', undefined, { value: file.name });
42
+ }
43
+ export function addContextToContextList(context, contextTitle, contextService) {
44
+ context.title = contextTitle;
45
+ context.imported = true;
46
+ contextService.contexts$.value.ours.unshift(context);
47
+ contextService.contexts$.next(contextService.contexts$.value);
48
+ contextService.importedContext.unshift(context);
49
+ contextService.loadContext(context.uri);
50
+ }
51
+ export function getFileExtension(file) {
52
+ return file.name.split('.').pop().toLowerCase();
53
+ }
54
+ export function computeLayerTitleFromFile(file) {
55
+ return file.name.substr(0, file.name.lastIndexOf('.'));
56
+ }
57
+ export function addImportedFeaturesToMap(extraFeatures, map) {
58
+ const sourceOptions = {
59
+ type: 'vector',
60
+ queryable: true
61
+ };
62
+ const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);
63
+ const source = new FeatureDataSource(sourceOptions);
64
+ source.ol.addFeatures(olFeatures);
65
+ let randomStyle;
66
+ let editable = false;
67
+ const featureKeys = olFeatures[0]?.getKeys() ?? [];
68
+ if (featureKeys.includes('_style') || featureKeys.includes('_mapTitle')) {
69
+ randomStyle = featureRandomStyleFunction();
70
+ }
71
+ else {
72
+ randomStyle = featureRandomStyle();
73
+ editable = true;
74
+ }
75
+ const layer = new VectorLayer({
76
+ title: extraFeatures.name,
77
+ isIgoInternalLayer: true,
78
+ source,
79
+ igoStyle: { editable },
80
+ style: randomStyle,
81
+ visible: extraFeatures.visible,
82
+ opacity: extraFeatures.opacity
83
+ });
84
+ map.addLayer(layer);
85
+ return layer;
86
+ }
87
+ export function addImportedFeaturesStyledToMap(extraFeatures, map, styleListService, styleService) {
88
+ let style;
89
+ let distance;
90
+ if (styleListService.getStyleList(extraFeatures.name + '.styleByAttribute')) {
91
+ const styleByAttribute = styleListService.getStyleList(extraFeatures.name + '.styleByAttribute');
92
+ style = (feature, resolution) => {
93
+ return styleService.createStyleByAttribute(feature, styleByAttribute, resolution);
94
+ };
95
+ }
96
+ else if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {
97
+ const clusterParam = styleListService.getStyleList(extraFeatures.name + '.clusterParam');
98
+ distance = styleListService.getStyleList(extraFeatures.name + '.distance');
99
+ style = (feature, resolution) => {
100
+ const baseStyle = styleService.createStyle(styleListService.getStyleList(extraFeatures.name + '.clusterStyle'), feature, resolution);
101
+ return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);
102
+ };
103
+ }
104
+ else if (styleListService.getStyleList(extraFeatures.name + '.style')) {
105
+ style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList(extraFeatures.name + '.style'), feature, resolution);
106
+ }
107
+ else {
108
+ style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList('default.style'), feature, resolution);
109
+ }
110
+ let source;
111
+ const olFeatures = collectFeaturesFromExtraFeatures(extraFeatures);
112
+ if (styleListService.getStyleList(extraFeatures.name + '.clusterStyle')) {
113
+ const sourceOptions = {
114
+ distance,
115
+ type: 'cluster',
116
+ queryable: true
117
+ };
118
+ source = new ClusterDataSource(sourceOptions);
119
+ source.ol.source.addFeatures(olFeatures);
120
+ }
121
+ else {
122
+ const sourceOptions = {
123
+ type: 'vector',
124
+ queryable: true
125
+ };
126
+ source = new FeatureDataSource(sourceOptions);
127
+ source.ol.addFeatures(olFeatures);
128
+ }
129
+ const layer = new VectorLayer({
130
+ title: extraFeatures.name,
131
+ isIgoInternalLayer: true,
132
+ source,
133
+ style,
134
+ opacity: extraFeatures.opacity,
135
+ visible: extraFeatures.visible
136
+ });
137
+ map.addLayer(layer);
138
+ return layer;
139
+ }
140
+ function collectFeaturesFromExtraFeatures(featureCollection) {
141
+ const format = new GeoJSON();
142
+ const features = format.readFeatures(featureCollection, {
143
+ dataProjection: 'EPSG:4326',
144
+ featureProjection: 'EPSG:3857'
145
+ });
146
+ return features;
147
+ }
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1pbXBvcnQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1pbXBvcnQtZXhwb3J0L3NoYXJlZC9jb250ZXh0LWltcG9ydC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsaUJBQWlCLEVBR2pCLFdBQVcsRUFPWCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMzQixNQUFNLFdBQVcsQ0FBQztBQVFuQixPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUV4QyxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLElBQVUsRUFDVixPQUF3QixFQUN4QixjQUE4QixFQUM5QixjQUE4QjtJQUU5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNwQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDakQsT0FBTztLQUNSO0lBRUQsTUFBTSxZQUFZLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQsdUJBQXVCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUUvRCxjQUFjLENBQUMsT0FBTyxDQUNwQixxREFBcUQsRUFDckQsc0RBQXNELEVBQ3RELFNBQVMsRUFDVDtRQUNFLEtBQUssRUFBRSxZQUFZO0tBQ3BCLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLElBQVUsRUFDVixLQUFZLEVBQ1osY0FBOEIsRUFDOUIsTUFBZTtJQUVmLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlCLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLGNBQWMsRUFBRSw0QkFBNEI7UUFD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QztJQUVoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUU7UUFDdEQsY0FBYyxFQUFFLFdBQVc7UUFDM0IsaUJBQWlCLEVBQUUsV0FBVztLQUMvQixDQUFDLENBQUM7SUFDSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHtcbiAgRmVhdHVyZURhdGFTb3VyY2UsXG4gIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyxcbiAgSWdvTWFwLFxuICBWZWN0b3JMYXllcixcbiAgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFN0eWxlU2VydmljZSxcbiAgU3R5bGVMaXN0U2VydmljZSxcbiAgU3R5bGVCeUF0dHJpYnV0ZSxcbiAgQ2x1c3RlclBhcmFtLFxuICBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMsXG4gIENsdXN0ZXJEYXRhU291cmNlLFxuICBmZWF0dXJlUmFuZG9tU3R5bGUsXG4gIGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uXG59IGZyb20gJ0BpZ28yL2dlbyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGV0YWlsZWRDb250ZXh0LFxuICBFeHRyYUZlYXR1cmVzXG59IGZyb20gJy4uLy4uL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LW1hbmFnZXIvc2hhcmVkL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRmlsZUltcG9ydFN1Y2Nlc3MoXG4gIGZpbGU6IEZpbGUsXG4gIGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2Vcbikge1xuICBpZiAoT2JqZWN0LmtleXMoY29udGV4dCkubGVuZ3RoIDw9IDApIHtcbiAgICBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihmaWxlLCBtZXNzYWdlU2VydmljZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29udGV4dFRpdGxlID0gY29tcHV0ZUxheWVyVGl0bGVGcm9tRmlsZShmaWxlKTtcblxuICBhZGRDb250ZXh0VG9Db250ZXh0TGlzdChjb250ZXh0LCBjb250ZXh0VGl0bGUsIGNvbnRleHRTZXJ2aWNlKTtcblxuICBtZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICdpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmltcG9ydC5zdWNjZXNzLnRleHQnLFxuICAgICdpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmltcG9ydC5zdWNjZXNzLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgdmFsdWU6IGNvbnRleHRUaXRsZVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZpbGVJbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgZXJyb3I6IEVycm9yLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gIHNpemVNYj86IG51bWJlclxuKSB7XG4gIHNpemVNYiA9IHNpemVNYiA/IHNpemVNYiA6IDMwO1xuICBjb25zdCBlcnJNYXBwaW5nID0ge1xuICAgICdJbnZhbGlkIGZpbGUnOiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yLFxuICAgICdGaWxlIGlzIHRvbyBsYXJnZSc6IGhhbmRsZVNpemVGaWxlSW1wb3J0RXJyb3IsXG4gICAgJ0ZhaWxlZCB0byByZWFkIGZpbGUnOiBoYW5kbGVVbnJlYWRibGVGaWxlSW1wb3J0RXJyb3JcbiAgfTtcbiAgZXJyTWFwcGluZ1tlcnJvci5tZXNzYWdlXShmaWxlLCBlcnJvciwgbWVzc2FnZVNlcnZpY2UsIHNpemVNYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmltcG9ydC5pbnZhbGlkLnRleHQnLFxuICAgICdpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmltcG9ydC5pbnZhbGlkLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcbiAgICAgIG1pbWVUeXBlOiBmaWxlLnR5cGVcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgc2l6ZU1iOiBudW1iZXJcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmNvbnRleHQuY29udGV4dEltcG9ydEV4cG9ydC5pbXBvcnQudG9vTGFyZ2UudGV4dCcsXG4gICAgJ2lnby5jb250ZXh0LmNvbnRleHRJbXBvcnRFeHBvcnQuaW1wb3J0LnRvb0xhcmdlLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IHNpemVNYlxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVVucmVhZGJsZUZpbGVJbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgZXJyb3I6IEVycm9yLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmNvbnRleHQuY29udGV4dEltcG9ydEV4cG9ydC5pbXBvcnQudW5yZWFkYWJsZS50ZXh0JyxcbiAgICAnaWdvLmNvbnRleHQuY29udGV4dEltcG9ydEV4cG9ydC5pbXBvcnQudW5yZWFkYWJsZS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWVcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgJ2lnby5jb250ZXh0LmNvbnRleHRJbXBvcnRFeHBvcnQuaW1wb3J0LmVtcHR5LnRleHQnLFxuICAgICdpZ28uY29udGV4dC5jb250ZXh0SW1wb3J0RXhwb3J0LmltcG9ydC5lbXB0eS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdmFsdWU6IGZpbGUubmFtZSB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRDb250ZXh0VG9Db250ZXh0TGlzdChcbiAgY29udGV4dDogRGV0YWlsZWRDb250ZXh0LFxuICBjb250ZXh0VGl0bGU6IHN0cmluZyxcbiAgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlXG4pIHtcbiAgY29udGV4dC50aXRsZSA9IGNvbnRleHRUaXRsZTtcbiAgY29udGV4dC5pbXBvcnRlZCA9IHRydWU7XG4gIGNvbnRleHRTZXJ2aWNlLmNvbnRleHRzJC52YWx1ZS5vdXJzLnVuc2hpZnQoY29udGV4dCk7XG4gIGNvbnRleHRTZXJ2aWNlLmNvbnRleHRzJC5uZXh0KGNvbnRleHRTZXJ2aWNlLmNvbnRleHRzJC52YWx1ZSk7XG4gIGNvbnRleHRTZXJ2aWNlLmltcG9ydGVkQ29udGV4dC51bnNoaWZ0KGNvbnRleHQpO1xuICBjb250ZXh0U2VydmljZS5sb2FkQ29udGV4dChjb250ZXh0LnVyaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlLm5hbWUuc3Vic3RyKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEltcG9ydGVkRmVhdHVyZXNUb01hcChcbiAgZXh0cmFGZWF0dXJlczogRXh0cmFGZWF0dXJlcyxcbiAgbWFwOiBJZ29NYXBcbik6IFZlY3RvckxheWVyIHtcbiAgY29uc3Qgc291cmNlT3B0aW9uczogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPSB7XG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgcXVlcnlhYmxlOiB0cnVlXG4gIH07XG5cbiAgY29uc3Qgb2xGZWF0dXJlcyA9IGNvbGxlY3RGZWF0dXJlc0Zyb21FeHRyYUZlYXR1cmVzKGV4dHJhRmVhdHVyZXMpO1xuICBjb25zdCBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2Uoc291cmNlT3B0aW9ucyk7XG4gIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcblxuICBsZXQgcmFuZG9tU3R5bGU7XG4gIGxldCBlZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25zdCBmZWF0dXJlS2V5cyA9IG9sRmVhdHVyZXNbMF0/LmdldEtleXMoKSA/PyBbXTtcbiAgaWYgKGZlYXR1cmVLZXlzLmluY2x1ZGVzKCdfc3R5bGUnKSB8fCBmZWF0dXJlS2V5cy5pbmNsdWRlcygnX21hcFRpdGxlJykpIHtcbiAgICByYW5kb21TdHlsZSA9IGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgcmFuZG9tU3R5bGUgPSBmZWF0dXJlUmFuZG9tU3R5bGUoKTtcbiAgICBlZGl0YWJsZSA9IHRydWU7XG4gIH1cbiAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgIHRpdGxlOiBleHRyYUZlYXR1cmVzLm5hbWUsXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgIHNvdXJjZSxcbiAgICBpZ29TdHlsZTogeyBlZGl0YWJsZSB9LFxuICAgIHN0eWxlOiByYW5kb21TdHlsZSxcbiAgICB2aXNpYmxlOiBleHRyYUZlYXR1cmVzLnZpc2libGUsXG4gICAgb3BhY2l0eTogZXh0cmFGZWF0dXJlcy5vcGFjaXR5XG4gIH0pO1xuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuXG4gIHJldHVybiBsYXllcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEltcG9ydGVkRmVhdHVyZXNTdHlsZWRUb01hcChcbiAgZXh0cmFGZWF0dXJlczogRXh0cmFGZWF0dXJlcyxcbiAgbWFwOiBJZ29NYXAsXG4gIHN0eWxlTGlzdFNlcnZpY2U6IFN0eWxlTGlzdFNlcnZpY2UsXG4gIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlXG4pOiBWZWN0b3JMYXllciB7XG4gIGxldCBzdHlsZTtcbiAgbGV0IGRpc3RhbmNlOiBudW1iZXI7XG5cbiAgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGV4dHJhRmVhdHVyZXMubmFtZSArICcuc3R5bGVCeUF0dHJpYnV0ZScpKSB7XG4gICAgY29uc3Qgc3R5bGVCeUF0dHJpYnV0ZTogU3R5bGVCeUF0dHJpYnV0ZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxuICAgICAgZXh0cmFGZWF0dXJlcy5uYW1lICsgJy5zdHlsZUJ5QXR0cmlidXRlJ1xuICAgICk7XG5cbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHN0eWxlQnlBdHRyaWJ1dGUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChleHRyYUZlYXR1cmVzLm5hbWUgKyAnLmNsdXN0ZXJTdHlsZScpXG4gICkge1xuICAgIGNvbnN0IGNsdXN0ZXJQYXJhbTogQ2x1c3RlclBhcmFtID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXG4gICAgICBleHRyYUZlYXR1cmVzLm5hbWUgKyAnLmNsdXN0ZXJQYXJhbSdcbiAgICApO1xuICAgIGRpc3RhbmNlID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoZXh0cmFGZWF0dXJlcy5uYW1lICsgJy5kaXN0YW5jZScpO1xuXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgY29uc3QgYmFzZVN0eWxlID0gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChleHRyYUZlYXR1cmVzLm5hbWUgKyAnLmNsdXN0ZXJTdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVDbHVzdGVyU3R5bGUoXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgIGNsdXN0ZXJQYXJhbSxcbiAgICAgICAgYmFzZVN0eWxlXG4gICAgICApO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoZXh0cmFGZWF0dXJlcy5uYW1lICsgJy5zdHlsZScpKSB7XG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cbiAgICAgIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoZXh0cmFGZWF0dXJlcy5uYW1lICsgJy5zdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XG4gICAgICBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LnN0eWxlJyksXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gIH1cbiAgbGV0IHNvdXJjZTtcbiAgY29uc3Qgb2xGZWF0dXJlcyA9IGNvbGxlY3RGZWF0dXJlc0Zyb21FeHRyYUZlYXR1cmVzKGV4dHJhRmVhdHVyZXMpO1xuICBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoZXh0cmFGZWF0dXJlcy5uYW1lICsgJy5jbHVzdGVyU3R5bGUnKSkge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgIHR5cGU6ICdjbHVzdGVyJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9O1xuICAgIHNvdXJjZSA9IG5ldyBDbHVzdGVyRGF0YVNvdXJjZShzb3VyY2VPcHRpb25zKTtcbiAgICBzb3VyY2Uub2wuc291cmNlLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2Uoc291cmNlT3B0aW9ucyk7XG4gICAgc291cmNlLm9sLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9XG5cbiAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgIHRpdGxlOiBleHRyYUZlYXR1cmVzLm5hbWUsXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgIHNvdXJjZSxcbiAgICBzdHlsZSxcbiAgICBvcGFjaXR5OiBleHRyYUZlYXR1cmVzLm9wYWNpdHksXG4gICAgdmlzaWJsZTogZXh0cmFGZWF0dXJlcy52aXNpYmxlXG4gIH0pO1xuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuXG4gIHJldHVybiBsYXllcjtcbn1cblxuZnVuY3Rpb24gY29sbGVjdEZlYXR1cmVzRnJvbUV4dHJhRmVhdHVyZXMoXG4gIGZlYXR1cmVDb2xsZWN0aW9uOiBFeHRyYUZlYXR1cmVzXG4pOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSB7XG4gIGNvbnN0IGZvcm1hdCA9IG5ldyBHZW9KU09OKCk7XG4gIGNvbnN0IGZlYXR1cmVzID0gZm9ybWF0LnJlYWRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbiwge1xuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NydcbiAgfSk7XG4gIHJldHVybiBmZWF0dXJlcztcbn1cbiJdfQ==
@@ -1,8 +1,8 @@
1
- export * from './context-export.errors';
2
- export * from './context-import.errors';
3
- export * from './context-export.service';
4
- export * from './context-import.service';
5
- export * from './context-export.interface';
6
- export * from './context-import.utils';
7
- export * from './context-export.utils';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWV4cG9ydC5lcnJvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtaW1wb3J0LmVycm9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1leHBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1pbXBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1leHBvcnQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWltcG9ydC51dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1leHBvcnQudXRpbHMnO1xyXG4iXX0=
1
+ export * from './context-export.errors';
2
+ export * from './context-import.errors';
3
+ export * from './context-export.service';
4
+ export * from './context-import.service';
5
+ export * from './context-export.interface';
6
+ export * from './context-import.utils';
7
+ export * from './context-export.utils';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWV4cG9ydC5lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWltcG9ydC5lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWV4cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1pbXBvcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtZXhwb3J0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtaW1wb3J0LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1leHBvcnQudXRpbHMnO1xuIl19
@@ -0,0 +1,57 @@
1
+ import { Output, EventEmitter, Directive, Self, HostListener } from '@angular/core';
2
+ import { MessageService } from '@igo2/core';
3
+ import { ContextService } from '../shared/context.service';
4
+ import { ContextEditComponent } from './context-edit.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./context-edit.component";
7
+ import * as i2 from "../shared/context.service";
8
+ import * as i3 from "@igo2/core";
9
+ export class ContextEditBindingDirective {
10
+ contextService;
11
+ messageService;
12
+ component;
13
+ editedContext$$;
14
+ submitSuccessed = new EventEmitter();
15
+ onEdit(context) {
16
+ const id = this.component.context.id;
17
+ this.contextService.update(id, context).subscribe(() => {
18
+ this.messageService.success('igo.context.contextManager.dialog.saveMsg', 'igo.context.contextManager.dialog.saveTitle', undefined, {
19
+ value: context.title || this.component.context.title
20
+ });
21
+ this.contextService.setEditedContext(undefined);
22
+ this.submitSuccessed.emit(context);
23
+ });
24
+ }
25
+ constructor(component, contextService, messageService) {
26
+ this.contextService = contextService;
27
+ this.messageService = messageService;
28
+ this.component = component;
29
+ }
30
+ ngOnInit() {
31
+ this.editedContext$$ = this.contextService.editedContext$.subscribe((context) => this.handleEditedContextChange(context));
32
+ }
33
+ ngOnDestroy() {
34
+ this.editedContext$$.unsubscribe();
35
+ }
36
+ handleEditedContextChange(context) {
37
+ this.component.context = context;
38
+ }
39
+ static ɵfac = function ContextEditBindingDirective_Factory(t) { return new (t || ContextEditBindingDirective)(i0.ɵɵdirectiveInject(i1.ContextEditComponent, 2), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.MessageService)); };
40
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ContextEditBindingDirective, selectors: [["", "igoContextEditBinding", ""]], hostBindings: function ContextEditBindingDirective_HostBindings(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵlistener("submitForm", function ContextEditBindingDirective_submitForm_HostBindingHandler($event) { return ctx.onEdit($event); });
42
+ } }, outputs: { submitSuccessed: "submitSuccessed" } });
43
+ }
44
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextEditBindingDirective, [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: '[igoContextEditBinding]'
48
+ }]
49
+ }], function () { return [{ type: i1.ContextEditComponent, decorators: [{
50
+ type: Self
51
+ }] }, { type: i2.ContextService }, { type: i3.MessageService }]; }, { submitSuccessed: [{
52
+ type: Output
53
+ }], onEdit: [{
54
+ type: HostListener,
55
+ args: ['submitForm', ['$event']]
56
+ }] }); })();
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1lZGl0LWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9jb250ZXh0LWVkaXQvY29udGV4dC1lZGl0LWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxJQUFJLEVBR0osWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUtoRSxNQUFNLE9BQU8sMkJBQTJCO0lBeUI1QjtJQUNBO0lBekJGLFNBQVMsQ0FBdUI7SUFDaEMsZUFBZSxDQUFlO0lBRTVCLGVBQWUsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUd0RSxNQUFNLENBQUMsT0FBZ0I7UUFDckIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUN6QiwyQ0FBMkMsRUFDM0MsNkNBQTZDLEVBQzdDLFNBQVMsRUFDVDtnQkFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLO2FBQ3JELENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFDVSxTQUErQixFQUMvQixjQUE4QixFQUM5QixjQUE4QjtRQUQ5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRXRDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQ2pFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQXdCO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO3FGQTNDVSwyQkFBMkI7NkRBQTNCLDJCQUEyQjs0SEFBM0Isa0JBQWM7Ozt1RkFBZCwyQkFBMkI7Y0FIdkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7YUFDcEM7O3NCQXlCSSxJQUFJO2tGQXBCRyxlQUFlO2tCQUF4QixNQUFNO1lBR1AsTUFBTTtrQkFETCxZQUFZO21CQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBEaXJlY3RpdmUsXG4gIFNlbGYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBIb3N0TGlzdGVuZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHsgQ29udGV4dCwgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZXh0RWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1lZGl0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29Db250ZXh0RWRpdEJpbmRpbmddJ1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0RWRpdEJpbmRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29tcG9uZW50OiBDb250ZXh0RWRpdENvbXBvbmVudDtcbiAgcHJpdmF0ZSBlZGl0ZWRDb250ZXh0JCQ6IFN1YnNjcmlwdGlvbjtcblxuICBAT3V0cHV0KCkgc3VibWl0U3VjY2Vzc2VkOiBFdmVudEVtaXR0ZXI8Q29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignc3VibWl0Rm9ybScsIFsnJGV2ZW50J10pXG4gIG9uRWRpdChjb250ZXh0OiBDb250ZXh0KSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmNvbXBvbmVudC5jb250ZXh0LmlkO1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGlkLCBjb250ZXh0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZGlhbG9nLnNhdmVNc2cnLFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZGlhbG9nLnNhdmVUaXRsZScsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBjb250ZXh0LnRpdGxlIHx8IHRoaXMuY29tcG9uZW50LmNvbnRleHQudGl0bGVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc2V0RWRpdGVkQ29udGV4dCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5zdWJtaXRTdWNjZXNzZWQuZW1pdChjb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgY29tcG9uZW50OiBDb250ZXh0RWRpdENvbXBvbmVudCxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZWRpdGVkQ29udGV4dCQkID0gdGhpcy5jb250ZXh0U2VydmljZS5lZGl0ZWRDb250ZXh0JC5zdWJzY3JpYmUoXG4gICAgICAoY29udGV4dCkgPT4gdGhpcy5oYW5kbGVFZGl0ZWRDb250ZXh0Q2hhbmdlKGNvbnRleHQpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZWRpdGVkQ29udGV4dCQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVkaXRlZENvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XG4gICAgdGhpcy5jb21wb25lbnQuY29udGV4dCA9IGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../context-form/context-form.component";
5
+ import * as i3 from "@ngx-translate/core";
6
+ function ContextEditComponent_igo_context_form_0_Template(rf, ctx) { if (rf & 1) {
7
+ const _r2 = i0.ɵɵgetCurrentView();
8
+ i0.ɵɵelementStart(0, "igo-context-form", 1);
9
+ i0.ɵɵlistener("submitForm", function ContextEditComponent_igo_context_form_0_Template_igo_context_form_submitForm_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.submitForm.emit($event)); });
10
+ i0.ɵɵpipe(1, "translate");
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const ctx_r0 = i0.ɵɵnextContext();
14
+ i0.ɵɵproperty("btnSubmitText", i0.ɵɵpipeBind1(1, 2, "igo.context.contextManager.save"))("context", ctx_r0.context);
15
+ } }
16
+ export class ContextEditComponent {
17
+ cd;
18
+ get context() {
19
+ return this._context;
20
+ }
21
+ set context(value) {
22
+ this._context = value;
23
+ this.refresh();
24
+ }
25
+ _context;
26
+ submitForm = new EventEmitter();
27
+ constructor(cd) {
28
+ this.cd = cd;
29
+ }
30
+ refresh() {
31
+ this.cd.detectChanges();
32
+ }
33
+ static ɵfac = function ContextEditComponent_Factory(t) { return new (t || ContextEditComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
34
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextEditComponent, selectors: [["igo-context-edit"]], inputs: { context: "context" }, outputs: { submitForm: "submitForm" }, decls: 1, vars: 1, consts: [[3, "btnSubmitText", "context", "submitForm", 4, "ngIf"], [3, "btnSubmitText", "context", "submitForm"]], template: function ContextEditComponent_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵtemplate(0, ContextEditComponent_igo_context_form_0_Template, 2, 4, "igo-context-form", 0);
36
+ } if (rf & 2) {
37
+ i0.ɵɵproperty("ngIf", ctx.context);
38
+ } }, dependencies: [i1.NgIf, i2.ContextFormComponent, i3.TranslatePipe], encapsulation: 2 });
39
+ }
40
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextEditComponent, [{
41
+ type: Component,
42
+ args: [{ selector: 'igo-context-edit', template: "<igo-context-form\n *ngIf=\"context\"\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context\"\n (submitForm)=\"submitForm.emit($event)\"\n>\n</igo-context-form>\n" }]
43
+ }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { context: [{
44
+ type: Input
45
+ }], submitForm: [{
46
+ type: Output
47
+ }] }); })();
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1lZGl0L2NvbnRleHQtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZWRpdC9jb250ZXh0LWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7SUNOdkIsMkNBS0M7SUFEQyx3TUFBYyxlQUFBLDhCQUF1QixDQUFBLElBQUM7O0lBRXhDLGlCQUFtQjs7O0lBSmpCLHVGQUErRCwyQkFBQTs7QURZakUsTUFBTSxPQUFPLG9CQUFvQjtJQWFYO0lBWnBCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUNPLFFBQVEsQ0FBVTtJQUVoQixVQUFVLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakUsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFBRyxDQUFDO0lBRTdDLE9BQU87UUFDTCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEVBakJVLG9CQUFvQjs2REFBcEIsb0JBQW9CO1lDZGpDLCtGQU1tQjs7WUFMaEIsa0NBQWE7Ozt1RkRhSCxvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxrQkFBa0I7b0VBS3hCLE9BQU87a0JBRFYsS0FBSztZQVVJLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tY29udGV4dC1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtZWRpdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dEVkaXRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgY29udGV4dCgpOiBDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuICBzZXQgY29udGV4dCh2YWx1ZTogQ29udGV4dCkge1xuICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuICBwcml2YXRlIF9jb250ZXh0OiBDb250ZXh0O1xuXG4gIEBPdXRwdXQoKSBzdWJtaXRGb3JtOiBFdmVudEVtaXR0ZXI8Q29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGlnby1jb250ZXh0LWZvcm1cbiAgKm5nSWY9XCJjb250ZXh0XCJcbiAgW2J0blN1Ym1pdFRleHRdPVwiJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLnNhdmUnIHwgdHJhbnNsYXRlXCJcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIChzdWJtaXRGb3JtKT1cInN1Ym1pdEZvcm0uZW1pdCgkZXZlbnQpXCJcbj5cbjwvaWdvLWNvbnRleHQtZm9ybT5cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './context-edit.component';
2
- export * from './context-edit-binding.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZWRpdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQtZWRpdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtZWRpdC1iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
1
+ export * from './context-edit.component';
2
+ export * from './context-edit-binding.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZWRpdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQtZWRpdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWVkaXQtYmluZGluZy5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,151 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { UntypedFormBuilder } from '@angular/forms';
3
+ import { ObjectUtils, Clipboard } from '@igo2/utils';
4
+ import { MessageService } from '@igo2/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@igo2/core";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/material/form-field";
10
+ import * as i5 from "@angular/material/input";
11
+ import * as i6 from "@angular/material/icon";
12
+ import * as i7 from "@angular/material/button";
13
+ import * as i8 from "@angular/material/tooltip";
14
+ import * as i9 from "@ngx-translate/core";
15
+ function ContextFormComponent_span_8_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelementStart(0, "span", 11);
17
+ i0.ɵɵtext(1);
18
+ i0.ɵɵelementEnd();
19
+ } if (rf & 2) {
20
+ const ctx_r0 = i0.ɵɵnextContext();
21
+ i0.ɵɵadvance(1);
22
+ i0.ɵɵtextInterpolate1("", ctx_r0.prefix, "-");
23
+ } }
24
+ export class ContextFormComponent {
25
+ formBuilder;
26
+ messageService;
27
+ form;
28
+ prefix;
29
+ get btnSubmitText() {
30
+ return this._btnSubmitText;
31
+ }
32
+ set btnSubmitText(value) {
33
+ this._btnSubmitText = value;
34
+ }
35
+ _btnSubmitText;
36
+ get context() {
37
+ return this._context;
38
+ }
39
+ set context(value) {
40
+ this._context = value;
41
+ this.buildForm();
42
+ }
43
+ _context;
44
+ get disabled() {
45
+ return this._disabled;
46
+ }
47
+ set disabled(value) {
48
+ this._disabled = value;
49
+ }
50
+ _disabled = false;
51
+ // TODO: replace any by ContextOptions or Context
52
+ submitForm = new EventEmitter();
53
+ clone = new EventEmitter();
54
+ delete = new EventEmitter();
55
+ constructor(formBuilder, messageService) {
56
+ this.formBuilder = formBuilder;
57
+ this.messageService = messageService;
58
+ }
59
+ ngOnInit() {
60
+ this.buildForm();
61
+ }
62
+ handleFormSubmit(value) {
63
+ let inputs = Object.assign({}, value);
64
+ inputs = ObjectUtils.removeNull(inputs);
65
+ inputs.uri = inputs.uri.replace(' ', '');
66
+ if (inputs.uri) {
67
+ inputs.uri = this.prefix + '-' + inputs.uri;
68
+ }
69
+ else {
70
+ inputs.uri = this.prefix;
71
+ }
72
+ this.submitForm.emit(inputs);
73
+ }
74
+ copyTextToClipboard() {
75
+ const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');
76
+ const successful = Clipboard.copy(text);
77
+ if (successful) {
78
+ this.messageService.success('igo.context.contextManager.dialog.copyMsg', 'igo.context.contextManager.dialog.copyTitle');
79
+ }
80
+ }
81
+ buildForm() {
82
+ const context = this.context || {};
83
+ const uriSplit = context.uri.split('-');
84
+ this.prefix = uriSplit.shift();
85
+ const uri = uriSplit.join('-');
86
+ this.form = this.formBuilder.group({
87
+ title: [context.title],
88
+ uri: [uri || ' ']
89
+ });
90
+ }
91
+ static ɵfac = function ContextFormComponent_Factory(t) { return new (t || ContextFormComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.MessageService)); };
92
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextFormComponent, selectors: [["igo-context-form"]], inputs: { btnSubmitText: "btnSubmitText", context: "context", disabled: "disabled" }, outputs: { submitForm: "submitForm", clone: "clone", delete: "delete" }, decls: 19, vars: 18, consts: [[1, "igo-form", 3, "formGroup", "ngSubmit"], [1, "full-width"], ["matInput", "", "required", "", "maxlength", "128", "formControlName", "title", 3, "placeholder"], ["id", "uriInput", 1, "full-width"], ["class", "prefix", 4, "ngIf"], [1, "fieldWrapper"], ["matInput", "", "maxlength", "64", "floatLabel", "always", "formControlName", "uri", 3, "placeholder"], ["id", "copyButton", "type", "button", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", 3, "matTooltip", "click"], ["svgIcon", "content-copy"], [1, "igo-form-button-group"], ["mat-raised-button", "", "type", "submit", 3, "disabled"], [1, "prefix"]], template: function ContextFormComponent_Template(rf, ctx) { if (rf & 1) {
93
+ i0.ɵɵelementStart(0, "form", 0);
94
+ i0.ɵɵlistener("ngSubmit", function ContextFormComponent_Template_form_ngSubmit_0_listener() { return ctx.handleFormSubmit(ctx.form.value); });
95
+ i0.ɵɵelementStart(1, "mat-form-field", 1);
96
+ i0.ɵɵelement(2, "input", 2);
97
+ i0.ɵɵpipe(3, "translate");
98
+ i0.ɵɵelementStart(4, "mat-error");
99
+ i0.ɵɵtext(5);
100
+ i0.ɵɵpipe(6, "translate");
101
+ i0.ɵɵelementEnd()();
102
+ i0.ɵɵelementStart(7, "mat-form-field", 3);
103
+ i0.ɵɵtemplate(8, ContextFormComponent_span_8_Template, 2, 1, "span", 4);
104
+ i0.ɵɵelementStart(9, "span", 5);
105
+ i0.ɵɵelement(10, "input", 6);
106
+ i0.ɵɵpipe(11, "translate");
107
+ i0.ɵɵelementEnd()();
108
+ i0.ɵɵelementStart(12, "button", 7);
109
+ i0.ɵɵlistener("click", function ContextFormComponent_Template_button_click_12_listener() { return ctx.copyTextToClipboard(); });
110
+ i0.ɵɵpipe(13, "translate");
111
+ i0.ɵɵelement(14, "mat-icon", 8);
112
+ i0.ɵɵelementEnd();
113
+ i0.ɵɵelementStart(15, "div", 9)(16, "button", 10);
114
+ i0.ɵɵtext(17);
115
+ i0.ɵɵpipe(18, "translate");
116
+ i0.ɵɵelementEnd()()();
117
+ } if (rf & 2) {
118
+ i0.ɵɵproperty("formGroup", ctx.form);
119
+ i0.ɵɵadvance(2);
120
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 8, "igo.context.contextManager.form.title"));
121
+ i0.ɵɵadvance(3);
122
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "igo.context.contextManager.form.titleRequired"), " ");
123
+ i0.ɵɵadvance(3);
124
+ i0.ɵɵproperty("ngIf", ctx.prefix);
125
+ i0.ɵɵadvance(2);
126
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(11, 12, "igo.context.contextManager.form.uri"));
127
+ i0.ɵɵadvance(2);
128
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(13, 14, "igo.context.contextManager.form.copy"));
129
+ i0.ɵɵadvance(4);
130
+ i0.ɵɵproperty("disabled", !ctx.form.valid || ctx.disabled);
131
+ i0.ɵɵadvance(1);
132
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 16, "igo.context.contextManager.form.edit"), " ");
133
+ } }, dependencies: [i3.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.RequiredValidator, i1.MaxLengthValidator, i1.FormGroupDirective, i1.FormControlName, i4.MatFormField, i4.MatError, i5.MatInput, i6.MatIcon, i7.MatButton, i7.MatIconButton, i8.MatTooltip, i9.TranslatePipe], styles: ["form[_ngcontent-%COMP%]{margin:10px}.full-width[_ngcontent-%COMP%]{width:100%}#uriInput[_ngcontent-%COMP%] .fieldWrapper[_ngcontent-%COMP%]{display:block;overflow:hidden}#uriInput[_ngcontent-%COMP%] .prefix[_ngcontent-%COMP%]{float:left}#copyButton[_ngcontent-%COMP%]{width:24px;float:right;position:relative;top:-58px;left:5px}"] });
134
+ }
135
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextFormComponent, [{
136
+ type: Component,
137
+ args: [{ selector: 'igo-context-form', template: "<form\n class=\"igo-form\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\"\n>\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n maxlength=\"128\"\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\"\n />\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field id=\"uriInput\" class=\"full-width\">\n <span *ngIf=\"prefix\" class=\"prefix\">{{ prefix }}-</span>\n <span class=\"fieldWrapper\">\n <input\n matInput\n maxlength=\"64\"\n floatLabel=\"always\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\"\n />\n </span>\n </mat-form-field>\n\n <button\n id=\"copyButton\"\n type=\"button\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard()\"\n >\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid || disabled\"\n >\n {{ 'igo.context.contextManager.form.edit' | translate }}\n </button>\n </div>\n</form>\n", styles: ["form{margin:10px}.full-width{width:100%}#uriInput .fieldWrapper{display:block;overflow:hidden}#uriInput .prefix{float:left}#copyButton{width:24px;float:right;position:relative;top:-58px;left:5px}\n"] }]
138
+ }], function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.MessageService }]; }, { btnSubmitText: [{
139
+ type: Input
140
+ }], context: [{
141
+ type: Input
142
+ }], disabled: [{
143
+ type: Input
144
+ }], submitForm: [{
145
+ type: Output
146
+ }], clone: [{
147
+ type: Output
148
+ }], delete: [{
149
+ type: Output
150
+ }] }); })();
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1mb3JtL2NvbnRleHQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZm9ybS9jb250ZXh0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7O0lDZXhDLGdDQUFvQztJQUFBLFlBQWE7SUFBQSxpQkFBTzs7O0lBQXBCLGVBQWE7SUFBYiw2Q0FBYTs7QURQckQsTUFBTSxPQUFPLG9CQUFvQjtJQXNDckI7SUFDQTtJQXRDSCxJQUFJLENBQW1CO0lBQ3ZCLE1BQU0sQ0FBUztJQUV0QixJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUNPLGNBQWMsQ0FBUztJQUUvQixJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxL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QUN6Qiw0QkFNRTs7WUFDSixpQkFBTyxFQUFBO1lBR1Qsa0NBU0M7WUFEQyxrR0FBUyx5QkFBcUIsSUFBQzs7WUFFL0IsK0JBQTRDO1lBQzlDLGlCQUFTO1lBRVQsK0JBQW1DLGtCQUFBO1lBTS9CLGFBQ0Y7O1lBQUEsaUJBQVMsRUFBQSxFQUFBOztZQWpEWCxvQ0FBa0I7WUFRZCxlQUFtRTtZQUFuRSwyRkFBbUU7WUFJbkUsZUFDRjtZQURFLHVHQUNGO1lBSU8sZUFBWTtZQUFaLGlDQUFZO1lBTWYsZUFBaUU7WUFBakUsMkZBQWlFO1lBWXJFLGVBQWlFO1lBQWpFLDJGQUFpRTtZQVcvRCxlQUFvQztZQUFwQywwREFBb0M7WUFFcEMsZUFDRjtZQURFLCtGQUNGOzs7dUZEdkNTLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjtrR0FTeEIsYUFBYTtrQkFEaEIsS0FBSztZQVVGLE9BQU87a0JBRFYsS0FBSztZQVdGLFFBQVE7a0JBRFgsS0FBSztZQVVJLFVBQVU7a0JBQW5CLE1BQU07WUFDRyxLQUFLO2tCQUFkLE1BQU07WUFDRyxNQUFNO2tCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9iamVjdFV0aWxzLCBDbGlwYm9hcmQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jb250ZXh0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGV4dC1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIHByZWZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBidG5TdWJtaXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2J0blN1Ym1pdFRleHQ7XG4gIH1cbiAgc2V0IGJ0blN1Ym1pdFRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2J0blN1Ym1pdFRleHQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9idG5TdWJtaXRUZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRleHQoKTogQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gIH1cbiAgc2V0IGNvbnRleHQodmFsdWU6IENvbnRleHQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgfVxuICBwcml2YXRlIF9jb250ZXh0OiBDb250ZXh0O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8vIFRPRE86IHJlcGxhY2UgYW55IGJ5IENvbnRleHRPcHRpb25zIG9yIENvbnRleHRcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvbmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRm9ybVN1Ym1pdCh2YWx1ZSkge1xuICAgIGxldCBpbnB1dHMgPSBPYmplY3QuYXNzaWduKHt9LCB2YWx1ZSk7XG4gICAgaW5wdXRzID0gT2JqZWN0VXRpbHMucmVtb3ZlTnVsbChpbnB1dHMpO1xuICAgIGlucHV0cy51cmkgPSBpbnB1dHMudXJpLnJlcGxhY2UoJyAnLCAnJyk7XG4gICAgaWYgKGlucHV0cy51cmkpIHtcbiAgICAgIGlucHV0cy51cmkgPSB0aGlzLnByZWZpeCArICctJyArIGlucHV0cy51cmk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0cy51cmkgPSB0aGlzLnByZWZpeDtcbiAgICB9XG4gICAgdGhpcy5zdWJtaXRGb3JtLmVtaXQoaW5wdXRzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5VGV4dFRvQ2xpcGJvYXJkKCkge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnByZWZpeCArICctJyArIHRoaXMuZm9ybS52YWx1ZS51cmkucmVwbGFjZSgnICcsICcnKTtcbiAgICBjb25zdCBzdWNjZXNzZnVsID0gQ2xpcGJvYXJkLmNvcHkodGV4dCk7XG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmRpYWxvZy5jb3B5TXNnJyxcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmRpYWxvZy5jb3B5VGl0bGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQ6IGFueSA9IHRoaXMuY29udGV4dCB8fCB7fTtcblxuICAgIGNvbnN0IHVyaVNwbGl0ID0gY29udGV4dC51cmkuc3BsaXQoJy0nKTtcbiAgICB0aGlzLnByZWZpeCA9IHVyaVNwbGl0LnNoaWZ0KCk7XG4gICAgY29uc3QgdXJpID0gdXJpU3BsaXQuam9pbignLScpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICB0aXRsZTogW2NvbnRleHQudGl0bGVdLFxuICAgICAgdXJpOiBbdXJpIHx8ICcgJ11cbiAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm1cbiAgY2xhc3M9XCJpZ28tZm9ybVwiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVGb3JtU3VibWl0KGZvcm0udmFsdWUpXCJcbj5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIHJlcXVpcmVkXG4gICAgICBtYXhsZW5ndGg9XCIxMjhcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5mb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yPlxuICAgICAge3sgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmZvcm0udGl0bGVSZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQgaWQ9XCJ1cmlJbnB1dFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxuICAgIDxzcGFuICpuZ0lmPVwicHJlZml4XCIgY2xhc3M9XCJwcmVmaXhcIj57eyBwcmVmaXggfX0tPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZmllbGRXcmFwcGVyXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxuICAgICAgICBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5mb3JtLnVyaScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1cmlcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGJ1dHRvblxuICAgIGlkPVwiY29weUJ1dHRvblwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZm9ybS5jb3B5JyB8IHRyYW5zbGF0ZVwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAoY2xpY2spPVwiY29weVRleHRUb0NsaXBib2FyZCgpXCJcbiAgPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29udGVudC1jb3B5XCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImlnby1mb3JtLWJ1dHRvbi1ncm91cFwiPlxuICAgIDxidXR0b25cbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCBkaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmZvcm0uZWRpdCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './context-form.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWZvcm0uY29tcG9uZW50JztcclxuIl19
1
+ export * from './context-form.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWZvcm0uY29tcG9uZW50JztcbiJdfQ==