ngx-ode-ui 4.6.0-dev-produit.2 → 4.6.0-dev-integration.2

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 (226) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/ngx-ode-ui.umd.js +5804 -0
  3. package/bundles/ngx-ode-ui.umd.js.map +1 -0
  4. package/bundles/ngx-ode-ui.umd.min.js +17 -0
  5. package/bundles/ngx-ode-ui.umd.min.js.map +1 -0
  6. package/esm2015/lib/components/datepicker/datepicker.component.js +261 -0
  7. package/esm2015/lib/components/dropdown/dropdown.component.js +76 -0
  8. package/esm2015/lib/components/ellipsis/ellipsis.component.js +98 -0
  9. package/esm2015/lib/components/form-errors/form-errors.component.js +65 -0
  10. package/esm2015/lib/components/form-field/form-field.component.js +40 -0
  11. package/esm2015/lib/components/item-tree/item-tree.component.js +289 -0
  12. package/esm2015/lib/components/lightbox/lightbox.component.js +129 -0
  13. package/esm2015/lib/components/lightbox-confirm/lightbox-confirm.component.js +65 -0
  14. package/esm2015/lib/components/list/list.component.js +140 -0
  15. package/esm2015/lib/components/list-checkable/list-checkable.component.js +137 -0
  16. package/esm2015/lib/components/message-box/message-box.component.js +153 -0
  17. package/esm2015/lib/components/message-sticker/message-sticker.component.js +81 -0
  18. package/esm2015/lib/components/mono-select/mono-select.component.js +164 -0
  19. package/esm2015/lib/components/multi-combo/multi-combo.component.js +255 -0
  20. package/esm2015/lib/components/multi-select/multi-select.component.js +214 -0
  21. package/esm2015/lib/components/panel-section/panel-section.component.js +38 -0
  22. package/esm2015/lib/components/portal/portal.component.js +27 -0
  23. package/esm2015/lib/components/push-panel/push-panel.component.js +81 -0
  24. package/esm2015/lib/components/search-input/search-input.component.js +176 -0
  25. package/esm2015/lib/components/search-toolbar/search-toolbar.component.js +84 -0
  26. package/esm2015/lib/components/side-layout/side-layout.component.js +39 -0
  27. package/esm2015/lib/components/side-panel/side-panel.component.js +76 -0
  28. package/esm2015/lib/components/spinner-cube/spinner-cube.component.js +67 -0
  29. package/esm2015/lib/components/table/pager.component.js +95 -0
  30. package/esm2015/lib/components/tooltip/tooltip.component.js +172 -0
  31. package/esm2015/lib/components/upload-files/upload-files.component.js +112 -0
  32. package/esm2015/lib/components/value-editable/simple-select.component.js +57 -0
  33. package/esm2015/lib/components/wizard/wizard.component.js +225 -0
  34. package/esm2015/lib/directives/anchor.directive.js +34 -0
  35. package/esm2015/lib/directives/drag-and-drop-files.directive.js +126 -0
  36. package/esm2015/lib/directives/dynamic-component/component-descriptor.model.js +34 -0
  37. package/esm2015/lib/directives/dynamic-component/dynamic-component.directive.js +100 -0
  38. package/esm2015/lib/directives/dynamictemplate.directive.js +159 -0
  39. package/esm2015/lib/directives/object-url.directive.js +53 -0
  40. package/esm2015/lib/ngx-ode-ui.module.js +188 -0
  41. package/esm2015/lib/pipes/bytes.pipe.js +27 -0
  42. package/esm2015/lib/pipes/filter.pipe.js +141 -0
  43. package/esm2015/lib/pipes/flattenObjArray.pipe.js +52 -0
  44. package/esm2015/lib/pipes/keys.pipe.js +27 -0
  45. package/esm2015/lib/pipes/length.pipe.js +22 -0
  46. package/esm2015/lib/pipes/limit.pipe.js +24 -0
  47. package/esm2015/lib/pipes/localizedDate.pipe.js +44 -0
  48. package/esm2015/lib/pipes/orderBy.pipe.js +269 -0
  49. package/esm2015/lib/pipes/store.pipe.js +24 -0
  50. package/esm2015/lib/services/dynamicModuleImports.service.js +19 -0
  51. package/esm2015/lib/services/inputFile.service.js +80 -0
  52. package/esm2015/lib/services/labels.service.js +54 -0
  53. package/esm2015/lib/services/spinner.service.js +163 -0
  54. package/esm2015/lib/utils/math.js +49 -0
  55. package/esm2015/lib/utils/string.js +29 -0
  56. package/esm2015/lib/utils/testing.js +20 -0
  57. package/esm2015/ngx-ode-ui.js +12 -0
  58. package/esm2015/public-api.js +59 -0
  59. package/esm5/lib/components/datepicker/datepicker.component.js +292 -0
  60. package/esm5/lib/components/dropdown/dropdown.component.js +81 -0
  61. package/esm5/lib/components/ellipsis/ellipsis.component.js +106 -0
  62. package/esm5/lib/components/form-errors/form-errors.component.js +73 -0
  63. package/esm5/lib/components/form-field/form-field.component.js +41 -0
  64. package/esm5/lib/components/item-tree/item-tree.component.js +345 -0
  65. package/esm5/lib/components/lightbox/lightbox.component.js +141 -0
  66. package/esm5/lib/components/lightbox-confirm/lightbox-confirm.component.js +67 -0
  67. package/esm5/lib/components/list/list.component.js +146 -0
  68. package/esm5/lib/components/list-checkable/list-checkable.component.js +148 -0
  69. package/esm5/lib/components/message-box/message-box.component.js +190 -0
  70. package/esm5/lib/components/message-sticker/message-sticker.component.js +92 -0
  71. package/esm5/lib/components/mono-select/mono-select.component.js +192 -0
  72. package/esm5/lib/components/multi-combo/multi-combo.component.js +294 -0
  73. package/esm5/lib/components/multi-select/multi-select.component.js +258 -0
  74. package/esm5/lib/components/panel-section/panel-section.component.js +40 -0
  75. package/esm5/lib/components/portal/portal.component.js +28 -0
  76. package/esm5/lib/components/push-panel/push-panel.component.js +91 -0
  77. package/esm5/lib/components/search-input/search-input.component.js +199 -0
  78. package/esm5/lib/components/search-toolbar/search-toolbar.component.js +93 -0
  79. package/esm5/lib/components/side-layout/side-layout.component.js +41 -0
  80. package/esm5/lib/components/side-panel/side-panel.component.js +85 -0
  81. package/esm5/lib/components/spinner-cube/spinner-cube.component.js +76 -0
  82. package/esm5/lib/components/table/pager.component.js +113 -0
  83. package/esm5/lib/components/tooltip/tooltip.component.js +188 -0
  84. package/esm5/lib/components/upload-files/upload-files.component.js +133 -0
  85. package/esm5/lib/components/value-editable/simple-select.component.js +59 -0
  86. package/esm5/lib/components/wizard/wizard.component.js +161 -0
  87. package/esm5/lib/directives/anchor.directive.js +39 -0
  88. package/esm5/lib/directives/drag-and-drop-files.directive.js +146 -0
  89. package/esm5/lib/directives/dynamic-component/component-descriptor.model.js +44 -0
  90. package/esm5/lib/directives/dynamic-component/dynamic-component.directive.js +109 -0
  91. package/esm5/lib/directives/dynamictemplate.directive.js +175 -0
  92. package/esm5/lib/directives/object-url.directive.js +62 -0
  93. package/esm5/lib/ngx-ode-ui.module.js +199 -0
  94. package/esm5/lib/pipes/bytes.pipe.js +37 -0
  95. package/esm5/lib/pipes/filter.pipe.js +179 -0
  96. package/esm5/lib/pipes/flattenObjArray.pipe.js +62 -0
  97. package/esm5/lib/pipes/keys.pipe.js +36 -0
  98. package/esm5/lib/pipes/length.pipe.js +30 -0
  99. package/esm5/lib/pipes/limit.pipe.js +35 -0
  100. package/esm5/lib/pipes/localizedDate.pipe.js +49 -0
  101. package/esm5/lib/pipes/orderBy.pipe.js +280 -0
  102. package/esm5/lib/pipes/store.pipe.js +35 -0
  103. package/esm5/lib/services/dynamicModuleImports.service.js +21 -0
  104. package/esm5/lib/services/inputFile.service.js +98 -0
  105. package/esm5/lib/services/labels.service.js +68 -0
  106. package/esm5/lib/services/spinner.service.js +195 -0
  107. package/esm5/lib/utils/math.js +49 -0
  108. package/esm5/lib/utils/string.js +29 -0
  109. package/esm5/lib/utils/testing.js +20 -0
  110. package/esm5/ngx-ode-ui.js +12 -0
  111. package/esm5/public-api.js +59 -0
  112. package/fesm2015/ngx-ode-ui.js +5027 -0
  113. package/fesm2015/ngx-ode-ui.js.map +1 -0
  114. package/fesm5/ngx-ode-ui.js +5560 -0
  115. package/fesm5/ngx-ode-ui.js.map +1 -0
  116. package/lib/components/datepicker/datepicker.component.d.ts +2 -7
  117. package/lib/components/dropdown/dropdown.component.d.ts +0 -3
  118. package/lib/components/ellipsis/ellipsis.component.d.ts +1 -4
  119. package/lib/components/form-errors/form-errors.component.d.ts +0 -3
  120. package/lib/components/form-field/form-field.component.d.ts +0 -3
  121. package/lib/components/item-tree/item-tree.component.d.ts +1 -5
  122. package/lib/components/lightbox/lightbox.component.d.ts +1 -5
  123. package/lib/components/lightbox-confirm/lightbox-confirm.component.d.ts +0 -3
  124. package/lib/components/list/list.component.d.ts +1 -5
  125. package/lib/components/list-checkable/list-checkable.component.d.ts +1 -5
  126. package/lib/components/message-box/message-box.component.d.ts +4 -8
  127. package/lib/components/message-sticker/message-sticker.component.d.ts +0 -3
  128. package/lib/components/mono-select/mono-select.component.d.ts +0 -3
  129. package/lib/components/multi-combo/multi-combo.component.d.ts +1 -4
  130. package/lib/components/multi-select/multi-select.component.d.ts +0 -3
  131. package/lib/components/panel-section/panel-section.component.d.ts +0 -3
  132. package/lib/components/portal/portal.component.d.ts +0 -3
  133. package/lib/components/push-panel/push-panel.component.d.ts +1 -4
  134. package/lib/components/search-input/search-input.component.d.ts +1 -5
  135. package/lib/components/search-toolbar/search-toolbar.component.d.ts +0 -3
  136. package/lib/components/side-layout/side-layout.component.d.ts +0 -3
  137. package/lib/components/side-panel/side-panel.component.d.ts +1 -4
  138. package/lib/components/spinner-cube/spinner-cube.component.d.ts +1 -5
  139. package/lib/components/table/pager.component.d.ts +0 -3
  140. package/lib/components/tooltip/tooltip.component.d.ts +0 -3
  141. package/lib/components/upload-files/upload-files.component.d.ts +0 -3
  142. package/lib/components/value-editable/simple-select.component.d.ts +0 -3
  143. package/lib/components/wizard/wizard.component.d.ts +0 -5
  144. package/lib/directives/anchor.directive.d.ts +0 -3
  145. package/lib/directives/drag-and-drop-files.directive.d.ts +0 -3
  146. package/lib/directives/dynamic-component/dynamic-component.directive.d.ts +0 -3
  147. package/lib/directives/dynamictemplate.directive.d.ts +1 -4
  148. package/lib/directives/object-url.directive.d.ts +0 -3
  149. package/lib/ngx-ode-ui.module.d.ts +2 -53
  150. package/lib/pipes/bytes.pipe.d.ts +0 -3
  151. package/lib/pipes/filter.pipe.d.ts +0 -3
  152. package/lib/pipes/flattenObjArray.pipe.d.ts +0 -3
  153. package/lib/pipes/keys.pipe.d.ts +0 -3
  154. package/lib/pipes/length.pipe.d.ts +0 -3
  155. package/lib/pipes/limit.pipe.d.ts +0 -3
  156. package/lib/pipes/localizedDate.pipe.d.ts +0 -3
  157. package/lib/pipes/orderBy.pipe.d.ts +0 -3
  158. package/lib/pipes/store.pipe.d.ts +0 -3
  159. package/lib/services/dynamicModuleImports.service.d.ts +0 -3
  160. package/lib/services/inputFile.service.d.ts +0 -3
  161. package/lib/services/labels.service.d.ts +0 -3
  162. package/lib/services/spinner.service.d.ts +1 -4
  163. package/ngx-ode-ui.d.ts +6 -0
  164. package/ngx-ode-ui.metadata.json +1 -0
  165. package/package.json +17 -29
  166. package/public-api.d.ts +0 -3
  167. package/esm2020/lib/components/datepicker/datepicker.component.mjs +0 -148
  168. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -55
  169. package/esm2020/lib/components/ellipsis/ellipsis.component.mjs +0 -53
  170. package/esm2020/lib/components/form-errors/form-errors.component.mjs +0 -35
  171. package/esm2020/lib/components/form-field/form-field.component.mjs +0 -24
  172. package/esm2020/lib/components/item-tree/item-tree.component.mjs +0 -170
  173. package/esm2020/lib/components/lightbox/lightbox.component.mjs +0 -70
  174. package/esm2020/lib/components/lightbox-confirm/lightbox-confirm.component.mjs +0 -43
  175. package/esm2020/lib/components/list/list.component.mjs +0 -88
  176. package/esm2020/lib/components/list-checkable/list-checkable.component.mjs +0 -79
  177. package/esm2020/lib/components/message-box/message-box.component.mjs +0 -92
  178. package/esm2020/lib/components/message-sticker/message-sticker.component.mjs +0 -51
  179. package/esm2020/lib/components/mono-select/mono-select.component.mjs +0 -83
  180. package/esm2020/lib/components/multi-combo/multi-combo.component.mjs +0 -166
  181. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -104
  182. package/esm2020/lib/components/panel-section/panel-section.component.mjs +0 -23
  183. package/esm2020/lib/components/portal/portal.component.mjs +0 -15
  184. package/esm2020/lib/components/push-panel/push-panel.component.mjs +0 -43
  185. package/esm2020/lib/components/search-input/search-input.component.mjs +0 -87
  186. package/esm2020/lib/components/search-toolbar/search-toolbar.component.mjs +0 -56
  187. package/esm2020/lib/components/side-layout/side-layout.component.mjs +0 -23
  188. package/esm2020/lib/components/side-panel/side-panel.component.mjs +0 -41
  189. package/esm2020/lib/components/spinner-cube/spinner-cube.component.mjs +0 -31
  190. package/esm2020/lib/components/table/pager.component.mjs +0 -48
  191. package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -104
  192. package/esm2020/lib/components/upload-files/upload-files.component.mjs +0 -59
  193. package/esm2020/lib/components/value-editable/simple-select.component.mjs +0 -29
  194. package/esm2020/lib/components/wizard/wizard.component.mjs +0 -152
  195. package/esm2020/lib/directives/anchor.directive.mjs +0 -27
  196. package/esm2020/lib/directives/drag-and-drop-files.directive.mjs +0 -82
  197. package/esm2020/lib/directives/dynamic-component/component-descriptor.model.mjs +0 -15
  198. package/esm2020/lib/directives/dynamic-component/dynamic-component.directive.mjs +0 -58
  199. package/esm2020/lib/directives/dynamictemplate.directive.mjs +0 -83
  200. package/esm2020/lib/directives/object-url.directive.mjs +0 -28
  201. package/esm2020/lib/ngx-ode-ui.module.mjs +0 -282
  202. package/esm2020/lib/pipes/bytes.pipe.mjs +0 -20
  203. package/esm2020/lib/pipes/filter.pipe.mjs +0 -97
  204. package/esm2020/lib/pipes/flattenObjArray.pipe.mjs +0 -35
  205. package/esm2020/lib/pipes/keys.pipe.mjs +0 -20
  206. package/esm2020/lib/pipes/length.pipe.mjs +0 -17
  207. package/esm2020/lib/pipes/limit.pipe.mjs +0 -17
  208. package/esm2020/lib/pipes/localizedDate.pipe.mjs +0 -23
  209. package/esm2020/lib/pipes/orderBy.pipe.mjs +0 -161
  210. package/esm2020/lib/pipes/replace.pipe.mjs +0 -20
  211. package/esm2020/lib/pipes/store.pipe.mjs +0 -17
  212. package/esm2020/lib/services/dynamicModuleImports.service.mjs +0 -13
  213. package/esm2020/lib/services/inputFile.service.mjs +0 -56
  214. package/esm2020/lib/services/labels.service.mjs +0 -32
  215. package/esm2020/lib/services/spinner.service.mjs +0 -76
  216. package/esm2020/lib/utils/math.mjs +0 -19
  217. package/esm2020/lib/utils/string.mjs +0 -11
  218. package/esm2020/lib/utils/testing.mjs +0 -7
  219. package/esm2020/ngx-ode-ui.mjs +0 -5
  220. package/esm2020/public-api.mjs +0 -57
  221. package/fesm2015/ngx-ode-ui.mjs +0 -2954
  222. package/fesm2015/ngx-ode-ui.mjs.map +0 -1
  223. package/fesm2020/ngx-ode-ui.mjs +0 -2952
  224. package/fesm2020/ngx-ode-ui.mjs.map +0 -1
  225. package/index.d.ts +0 -5
  226. package/lib/pipes/replace.pipe.d.ts +0 -8
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/drag-and-drop-files.directive.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
7
+ import { InputFileService } from '../services/inputFile.service';
8
+ export class DragAndDropFilesDirective {
9
+ /**
10
+ * @param {?} inputFileService
11
+ */
12
+ constructor(inputFileService) {
13
+ this.inputFileService = inputFileService;
14
+ this.allowedExtensions = [];
15
+ this.maxFilesNumber = 1;
16
+ this.dragAndDrop = new EventEmitter();
17
+ this.invalidDragAndDrop = new EventEmitter();
18
+ this.backgroundColor = '#fafafa';
19
+ this.borderColor = '#ddd';
20
+ }
21
+ /**
22
+ * @param {?} evt
23
+ * @return {?}
24
+ */
25
+ onDragOver(evt) {
26
+ if (!this.disabled) {
27
+ evt.preventDefault();
28
+ evt.stopPropagation();
29
+ this.highlightColors();
30
+ }
31
+ }
32
+ /**
33
+ * @param {?} evt
34
+ * @return {?}
35
+ */
36
+ onDragLeave(evt) {
37
+ if (!this.disabled) {
38
+ evt.preventDefault();
39
+ evt.stopPropagation();
40
+ this.resetColors();
41
+ }
42
+ }
43
+ /**
44
+ * @param {?} event
45
+ * @return {?}
46
+ */
47
+ onDrop(event) {
48
+ if (!this.disabled) {
49
+ event.preventDefault();
50
+ event.stopPropagation();
51
+ if (event.dataTransfer) {
52
+ this.inputFileService
53
+ .validateFiles(event.dataTransfer.files, this.maxFilesNumber, this.allowedExtensions)
54
+ .subscribe((/**
55
+ * @param {?} files
56
+ * @return {?}
57
+ */
58
+ files => this.dragAndDrop.emit(files)), (/**
59
+ * @param {?} error
60
+ * @return {?}
61
+ */
62
+ error => this.invalidDragAndDrop.emit(error)));
63
+ }
64
+ this.resetColors();
65
+ }
66
+ }
67
+ /**
68
+ * @private
69
+ * @return {?}
70
+ */
71
+ resetColors() {
72
+ this.backgroundColor = '#fafafa';
73
+ this.borderColor = '#ddd';
74
+ }
75
+ /**
76
+ * @private
77
+ * @return {?}
78
+ */
79
+ highlightColors() {
80
+ this.backgroundColor = '#ffd1b6';
81
+ this.borderColor = '#ff8352';
82
+ }
83
+ }
84
+ DragAndDropFilesDirective.decorators = [
85
+ { type: Directive, args: [{
86
+ selector: '[dragAndDropFiles]'
87
+ },] }
88
+ ];
89
+ /** @nocollapse */
90
+ DragAndDropFilesDirective.ctorParameters = () => [
91
+ { type: InputFileService }
92
+ ];
93
+ DragAndDropFilesDirective.propDecorators = {
94
+ allowedExtensions: [{ type: Input }],
95
+ maxFilesNumber: [{ type: Input }],
96
+ disabled: [{ type: Input }],
97
+ dragAndDrop: [{ type: Output }],
98
+ invalidDragAndDrop: [{ type: Output }],
99
+ backgroundColor: [{ type: HostBinding, args: ['style.background',] }],
100
+ borderColor: [{ type: HostBinding, args: ['style.border-color',] }],
101
+ onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
102
+ onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }],
103
+ onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }]
104
+ };
105
+ if (false) {
106
+ /** @type {?} */
107
+ DragAndDropFilesDirective.prototype.allowedExtensions;
108
+ /** @type {?} */
109
+ DragAndDropFilesDirective.prototype.maxFilesNumber;
110
+ /** @type {?} */
111
+ DragAndDropFilesDirective.prototype.disabled;
112
+ /** @type {?} */
113
+ DragAndDropFilesDirective.prototype.dragAndDrop;
114
+ /** @type {?} */
115
+ DragAndDropFilesDirective.prototype.invalidDragAndDrop;
116
+ /** @type {?} */
117
+ DragAndDropFilesDirective.prototype.backgroundColor;
118
+ /** @type {?} */
119
+ DragAndDropFilesDirective.prototype.borderColor;
120
+ /**
121
+ * @type {?}
122
+ * @private
123
+ */
124
+ DragAndDropFilesDirective.prototype.inputFileService;
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1maWxlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZHJhZy1hbmQtZHJvcC1maWxlcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFLL0QsTUFBTSxPQUFPLHlCQUF5Qjs7OztJQWtCbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoQnRELHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFFdEMsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFLbkIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCx1QkFBa0IsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RCxvQkFBZSxHQUFHLFNBQVMsQ0FBQztRQUU1QixnQkFBVyxHQUFHLE1BQU0sQ0FBQztJQUc1QixDQUFDOzs7OztJQUdNLFVBQVUsQ0FBQyxHQUFHO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsR0FBRztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7Ozs7O0lBR00sTUFBTSxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGdCQUFnQjtxQkFDaEIsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO3FCQUNwRixTQUFTOzs7O2dCQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7O2dCQUMxQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQzthQUMzRDtZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7Ozs7O0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzlCLENBQUM7Ozs7O0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDOzs7WUFuRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7YUFDakM7Ozs7WUFKTyxnQkFBZ0I7OztnQ0FNbkIsS0FBSzs2QkFFTCxLQUFLO3VCQUVMLEtBQUs7MEJBR0wsTUFBTTtpQ0FFTixNQUFNOzhCQUdOLFdBQVcsU0FBQyxrQkFBa0I7MEJBRTlCLFdBQVcsU0FBQyxvQkFBb0I7eUJBTWhDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBU25DLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7cUJBU3BDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF0Q2hDLHNEQUNzQzs7SUFDdEMsbURBQ21COztJQUNuQiw2Q0FDa0I7O0lBRWxCLGdEQUN1RDs7SUFDdkQsdURBQzhEOztJQUU5RCxvREFDbUM7O0lBQ25DLGdEQUM0Qjs7Ozs7SUFFaEIscURBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lucHV0RmlsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2lucHV0RmlsZS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJhZ0FuZERyb3BGaWxlc10nXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wRmlsZXNEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIG1heEZpbGVzTnVtYmVyID0gMTtcbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZHJhZ0FuZERyb3A6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGludmFsaWREcmFnQW5kRHJvcDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQnKVxuICAgIHB1YmxpYyBiYWNrZ3JvdW5kQ29sb3IgPSAnI2ZhZmFmYSc7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3JkZXItY29sb3InKVxuICAgIHB1YmxpYyBib3JkZXJDb2xvciA9ICcjZGRkJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRGaWxlU2VydmljZTogSW5wdXRGaWxlU2VydmljZSkge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnT3ZlcihldnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Q29sb3JzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb2xvcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RmlsZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLnZhbGlkYXRlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLCB0aGlzLm1heEZpbGVzTnVtYmVyLCB0aGlzLmFsbG93ZWRFeHRlbnNpb25zKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGZpbGVzID0+IHRoaXMuZHJhZ0FuZERyb3AuZW1pdChmaWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICwgZXJyb3IgPT4gdGhpcy5pbnZhbGlkRHJhZ0FuZERyb3AuZW1pdChlcnJvcikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29sb3JzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0Q29sb3JzKCkge1xuICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9ICcjZmFmYWZhJztcbiAgICAgICAgdGhpcy5ib3JkZXJDb2xvciA9ICcjZGRkJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodENvbG9ycygpIHtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZDFiNic7XG4gICAgICAgIHRoaXMuYm9yZGVyQ29sb3IgPSAnI2ZmODM1Mic7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/dynamic-component/component-descriptor.model.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * Usefull to desccribe (type and input data) a component
8
+ * that will be dynamically instanciate
9
+ */
10
+ export class ComponentDescriptor {
11
+ /**
12
+ * @param {?} type
13
+ * @param {?} data
14
+ */
15
+ constructor(type, data) {
16
+ this.type = type;
17
+ this.data = data;
18
+ }
19
+ /**
20
+ * @param {?} data
21
+ * @return {?}
22
+ */
23
+ assignData(data) {
24
+ Object.assign(this.data, data);
25
+ return this;
26
+ }
27
+ }
28
+ if (false) {
29
+ /** @type {?} */
30
+ ComponentDescriptor.prototype.type;
31
+ /** @type {?} */
32
+ ComponentDescriptor.prototype.data;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQvY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUFDN0IsWUFDVyxJQUFlLEVBQ2YsSUFBUztRQURULFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFLO0lBQ2pCLENBQUM7Ozs7O0lBRUosVUFBVSxDQUFDLElBQVM7UUFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSDs7O0lBUk0sbUNBQXNCOztJQUN0QixtQ0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiogVXNlZnVsbCB0byBkZXNjY3JpYmUgKHR5cGUgYW5kIGlucHV0IGRhdGEpIGEgY29tcG9uZW50XG4qIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseSBpbnN0YW5jaWF0ZVxuKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnREZXNjcmlwdG9yIHtcbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgIHB1YmxpYyB0eXBlOiBUeXBlPGFueT4sXG4gICAgICAgcHVibGljIGRhdGE6IGFueVxuICAgKSB7fVxuXG4gICBhc3NpZ25EYXRhKGRhdGE6IGFueSk6IENvbXBvbmVudERlc2NyaXB0b3Ige1xuICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLCBkYXRhKTtcbiAgICAgICByZXR1cm4gdGhpcztcbiAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/dynamic-component/dynamic-component.directive.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { ComponentFactoryResolver, Directive, Input, ViewContainerRef, } from '@angular/core';
7
+ import { ComponentDescriptor } from './component-descriptor.model';
8
+ /**
9
+ * Dynamically load the component describe with the \@input dynamic-component
10
+ */
11
+ export class DynamicComponentDirective {
12
+ /**
13
+ * @param {?} viewContainerRef
14
+ * @param {?} componentFactoryResolver
15
+ */
16
+ constructor(viewContainerRef, componentFactoryResolver) {
17
+ this.viewContainerRef = viewContainerRef;
18
+ this.componentFactoryResolver = componentFactoryResolver;
19
+ }
20
+ /**
21
+ * @param {?=} data
22
+ * @return {?}
23
+ */
24
+ load(data) {
25
+ if (this.isLoaded()) {
26
+ return;
27
+ }
28
+ /** @type {?} */
29
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentDesc.type);
30
+ this.viewContainerRef.clear();
31
+ this.componentRef = this.viewContainerRef.createComponent(componentFactory);
32
+ if (data != undefined) {
33
+ this.componentDesc.assignData(data);
34
+ }
35
+ for (const attribute in this.componentDesc.data) {
36
+ this.componentRef.instance[attribute] = this.componentDesc.data[attribute];
37
+ if (attribute == 'hideEvent') {
38
+ this.componentRef.instance.hideEvent.subscribe((/**
39
+ * @param {?} e
40
+ * @return {?}
41
+ */
42
+ e => {
43
+ this.destroy();
44
+ }));
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * @return {?}
50
+ */
51
+ isLoaded() {
52
+ if (this.componentRef == undefined) {
53
+ return false;
54
+ }
55
+ else {
56
+ return this.componentRef.instance != null;
57
+ }
58
+ }
59
+ /**
60
+ * @return {?}
61
+ */
62
+ destroy() {
63
+ if (this.componentRef.instance.hideEvent != undefined) {
64
+ this.componentRef.instance.hideEvent.unsubscribe();
65
+ }
66
+ // FIXME: this.componentRef.destroy(); => This one usually should work, better to use but do nothing...
67
+ delete this.componentRef;
68
+ this.viewContainerRef.clear();
69
+ }
70
+ }
71
+ DynamicComponentDirective.decorators = [
72
+ { type: Directive, args: [{
73
+ selector: '[dynamic-component]',
74
+ },] }
75
+ ];
76
+ /** @nocollapse */
77
+ DynamicComponentDirective.ctorParameters = () => [
78
+ { type: ViewContainerRef },
79
+ { type: ComponentFactoryResolver }
80
+ ];
81
+ DynamicComponentDirective.propDecorators = {
82
+ componentDesc: [{ type: Input, args: ['dynamic-component',] }]
83
+ };
84
+ if (false) {
85
+ /** @type {?} */
86
+ DynamicComponentDirective.prototype.componentRef;
87
+ /** @type {?} */
88
+ DynamicComponentDirective.prototype.componentDesc;
89
+ /**
90
+ * @type {?}
91
+ * @private
92
+ */
93
+ DynamicComponentDirective.prototype.viewContainerRef;
94
+ /**
95
+ * @type {?}
96
+ * @private
97
+ */
98
+ DynamicComponentDirective.prototype.componentFactoryResolver;
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS11aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQVFqRSxNQUFNLE9BQU8seUJBQXlCOzs7OztJQUNsQyxZQUNZLGdCQUFrQyxFQUNsQyx3QkFBa0Q7UUFEbEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQzNELENBQUM7Ozs7O0lBT0osSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUFFLE9BQU87U0FBRTs7Y0FDMUIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU1RSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNFLElBQUksU0FBUyxJQUFJLFdBQVcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFDLENBQUM7YUFDTjtTQUNKO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQ0k7WUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztTQUM3QztJQUNMLENBQUM7Ozs7SUFFRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0RDtRQUNELHVHQUF1RztRQUN2RyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQWpESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjthQUNsQzs7OztZQVJpRSxnQkFBZ0I7WUFBMUUsd0JBQXdCOzs7NEJBaUIzQixLQUFLLFNBQUMsbUJBQW1COzs7O0lBRjFCLGlEQUF1Qzs7SUFFdkMsa0RBQ21DOzs7OztJQVAvQixxREFBMEM7Ozs7O0lBQzFDLDZEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudERlc2NyaXB0b3J9IGZyb20gJy4vY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwnO1xuXG4vKipcbiogRHluYW1pY2FsbHkgbG9hZCB0aGUgY29tcG9uZW50IGRlc2NyaWJlIHdpdGggdGhlIEBpbnB1dCBkeW5hbWljLWNvbXBvbmVudFxuKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2R5bmFtaWMtY29tcG9uZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIEBJbnB1dCgnZHluYW1pYy1jb21wb25lbnQnKVxuICAgIGNvbXBvbmVudERlc2M6IENvbXBvbmVudERlc2NyaXB0b3I7XG5cbiAgICBsb2FkKGRhdGE/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkZWQoKSkgeyByZXR1cm47IH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29tcG9uZW50RGVzYy50eXBlKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcblxuICAgICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50RGVzYy5hc3NpZ25EYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIGluIHRoaXMuY29tcG9uZW50RGVzYy5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVthdHRyaWJ1dGVdID0gdGhpcy5jb21wb25lbnREZXNjLmRhdGFbYXR0cmlidXRlXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT0gJ2hpZGVFdmVudCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgIT0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGSVhNRTogdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpOyA9PiBUaGlzIG9uZSB1c3VhbGx5IHNob3VsZCB3b3JrLCBiZXR0ZXIgdG8gdXNlIGJ1dCBkbyBub3RoaW5nLi4uXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNvbXBvbmVudFJlZjtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxufVxuXG5cblxuIl19
@@ -0,0 +1,159 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/dynamictemplate.directive.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Compiler, Component, Directive, ElementRef, Input, NgModule, Injector, ViewContainerRef } from '@angular/core';
7
+ import { CommonModule } from '@angular/common';
8
+ import { DynamicModuleImportsService } from '../services/dynamicModuleImports.service';
9
+ export class DynamicTemplateDirective {
10
+ /**
11
+ * @param {?} elementRef
12
+ * @param {?} viewContainer
13
+ * @param {?} compiler
14
+ * @param {?} dynamicModuleImports
15
+ */
16
+ constructor(elementRef, viewContainer, compiler, dynamicModuleImports) {
17
+ this.elementRef = elementRef;
18
+ this.viewContainer = viewContainer;
19
+ this.compiler = compiler;
20
+ this.dynamicModuleImports = dynamicModuleImports;
21
+ this._html = '';
22
+ this._selector = 'dynamic-view';
23
+ }
24
+ /**
25
+ * @param {?} html
26
+ * @return {?}
27
+ */
28
+ set templateContents(html) {
29
+ if (html) {
30
+ this._html = html;
31
+ /** @type {?} */
32
+ const cmpType = this._createDynamicComponent();
33
+ /** @type {?} */
34
+ const moduleType = this._createDynamicModule(cmpType);
35
+ /** @type {?} */
36
+ const injector = Injector.create({
37
+ providers: [],
38
+ parent: this.viewContainer.parentInjector,
39
+ });
40
+ this.compiler.compileModuleAndAllComponentsAsync(moduleType)
41
+ .then((/**
42
+ * @param {?} factory
43
+ * @return {?}
44
+ */
45
+ factory => {
46
+ /** @type {?} */
47
+ let cmpFactory;
48
+ for (let i = factory.componentFactories.length - 1; i >= 0; i--) {
49
+ if (factory.componentFactories[i].selector === this._selector) {
50
+ cmpFactory = factory.componentFactories[i];
51
+ break;
52
+ }
53
+ }
54
+ return cmpFactory;
55
+ }))
56
+ .then((/**
57
+ * @param {?} cmpFactory
58
+ * @return {?}
59
+ */
60
+ cmpFactory => {
61
+ if (cmpFactory && this.viewContainer) {
62
+ this.viewContainer.clear();
63
+ this.viewContainer.createComponent(cmpFactory, 0, injector);
64
+ }
65
+ }));
66
+ }
67
+ else {
68
+ this._html = '';
69
+ this.viewContainer.clear();
70
+ }
71
+ }
72
+ /**
73
+ * @private
74
+ * @return {?}
75
+ */
76
+ _createDynamicComponent() {
77
+ /** @type {?} */
78
+ const metadata = {
79
+ selector: this._selector,
80
+ template: this._html,
81
+ inputs: ['template']
82
+ };
83
+ class _cmp_ {
84
+ }
85
+ _cmp_.prototype = this.context;
86
+ return Component(metadata)(_cmp_);
87
+ }
88
+ /**
89
+ * @private
90
+ * @param {?} componentType
91
+ * @return {?}
92
+ */
93
+ _createDynamicModule(componentType) {
94
+ class _mod_ {
95
+ }
96
+ return NgModule({
97
+ imports: [
98
+ CommonModule,
99
+ ...this.dynamicModuleImports.imports
100
+ ],
101
+ declarations: [componentType],
102
+ providers: []
103
+ })(_mod_);
104
+ }
105
+ }
106
+ DynamicTemplateDirective.decorators = [
107
+ { type: Directive, args: [{
108
+ selector: 'dynamic-template'
109
+ },] }
110
+ ];
111
+ /** @nocollapse */
112
+ DynamicTemplateDirective.ctorParameters = () => [
113
+ { type: ElementRef },
114
+ { type: ViewContainerRef },
115
+ { type: Compiler },
116
+ { type: DynamicModuleImportsService }
117
+ ];
118
+ DynamicTemplateDirective.propDecorators = {
119
+ templateContents: [{ type: Input, args: ['template',] }],
120
+ context: [{ type: Input }]
121
+ };
122
+ if (false) {
123
+ /**
124
+ * @type {?}
125
+ * @private
126
+ */
127
+ DynamicTemplateDirective.prototype._html;
128
+ /**
129
+ * @type {?}
130
+ * @private
131
+ */
132
+ DynamicTemplateDirective.prototype._selector;
133
+ /**
134
+ * @type {?}
135
+ * @private
136
+ */
137
+ DynamicTemplateDirective.prototype.context;
138
+ /**
139
+ * @type {?}
140
+ * @private
141
+ */
142
+ DynamicTemplateDirective.prototype.elementRef;
143
+ /**
144
+ * @type {?}
145
+ * @private
146
+ */
147
+ DynamicTemplateDirective.prototype.viewContainer;
148
+ /**
149
+ * @type {?}
150
+ * @private
151
+ */
152
+ DynamicTemplateDirective.prototype.compiler;
153
+ /**
154
+ * @type {?}
155
+ * @private
156
+ */
157
+ DynamicTemplateDirective.prototype.dynamicModuleImports;
158
+ }
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY3RlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9keW5hbWljdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBUSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFLckYsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7OztJQUVqQyxZQUNZLFVBQXNCLEVBQ3RCLGFBQStCLEVBQy9CLFFBQWtCLEVBQ2xCLG9CQUFpRDtRQUhqRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFxQ3JELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsY0FBYyxDQUFDO0lBckNoQyxDQUFDOzs7OztJQUVKLElBQ0ksZ0JBQWdCLENBQUMsSUFBWTtRQUM3QixJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztrQkFDWixPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFOztrQkFDeEMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7O2tCQUMvQyxRQUFRLEdBQWEsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYzthQUM1QyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBTSxVQUFVLENBQUM7aUJBQzVELElBQUk7Ozs7WUFBQyxPQUFPLENBQUMsRUFBRTs7b0JBQ1IsVUFBZTtnQkFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM3RCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDM0QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsTUFBTTtxQkFDVDtpQkFDSjtnQkFDRCxPQUFPLFVBQVUsQ0FBQztZQUN0QixDQUFDLEVBQUM7aUJBQ0QsSUFBSTs7OztZQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNmLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQy9EO1lBQ0wsQ0FBQyxFQUFDLENBQUM7U0FDVjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7Ozs7O0lBT08sdUJBQXVCOztjQUNyQixRQUFRLEdBQUc7WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUN2QjtRQUNELE1BQU0sS0FBSztTQUFHO1FBQ2QsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7OztJQUVPLG9CQUFvQixDQUFDLGFBQXdCO1FBQ2pELE1BQU0sS0FBSztTQUFHO1FBQ2QsT0FBTyxRQUFRLENBQUM7WUFDWixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPO2FBQUU7WUFDMUMsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7OztZQXZFSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjthQUMvQjs7OztZQVB1QyxVQUFVO1lBQW1DLGdCQUFnQjtZQUE3RixRQUFRO1lBR1IsMkJBQTJCOzs7K0JBYzlCLEtBQUssU0FBQyxVQUFVO3NCQXFDaEIsS0FBSzs7Ozs7OztJQUhOLHlDQUFtQjs7Ozs7SUFDbkIsNkNBQW1DOzs7OztJQUVuQywyQ0FBaUM7Ozs7O0lBM0M3Qiw4Q0FBOEI7Ozs7O0lBQzlCLGlEQUF1Qzs7Ozs7SUFDdkMsNENBQTBCOzs7OztJQUMxQix3REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBpbGVyLCBDb21wb25lbnQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nTW9kdWxlLCBJbmplY3RvciwgVHlwZSwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEeW5hbWljTW9kdWxlSW1wb3J0c1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2R5bmFtaWNNb2R1bGVJbXBvcnRzLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2R5bmFtaWMtdGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxuICAgICAgICBwcml2YXRlIGR5bmFtaWNNb2R1bGVJbXBvcnRzOiBEeW5hbWljTW9kdWxlSW1wb3J0c1NlcnZpY2VcbiAgICApIHt9XG5cbiAgICBASW5wdXQoJ3RlbXBsYXRlJylcbiAgICBzZXQgdGVtcGxhdGVDb250ZW50cyhodG1sOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGh0bWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2h0bWwgPSBodG1sO1xuICAgICAgICAgICAgY29uc3QgY21wVHlwZSA9IHRoaXMuX2NyZWF0ZUR5bmFtaWNDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZVR5cGUgPSB0aGlzLl9jcmVhdGVEeW5hbWljTW9kdWxlKGNtcFR5cGUpO1xuICAgICAgICAgICAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtdLFxuICAgICAgICAgICAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyLnBhcmVudEluamVjdG9yLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNBc3luYzxhbnk+KG1vZHVsZVR5cGUpXG4gICAgICAgICAgICAgICAgLnRoZW4oZmFjdG9yeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjbXBGYWN0b3J5OiBhbnk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmYWN0b3J5LmNvbXBvbmVudEZhY3Rvcmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhY3RvcnkuY29tcG9uZW50RmFjdG9yaWVzW2ldLnNlbGVjdG9yID09PSB0aGlzLl9zZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcEZhY3RvcnkgPSBmYWN0b3J5LmNvbXBvbmVudEZhY3Rvcmllc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY21wRmFjdG9yeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKGNtcEZhY3RvcnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY21wRmFjdG9yeSAmJiB0aGlzLnZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjbXBGYWN0b3J5LCAwLCBpbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2h0bWwgPSAnJztcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaHRtbCA9ICcnO1xuICAgIHByaXZhdGUgX3NlbGVjdG9yID0gJ2R5bmFtaWMtdmlldyc7XG5cbiAgICBASW5wdXQoKSBwcml2YXRlIGNvbnRleHQ6IE9iamVjdDtcblxuICAgIHByaXZhdGUgX2NyZWF0ZUR5bmFtaWNDb21wb25lbnQoKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZWxlY3RvcjogdGhpcy5fc2VsZWN0b3IsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5faHRtbCxcbiAgICAgICAgICAgIGlucHV0czogWyd0ZW1wbGF0ZSddXG4gICAgICAgIH07XG4gICAgICAgIGNsYXNzIF9jbXBfIHt9XG4gICAgICAgIF9jbXBfLnByb3RvdHlwZSA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudChtZXRhZGF0YSkoX2NtcF8pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZUR5bmFtaWNNb2R1bGUoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KSB7XG4gICAgICAgIGNsYXNzIF9tb2RfIHt9XG4gICAgICAgIHJldHVybiBOZ01vZHVsZSh7XG4gICAgICAgICAgICBpbXBvcnRzOiBbXG4gICAgICAgICAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZHluYW1pY01vZHVsZUltcG9ydHMuaW1wb3J0cyBdLFxuICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbY29tcG9uZW50VHlwZV0sXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtdXG4gICAgICAgIH0pKF9tb2RfKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/object-url.directive.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Directive, ElementRef } from '@angular/core';
7
+ /**
8
+ *
9
+ * see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
10
+ */
11
+ export class ObjectURLDirective {
12
+ /**
13
+ * @param {?} elementRef
14
+ */
15
+ constructor(elementRef) {
16
+ this.elementRef = elementRef;
17
+ }
18
+ // TODO provide more specific method like createJSON, createCSV, createPDF
19
+ // to free directive consumer from using Blog API
20
+ /**
21
+ * @param {?} blob
22
+ * @param {?} filename
23
+ * @return {?}
24
+ */
25
+ create(blob, filename) {
26
+ if (this.objectURL !== null) {
27
+ window.URL.revokeObjectURL(this.objectURL);
28
+ }
29
+ this.objectURL = window.URL.createObjectURL(blob);
30
+ this.elementRef.nativeElement.href = this.objectURL;
31
+ this.elementRef.nativeElement.download = filename;
32
+ }
33
+ }
34
+ ObjectURLDirective.decorators = [
35
+ { type: Directive, args: [{ selector: '[object-url]' },] }
36
+ ];
37
+ /** @nocollapse */
38
+ ObjectURLDirective.ctorParameters = () => [
39
+ { type: ElementRef }
40
+ ];
41
+ if (false) {
42
+ /**
43
+ * @type {?}
44
+ * @private
45
+ */
46
+ ObjectURLDirective.prototype.objectURL;
47
+ /**
48
+ * @type {?}
49
+ * @private
50
+ */
51
+ ObjectURLDirective.prototype.elementRef;
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXVybC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvb2JqZWN0LXVybC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPcEQsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUUzQixZQUNZLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDL0IsQ0FBQzs7Ozs7Ozs7SUFNSixNQUFNLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ3RELENBQUM7OztZQWxCSixTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFOzs7O1lBTnBCLFVBQVU7Ozs7Ozs7SUFhekIsdUNBQWtCOzs7OztJQUhkLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4qXG4qIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJML2NyZWF0ZU9iamVjdFVSTFxuKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tvYmplY3QtdXJsXScgfSlcbmV4cG9ydCBjbGFzcyBPYmplY3RVUkxEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIG9iamVjdFVSTDtcblxuICAgIC8vIFRPRE8gcHJvdmlkZSBtb3JlIHNwZWNpZmljIG1ldGhvZCBsaWtlIGNyZWF0ZUpTT04sIGNyZWF0ZUNTViwgY3JlYXRlUERGXG4gICAgLy8gdG8gZnJlZSBkaXJlY3RpdmUgY29uc3VtZXIgZnJvbSB1c2luZyBCbG9nIEFQSVxuICAgIGNyZWF0ZShibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9iamVjdFVSTCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVUkwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JqZWN0VVJMID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmhyZWYgPSB0aGlzLm9iamVjdFVSTDtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICB9XG5cbn1cbiJdfQ==