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,289 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/item-tree/item-tree.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, EventEmitter, Input, Output, ViewChild, TemplateRef, Injector } from '@angular/core';
8
+ /**
9
+ * @template T
10
+ */
11
+ export class ItemTreeComponent extends OdeComponent {
12
+ /**
13
+ * @param {?} injector
14
+ */
15
+ constructor(injector) {
16
+ super(injector);
17
+ /**
18
+ * * Inputs ***
19
+ */
20
+ // Items
21
+ this.items = [];
22
+ // Property containing the list of child objects.
23
+ this.childrenProperty = 'children';
24
+ // Property to display in the list
25
+ this.displayProperty = 'label';
26
+ // Filter pipe argument
27
+ this.filter = '';
28
+ // OrderBy pipe argument
29
+ this.order = [];
30
+ // Reverse the order pipe
31
+ this.reverse = false;
32
+ this._flattenProps = [];
33
+ // Disable the opener icon
34
+ this.disableOpener = false;
35
+ // Use checkboxes instead of selecting items
36
+ this.checkboxMode = false;
37
+ /**
38
+ * * Outputs ***
39
+ */
40
+ this.onSelect = new EventEmitter();
41
+ this.onCheck = new EventEmitter();
42
+ this._depth = 0;
43
+ this.unfolded = [];
44
+ }
45
+ // Flatten the tree on the specified properties
46
+ /**
47
+ * @param {?} flattenProps
48
+ * @return {?}
49
+ */
50
+ set flatten(flattenProps) {
51
+ if (!this.isFlattened() && flattenProps.length > 0) {
52
+ this._selectedItem = this._lastSelectedItem;
53
+ }
54
+ else if (this.isFlattened && flattenProps.length < 1) {
55
+ this.flagIfParent();
56
+ }
57
+ this._flattenProps = flattenProps;
58
+ }
59
+ /**
60
+ * @return {?}
61
+ */
62
+ get flatten() {
63
+ return this._flattenProps;
64
+ }
65
+ /**
66
+ * @return {?}
67
+ */
68
+ ngOnInit() {
69
+ super.ngOnInit();
70
+ this.flagIfParent();
71
+ }
72
+ /**
73
+ * @param {?} item
74
+ * @return {?}
75
+ */
76
+ selectItem(item) {
77
+ this._selectedItem = item;
78
+ if (this.childItemTree) {
79
+ delete this.childItemTree._selectedItem;
80
+ }
81
+ /** @type {?} */
82
+ const idx = this.unfolded.indexOf(item);
83
+ if (!this.disableOpener && idx < 0) {
84
+ this.unfolded.push(item);
85
+ }
86
+ else {
87
+ this.unfolded.splice(idx, 1);
88
+ }
89
+ this.bubbleSelect(item);
90
+ }
91
+ /**
92
+ * @param {?} item
93
+ * @return {?}
94
+ */
95
+ checkItem(item) {
96
+ this.onCheck.emit(item);
97
+ }
98
+ /**
99
+ * @param {?} item
100
+ * @return {?}
101
+ */
102
+ bubbleSelect(item) {
103
+ this._lastSelectedItem = item;
104
+ this.onSelect.emit(item);
105
+ }
106
+ /**
107
+ * @param {?} item
108
+ * @return {?}
109
+ */
110
+ isSelected(item) {
111
+ return (this.disableOpener ? this._selectedItem : this._lastSelectedItem) === item;
112
+ }
113
+ /**
114
+ * @param {?} event
115
+ * @param {?} item
116
+ * @return {?}
117
+ */
118
+ toggleFold(event, item) {
119
+ event.stopPropagation();
120
+ /** @type {?} */
121
+ const idx = this.unfolded.indexOf(item);
122
+ if (idx < 0) {
123
+ this.unfolded.push(item);
124
+ }
125
+ else {
126
+ this.unfolded.splice(idx, 1);
127
+ }
128
+ }
129
+ /**
130
+ * @param {?} item
131
+ * @return {?}
132
+ */
133
+ isFolded(item) {
134
+ return this.disableOpener ? !this.isSelected(item) : this.unfolded.indexOf(item) < 0;
135
+ }
136
+ /**
137
+ * @param {?} item
138
+ * @return {?}
139
+ */
140
+ display(item) {
141
+ return this.displayProperty && item[this.displayProperty];
142
+ }
143
+ /**
144
+ * @param {?} item
145
+ * @return {?}
146
+ */
147
+ getChildren(item) {
148
+ return item[this.childrenProperty] || [];
149
+ }
150
+ /**
151
+ * @param {?} item
152
+ * @return {?}
153
+ */
154
+ hasChildren(item) {
155
+ return this.getChildren(item).length > 0;
156
+ }
157
+ /**
158
+ * @return {?}
159
+ */
160
+ isFlattened() {
161
+ return this._flattenProps.length;
162
+ }
163
+ /**
164
+ * @private
165
+ * @return {?}
166
+ */
167
+ flagIfParent() {
168
+ if (!this._lastSelectedItem) {
169
+ return;
170
+ }
171
+ /** @type {?} */
172
+ const findSubItem = (/**
173
+ * @param {?} item
174
+ * @param {?} target
175
+ * @return {?}
176
+ */
177
+ (item, target) => {
178
+ if (item === target) {
179
+ return true;
180
+ }
181
+ if (this.hasChildren(item)) {
182
+ return this.getChildren(item).find((/**
183
+ * @param {?} subItem
184
+ * @return {?}
185
+ */
186
+ subItem => {
187
+ return findSubItem(subItem, target);
188
+ }));
189
+ }
190
+ return false;
191
+ });
192
+ for (const i in this.items) {
193
+ /** @type {?} */
194
+ const item = this.items[i];
195
+ if (item === this._lastSelectedItem ||
196
+ findSubItem(item, this._lastSelectedItem)) {
197
+ this._selectedItem = item;
198
+ this.unfolded = [item];
199
+ break;
200
+ }
201
+ }
202
+ this.changeDetector.markForCheck();
203
+ }
204
+ }
205
+ ItemTreeComponent.decorators = [
206
+ { type: Component, args: [{
207
+ selector: 'ode-item-tree',
208
+ template: "<ul [ngClass]=\"{ flattened: isFlattened() }\">\n <li *ngFor=\"let item of (items | flattenObjArray: flatten | filter: filter | orderBy: order:reverse)\"\n [ngClass]=\"{ selected: isSelected(item), unfolded: !isFolded(item), parent: hasChildren(item), root: _depth === 0 }\">\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" *ngIf=\"!checkboxMode\">\n <i class=\"opener\" (click)=\"toggleFold($event, item)\"\n *ngIf=\"!isFlattened() && hasChildren(item) && !disableOpener\"></i>\n <span *ngIf=\"displayProperty\">{{ display(item) }}</span>\n <span *ngIf=\"displayTemplate\">\n <ng-template [ngTemplateOutlet]=\"displayTemplate\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template>\n </span>\n </a>\n <div class=\"checkbox__item\" *ngIf=\"checkboxMode\">\n <input id=\"all\" type=\"checkbox\" [(ngModel)]=\"item.check\" ngDefaultControl>\n <label *ngIf=\"displayProperty\" for=\"all\" (click)=\"checkItem(item)\">{{display(item)}}</label>\n <span *ngIf=\"displayTemplate\">\n <ng-template [ngTemplateOutlet]=\"displayTemplate\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template>\n </span>\n </div>\n <ode-item-tree\n [items]=\"getChildren(item)\"\n [children]=\"childrenProperty\"\n [display]=\"displayProperty\"\n [displayTemplate]=\"displayTemplate\"\n [filter]=\"filter\"\n [order]=\"order\"\n [reverse]=\"reverse\"\n [lastSelected]=\"_lastSelectedItem\"\n [depth]=\"_depth + 1\"\n [disableOpener]=\"disableOpener\"\n [checkboxMode]=\"checkboxMode\"\n (onSelect)=\"bubbleSelect($event)\"\n (onCheck)=\"checkItem($event)\"\n *ngIf=\"(checkboxMode && hasChildren(item)) || (!isFlattened() && hasChildren(item) && !isFolded(item))\">\n </ode-item-tree>\n </li>\n</ul>\n"
209
+ }] }
210
+ ];
211
+ /** @nocollapse */
212
+ ItemTreeComponent.ctorParameters = () => [
213
+ { type: Injector }
214
+ ];
215
+ ItemTreeComponent.propDecorators = {
216
+ items: [{ type: Input }],
217
+ childrenProperty: [{ type: Input, args: ['children',] }],
218
+ displayProperty: [{ type: Input, args: ['display',] }],
219
+ displayTemplate: [{ type: Input }],
220
+ filter: [{ type: Input }],
221
+ order: [{ type: Input }],
222
+ reverse: [{ type: Input }],
223
+ flatten: [{ type: Input }],
224
+ disableOpener: [{ type: Input }],
225
+ checkboxMode: [{ type: Input }],
226
+ onSelect: [{ type: Output }],
227
+ onCheck: [{ type: Output }],
228
+ childItemTree: [{ type: ViewChild, args: [ItemTreeComponent, { static: false },] }],
229
+ _lastSelectedItem: [{ type: Input, args: ['lastSelected',] }],
230
+ _depth: [{ type: Input, args: ['depth',] }]
231
+ };
232
+ if (false) {
233
+ /**
234
+ * * Inputs ***
235
+ * @type {?}
236
+ */
237
+ ItemTreeComponent.prototype.items;
238
+ /** @type {?} */
239
+ ItemTreeComponent.prototype.childrenProperty;
240
+ /** @type {?} */
241
+ ItemTreeComponent.prototype.displayProperty;
242
+ /** @type {?} */
243
+ ItemTreeComponent.prototype.displayTemplate;
244
+ /** @type {?} */
245
+ ItemTreeComponent.prototype.filter;
246
+ /** @type {?} */
247
+ ItemTreeComponent.prototype.order;
248
+ /** @type {?} */
249
+ ItemTreeComponent.prototype.reverse;
250
+ /**
251
+ * @type {?}
252
+ * @private
253
+ */
254
+ ItemTreeComponent.prototype._flattenProps;
255
+ /** @type {?} */
256
+ ItemTreeComponent.prototype.disableOpener;
257
+ /** @type {?} */
258
+ ItemTreeComponent.prototype.checkboxMode;
259
+ /**
260
+ * * Outputs ***
261
+ * @type {?}
262
+ */
263
+ ItemTreeComponent.prototype.onSelect;
264
+ /** @type {?} */
265
+ ItemTreeComponent.prototype.onCheck;
266
+ /**
267
+ * * View ***
268
+ * @type {?}
269
+ */
270
+ ItemTreeComponent.prototype.childItemTree;
271
+ /**
272
+ * * Internal Logic ***
273
+ * @type {?}
274
+ */
275
+ ItemTreeComponent.prototype._lastSelectedItem;
276
+ /**
277
+ * @type {?}
278
+ * @private
279
+ */
280
+ ItemTreeComponent.prototype._selectedItem;
281
+ /** @type {?} */
282
+ ItemTreeComponent.prototype._depth;
283
+ /**
284
+ * @type {?}
285
+ * @private
286
+ */
287
+ ItemTreeComponent.prototype.unfolded;
288
+ }
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pdGVtLXRyZWUvaXRlbS10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQWdCLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNL0gsTUFBTSxPQUFPLGlCQUFxQixTQUFRLFlBQVk7Ozs7SUFFbEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Ozs7O1FBTVgsVUFBSyxHQUFlLEVBQUUsQ0FBQzs7UUFHYixxQkFBZ0IsR0FBRyxVQUFVLENBQUM7O1FBRS9CLG9CQUFlLEdBQUcsT0FBTyxDQUFDOztRQUduQyxXQUFNLEdBQWlDLEVBQUUsQ0FBQzs7UUFFMUMsVUFBSyxHQUFxQyxFQUFFLENBQUM7O1FBRTdDLFlBQU8sR0FBUSxLQUFLLENBQUM7UUFjdEIsa0JBQWEsR0FBa0IsRUFBRSxDQUFDOztRQUdqQyxrQkFBYSxHQUFHLEtBQUssQ0FBQzs7UUFHdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7Ozs7UUFJcEIsYUFBUSxHQUFvQixJQUFJLFlBQVksRUFBSyxDQUFDO1FBRWxELFlBQU8sR0FBb0IsSUFBSSxZQUFZLEVBQUssQ0FBQztRQVUzQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGFBQVEsR0FBUSxFQUFFLENBQUM7SUF0RDNCLENBQUM7Ozs7OztJQW1CRCxJQUNJLE9BQU8sQ0FBQyxZQUEyQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELElB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Ozs7WUEzSkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixrMURBQXlDO2FBQzVDOzs7O1lBTDhGLFFBQVE7OztvQkFlbEcsS0FBSzsrQkFHTCxLQUFLLFNBQUMsVUFBVTs4QkFFaEIsS0FBSyxTQUFDLFNBQVM7OEJBQ2YsS0FBSztxQkFFTCxLQUFLO29CQUVMLEtBQUs7c0JBRUwsS0FBSztzQkFFTCxLQUFLOzRCQWVMLEtBQUs7MkJBR0wsS0FBSzt1QkFJTCxNQUFNO3NCQUVOLE1BQU07NEJBSU4sU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQ0FJOUMsS0FBSyxTQUFDLGNBQWM7cUJBRXBCLEtBQUssU0FBQyxPQUFPOzs7Ozs7O0lBaERkLGtDQUFnQzs7SUFHaEMsNkNBQWlEOztJQUVqRCw0Q0FBNEM7O0lBQzVDLDRDQUEyQzs7SUFFM0MsbUNBQW1EOztJQUVuRCxrQ0FBc0Q7O0lBRXRELG9DQUE4Qjs7Ozs7SUFjOUIsMENBQTBDOztJQUcxQywwQ0FBK0I7O0lBRy9CLHlDQUE4Qjs7Ozs7SUFJOUIscUNBQTREOztJQUU1RCxvQ0FBMkQ7Ozs7O0lBSTNELDBDQUFxRjs7Ozs7SUFJckYsOENBQTRDOzs7OztJQUM1QywwQ0FBeUI7O0lBQ3pCLG1DQUEyQjs7Ozs7SUFDM0IscUNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtaXRlbS10cmVlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaXRlbS10cmVlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJdGVtVHJlZUNvbXBvbmVudDxUPiBleHRlbmRzIE9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8qKioqIElucHV0cyAqKioqL1xuXG4gICAgLy8gSXRlbXNcbiAgICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgLy8gUHJvcGVydHkgY29udGFpbmluZyB0aGUgbGlzdCBvZiBjaGlsZCBvYmplY3RzLlxuICAgIEBJbnB1dCgnY2hpbGRyZW4nKSBjaGlsZHJlblByb3BlcnR5ID0gJ2NoaWxkcmVuJztcbiAgICAvLyBQcm9wZXJ0eSB0byBkaXNwbGF5IGluIHRoZSBsaXN0XG4gICAgQElucHV0KCdkaXNwbGF5JykgZGlzcGxheVByb3BlcnR5ID0gJ2xhYmVsJztcbiAgICBASW5wdXQoKSBkaXNwbGF5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLy8gRmlsdGVyIHBpcGUgYXJndW1lbnRcbiAgICBASW5wdXQoKSBmaWx0ZXI6IChPYmplY3QgfCBzdHJpbmcgfCBGdW5jdGlvbikgPSAnJztcbiAgICAvLyBPcmRlckJ5IHBpcGUgYXJndW1lbnRcbiAgICBASW5wdXQoKSBvcmRlcjogKEFycmF5PGFueT4gfCBzdHJpbmcgfCBGdW5jdGlvbikgPSBbXTtcbiAgICAvLyBSZXZlcnNlIHRoZSBvcmRlciBwaXBlXG4gICAgQElucHV0KCkgcmV2ZXJzZTogYW55ID0gZmFsc2U7XG4gICAgLy8gRmxhdHRlbiB0aGUgdHJlZSBvbiB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXNcbiAgICBASW5wdXQoKVxuICAgIHNldCBmbGF0dGVuKGZsYXR0ZW5Qcm9wczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBpZiAoIXRoaXMuaXNGbGF0dGVuZWQoKSAmJiBmbGF0dGVuUHJvcHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdGhpcy5fbGFzdFNlbGVjdGVkSXRlbTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRmxhdHRlbmVkICYmIGZsYXR0ZW5Qcm9wcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICB0aGlzLmZsYWdJZlBhcmVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZsYXR0ZW5Qcm9wcyA9IGZsYXR0ZW5Qcm9wcztcbiAgICB9XG4gICAgZ2V0IGZsYXR0ZW4oKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mbGF0dGVuUHJvcHM7XG4gICAgfVxuICAgIHByaXZhdGUgX2ZsYXR0ZW5Qcm9wczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgLy8gRGlzYWJsZSB0aGUgb3BlbmVyIGljb25cbiAgICBASW5wdXQoKSBkaXNhYmxlT3BlbmVyID0gZmFsc2U7XG5cbiAgICAvLyBVc2UgY2hlY2tib3hlcyBpbnN0ZWFkIG9mIHNlbGVjdGluZyBpdGVtc1xuICAgIEBJbnB1dCgpIGNoZWNrYm94TW9kZSA9IGZhbHNlO1xuXG4gICAgLyoqKiogT3V0cHV0cyAqKioqL1xuXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgb25DaGVjazogRXZlbnRFbWl0dGVyPFQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLyoqKiogVmlldyAqKioqL1xuXG4gICAgQFZpZXdDaGlsZChJdGVtVHJlZUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNoaWxkSXRlbVRyZWU6IEl0ZW1UcmVlQ29tcG9uZW50PFQ+O1xuXG4gICAgLyoqKiogSW50ZXJuYWwgTG9naWMgKioqKi9cblxuICAgIEBJbnB1dCgnbGFzdFNlbGVjdGVkJykgX2xhc3RTZWxlY3RlZEl0ZW06IFQ7XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtOiBUO1xuICAgIEBJbnB1dCgnZGVwdGgnKSBfZGVwdGggPSAwO1xuICAgIHByaXZhdGUgdW5mb2xkZWQ6IFRbXSA9IFtdO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZmxhZ0lmUGFyZW50KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEl0ZW0oaXRlbTogVCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICAgICAgICBpZiAodGhpcy5jaGlsZEl0ZW1UcmVlKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5jaGlsZEl0ZW1UcmVlLl9zZWxlY3RlZEl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy51bmZvbGRlZC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZU9wZW5lciAmJiBpZHggPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnVuZm9sZGVkLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51bmZvbGRlZC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1YmJsZVNlbGVjdChpdGVtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tJdGVtKGl0ZW06IFQpIHtcbiAgICAgICAgdGhpcy5vbkNoZWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1YmJsZVNlbGVjdChpdGVtOiBUKSB7XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzU2VsZWN0ZWQoaXRlbSkge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGlzYWJsZU9wZW5lciA/IHRoaXMuX3NlbGVjdGVkSXRlbSA6IHRoaXMuX2xhc3RTZWxlY3RlZEl0ZW0pID09PSBpdGVtO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVGb2xkKGV2ZW50OiBFdmVudCwgaXRlbTogVCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy51bmZvbGRlZC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoaWR4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy51bmZvbGRlZC5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51bmZvbGRlZC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZvbGRlZChpdGVtOiBUKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVPcGVuZXIgPyAhdGhpcy5pc1NlbGVjdGVkKGl0ZW0pIDogdGhpcy51bmZvbGRlZC5pbmRleE9mKGl0ZW0pIDwgMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzcGxheShpdGVtOiBUKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlQcm9wZXJ0eSAmJiBpdGVtW3RoaXMuZGlzcGxheVByb3BlcnR5XTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4oaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbVt0aGlzLmNoaWxkcmVuUHJvcGVydHldIHx8IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihpdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENoaWxkcmVuKGl0ZW0pLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgaXNGbGF0dGVuZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mbGF0dGVuUHJvcHMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmxhZ0lmUGFyZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2xhc3RTZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbmRTdWJJdGVtID0gKGl0ZW0sIHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0gPT09IHRhcmdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4oaXRlbSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihpdGVtKS5maW5kKHN1Ykl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmluZFN1Ykl0ZW0oc3ViSXRlbSwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGNvbnN0IGkgaW4gdGhpcy5pdGVtcykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbaV07XG5cbiAgICAgICAgICAgIGlmIChpdGVtID09PSB0aGlzLl9sYXN0U2VsZWN0ZWRJdGVtIHx8XG4gICAgICAgICAgICAgICAgICAgIGZpbmRTdWJJdGVtKGl0ZW0sIHRoaXMuX2xhc3RTZWxlY3RlZEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZm9sZGVkID0gW2l0ZW1dO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/lightbox/lightbox.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, Renderer2, ViewChild, Injector } from '@angular/core';
8
+ export class LightBoxComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ * @param {?} renderer
12
+ * @param {?} host
13
+ */
14
+ constructor(injector, renderer, host) {
15
+ super(injector);
16
+ this.renderer = renderer;
17
+ this.host = host;
18
+ this._show = false;
19
+ this.showCloseButton = true;
20
+ this.onClose = new EventEmitter();
21
+ }
22
+ /**
23
+ * @param {?} s
24
+ * @return {?}
25
+ */
26
+ set show(s) {
27
+ if (this.timer) {
28
+ clearTimeout(this.timer);
29
+ }
30
+ if (s) {
31
+ this._show = true;
32
+ this.timer = window.setTimeout((/**
33
+ * @return {?}
34
+ */
35
+ () => {
36
+ this.renderer.addClass(this.host.nativeElement, 'shown');
37
+ this.timer = null;
38
+ this.changeDetector.markForCheck();
39
+ }), 100);
40
+ }
41
+ else {
42
+ /** @type {?} */
43
+ const wait = parseFloat(this.section &&
44
+ window.getComputedStyle(this.section.nativeElement)['transition-duration']);
45
+ this.renderer.removeClass(this.host.nativeElement, 'shown');
46
+ this.timer = window.setTimeout((/**
47
+ * @return {?}
48
+ */
49
+ () => {
50
+ this._show = false;
51
+ this.timer = null;
52
+ this.changeDetector.markForCheck();
53
+ }), wait * 1000);
54
+ }
55
+ }
56
+ /**
57
+ * @return {?}
58
+ */
59
+ get show() {
60
+ return this._show;
61
+ }
62
+ /**
63
+ * @param {?} event
64
+ * @return {?}
65
+ */
66
+ onClick(event) {
67
+ if (this.overlay.nativeElement.contains(event.target)) {
68
+ this.close();
69
+ }
70
+ }
71
+ /**
72
+ * @return {?}
73
+ */
74
+ close() {
75
+ this.show = false;
76
+ this.onClose.emit();
77
+ }
78
+ }
79
+ LightBoxComponent.decorators = [
80
+ { type: Component, args: [{
81
+ selector: 'ode-lightbox',
82
+ template: "<section *ngIf=\"_show\" #section>\n <div overlay #overlay></div>\n <div content>\n <i (click)=\"close()\" *ngIf=\"showCloseButton == true\"></i>\n <ng-content></ng-content>\n </div>\n</section>\n",
83
+ host: {
84
+ '(click)': 'onClick($event)'
85
+ },
86
+ styles: ["section{position:fixed;display:flex;align-items:center;justify-content:center;height:100%;width:100%;z-index:100;top:0;left:0;opacity:0;transition:opacity .35s}section[hidden]{display:none!important}:host.shown>section{opacity:1}div[overlay]{position:absolute;top:0;left:0;opacity:.7;width:100%;height:100%;background-color:#000}div[content]{flex:0 0 auto;max-width:75%;max-height:75%;overflow:auto;background-color:#fff;z-index:2;position:relative}"]
87
+ }] }
88
+ ];
89
+ /** @nocollapse */
90
+ LightBoxComponent.ctorParameters = () => [
91
+ { type: Injector },
92
+ { type: Renderer2 },
93
+ { type: ElementRef }
94
+ ];
95
+ LightBoxComponent.propDecorators = {
96
+ show: [{ type: Input }],
97
+ showCloseButton: [{ type: Input }],
98
+ onClose: [{ type: Output }],
99
+ section: [{ type: ViewChild, args: ['section', { static: false },] }],
100
+ overlay: [{ type: ViewChild, args: ['overlay', { static: false },] }]
101
+ };
102
+ if (false) {
103
+ /** @type {?} */
104
+ LightBoxComponent.prototype._show;
105
+ /** @type {?} */
106
+ LightBoxComponent.prototype.showCloseButton;
107
+ /** @type {?} */
108
+ LightBoxComponent.prototype.onClose;
109
+ /** @type {?} */
110
+ LightBoxComponent.prototype.section;
111
+ /** @type {?} */
112
+ LightBoxComponent.prototype.overlay;
113
+ /**
114
+ * @type {?}
115
+ * @private
116
+ */
117
+ LightBoxComponent.prototype.timer;
118
+ /**
119
+ * @type {?}
120
+ * @private
121
+ */
122
+ LightBoxComponent.prototype.renderer;
123
+ /**
124
+ * @type {?}
125
+ * @private
126
+ */
127
+ LightBoxComponent.prototype.host;
128
+ }
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS11aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xpZ2h0Ym94L2xpZ2h0Ym94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbkgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFlBQVk7Ozs7OztJQUUvQyxZQUNJLFFBQWtCLEVBQ1YsUUFBbUIsRUFDbkIsSUFBZ0I7UUFDcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBZ0M1QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRUwsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFsQzVDLENBQUM7Ozs7O0lBRUQsSUFDSSxJQUFJLENBQUMsQ0FBVTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVU7OztZQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLENBQUMsR0FBRSxHQUFHLENBQUMsQ0FBQztTQUNYO2FBQU07O2tCQUNHLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVTs7O1lBQUMsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxHQUFFLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNuQjtJQUNMLENBQUM7Ozs7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFhRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtJQUNMLENBQUM7Ozs7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7WUFsRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2dCQUN4Qix5TkFBd0M7Z0JBRXhDLElBQUksRUFBRTtvQkFDRixTQUFTLEVBQUUsaUJBQWlCO2lCQUMvQjs7YUFFSjs7OztZQVZrRixRQUFRO1lBQTlCLFNBQVM7WUFBbEQsVUFBVTs7O21CQW9CekIsS0FBSzs4QkE4QkwsS0FBSztzQkFFTCxNQUFNO3NCQUVOLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3NCQUN0QyxTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7OztJQVB2QyxrQ0FBYzs7SUFFZCw0Q0FBZ0M7O0lBRWhDLG9DQUE0Qzs7SUFFNUMsb0NBQTZEOztJQUM3RCxvQ0FBNkQ7Ozs7O0lBRTdELGtDQUFzQjs7Ozs7SUExQ2xCLHFDQUEyQjs7Ozs7SUFDM0IsaUNBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbGlnaHRib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWdodGJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlnaHRib3guY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soJGV2ZW50KSdcbiAgICB9XG5cbn0pXG5leHBvcnQgY2xhc3MgTGlnaHRCb3hDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93KHM6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocykge1xuICAgICAgICAgICAgdGhpcy5fc2hvdyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdzaG93bicpO1xuICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2FpdCA9IHBhcnNlRmxvYXQodGhpcy5zZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zZWN0aW9uLm5hdGl2ZUVsZW1lbnQpWyd0cmFuc2l0aW9uLWR1cmF0aW9uJ10pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ3Nob3duJyk7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSwgd2FpdCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNob3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93O1xuICAgIH1cblxuICAgIF9zaG93ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VjdGlvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdvdmVybGF5JywgeyBzdGF0aWM6IGZhbHNlIH0pIG92ZXJsYXk6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIHRpbWVyOiBudW1iZXI7XG5cbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXkubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/lightbox-confirm/lightbox-confirm.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, EventEmitter, Input, Output, Injector } from '@angular/core';
8
+ export class LightboxConfirmComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ */
12
+ constructor(injector) {
13
+ super(injector);
14
+ this.cancelText = "cancel";
15
+ this.confirmText = "confirm";
16
+ this.extraButtons = [];
17
+ this.disableConfirm = false;
18
+ this.onConfirm = new EventEmitter();
19
+ this.onCancel = new EventEmitter();
20
+ this.onExtra = new EventEmitter();
21
+ }
22
+ }
23
+ LightboxConfirmComponent.decorators = [
24
+ { type: Component, args: [{
25
+ selector: 'ode-lightbox-confirm',
26
+ template: "<ode-lightbox [show]=\"show\" (onClose)=\"onCancel.emit()\">\n <h2 class=\"lightbox-confirm__header\">{{ lightboxTitle | translate }}</h2>\n <div class=\"lightbox-confirm-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"lightbox-confirm-action\">\n <button (click)=\"onConfirm.emit()\" [disabled]=\"disableConfirm\" class=\"confirm\">{{ confirmText | translate }}</button>\n <button\n *ngFor=\"let extraBtn of extraButtons.slice().reverse(); index as i;\"\n (click)=\"onExtra.emit(extraButtons.length - 1 - i)\" class=\"confirm\">{{ extraBtn | translate }}</button>\n <button (click)=\"onCancel.emit()\" class=\"cancel\">{{ cancelText | translate }}</button>\n </div>\n</ode-lightbox>\n",
27
+ styles: [".lightbox-confirm__header{margin-bottom:0}.lightbox-confirm-content{font-size:16px;padding:20px 0}.lightbox-confirm-action button{float:right;text-align:center;margin-left:5px;margin-bottom:20px}"]
28
+ }] }
29
+ ];
30
+ /** @nocollapse */
31
+ LightboxConfirmComponent.ctorParameters = () => [
32
+ { type: Injector }
33
+ ];
34
+ LightboxConfirmComponent.propDecorators = {
35
+ lightboxTitle: [{ type: Input }],
36
+ show: [{ type: Input }],
37
+ cancelText: [{ type: Input }],
38
+ confirmText: [{ type: Input }],
39
+ extraButtons: [{ type: Input }],
40
+ disableConfirm: [{ type: Input }],
41
+ onConfirm: [{ type: Output }],
42
+ onCancel: [{ type: Output }],
43
+ onExtra: [{ type: Output }]
44
+ };
45
+ if (false) {
46
+ /** @type {?} */
47
+ LightboxConfirmComponent.prototype.lightboxTitle;
48
+ /** @type {?} */
49
+ LightboxConfirmComponent.prototype.show;
50
+ /** @type {?} */
51
+ LightboxConfirmComponent.prototype.cancelText;
52
+ /** @type {?} */
53
+ LightboxConfirmComponent.prototype.confirmText;
54
+ /** @type {?} */
55
+ LightboxConfirmComponent.prototype.extraButtons;
56
+ /** @type {?} */
57
+ LightboxConfirmComponent.prototype.disableConfirm;
58
+ /** @type {?} */
59
+ LightboxConfirmComponent.prototype.onConfirm;
60
+ /** @type {?} */
61
+ LightboxConfirmComponent.prototype.onCancel;
62
+ /** @type {?} */
63
+ LightboxConfirmComponent.prototype.onExtra;
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbGlnaHRib3gtY29uZmlybS9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7Ozs7SUFhdEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFWWCxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixjQUFTLEdBQXdCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDMUQsYUFBUSxHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pELFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUlyRSxDQUFDOzs7WUFwQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLG11QkFBZ0Q7O2FBRW5EOzs7O1lBTmdELFFBQVE7Ozs0QkFTcEQsS0FBSzttQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzsyQkFDTCxLQUFLOzZCQUNMLEtBQUs7d0JBRUwsTUFBTTt1QkFDTixNQUFNO3NCQUNOLE1BQU07Ozs7SUFUUCxpREFBK0I7O0lBQy9CLHdDQUF1Qjs7SUFDdkIsOENBQXVDOztJQUN2QywrQ0FBeUM7O0lBQ3pDLGdEQUEwQzs7SUFDMUMsa0RBQXlDOztJQUV6Qyw2Q0FBb0U7O0lBQ3BFLDRDQUFtRTs7SUFDbkUsMkNBQXFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1saWdodGJveC1jb25maXJtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlnaHRib3gtY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlnaHRib3gtY29uZmlybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExpZ2h0Ym94Q29uZmlybUNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKSBsaWdodGJveFRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hvdzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjYW5jZWxUZXh0OiBzdHJpbmcgPSBcImNhbmNlbFwiO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0OiBzdHJpbmcgPSBcImNvbmZpcm1cIjtcbiAgICBASW5wdXQoKSBleHRyYUJ1dHRvbnM6IEFycmF5PFN0cmluZz4gPSBbXTtcbiAgICBASW5wdXQoKSBkaXNhYmxlQ29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uQ29uZmlybTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9ICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIG9uRXh0cmE6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/list/list.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, ContentChild, EventEmitter, Input, Output, TemplateRef, Injector } from '@angular/core';
8
+ export class ListComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ */
12
+ constructor(injector) {
13
+ super(injector);
14
+ /* Store pipe */
15
+ this.self = this;
16
+ this._storedElements = [];
17
+ this.searchPlaceholder = 'search';
18
+ this.noResultsLabel = 'list.results.no.items';
19
+ this.placeholder = 'list.placeholder';
20
+ this.isSearchActive = true;
21
+ this.isSearchButtonDisabled = false;
22
+ this.searchInput = false;
23
+ this.inputChange = new EventEmitter();
24
+ this.onSelect = new EventEmitter();
25
+ this.listChange = new EventEmitter();
26
+ this.scrolledDown = new EventEmitter();
27
+ this.isSelected = (/**
28
+ * @param {?=} arg
29
+ * @return {?}
30
+ */
31
+ (arg) => false);
32
+ this.isDisabled = (/**
33
+ * @param {?=} arg
34
+ * @return {?}
35
+ */
36
+ (arg) => false);
37
+ this.ngClass = (/**
38
+ * @param {?=} arg
39
+ * @return {?}
40
+ */
41
+ (arg) => ({}));
42
+ }
43
+ /**
44
+ * @param {?} list
45
+ * @return {?}
46
+ */
47
+ set storedElements(list) {
48
+ this._storedElements = list;
49
+ this.listChange.emit(list);
50
+ }
51
+ /**
52
+ * @return {?}
53
+ */
54
+ get storedElements() {
55
+ return this._storedElements;
56
+ }
57
+ }
58
+ ListComponent.decorators = [
59
+ { type: Component, args: [{
60
+ selector: 'ode-list',
61
+ template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [delay]=\"searchDelay\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"\n>\n</ode-search-input>\n\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n\n<div\n class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\"\n>\n <ul>\n <li\n *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\"\n >\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n\n <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n",
62
+ styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}"]
63
+ }] }
64
+ ];
65
+ /** @nocollapse */
66
+ ListComponent.ctorParameters = () => [
67
+ { type: Injector }
68
+ ];
69
+ ListComponent.propDecorators = {
70
+ model: [{ type: Input }],
71
+ filters: [{ type: Input }],
72
+ inputFilter: [{ type: Input }],
73
+ sort: [{ type: Input }],
74
+ limit: [{ type: Input }],
75
+ searchPlaceholder: [{ type: Input }],
76
+ noResultsLabel: [{ type: Input }],
77
+ placeholder: [{ type: Input }],
78
+ isSearchActive: [{ type: Input }],
79
+ isSearchButtonDisabled: [{ type: Input }],
80
+ searchInput: [{ type: Input }],
81
+ searchDelay: [{ type: Input }],
82
+ searchSubmit: [{ type: Input }],
83
+ inputChange: [{ type: Output }],
84
+ onSelect: [{ type: Output }],
85
+ listChange: [{ type: Output }],
86
+ scrolledDown: [{ type: Output }],
87
+ templateRef: [{ type: ContentChild, args: [TemplateRef, { static: false },] }],
88
+ isSelected: [{ type: Input }],
89
+ isDisabled: [{ type: Input }],
90
+ ngClass: [{ type: Input }]
91
+ };
92
+ if (false) {
93
+ /** @type {?} */
94
+ ListComponent.prototype.self;
95
+ /** @type {?} */
96
+ ListComponent.prototype._storedElements;
97
+ /** @type {?} */
98
+ ListComponent.prototype.model;
99
+ /** @type {?} */
100
+ ListComponent.prototype.filters;
101
+ /** @type {?} */
102
+ ListComponent.prototype.inputFilter;
103
+ /** @type {?} */
104
+ ListComponent.prototype.sort;
105
+ /** @type {?} */
106
+ ListComponent.prototype.limit;
107
+ /** @type {?} */
108
+ ListComponent.prototype.searchPlaceholder;
109
+ /** @type {?} */
110
+ ListComponent.prototype.noResultsLabel;
111
+ /** @type {?} */
112
+ ListComponent.prototype.placeholder;
113
+ /** @type {?} */
114
+ ListComponent.prototype.isSearchActive;
115
+ /** @type {?} */
116
+ ListComponent.prototype.isSearchButtonDisabled;
117
+ /** @type {?} */
118
+ ListComponent.prototype.searchInput;
119
+ /** @type {?} */
120
+ ListComponent.prototype.searchDelay;
121
+ /** @type {?} */
122
+ ListComponent.prototype.searchSubmit;
123
+ /** @type {?} */
124
+ ListComponent.prototype.inputChange;
125
+ /** @type {?} */
126
+ ListComponent.prototype.onSelect;
127
+ /** @type {?} */
128
+ ListComponent.prototype.listChange;
129
+ /** @type {?} */
130
+ ListComponent.prototype.scrolledDown;
131
+ /** @type {?} */
132
+ ListComponent.prototype.templateRef;
133
+ /** @type {?} */
134
+ ListComponent.prototype.isSelected;
135
+ /** @type {?} */
136
+ ListComponent.prototype.isDisabled;
137
+ /** @type {?} */
138
+ ListComponent.prototype.ngClass;
139
+ }
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbGlzdC9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU81RyxNQUFNLE9BQU8sYUFBYyxTQUFRLFlBQVk7Ozs7SUF1QzNDLFlBQVksUUFBa0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDOztRQTVCcEIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBT1osc0JBQWlCLEdBQUcsUUFBUSxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFJNUIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsZUFBVTs7OztRQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUM7UUFDbEMsZUFBVTs7OztRQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUM7UUFDbEMsWUFBTzs7OztRQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDO0lBSXZDLENBQUM7Ozs7O0lBdkNELElBQUksY0FBYyxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7WUFkSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGt6Q0FBb0M7O2FBRXZDOzs7O1lBTjJFLFFBQVE7OztvQkFzQi9FLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSztnQ0FDTCxLQUFLOzZCQUNMLEtBQUs7MEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3FDQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBRUwsTUFBTTt1QkFDTixNQUFNO3lCQUNOLE1BQU07MkJBQ04sTUFBTTswQkFFTixZQUFZLFNBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzt5QkFDekMsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7Ozs7SUF6Qk4sNkJBQVk7O0lBQ1osd0NBQXFCOztJQUVyQiw4QkFBZTs7SUFDZixnQ0FBaUI7O0lBQ2pCLG9DQUFxQjs7SUFDckIsNkJBQWM7O0lBQ2QsOEJBQXVCOztJQUN2QiwwQ0FBc0M7O0lBQ3RDLHVDQUFrRDs7SUFDbEQsb0NBQTBDOztJQUMxQyx1Q0FBK0I7O0lBQy9CLCtDQUFpRDs7SUFDakQsb0NBQXNDOztJQUN0QyxvQ0FBNkI7O0lBQzdCLHFDQUFrQzs7SUFFbEMsb0NBQXlFOztJQUN6RSxpQ0FBMkQ7O0lBQzNELG1DQUE2RDs7SUFDN0QscUNBQStEOztJQUUvRCxvQ0FBMEU7O0lBQzFFLG1DQUEyQzs7SUFDM0MsbUNBQTJDOztJQUMzQyxnQ0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG5cbiAgICBzZXQgc3RvcmVkRWxlbWVudHMobGlzdCkge1xuICAgICAgICB0aGlzLl9zdG9yZWRFbGVtZW50cyA9IGxpc3Q7XG4gICAgICAgIHRoaXMubGlzdENoYW5nZS5lbWl0KGxpc3QpO1xuICAgIH1cblxuICAgIGdldCBzdG9yZWRFbGVtZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlZEVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8qIFN0b3JlIHBpcGUgKi9cbiAgICBzZWxmID0gdGhpcztcbiAgICBfc3RvcmVkRWxlbWVudHMgPSBbXTtcblxuICAgIEBJbnB1dCgpIG1vZGVsO1xuICAgIEBJbnB1dCgpIGZpbHRlcnM7XG4gICAgQElucHV0KCkgaW5wdXRGaWx0ZXI7XG4gICAgQElucHV0KCkgc29ydDtcbiAgICBASW5wdXQoKSBsaW1pdDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyID0gJ3NlYXJjaCc7XG4gICAgQElucHV0KCkgbm9SZXN1bHRzTGFiZWwgPSAnbGlzdC5yZXN1bHRzLm5vLml0ZW1zJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdsaXN0LnBsYWNlaG9sZGVyJztcbiAgICBASW5wdXQoKSBpc1NlYXJjaEFjdGl2ZSA9IHRydWU7XG4gICAgQElucHV0KCkgaXNTZWFyY2hCdXR0b25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNlYXJjaElucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2VhcmNoRGVsYXk6IG51bWJlcjtcbiAgICBASW5wdXQoKSBzZWFyY2hTdWJtaXQ6ICgpID0+IHZvaWQ7XG5cbiAgICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbGlzdENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNjcm9sbGVkRG93bjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7c3RhdGljOiBmYWxzZX0pIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIGlzU2VsZWN0ZWQgPSAoYXJnPzogYW55KSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0Rpc2FibGVkID0gKGFyZz86IGFueSkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgbmdDbGFzcyA9IChhcmc/OiBhbnkpID0+ICh7fSk7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiJdfQ==