ngx-ode-ui 4.6.0-dev-produit.3 → 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,172 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/tooltip/tooltip.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { OdeComponent } from 'ngx-ode-core';
7
+ import { Component, ElementRef, Input, Renderer2, Injector } from '@angular/core';
8
+ export class TooltipComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ * @param {?} ref
12
+ * @param {?} renderer
13
+ */
14
+ constructor(injector, ref, renderer) {
15
+ super(injector);
16
+ this.ref = ref;
17
+ this.renderer = renderer;
18
+ this.position = 'bottom';
19
+ this.offset = 5;
20
+ this.onTransitionEnd = (/**
21
+ * @return {?}
22
+ */
23
+ () => {
24
+ if (this.tooltipElt && !this.tooltipElt.classList.contains('shown')) {
25
+ this.tooltipElt.parentNode.removeChild(this.tooltipElt);
26
+ this.tooltipElt = null;
27
+ }
28
+ });
29
+ }
30
+ /**
31
+ * @return {?}
32
+ */
33
+ onMouseEnter() {
34
+ /** @type {?} */
35
+ const r = this.renderer;
36
+ if (!this.tooltipElt) {
37
+ this.tooltipElt = this.renderer.createElement('div');
38
+ /** @type {?} */
39
+ let tooltipText = this.renderer.createText(this.tooltipContents);
40
+ this.renderer.appendChild(this.tooltipElt, tooltipText);
41
+ this.renderer.addClass(this.tooltipElt, "tooltip");
42
+ this.renderer.appendChild(document.getElementsByTagName('body')[0], this.tooltipElt);
43
+ }
44
+ /** @type {?} */
45
+ const tip = this.tooltipElt;
46
+ /** @type {?} */
47
+ const pos = this.getPosition(this.ref.nativeElement, tip, this.position);
48
+ for (const prop in pos) {
49
+ this.renderer.setStyle(tip, prop, pos[prop] + 'px');
50
+ }
51
+ this.renderer.addClass(tip, 'shown');
52
+ }
53
+ /**
54
+ * @return {?}
55
+ */
56
+ onMouseLeave() {
57
+ /** @type {?} */
58
+ const wait = this.tooltipElt &&
59
+ parseFloat(window.getComputedStyle(this.tooltipElt)['transition-duration']);
60
+ this.renderer.removeClass(this.tooltipElt, 'shown');
61
+ setTimeout(this.onTransitionEnd, wait * 1000);
62
+ }
63
+ /**
64
+ * @private
65
+ * @param {?} elt
66
+ * @param {?} tip
67
+ * @param {?} pos
68
+ * @return {?}
69
+ */
70
+ getPosition(elt, tip, pos) {
71
+ /** @type {?} */
72
+ const rect = {
73
+ top: elt.getBoundingClientRect().top + window.scrollY,
74
+ left: elt.getBoundingClientRect().left + window.scrollX
75
+ };
76
+ /** @type {?} */
77
+ let left;
78
+ /** @type {?} */
79
+ let top;
80
+ switch (pos) {
81
+ case 'top':
82
+ top = rect.top - tip.offsetHeight - this.offset;
83
+ left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;
84
+ break;
85
+ case 'left':
86
+ top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;
87
+ left = rect.left - tip.offsetWidth - this.offset;
88
+ break;
89
+ case 'right':
90
+ top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;
91
+ left = rect.left + elt.offsetWidth + this.offset;
92
+ break;
93
+ case 'bottom':
94
+ default:
95
+ top = rect.top + elt.offsetHeight + this.offset;
96
+ left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;
97
+ }
98
+ if (left < 0) {
99
+ left = rect.left + elt.offsetWidth + this.offset;
100
+ }
101
+ if (top < 0) {
102
+ top = rect.top + elt.offsetHeight + this.offset;
103
+ }
104
+ if (left + tip.offsetWidth >= window.pageXOffset + window.innerWidth) {
105
+ left = rect.left - tip.offsetWidth - this.offset;
106
+ }
107
+ if (top - tip.offsetHeight >= window.pageYOffset + window.innerHeight) {
108
+ top = rect.top - tip.offsetHeight - this.offset;
109
+ }
110
+ return {
111
+ top: top < 5 ? 5 : top,
112
+ left: left < 5 ? 5 : left
113
+ };
114
+ }
115
+ /**
116
+ * @return {?}
117
+ */
118
+ ngOnDestroy() {
119
+ if (this.tooltipElt) {
120
+ this.tooltipElt.parentNode.removeChild(this.tooltipElt);
121
+ this.tooltipElt = null;
122
+ }
123
+ }
124
+ }
125
+ TooltipComponent.decorators = [
126
+ { type: Component, args: [{
127
+ selector: '[tooltip]',
128
+ template: `<ng-content></ng-content>`,
129
+ host: {
130
+ '(mouseenter)': 'onMouseEnter()',
131
+ '(mouseleave)': 'onMouseLeave()'
132
+ },
133
+ styles: ["body>div.tooltip{position:absolute;z-index:100}"]
134
+ }] }
135
+ ];
136
+ /** @nocollapse */
137
+ TooltipComponent.ctorParameters = () => [
138
+ { type: Injector },
139
+ { type: ElementRef },
140
+ { type: Renderer2 }
141
+ ];
142
+ TooltipComponent.propDecorators = {
143
+ tooltipContents: [{ type: Input, args: ['tooltip',] }],
144
+ position: [{ type: Input }],
145
+ offset: [{ type: Input }]
146
+ };
147
+ if (false) {
148
+ /** @type {?} */
149
+ TooltipComponent.prototype.tooltipContents;
150
+ /** @type {?} */
151
+ TooltipComponent.prototype.position;
152
+ /** @type {?} */
153
+ TooltipComponent.prototype.offset;
154
+ /**
155
+ * @type {?}
156
+ * @private
157
+ */
158
+ TooltipComponent.prototype.tooltipElt;
159
+ /** @type {?} */
160
+ TooltipComponent.prototype.onTransitionEnd;
161
+ /**
162
+ * @type {?}
163
+ * @private
164
+ */
165
+ TooltipComponent.prototype.ref;
166
+ /**
167
+ * @type {?}
168
+ * @private
169
+ */
170
+ TooltipComponent.prototype.renderer;
171
+ }
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7Ozs7OztJQUU5QyxZQUFZLFFBQWtCLEVBQ1YsR0FBZSxFQUNmLFFBQW1CO1FBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZaLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSzlCLGFBQVEsR0FBd0MsUUFBUSxDQUFDO1FBQ3pELFdBQU0sR0FBRyxDQUFDLENBQUM7UUE2QnBCLG9CQUFlOzs7UUFBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUMxQjtRQUNMLENBQUMsRUFBQTtJQXRDVyxDQUFDOzs7O0lBUWIsWUFBWTs7Y0FDRixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMs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TixDQUFDOzs7O0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQzs7O1lBMUdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtnQkFFckMsSUFBSSxFQUFFO29CQUNGLGNBQWMsRUFBRSxnQkFBZ0I7b0JBQ2hDLGNBQWMsRUFBRSxnQkFBZ0I7aUJBQ25DOzthQUNKOzs7O1lBVmlELFFBQVE7WUFBdEMsVUFBVTtZQUFTLFNBQVM7Ozs4QkFtQjNDLEtBQUssU0FBQyxTQUFTO3VCQUNmLEtBQUs7cUJBQ0wsS0FBSzs7OztJQUZOLDJDQUEwQzs7SUFDMUMsb0NBQWtFOztJQUNsRSxrQ0FBb0I7Ozs7O0lBRXBCLHNDQUFnQzs7SUEyQmhDLDJDQUtDOzs7OztJQXpDVywrQkFBdUI7Ozs7O0lBQ3ZCLG9DQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3Rvb2x0aXBdJyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIHN0eWxlVXJsczogWycuL3Rvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcobW91c2VlbnRlciknOiAnb25Nb3VzZUVudGVyKCknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ29uTW91c2VMZWF2ZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICBASW5wdXQoJ3Rvb2x0aXAnKSB0b29sdGlwQ29udGVudHM6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgPSAnYm90dG9tJztcbiAgICBASW5wdXQoKSBvZmZzZXQgPSA1O1xuXG4gICAgcHJpdmF0ZSB0b29sdGlwRWx0OiBIVE1MRWxlbWVudDtcblxuICAgIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgciA9IHRoaXMucmVuZGVyZXI7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRvb2x0aXBFbHQpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEVsdCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBsZXQgdG9vbHRpcFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy50b29sdGlwQ29udGVudHMpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbHQsIHRvb2x0aXBUZXh0KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWx0LCBcInRvb2x0aXBcIik7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0sIHRoaXMudG9vbHRpcEVsdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGlwID0gdGhpcy50b29sdGlwRWx0O1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIHRpcCwgdGhpcy5wb3NpdGlvbik7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBwb3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGlwLCBwcm9wLCBwb3NbcHJvcF0gKyAncHgnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRpcCwgJ3Nob3duJyk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3YWl0ID0gdGhpcy50b29sdGlwRWx0ICYmXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudG9vbHRpcEVsdClbJ3RyYW5zaXRpb24tZHVyYXRpb24nXSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWx0LCAnc2hvd24nKTtcbiAgICAgICAgc2V0VGltZW91dCh0aGlzLm9uVHJhbnNpdGlvbkVuZCwgd2FpdCAqIDEwMDApO1xuICAgIH1cblxuICAgIG9uVHJhbnNpdGlvbkVuZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEVsdCAmJiAhdGhpcy50b29sdGlwRWx0LmNsYXNzTGlzdC5jb250YWlucygnc2hvd24nKSkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwRWx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwRWx0KTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEVsdCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvc2l0aW9uKGVsdCwgdGlwLCBwb3MpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHtcbiAgICAgICAgICAgIHRvcDogZWx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZLFxuICAgICAgICAgICAgbGVmdDogZWx0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyB3aW5kb3cuc2Nyb2xsWFxuICAgICAgICB9O1xuICAgICAgICBsZXQgbGVmdCwgdG9wO1xuXG4gICAgICAgIHN3aXRjaCAocG9zKSB7XG5cbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgLSB0aXAub2Zmc2V0SGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHJlY3QubGVmdCArIGVsdC5vZmZzZXRXaWR0aCAvIDIgLSB0aXAub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgKyBlbHQub2Zmc2V0SGVpZ2h0IC8gMiAtIHRpcC5vZmZzZXRIZWlnaHQgLyAyO1xuICAgICAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgLSB0aXAub2Zmc2V0V2lkdGggLSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0b3AgPSByZWN0LnRvcCArIGVsdC5vZmZzZXRIZWlnaHQgLyAyIC0gdGlwLm9mZnNldEhlaWdodCAvIDI7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHJlY3QubGVmdCArIGVsdC5vZmZzZXRXaWR0aCArIHRoaXMub2Zmc2V0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgKyBlbHQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHJlY3QubGVmdCArIGVsdC5vZmZzZXRXaWR0aCAvIDIgLSB0aXAub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlZnQgPCAwICkge1xuICAgICAgICAgICAgbGVmdCA9IHJlY3QubGVmdCArIGVsdC5vZmZzZXRXaWR0aCArIHRoaXMub2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICB0b3AgPSByZWN0LnRvcCArIGVsdC5vZmZzZXRIZWlnaHQgKyB0aGlzLm9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGVmdCArIHRpcC5vZmZzZXRXaWR0aCA+PSB3aW5kb3cucGFnZVhPZmZzZXQgKyB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgICAgbGVmdCA9IHJlY3QubGVmdCAtIHRpcC5vZmZzZXRXaWR0aCAtIHRoaXMub2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b3AgLSB0aXAub2Zmc2V0SGVpZ2h0ID49IHdpbmRvdy5wYWdlWU9mZnNldCArIHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgLSB0aXAub2Zmc2V0SGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiB0b3AgPCA1ID8gNSA6IHRvcCxcbiAgICAgICAgICAgIGxlZnQ6IGxlZnQgPCA1ID8gNSA6IGxlZnRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEVsdCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwRWx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwRWx0KTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEVsdCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/upload-files/upload-files.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { OdeComponent } from 'ngx-ode-core';
7
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, Injector } from '@angular/core';
8
+ import { InputFileService } from '../../services/inputFile.service';
9
+ export class UploadFilesComponent extends OdeComponent {
10
+ /**
11
+ * @param {?} injector
12
+ * @param {?} inputFileService
13
+ */
14
+ constructor(injector, inputFileService) {
15
+ super(injector);
16
+ this.inputFileService = inputFileService;
17
+ this.upload = new EventEmitter();
18
+ this.invalidUpload = new EventEmitter();
19
+ }
20
+ /**
21
+ * @return {?}
22
+ */
23
+ ngOnInit() {
24
+ super.ngOnInit();
25
+ this.multiple = this.maxFilesNumber > 1;
26
+ }
27
+ /**
28
+ * @param {?} $event
29
+ * @return {?}
30
+ */
31
+ onChange($event) {
32
+ if ($event.target) {
33
+ this.inputFileService
34
+ .validateFiles($event.target.files, this.maxFilesNumber, this.allowedExtensions)
35
+ .subscribe((/**
36
+ * @param {?} files
37
+ * @return {?}
38
+ */
39
+ files => this.upload.emit(files)), (/**
40
+ * @param {?} error
41
+ * @return {?}
42
+ */
43
+ error => this.invalidUpload.emit(error)));
44
+ }
45
+ }
46
+ /**
47
+ * @param {?} $event
48
+ * @return {?}
49
+ */
50
+ onClickDropzoneInput($event) {
51
+ $event.stopPropagation();
52
+ /** @type {?} */
53
+ const inputFileElement = this.inputFileRef.nativeElement;
54
+ inputFileElement.click();
55
+ }
56
+ /**
57
+ * @param {?} $event
58
+ * @return {?}
59
+ */
60
+ onDragAndDrop($event) {
61
+ this.upload.emit($event);
62
+ }
63
+ /**
64
+ * @param {?} $event
65
+ * @return {?}
66
+ */
67
+ onInvalidDragAndDrop($event) {
68
+ this.invalidUpload.emit($event);
69
+ }
70
+ }
71
+ UploadFilesComponent.decorators = [
72
+ { type: Component, args: [{
73
+ selector: 'ode-upload-files',
74
+ template: "<div class=\"upload-files-dropzone\"\n dragAndDropFiles\n [allowedExtensions]=\"allowedExtensions\"\n [maxFilesNumber]=\"maxFilesNumber\"\n [disabled]=\"disabled\"\n (dragAndDrop)=\"onDragAndDrop($event)\"\n (invalidDragAndDrop)=\"onInvalidDragAndDrop($event)\">\n <div *ngIf=\"fileSrc\" class=\"upload-files-dropzone-image\">\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcExternalUrl(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcWorkspace(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <i class=\"upload-files-dropzone-image__icon {{ fileSrc }}\"\n *ngIf=\"!inputFileService.isSrcExternalUrl(fileSrc)\n && !inputFileService.isSrcWorkspace(fileSrc)\"></i>\n </div>\n\n <div class=\"upload-files-dropzone-input\" *ngIf=\"!disabled\">\n <button class=\"confirm upload-files-dropzone-input__button\"\n (click)=\"onClickDropzoneInput($event)\">\n <s5l>ux.upload-files.button.label</s5l>\n </button>\n <i class=\"upload-files-dropzone-input__icon fa fa-cloud-upload fa-2x\">\n </i>\n <span class=\"upload-files-dropzone-input__help\">\n <s5l>ux.upload-files.button.help</s5l>\n </span>\n <input *ngIf=\"multiple === true else singleFileInput\"\n class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n multiple\n #inputFileRef>\n <ng-template #singleFileInput>\n <input class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n #inputFileRef>\n </ng-template>\n </div>\n</div>\n",
75
+ styles: [".upload-files-dropzone{display:flex;align-items:center;justify-content:center;min-height:150px;margin:20px;padding:20px 10px;background-color:#fafafa;border:2px dashed #ddd;border-radius:5px}.upload-files-dropzone-image{display:flex;align-items:center;justify-content:center;width:120px;height:120px}.upload-files-dropzone-image__image{max-height:90%;max-width:90%}.upload-files-dropzone-image__icon{font-size:5em}.upload-files-dropzone-input{display:flex;align-items:center;background-color:#fff;border-radius:5px;box-shadow:1px 1px 5px rgba(0,0,0,.3);padding:10px;margin:0 40px 0 20px}.upload-files-dropzone-input__input{display:none}.upload-files-dropzone-input__icon{margin-left:10px}.upload-files-dropzone-input__help{margin-left:10px;font-style:italic}"]
76
+ }] }
77
+ ];
78
+ /** @nocollapse */
79
+ UploadFilesComponent.ctorParameters = () => [
80
+ { type: Injector },
81
+ { type: InputFileService }
82
+ ];
83
+ UploadFilesComponent.propDecorators = {
84
+ fileSrc: [{ type: Input }],
85
+ allowedExtensions: [{ type: Input }],
86
+ maxFilesNumber: [{ type: Input }],
87
+ disabled: [{ type: Input }],
88
+ upload: [{ type: Output }],
89
+ invalidUpload: [{ type: Output }],
90
+ inputFileRef: [{ type: ViewChild, args: ['inputFileRef', { static: false },] }]
91
+ };
92
+ if (false) {
93
+ /** @type {?} */
94
+ UploadFilesComponent.prototype.fileSrc;
95
+ /** @type {?} */
96
+ UploadFilesComponent.prototype.allowedExtensions;
97
+ /** @type {?} */
98
+ UploadFilesComponent.prototype.maxFilesNumber;
99
+ /** @type {?} */
100
+ UploadFilesComponent.prototype.disabled;
101
+ /** @type {?} */
102
+ UploadFilesComponent.prototype.upload;
103
+ /** @type {?} */
104
+ UploadFilesComponent.prototype.invalidUpload;
105
+ /** @type {?} */
106
+ UploadFilesComponent.prototype.inputFileRef;
107
+ /** @type {?} */
108
+ UploadFilesComponent.prototype.multiple;
109
+ /** @type {?} */
110
+ UploadFilesComponent.prototype.inputFileService;
111
+ }
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy91cGxvYWQtZmlsZXMvdXBsb2FkLWZpbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQU9sRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTs7Ozs7SUFvQmxELFlBQVksUUFBa0IsRUFDWCxnQkFBa0M7UUFDN0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVZyRCxXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEQsa0JBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVV6RCxDQUFDOzs7O0lBRU0sUUFBUTtRQUNYLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Ozs7O0lBRU0sUUFBUSxDQUFDLE1BQU07UUFDbEIsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGdCQUFnQjtpQkFDaEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvRSxTQUFTOzs7O1lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Ozs7WUFDckMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQzs7Ozs7SUFFTSxvQkFBb0IsQ0FBQyxNQUFhO1FBQ3JDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQzs7Y0FDbkIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO1FBQ3hELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRU0sYUFBYSxDQUFDLE1BQWM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFTSxvQkFBb0IsQ0FBQyxNQUFjO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsc3lEQUE0Qzs7YUFFL0M7Ozs7WUFQK0UsUUFBUTtZQUNoRixnQkFBZ0I7OztzQkFRbkIsS0FBSztnQ0FFTCxLQUFLOzZCQUVMLEtBQUs7dUJBRUwsS0FBSztxQkFHTCxNQUFNOzRCQUVOLE1BQU07MkJBR04sU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7SUFkNUMsdUNBQ2dCOztJQUNoQixpREFDaUM7O0lBQ2pDLDhDQUN1Qjs7SUFDdkIsd0NBQ2tCOztJQUVsQixzQ0FDa0Q7O0lBQ2xELDZDQUN5RDs7SUFFekQsNENBQ3lCOztJQUV6Qix3Q0FBeUI7O0lBR2IsZ0RBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SW5wdXRGaWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW5wdXRGaWxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS11cGxvYWQtZmlsZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZmlsZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VwbG9hZC1maWxlcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEZpbGVzQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGZpbGVTcmM6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIGFsbG93ZWRFeHRlbnNpb25zOiBBcnJheTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpXG4gICAgbWF4RmlsZXNOdW1iZXI6IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBpbnZhbGlkVXBsb2FkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RmlsZVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGlucHV0RmlsZVJlZjogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwdWJsaWMgaW5wdXRGaWxlU2VydmljZTogSW5wdXRGaWxlU2VydmljZSkge1xuICAgICAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkwqB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB0aGlzLm1heEZpbGVzTnVtYmVyID4gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICgkZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RmlsZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAudmFsaWRhdGVGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzLCB0aGlzLm1heEZpbGVzTnVtYmVyLCB0aGlzLmFsbG93ZWRFeHRlbnNpb25zKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZmlsZXMgPT4gdGhpcy51cGxvYWQuZW1pdChmaWxlcylcbiAgICAgICAgICAgICAgICAgICAgLCBlcnJvciA9PiB0aGlzLmludmFsaWRVcGxvYWQuZW1pdChlcnJvcikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tEcm9wem9uZUlucHV0KCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjb25zdCBpbnB1dEZpbGVFbGVtZW50ID0gdGhpcy5pbnB1dEZpbGVSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaW5wdXRGaWxlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRyYWdBbmREcm9wKCRldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbnZhbGlkRHJhZ0FuZERyb3AoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkVXBsb2FkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/value-editable/simple-select.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { OdeComponent } from 'ngx-ode-core';
7
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, Injector } from '@angular/core';
8
+ /**
9
+ * @record
10
+ */
11
+ export function Option() { }
12
+ if (false) {
13
+ /** @type {?} */
14
+ Option.prototype.value;
15
+ /** @type {?} */
16
+ Option.prototype.label;
17
+ }
18
+ export class SimpleSelectComponent extends OdeComponent {
19
+ /**
20
+ * @param {?} injector
21
+ */
22
+ constructor(injector) {
23
+ super(injector);
24
+ this.selectChange = new EventEmitter();
25
+ }
26
+ }
27
+ SimpleSelectComponent.decorators = [
28
+ { type: Component, args: [{
29
+ selector: 'ode-simple-select',
30
+ template: "<select [ngModel]=\"model[selected]\" (ngModelChange)=\"model[selected] = $event; selectChange.emit($event)\">\n\n<option *ngIf=\"ignoreOption.length > 0 \" [ngValue]=\"ignoreOption[0].value\">\n {{ignoreOption[0].label}}\n</option>\n<option *ngFor=\"let option of options | orderBy: 'label'\" [ngValue]=\"option.value\">\n {{option.label}}\n</option>\n</select>\n",
31
+ changeDetection: ChangeDetectionStrategy.OnPush
32
+ }] }
33
+ ];
34
+ /** @nocollapse */
35
+ SimpleSelectComponent.ctorParameters = () => [
36
+ { type: Injector }
37
+ ];
38
+ SimpleSelectComponent.propDecorators = {
39
+ selected: [{ type: Input }],
40
+ model: [{ type: Input }],
41
+ options: [{ type: Input }],
42
+ ignoreOption: [{ type: Input }],
43
+ selectChange: [{ type: Output }]
44
+ };
45
+ if (false) {
46
+ /** @type {?} */
47
+ SimpleSelectComponent.prototype.selected;
48
+ /** @type {?} */
49
+ SimpleSelectComponent.prototype.model;
50
+ /** @type {?} */
51
+ SimpleSelectComponent.prototype.options;
52
+ /** @type {?} */
53
+ SimpleSelectComponent.prototype.ignoreOption;
54
+ /** @type {?} */
55
+ SimpleSelectComponent.prototype.selectChange;
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdmFsdWUtZWRpdGFibGUvc2ltcGxlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzFHLDRCQUdDOzs7SUFGQyx1QkFBYzs7SUFDZCx1QkFBYzs7QUFTaEIsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7Ozs7SUFPbkQsWUFBWSxRQUFrQjtRQUM1QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIUixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBSTFFLENBQUM7OztZQWRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixraEJBQTZDO2dCQUM3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7OztZQWJ5RSxRQUFROzs7dUJBZTdFLEtBQUs7b0JBQ0wsS0FBSztzQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsTUFBTTs7OztJQUpQLHlDQUEwQjs7SUFDMUIsc0NBQXdDOztJQUN4Qyx3Q0FBMkI7O0lBQzNCLDZDQUFnQzs7SUFDaEMsNkNBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtc2ltcGxlLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgc2VsZWN0ZWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBtb2RlbDoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gICAgQElucHV0KCkgb3B0aW9uczogT3B0aW9uW107XG4gICAgQElucHV0KCkgaWdub3JlT3B0aW9uOiBPcHRpb25bXTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxufVxuXG4iXX0=
@@ -0,0 +1,225 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/wizard/wizard.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { OdeComponent } from 'ngx-ode-core';
7
+ import { Component, ContentChildren, EventEmitter, Input, Output, QueryList, Injector } from '@angular/core';
8
+ export class StepComponent {
9
+ constructor() {
10
+ this.hasError = false;
11
+ this.isFinished = false;
12
+ }
13
+ }
14
+ StepComponent.decorators = [
15
+ { type: Component, args: [{
16
+ selector: 'ode-step',
17
+ template: `<ng-content></ng-content>`,
18
+ styles: [`
19
+ :host {
20
+ display: none;
21
+ overflow: auto;
22
+ padding : 1em;
23
+ }
24
+ :host.active {
25
+ display: block;
26
+ }
27
+ `]
28
+ }] }
29
+ ];
30
+ StepComponent.propDecorators = {
31
+ name: [{ type: Input }],
32
+ isActived: [{ type: Input }]
33
+ };
34
+ if (false) {
35
+ /** @type {?} */
36
+ StepComponent.prototype.name;
37
+ /** @type {?} */
38
+ StepComponent.prototype.isActived;
39
+ /** @type {?} */
40
+ StepComponent.prototype.hasError;
41
+ /** @type {?} */
42
+ StepComponent.prototype.isFinished;
43
+ }
44
+ export class WizardComponent extends OdeComponent {
45
+ /**
46
+ * @param {?} injector
47
+ */
48
+ constructor(injector) {
49
+ super(injector);
50
+ this.cancel = new EventEmitter();
51
+ this.previousStep = new EventEmitter();
52
+ this.nextStep = new EventEmitter();
53
+ this.canDoNext = true;
54
+ this.activeStep = 0;
55
+ }
56
+ /**
57
+ * @return {?}
58
+ */
59
+ doCancel() {
60
+ this.activeStep = 0;
61
+ this.steps.forEach((/**
62
+ * @param {?} step
63
+ * @param {?} index
64
+ * @return {?}
65
+ */
66
+ (step, index) => {
67
+ index === 0 ? step.isActived = true : step.isActived = false;
68
+ }));
69
+ this.canDoNext = true;
70
+ }
71
+ /**
72
+ * @return {?}
73
+ */
74
+ onPreviousStep() {
75
+ this.previousStep.emit(this.activeStep);
76
+ }
77
+ /**
78
+ * @return {?}
79
+ */
80
+ doPreviousStep() {
81
+ if (this.activeStep > 0) {
82
+ this.steps.toArray()[this.activeStep].isActived = false;
83
+ this.steps.toArray()[this.activeStep - 1].isActived = true;
84
+ this.activeStep--;
85
+ this.canDoNext = true;
86
+ }
87
+ }
88
+ /**
89
+ * @return {?}
90
+ */
91
+ onNextStep() {
92
+ this.nextStep.emit(this.activeStep);
93
+ }
94
+ /**
95
+ * @param {?=} error
96
+ * @return {?}
97
+ */
98
+ doNextStep(error) {
99
+ if (this.activeStep < this.steps.length - 1) {
100
+ this.canDoNext = !error;
101
+ this.steps.toArray()[this.activeStep].isActived = false;
102
+ this.steps.toArray()[this.activeStep + 1].isActived = true;
103
+ this.activeStep++;
104
+ }
105
+ }
106
+ /**
107
+ * @return {?}
108
+ */
109
+ ngAfterContentInit() {
110
+ super.ngAfterContentInit();
111
+ if (this.steps.length === 0) {
112
+ throw new Error('<wizard> component musts nest at least 1 <step> compoent');
113
+ }
114
+ }
115
+ }
116
+ WizardComponent.decorators = [
117
+ { type: Component, args: [{
118
+ selector: 'ode-wizard',
119
+ template: `
120
+ <div class="wizard">
121
+ <nav class="wizard-menu">
122
+ <h2 class="wizard-menu__title"><s5l>wizard.steps</s5l></h2>
123
+ <ul>
124
+ <li *ngFor="let step of steps"
125
+ [class.active]="step.isActived"
126
+ [class.finish]="step.isFinished">
127
+ {{step.name}}
128
+ </li>
129
+ </ul>
130
+ </nav>
131
+ <section class="wizard-content">
132
+ <ng-content select="ode-step"></ng-content>
133
+ <nav class="wizard-content-nav" *ngIf="activeStep < steps.length - 1">
134
+ <button class="wizard-content-nav__button cancel"
135
+ (click)="cancel.emit()"
136
+ [title]="'cancel' | translate">
137
+ {{ 'cancel' | translate }}
138
+ </button>
139
+ <button class="wizard-content-nav__button previous"
140
+ (click)="onPreviousStep()"
141
+ *ngIf="activeStep > 0"
142
+ [title]="'previous' | translate">
143
+ {{ 'wizard.previous' | translate }}
144
+ </button>
145
+ <button class="wizard-content-nav__button wizard-content-nav__button--next"
146
+ (click)="onNextStep()"
147
+ [disabled]="!canDoNext"
148
+ [title]="'next' | translate">
149
+ {{ 'wizard.next' | translate }}
150
+ </button>
151
+ </nav>
152
+ </section>
153
+ </div>
154
+ `,
155
+ styles: [`
156
+ .wizard {
157
+ display: flex;
158
+ }
159
+ .wizard-menu {
160
+ background: #5b6472;
161
+ flex: 0 0 240px;
162
+ }
163
+ .wizard-menu ul {
164
+ padding: 10px 30px;
165
+ }
166
+ .wizard-menu ul li {
167
+ color: #eaedf2;
168
+ list-style-type: none;
169
+ padding: 5px 0;
170
+ }
171
+ .wizard-menu ul li.active,
172
+ .wizard-menu ul li.finish {
173
+ font-weight: bold;
174
+ color: white;
175
+ }
176
+ .wizard-menu ul li.finish {
177
+ color: green;
178
+ }
179
+ .wizard-menu__title {
180
+ font-weight: bold;
181
+ font-size: 1.2em;
182
+ color: white;
183
+ padding: 25px 0 0 10px;
184
+ }
185
+ .wizard-content {
186
+ background: #fff;
187
+ flex: auto;
188
+ }
189
+ .wizard-content-nav {
190
+ text-align : right;
191
+ }
192
+ .wizard-content-nav__button {
193
+ margin: 10px 0;
194
+ }
195
+ .wizard-content-nav__button--next {
196
+ margin-right: 16px;
197
+ }
198
+ `]
199
+ }] }
200
+ ];
201
+ /** @nocollapse */
202
+ WizardComponent.ctorParameters = () => [
203
+ { type: Injector }
204
+ ];
205
+ WizardComponent.propDecorators = {
206
+ cancel: [{ type: Output }],
207
+ previousStep: [{ type: Output }],
208
+ nextStep: [{ type: Output }],
209
+ steps: [{ type: ContentChildren, args: [StepComponent,] }]
210
+ };
211
+ if (false) {
212
+ /** @type {?} */
213
+ WizardComponent.prototype.cancel;
214
+ /** @type {?} */
215
+ WizardComponent.prototype.previousStep;
216
+ /** @type {?} */
217
+ WizardComponent.prototype.nextStep;
218
+ /** @type {?} */
219
+ WizardComponent.prototype.canDoNext;
220
+ /** @type {?} */
221
+ WizardComponent.prototype.steps;
222
+ /** @type {?} */
223
+ WizardComponent.prototype.activeStep;
224
+ }
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy93aXphcmQvd2l6YXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQWdCdkIsTUFBTSxPQUFPLGFBQWE7SUFkMUI7UUFpQkksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7OztZQW5CQSxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFHLFVBQVU7Z0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7eUJBQzVCOzs7Ozs7Ozs7S0FTUjthQUNKOzs7bUJBRUksS0FBSzt3QkFDTCxLQUFLOzs7O0lBRE4sNkJBQXNCOztJQUN0QixrQ0FBNEI7O0lBQzVCLGlDQUFpQjs7SUFDakIsbUNBQW1COztBQXNGdkIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTs7OztJQVU3QyxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVZWLFdBQU0sR0FBcUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR3hCLGVBQVUsR0FBRyxDQUFDLENBQUM7SUFJZixDQUFDOzs7O0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzs7Ozs7UUFBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakUsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDOzs7O0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7O0lBRUQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUMzRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7O0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDOzs7OztJQUNELFVBQVUsQ0FBQyxLQUFlO1FBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7Ozs7SUFFRCxrQkFBa0I7UUFDZCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDOzs7WUF0SUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUNUO3lCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkNSO2FBQ0o7Ozs7WUExR0MsUUFBUTs7O3FCQTRHTCxNQUFNOzJCQUNOLE1BQU07dUJBQ04sTUFBTTtvQkFJTixlQUFlLFNBQUMsYUFBYTs7OztJQU45QixpQ0FBd0Q7O0lBQ3hELHVDQUFrRTs7SUFDbEUsbUNBQThEOztJQUU5RCxvQ0FBd0I7O0lBRXhCLGdDQUFnRTs7SUFDaEUscUNBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIEluamVjdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciA6ICdvZGUtc3RlcCcsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmcgOiAxZW07XG4gICAgICAgIH1cbiAgICAgICAgOmhvc3QuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgYF1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzQWN0aXZlZDogYm9vbGVhbjtcbiAgICBoYXNFcnJvciA9IGZhbHNlO1xuICAgIGlzRmluaXNoZWQgPSBmYWxzZTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtd2l6YXJkJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwid2l6YXJkXCI+XG4gICAgICAgICAgICA8bmF2IGNsYXNzPVwid2l6YXJkLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3aXphcmQtbWVudV9fdGl0bGVcIj48czVsPndpemFyZC5zdGVwczwvczVsPjwvaDI+XG4gICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzdGVwLmlzQWN0aXZlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmluaXNoXT1cInN0ZXAuaXNGaW5pc2hlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzdGVwLm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwid2l6YXJkLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZGUtc3RlcFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwid2l6YXJkLWNvbnRlbnQtbmF2XCIgKm5nSWY9XCJhY3RpdmVTdGVwIDwgc3RlcHMubGVuZ3RoIC0gMVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwid2l6YXJkLWNvbnRlbnQtbmF2X19idXR0b24gY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInY2FuY2VsJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3aXphcmQtY29udGVudC1uYXZfX2J1dHRvbiBwcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QcmV2aW91c1N0ZXAoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZVN0ZXAgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncHJldmlvdXMnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnd2l6YXJkLnByZXZpb3VzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIndpemFyZC1jb250ZW50LW5hdl9fYnV0dG9uIHdpemFyZC1jb250ZW50LW5hdl9fYnV0dG9uLS1uZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRTdGVwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Eb05leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIiduZXh0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3dpemFyZC5uZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIC53aXphcmQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgICAud2l6YXJkLW1lbnUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzViNjQ3MjtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNDBweDtcbiAgICAgICAgfVxuICAgICAgICAud2l6YXJkLW1lbnUgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIC53aXphcmQtbWVudSB1bCBsaSB7XG4gICAgICAgICAgICBjb2xvcjogI2VhZWRmMjtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICB9XG4gICAgICAgIC53aXphcmQtbWVudSB1bCBsaS5hY3RpdmUsXG4gICAgICAgIC53aXphcmQtbWVudSB1bCBsaS5maW5pc2gge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLndpemFyZC1tZW51IHVsIGxpLmZpbmlzaCB7XG4gICAgICAgICAgICBjb2xvcjogZ3JlZW47XG4gICAgICAgIH1cbiAgICAgICAgLndpemFyZC1tZW51X190aXRsZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDAgMCAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC53aXphcmQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgZmxleDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICAud2l6YXJkLWNvbnRlbnQtbmF2IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ24gOiByaWdodDtcbiAgICAgICAgfVxuICAgICAgICAud2l6YXJkLWNvbnRlbnQtbmF2X19idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIH1cbiAgICAgICAgLndpemFyZC1jb250ZW50LW5hdl9fYnV0dG9uLS1uZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgfVxuICAgIGBdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBPdXRwdXQoKSBjYW5jZWw6IEV2ZW50RW1pdHRlcjx7fT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHByZXZpb3VzU3RlcDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG5leHRTdGVwOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBjYW5Eb05leHQgPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihTdGVwQ29tcG9uZW50KSBzdGVwczogUXVlcnlMaXN0PFN0ZXBDb21wb25lbnQ+O1xuICAgIGFjdGl2ZVN0ZXAgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG4gICAgZG9DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IDA7XG4gICAgICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGluZGV4ID09PSAwID8gc3RlcC5pc0FjdGl2ZWQgPSB0cnVlIDogc3RlcC5pc0FjdGl2ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FuRG9OZXh0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvblByZXZpb3VzU3RlcCgpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1N0ZXAuZW1pdCh0aGlzLmFjdGl2ZVN0ZXApO1xuICAgIH1cblxuICAgIGRvUHJldmlvdXNTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVTdGVwID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zdGVwcy50b0FycmF5KClbdGhpcy5hY3RpdmVTdGVwXS5pc0FjdGl2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3RlcHMudG9BcnJheSgpW3RoaXMuYWN0aXZlU3RlcCAtIDFdLmlzQWN0aXZlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAtLTtcbiAgICAgICAgICAgIHRoaXMuY2FuRG9OZXh0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTmV4dFN0ZXAoKSB7XG4gICAgICAgIHRoaXMubmV4dFN0ZXAuZW1pdCh0aGlzLmFjdGl2ZVN0ZXApO1xuICAgIH1cbiAgICBkb05leHRTdGVwKGVycm9yPzogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVTdGVwIDwgdGhpcy5zdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNhbkRvTmV4dCA9ICFlcnJvcjtcbiAgICAgICAgICAgIHRoaXMuc3RlcHMudG9BcnJheSgpW3RoaXMuYWN0aXZlU3RlcF0uaXNBY3RpdmVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0ZXBzLnRvQXJyYXkoKVt0aGlzLmFjdGl2ZVN0ZXAgKyAxXS5pc0FjdGl2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVTdGVwKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5zdGVwcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignPHdpemFyZD4gY29tcG9uZW50IG11c3RzIG5lc3QgYXQgbGVhc3QgMSA8c3RlcD4gY29tcG9lbnQnKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/directives/anchor.directive.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Directive, HostListener, Input } from '@angular/core';
7
+ export class AnchorDirective {
8
+ constructor() {
9
+ this.offset = 50;
10
+ }
11
+ /**
12
+ * @return {?}
13
+ */
14
+ onClick() {
15
+ /** @type {?} */
16
+ const element = document.getElementById(this.anchor);
17
+ window.scrollBy(0, element.getBoundingClientRect().top - this.offset);
18
+ }
19
+ }
20
+ AnchorDirective.decorators = [
21
+ { type: Directive, args: [{ selector: '[anchor]' },] }
22
+ ];
23
+ AnchorDirective.propDecorators = {
24
+ anchor: [{ type: Input, args: ['anchor',] }],
25
+ offset: [{ type: Input, args: ['offset',] }],
26
+ onClick: [{ type: HostListener, args: ['click',] }]
27
+ };
28
+ if (false) {
29
+ /** @type {?} */
30
+ AnchorDirective.prototype.anchor;
31
+ /** @type {?} */
32
+ AnchorDirective.prototype.offset;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9hbmNob3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBSXFCLFdBQU0sR0FBRyxFQUFFLENBQUM7SUFRakMsQ0FBQzs7OztJQUxHLE9BQU87O2NBQ0csT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLENBQUM7OztZQVZKLFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7OztxQkFHOUIsS0FBSyxTQUFDLFFBQVE7cUJBQ2QsS0FBSyxTQUFDLFFBQVE7c0JBRWQsWUFBWSxTQUFDLE9BQU87Ozs7SUFIckIsaUNBQWdDOztJQUNoQyxpQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1thbmNob3JdJyB9KVxuZXhwb3J0IGNsYXNzIEFuY2hvckRpcmVjdGl2ZSB7XG5cbiAgICBASW5wdXQoJ2FuY2hvcicpIGFuY2hvcjogc3RyaW5nO1xuICAgIEBJbnB1dCgnb2Zmc2V0Jykgb2Zmc2V0ID0gNTA7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuYW5jaG9yKTtcbiAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gdGhpcy5vZmZzZXQpO1xuICAgIH1cblxufVxuIl19