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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/ngx-ode-ui.umd.js +5804 -0
  3. package/bundles/ngx-ode-ui.umd.js.map +1 -0
  4. package/bundles/ngx-ode-ui.umd.min.js +17 -0
  5. package/bundles/ngx-ode-ui.umd.min.js.map +1 -0
  6. package/esm2015/lib/components/datepicker/datepicker.component.js +261 -0
  7. package/esm2015/lib/components/dropdown/dropdown.component.js +76 -0
  8. package/esm2015/lib/components/ellipsis/ellipsis.component.js +98 -0
  9. package/esm2015/lib/components/form-errors/form-errors.component.js +65 -0
  10. package/esm2015/lib/components/form-field/form-field.component.js +40 -0
  11. package/esm2015/lib/components/item-tree/item-tree.component.js +289 -0
  12. package/esm2015/lib/components/lightbox/lightbox.component.js +129 -0
  13. package/esm2015/lib/components/lightbox-confirm/lightbox-confirm.component.js +65 -0
  14. package/esm2015/lib/components/list/list.component.js +140 -0
  15. package/esm2015/lib/components/list-checkable/list-checkable.component.js +137 -0
  16. package/esm2015/lib/components/message-box/message-box.component.js +153 -0
  17. package/esm2015/lib/components/message-sticker/message-sticker.component.js +81 -0
  18. package/esm2015/lib/components/mono-select/mono-select.component.js +164 -0
  19. package/esm2015/lib/components/multi-combo/multi-combo.component.js +255 -0
  20. package/esm2015/lib/components/multi-select/multi-select.component.js +214 -0
  21. package/esm2015/lib/components/panel-section/panel-section.component.js +38 -0
  22. package/esm2015/lib/components/portal/portal.component.js +27 -0
  23. package/esm2015/lib/components/push-panel/push-panel.component.js +81 -0
  24. package/esm2015/lib/components/search-input/search-input.component.js +176 -0
  25. package/esm2015/lib/components/search-toolbar/search-toolbar.component.js +84 -0
  26. package/esm2015/lib/components/side-layout/side-layout.component.js +39 -0
  27. package/esm2015/lib/components/side-panel/side-panel.component.js +76 -0
  28. package/esm2015/lib/components/spinner-cube/spinner-cube.component.js +67 -0
  29. package/esm2015/lib/components/table/pager.component.js +95 -0
  30. package/esm2015/lib/components/tooltip/tooltip.component.js +172 -0
  31. package/esm2015/lib/components/upload-files/upload-files.component.js +112 -0
  32. package/esm2015/lib/components/value-editable/simple-select.component.js +57 -0
  33. package/esm2015/lib/components/wizard/wizard.component.js +225 -0
  34. package/esm2015/lib/directives/anchor.directive.js +34 -0
  35. package/esm2015/lib/directives/drag-and-drop-files.directive.js +126 -0
  36. package/esm2015/lib/directives/dynamic-component/component-descriptor.model.js +34 -0
  37. package/esm2015/lib/directives/dynamic-component/dynamic-component.directive.js +100 -0
  38. package/esm2015/lib/directives/dynamictemplate.directive.js +159 -0
  39. package/esm2015/lib/directives/object-url.directive.js +53 -0
  40. package/esm2015/lib/ngx-ode-ui.module.js +188 -0
  41. package/esm2015/lib/pipes/bytes.pipe.js +27 -0
  42. package/esm2015/lib/pipes/filter.pipe.js +141 -0
  43. package/esm2015/lib/pipes/flattenObjArray.pipe.js +52 -0
  44. package/esm2015/lib/pipes/keys.pipe.js +27 -0
  45. package/esm2015/lib/pipes/length.pipe.js +22 -0
  46. package/esm2015/lib/pipes/limit.pipe.js +24 -0
  47. package/esm2015/lib/pipes/localizedDate.pipe.js +44 -0
  48. package/esm2015/lib/pipes/orderBy.pipe.js +269 -0
  49. package/esm2015/lib/pipes/store.pipe.js +24 -0
  50. package/esm2015/lib/services/dynamicModuleImports.service.js +19 -0
  51. package/esm2015/lib/services/inputFile.service.js +80 -0
  52. package/esm2015/lib/services/labels.service.js +54 -0
  53. package/esm2015/lib/services/spinner.service.js +163 -0
  54. package/esm2015/lib/utils/math.js +49 -0
  55. package/esm2015/lib/utils/string.js +29 -0
  56. package/esm2015/lib/utils/testing.js +20 -0
  57. package/esm2015/ngx-ode-ui.js +12 -0
  58. package/esm2015/public-api.js +59 -0
  59. package/esm5/lib/components/datepicker/datepicker.component.js +292 -0
  60. package/esm5/lib/components/dropdown/dropdown.component.js +81 -0
  61. package/esm5/lib/components/ellipsis/ellipsis.component.js +106 -0
  62. package/esm5/lib/components/form-errors/form-errors.component.js +73 -0
  63. package/esm5/lib/components/form-field/form-field.component.js +41 -0
  64. package/esm5/lib/components/item-tree/item-tree.component.js +345 -0
  65. package/esm5/lib/components/lightbox/lightbox.component.js +141 -0
  66. package/esm5/lib/components/lightbox-confirm/lightbox-confirm.component.js +67 -0
  67. package/esm5/lib/components/list/list.component.js +146 -0
  68. package/esm5/lib/components/list-checkable/list-checkable.component.js +148 -0
  69. package/esm5/lib/components/message-box/message-box.component.js +190 -0
  70. package/esm5/lib/components/message-sticker/message-sticker.component.js +92 -0
  71. package/esm5/lib/components/mono-select/mono-select.component.js +192 -0
  72. package/esm5/lib/components/multi-combo/multi-combo.component.js +294 -0
  73. package/esm5/lib/components/multi-select/multi-select.component.js +258 -0
  74. package/esm5/lib/components/panel-section/panel-section.component.js +40 -0
  75. package/esm5/lib/components/portal/portal.component.js +28 -0
  76. package/esm5/lib/components/push-panel/push-panel.component.js +91 -0
  77. package/esm5/lib/components/search-input/search-input.component.js +199 -0
  78. package/esm5/lib/components/search-toolbar/search-toolbar.component.js +93 -0
  79. package/esm5/lib/components/side-layout/side-layout.component.js +41 -0
  80. package/esm5/lib/components/side-panel/side-panel.component.js +85 -0
  81. package/esm5/lib/components/spinner-cube/spinner-cube.component.js +76 -0
  82. package/esm5/lib/components/table/pager.component.js +113 -0
  83. package/esm5/lib/components/tooltip/tooltip.component.js +188 -0
  84. package/esm5/lib/components/upload-files/upload-files.component.js +133 -0
  85. package/esm5/lib/components/value-editable/simple-select.component.js +59 -0
  86. package/esm5/lib/components/wizard/wizard.component.js +161 -0
  87. package/esm5/lib/directives/anchor.directive.js +39 -0
  88. package/esm5/lib/directives/drag-and-drop-files.directive.js +146 -0
  89. package/esm5/lib/directives/dynamic-component/component-descriptor.model.js +44 -0
  90. package/esm5/lib/directives/dynamic-component/dynamic-component.directive.js +109 -0
  91. package/esm5/lib/directives/dynamictemplate.directive.js +175 -0
  92. package/esm5/lib/directives/object-url.directive.js +62 -0
  93. package/esm5/lib/ngx-ode-ui.module.js +199 -0
  94. package/esm5/lib/pipes/bytes.pipe.js +37 -0
  95. package/esm5/lib/pipes/filter.pipe.js +179 -0
  96. package/esm5/lib/pipes/flattenObjArray.pipe.js +62 -0
  97. package/esm5/lib/pipes/keys.pipe.js +36 -0
  98. package/esm5/lib/pipes/length.pipe.js +30 -0
  99. package/esm5/lib/pipes/limit.pipe.js +35 -0
  100. package/esm5/lib/pipes/localizedDate.pipe.js +49 -0
  101. package/esm5/lib/pipes/orderBy.pipe.js +280 -0
  102. package/esm5/lib/pipes/store.pipe.js +35 -0
  103. package/esm5/lib/services/dynamicModuleImports.service.js +21 -0
  104. package/esm5/lib/services/inputFile.service.js +98 -0
  105. package/esm5/lib/services/labels.service.js +68 -0
  106. package/esm5/lib/services/spinner.service.js +195 -0
  107. package/esm5/lib/utils/math.js +49 -0
  108. package/esm5/lib/utils/string.js +29 -0
  109. package/esm5/lib/utils/testing.js +20 -0
  110. package/esm5/ngx-ode-ui.js +12 -0
  111. package/esm5/public-api.js +59 -0
  112. package/fesm2015/ngx-ode-ui.js +5027 -0
  113. package/fesm2015/ngx-ode-ui.js.map +1 -0
  114. package/fesm5/ngx-ode-ui.js +5560 -0
  115. package/fesm5/ngx-ode-ui.js.map +1 -0
  116. package/lib/components/datepicker/datepicker.component.d.ts +2 -7
  117. package/lib/components/dropdown/dropdown.component.d.ts +0 -3
  118. package/lib/components/ellipsis/ellipsis.component.d.ts +1 -4
  119. package/lib/components/form-errors/form-errors.component.d.ts +0 -3
  120. package/lib/components/form-field/form-field.component.d.ts +0 -3
  121. package/lib/components/item-tree/item-tree.component.d.ts +1 -5
  122. package/lib/components/lightbox/lightbox.component.d.ts +1 -5
  123. package/lib/components/lightbox-confirm/lightbox-confirm.component.d.ts +0 -3
  124. package/lib/components/list/list.component.d.ts +1 -5
  125. package/lib/components/list-checkable/list-checkable.component.d.ts +1 -5
  126. package/lib/components/message-box/message-box.component.d.ts +4 -8
  127. package/lib/components/message-sticker/message-sticker.component.d.ts +0 -3
  128. package/lib/components/mono-select/mono-select.component.d.ts +0 -3
  129. package/lib/components/multi-combo/multi-combo.component.d.ts +1 -4
  130. package/lib/components/multi-select/multi-select.component.d.ts +0 -3
  131. package/lib/components/panel-section/panel-section.component.d.ts +0 -3
  132. package/lib/components/portal/portal.component.d.ts +0 -3
  133. package/lib/components/push-panel/push-panel.component.d.ts +1 -4
  134. package/lib/components/search-input/search-input.component.d.ts +1 -5
  135. package/lib/components/search-toolbar/search-toolbar.component.d.ts +0 -3
  136. package/lib/components/side-layout/side-layout.component.d.ts +0 -3
  137. package/lib/components/side-panel/side-panel.component.d.ts +1 -4
  138. package/lib/components/spinner-cube/spinner-cube.component.d.ts +1 -5
  139. package/lib/components/table/pager.component.d.ts +0 -3
  140. package/lib/components/tooltip/tooltip.component.d.ts +0 -3
  141. package/lib/components/upload-files/upload-files.component.d.ts +0 -3
  142. package/lib/components/value-editable/simple-select.component.d.ts +0 -3
  143. package/lib/components/wizard/wizard.component.d.ts +0 -5
  144. package/lib/directives/anchor.directive.d.ts +0 -3
  145. package/lib/directives/drag-and-drop-files.directive.d.ts +0 -3
  146. package/lib/directives/dynamic-component/dynamic-component.directive.d.ts +0 -3
  147. package/lib/directives/dynamictemplate.directive.d.ts +1 -4
  148. package/lib/directives/object-url.directive.d.ts +0 -3
  149. package/lib/ngx-ode-ui.module.d.ts +2 -53
  150. package/lib/pipes/bytes.pipe.d.ts +0 -3
  151. package/lib/pipes/filter.pipe.d.ts +0 -3
  152. package/lib/pipes/flattenObjArray.pipe.d.ts +0 -3
  153. package/lib/pipes/keys.pipe.d.ts +0 -3
  154. package/lib/pipes/length.pipe.d.ts +0 -3
  155. package/lib/pipes/limit.pipe.d.ts +0 -3
  156. package/lib/pipes/localizedDate.pipe.d.ts +0 -3
  157. package/lib/pipes/orderBy.pipe.d.ts +0 -3
  158. package/lib/pipes/store.pipe.d.ts +0 -3
  159. package/lib/services/dynamicModuleImports.service.d.ts +0 -3
  160. package/lib/services/inputFile.service.d.ts +0 -3
  161. package/lib/services/labels.service.d.ts +0 -3
  162. package/lib/services/spinner.service.d.ts +1 -4
  163. package/ngx-ode-ui.d.ts +6 -0
  164. package/ngx-ode-ui.metadata.json +1 -0
  165. package/package.json +17 -29
  166. package/public-api.d.ts +0 -3
  167. package/esm2020/lib/components/datepicker/datepicker.component.mjs +0 -148
  168. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -55
  169. package/esm2020/lib/components/ellipsis/ellipsis.component.mjs +0 -53
  170. package/esm2020/lib/components/form-errors/form-errors.component.mjs +0 -35
  171. package/esm2020/lib/components/form-field/form-field.component.mjs +0 -24
  172. package/esm2020/lib/components/item-tree/item-tree.component.mjs +0 -170
  173. package/esm2020/lib/components/lightbox/lightbox.component.mjs +0 -70
  174. package/esm2020/lib/components/lightbox-confirm/lightbox-confirm.component.mjs +0 -43
  175. package/esm2020/lib/components/list/list.component.mjs +0 -88
  176. package/esm2020/lib/components/list-checkable/list-checkable.component.mjs +0 -79
  177. package/esm2020/lib/components/message-box/message-box.component.mjs +0 -92
  178. package/esm2020/lib/components/message-sticker/message-sticker.component.mjs +0 -51
  179. package/esm2020/lib/components/mono-select/mono-select.component.mjs +0 -83
  180. package/esm2020/lib/components/multi-combo/multi-combo.component.mjs +0 -166
  181. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -104
  182. package/esm2020/lib/components/panel-section/panel-section.component.mjs +0 -23
  183. package/esm2020/lib/components/portal/portal.component.mjs +0 -15
  184. package/esm2020/lib/components/push-panel/push-panel.component.mjs +0 -43
  185. package/esm2020/lib/components/search-input/search-input.component.mjs +0 -87
  186. package/esm2020/lib/components/search-toolbar/search-toolbar.component.mjs +0 -56
  187. package/esm2020/lib/components/side-layout/side-layout.component.mjs +0 -23
  188. package/esm2020/lib/components/side-panel/side-panel.component.mjs +0 -41
  189. package/esm2020/lib/components/spinner-cube/spinner-cube.component.mjs +0 -31
  190. package/esm2020/lib/components/table/pager.component.mjs +0 -48
  191. package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -104
  192. package/esm2020/lib/components/upload-files/upload-files.component.mjs +0 -59
  193. package/esm2020/lib/components/value-editable/simple-select.component.mjs +0 -29
  194. package/esm2020/lib/components/wizard/wizard.component.mjs +0 -152
  195. package/esm2020/lib/directives/anchor.directive.mjs +0 -27
  196. package/esm2020/lib/directives/drag-and-drop-files.directive.mjs +0 -82
  197. package/esm2020/lib/directives/dynamic-component/component-descriptor.model.mjs +0 -15
  198. package/esm2020/lib/directives/dynamic-component/dynamic-component.directive.mjs +0 -58
  199. package/esm2020/lib/directives/dynamictemplate.directive.mjs +0 -83
  200. package/esm2020/lib/directives/object-url.directive.mjs +0 -28
  201. package/esm2020/lib/ngx-ode-ui.module.mjs +0 -282
  202. package/esm2020/lib/pipes/bytes.pipe.mjs +0 -20
  203. package/esm2020/lib/pipes/filter.pipe.mjs +0 -97
  204. package/esm2020/lib/pipes/flattenObjArray.pipe.mjs +0 -35
  205. package/esm2020/lib/pipes/keys.pipe.mjs +0 -20
  206. package/esm2020/lib/pipes/length.pipe.mjs +0 -17
  207. package/esm2020/lib/pipes/limit.pipe.mjs +0 -17
  208. package/esm2020/lib/pipes/localizedDate.pipe.mjs +0 -23
  209. package/esm2020/lib/pipes/orderBy.pipe.mjs +0 -161
  210. package/esm2020/lib/pipes/replace.pipe.mjs +0 -20
  211. package/esm2020/lib/pipes/store.pipe.mjs +0 -17
  212. package/esm2020/lib/services/dynamicModuleImports.service.mjs +0 -13
  213. package/esm2020/lib/services/inputFile.service.mjs +0 -56
  214. package/esm2020/lib/services/labels.service.mjs +0 -32
  215. package/esm2020/lib/services/spinner.service.mjs +0 -76
  216. package/esm2020/lib/utils/math.mjs +0 -19
  217. package/esm2020/lib/utils/string.mjs +0 -11
  218. package/esm2020/lib/utils/testing.mjs +0 -7
  219. package/esm2020/ngx-ode-ui.mjs +0 -5
  220. package/esm2020/public-api.mjs +0 -57
  221. package/fesm2015/ngx-ode-ui.mjs +0 -2954
  222. package/fesm2015/ngx-ode-ui.mjs.map +0 -1
  223. package/fesm2020/ngx-ode-ui.mjs +0 -2952
  224. package/fesm2020/ngx-ode-ui.mjs.map +0 -1
  225. package/index.d.ts +0 -5
  226. package/lib/pipes/replace.pipe.d.ts +0 -8
@@ -0,0 +1,255 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/multi-combo/multi-combo.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';
7
+ import { LabelsService } from '../../services/labels.service';
8
+ import { OdeComponent } from 'ngx-ode-core';
9
+ /* If you need to use multi-combo in a form you should give a look to the MultiSelectComponent. */
10
+ export class MultiComboComponent extends OdeComponent {
11
+ /**
12
+ * @param {?} _eref
13
+ * @param {?} labelsService
14
+ * @param {?} injector
15
+ */
16
+ constructor(_eref, labelsService, injector) {
17
+ super(injector);
18
+ this._eref = _eref;
19
+ this.labelsService = labelsService;
20
+ this.filteredModel = [];
21
+ this.title = 'Select';
22
+ this.reverse = false;
23
+ this.disabled = false;
24
+ this.onSelectItem = new EventEmitter();
25
+ this.onDeselectItem = new EventEmitter();
26
+ this.filteredModelChange = new EventEmitter();
27
+ this.onOpen = new EventEmitter();
28
+ this.onClose = new EventEmitter();
29
+ this.self = this;
30
+ this._comboModel = [];
31
+ this.filteredComboModel = [];
32
+ this.search = {
33
+ input: '',
34
+ /**
35
+ * @return {?}
36
+ */
37
+ reset() {
38
+ this.input = '';
39
+ }
40
+ };
41
+ this.show = false;
42
+ }
43
+ /**
44
+ * @param {?} model
45
+ * @return {?}
46
+ */
47
+ set comboModel(model) {
48
+ this._comboModel = model;
49
+ if (!model) {
50
+ this.filteredModel = [];
51
+ return;
52
+ }
53
+ for (let i = 0; i < this.filteredModel.length; i++) {
54
+ /** @type {?} */
55
+ const idx = model.indexOf(this.filteredModel[i]);
56
+ if (idx < 0) {
57
+ this.filteredModel.splice(idx, 1);
58
+ i--;
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * @param {?} label
64
+ * @return {?}
65
+ */
66
+ labels(label) {
67
+ return this.labelsService.getLabel(label);
68
+ }
69
+ /**
70
+ * @return {?}
71
+ */
72
+ toggleVisibility() {
73
+ this.show = !this.show;
74
+ if (this.show) {
75
+ this.search.reset();
76
+ this.onOpen.emit();
77
+ }
78
+ else {
79
+ this.onClose.emit();
80
+ }
81
+ }
82
+ /**
83
+ * @param {?} item
84
+ * @return {?}
85
+ */
86
+ isSelected(item) {
87
+ return this.filteredModel && this.filteredModel.indexOf(item) >= 0;
88
+ }
89
+ /**
90
+ * @return {?}
91
+ */
92
+ isDisabled() {
93
+ return this.filteredModel && this.maxSelected &&
94
+ this.maxSelected <= this.filteredModel.length;
95
+ }
96
+ /**
97
+ * @param {?} item
98
+ * @return {?}
99
+ */
100
+ toggleItem(item) {
101
+ /** @type {?} */
102
+ const idx = this.filteredModel.indexOf(item);
103
+ if (idx >= 0) {
104
+ this.filteredModel.splice(idx, 1);
105
+ this.onDeselectItem.emit(item);
106
+ }
107
+ else if (!this.maxSelected ||
108
+ this.filteredModel.length < this.maxSelected) {
109
+ this.filteredModel.push(item);
110
+ this.onSelectItem.emit(item);
111
+ }
112
+ this.filteredModelChange.emit(this.filteredModel);
113
+ }
114
+ /**
115
+ * @return {?}
116
+ */
117
+ selectAll() {
118
+ this.filteredModel = [];
119
+ for (let i = 0; i < this.filteredComboModel.length; i++) {
120
+ this.filteredModel.push(this.filteredComboModel[i]);
121
+ }
122
+ this.filteredModelChange.emit(this.filteredModel);
123
+ }
124
+ /**
125
+ * @return {?}
126
+ */
127
+ deselectAll() {
128
+ this.filteredModel = [];
129
+ this.filteredModelChange.emit(this.filteredModel);
130
+ }
131
+ /**
132
+ * @param {?} item
133
+ * @return {?}
134
+ */
135
+ displayItem(item) {
136
+ return item instanceof Object ?
137
+ this.display && typeof this.display === 'string' ?
138
+ item[this.display] :
139
+ item.toString() :
140
+ this.display && this.display instanceof Function ?
141
+ this.display(item || '') :
142
+ item;
143
+ }
144
+ /**
145
+ * @param {?} event
146
+ * @return {?}
147
+ */
148
+ onClick(event) {
149
+ if (this.show && !this._eref.nativeElement.contains(event.target)) {
150
+ this.toggleVisibility();
151
+ }
152
+ return true;
153
+ }
154
+ /**
155
+ * @return {?}
156
+ */
157
+ getFilter() {
158
+ if (!this.filter) {
159
+ return '';
160
+ }
161
+ /** @type {?} */
162
+ let filter = '';
163
+ if (this._comboModel.length > 0) {
164
+ if (typeof this._comboModel[0] === 'string') {
165
+ filter = this.search.input;
166
+ }
167
+ else {
168
+ filter = {};
169
+ filter[this.filter] = this.search.input;
170
+ }
171
+ }
172
+ return filter;
173
+ }
174
+ }
175
+ MultiComboComponent.decorators = [
176
+ { type: Component, args: [{
177
+ selector: 'ode-multi-combo',
178
+ template: "<button (click)=\"toggleVisibility()\"\n [ngClass]=\"{ opened: show }\"\n [disabled]=\"disabled\"\n type=\"button\">\n {{ title }}\n</button>\n<div [ngClass]=\"{ hidden: !show }\">\n <div class=\"options\">\n <button class=\"select-all\" (click)=\"selectAll()\" *ngIf=\"!maxSelected\"\n [title]=\"labels('select.all')\" type=\"button\">{{ labels('select.all') }}</button>\n <button class=\"deselect-all\" (click)=\"deselectAll()\"\n [title]=\"labels('deselect.all')\" type=\"button\">{{ labels('deselect.all') }}</button>\n </div>\n <div *ngIf=\"filter\" class=\"filter\">\n <ode-search-input (onChange)=\"search.input = $event\" [attr.placeholder]=\"labels('search')\"></ode-search-input>\n </div>\n <ul>\n <li *ngFor=\"let item of _comboModel | filter: getFilter() | orderBy: orderBy | store: self:'filteredComboModel'\"\n (click)=\"toggleItem(item)\"\n [ngClass]=\"{ selected: isSelected(item) }\"\n [attr.disabled]=\"isDisabled()\">\n {{ displayItem(item) | translate }}\n </li>\n </ul>\n</div>\n",
179
+ host: {
180
+ '(document:click)': 'onClick($event)',
181
+ },
182
+ styles: [":host{position:relative}:host>button{min-width:150px}:host>div{position:absolute;z-index:2;left:0;overflow:hidden;background:#fff;border:2px solid #000}:host>div.hidden{max-height:0;border-width:0}:host>div>div.options>*{display:inline-block;vertical-align:middle}:host>div>div.filter{margin:10px 0;width:100%;position:relative}:host>div>div.filter input{width:100%}:host>div>ul{list-style:none;padding:0;overflow-y:auto;max-height:200px}:host>div>ul>li{white-space:nowrap;cursor:pointer}:host>div>ul>li:not(.selected)[disabled=true]{pointer-events:none}"]
183
+ }] }
184
+ ];
185
+ /** @nocollapse */
186
+ MultiComboComponent.ctorParameters = () => [
187
+ { type: ElementRef },
188
+ { type: LabelsService },
189
+ { type: Injector }
190
+ ];
191
+ MultiComboComponent.propDecorators = {
192
+ comboModel: [{ type: Input }],
193
+ filteredModel: [{ type: Input, args: ['outputModel',] }],
194
+ title: [{ type: Input }],
195
+ display: [{ type: Input }],
196
+ filter: [{ type: Input }],
197
+ orderBy: [{ type: Input }],
198
+ reverse: [{ type: Input }],
199
+ maxSelected: [{ type: Input, args: ['max',] }],
200
+ disabled: [{ type: Input }],
201
+ onSelectItem: [{ type: Output }],
202
+ onDeselectItem: [{ type: Output }],
203
+ filteredModelChange: [{ type: Output, args: ['outputModelChange',] }],
204
+ onOpen: [{ type: Output }],
205
+ onClose: [{ type: Output }]
206
+ };
207
+ if (false) {
208
+ /** @type {?} */
209
+ MultiComboComponent.prototype.filteredModel;
210
+ /** @type {?} */
211
+ MultiComboComponent.prototype.title;
212
+ /** @type {?} */
213
+ MultiComboComponent.prototype.display;
214
+ /** @type {?} */
215
+ MultiComboComponent.prototype.filter;
216
+ /** @type {?} */
217
+ MultiComboComponent.prototype.orderBy;
218
+ /** @type {?} */
219
+ MultiComboComponent.prototype.reverse;
220
+ /** @type {?} */
221
+ MultiComboComponent.prototype.maxSelected;
222
+ /** @type {?} */
223
+ MultiComboComponent.prototype.disabled;
224
+ /** @type {?} */
225
+ MultiComboComponent.prototype.onSelectItem;
226
+ /** @type {?} */
227
+ MultiComboComponent.prototype.onDeselectItem;
228
+ /** @type {?} */
229
+ MultiComboComponent.prototype.filteredModelChange;
230
+ /** @type {?} */
231
+ MultiComboComponent.prototype.onOpen;
232
+ /** @type {?} */
233
+ MultiComboComponent.prototype.onClose;
234
+ /** @type {?} */
235
+ MultiComboComponent.prototype.self;
236
+ /** @type {?} */
237
+ MultiComboComponent.prototype._comboModel;
238
+ /** @type {?} */
239
+ MultiComboComponent.prototype.filteredComboModel;
240
+ /** @type {?} */
241
+ MultiComboComponent.prototype.search;
242
+ /** @type {?} */
243
+ MultiComboComponent.prototype.show;
244
+ /**
245
+ * @type {?}
246
+ * @private
247
+ */
248
+ MultiComboComponent.prototype._eref;
249
+ /**
250
+ * @type {?}
251
+ * @private
252
+ */
253
+ MultiComboComponent.prototype.labelsService;
254
+ }
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS11aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL211bHRpLWNvbWJvL211bHRpLWNvbWJvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZNUMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFlBQVk7Ozs7OztJQUVqRCxZQUNZLEtBQWlCLEVBQ2pCLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2xCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUhSLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFzQmxCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLFVBQUssR0FBRyxRQUFRLENBQUM7UUFJakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqRSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFakIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRXhCLFdBQU0sR0FBRztZQUNM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OztJQWxEVCxvQ0FBeUI7Ozs7O0lBQ3pCLDRDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYWJlbHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYWJlbHMuc2VydmljZSc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG4vKiBJZiB5b3UgbmVlZCB0byB1c2UgbXVsdGktY29tYm8gaW4gYSBmb3JtIHlvdSBzaG91bGQgZ2l2ZSBhIGxvb2sgdG8gdGhlIE11bHRpU2VsZWN0Q29tcG9uZW50LiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1tdWx0aS1jb21ibycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWNvbWJvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tdWx0aS1jb21iby5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE11bHRpQ29tYm9Db21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VyZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbGFiZWxzU2VydmljZTogTGFiZWxzU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21ib01vZGVsKG1vZGVsKSB7XG4gICAgICAgIHRoaXMuX2NvbWJvTW9kZWwgPSBtb2RlbDtcblxuICAgICAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwgPSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWx0ZXJlZE1vZGVsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBtb2RlbC5pbmRleE9mKHRoaXMuZmlsdGVyZWRNb2RlbFtpXSk7XG4gICAgICAgICAgICBpZiAoaWR4IDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICBpLS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KCdvdXRwdXRNb2RlbCcpIGZpbHRlcmVkTW9kZWwgPSBbXTtcbiAgICBASW5wdXQoKSB0aXRsZSA9ICdTZWxlY3QnO1xuICAgIEBJbnB1dCgpIGRpc3BsYXk6IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAgIEBJbnB1dCgpIGZpbHRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9yZGVyQnk6IChzdHJpbmcgfCBBcnJheTwoc3RyaW5nIHwgRnVuY3Rpb24pPiB8IEZ1bmN0aW9uKTtcbiAgICBASW5wdXQoKSByZXZlcnNlID0gZmFsc2U7XG4gICAgQElucHV0KCdtYXgnKSBtYXhTZWxlY3RlZDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uRGVzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb3V0cHV0TW9kZWxDaGFuZ2UnKSBmaWx0ZXJlZE1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBzZWxmID0gdGhpcztcbiAgICBfY29tYm9Nb2RlbCA9IFtdO1xuXG4gICAgZmlsdGVyZWRDb21ib01vZGVsID0gW107XG5cbiAgICBzZWFyY2ggPSB7XG4gICAgICAgIGlucHV0OiAnJyxcbiAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0ID0gJyc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc2hvdyA9IGZhbHNlO1xuXG4gICAgbGFiZWxzKGxhYmVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhYmVsc1NlcnZpY2UuZ2V0TGFiZWwobGFiZWwpO1xuICAgIH1cblxuICAgIHRvZ2dsZVZpc2liaWxpdHkoKSB7XG4gICAgICAgIHRoaXMuc2hvdyA9ICF0aGlzLnNob3c7XG4gICAgICAgIGlmICh0aGlzLnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLm9uT3Blbi5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoaXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZE1vZGVsICYmIHRoaXMuZmlsdGVyZWRNb2RlbC5pbmRleE9mKGl0ZW0pID49IDA7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRNb2RlbCAmJiB0aGlzLm1heFNlbGVjdGVkICYmXG4gICAgICAgICAgICB0aGlzLm1heFNlbGVjdGVkIDw9IHRoaXMuZmlsdGVyZWRNb2RlbC5sZW5ndGg7XG4gICAgfVxuXG4gICAgdG9nZ2xlSXRlbShpdGVtKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZmlsdGVyZWRNb2RlbC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIHRoaXMub25EZXNlbGVjdEl0ZW0uZW1pdChpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5tYXhTZWxlY3RlZCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5sZW5ndGggPCB0aGlzLm1heFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwucHVzaChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3RJdGVtLmVtaXQoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJlZE1vZGVsKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmlsdGVyZWRDb21ib01vZGVsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwucHVzaCh0aGlzLmZpbHRlcmVkQ29tYm9Nb2RlbFtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJlZE1vZGVsKTtcbiAgICB9XG5cbiAgICBkZXNlbGVjdEFsbCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsID0gW107XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNb2RlbCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUl0ZW0oaXRlbSkge1xuICAgICAgICByZXR1cm4gIGl0ZW0gaW5zdGFuY2VvZiBPYmplY3QgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkgJiYgdHlwZW9mIHRoaXMuZGlzcGxheSA9PT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVt0aGlzLmRpc3BsYXldIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udG9TdHJpbmcoKSA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheSAmJiB0aGlzLmRpc3BsYXkgaW5zdGFuY2VvZiBGdW5jdGlvbiA/XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkoaXRlbSB8fCAnJykgOlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnNob3cgJiYgIXRoaXMuX2VyZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVZpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5maWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgZmlsdGVyOiBzdHJpbmcgfCB7fSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5fY29tYm9Nb2RlbC5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9jb21ib01vZGVsWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpbHRlciA9IHRoaXMuc2VhcmNoLmlucHV0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7fTtcbiAgICAgICAgICAgICAgICBmaWx0ZXJbdGhpcy5maWx0ZXJdID0gdGhpcy5zZWFyY2guaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,214 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/multi-select/multi-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 { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';
8
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
+ /**
10
+ * @record
11
+ * @template K
12
+ */
13
+ export function SelectOption() { }
14
+ if (false) {
15
+ /** @type {?} */
16
+ SelectOption.prototype.label;
17
+ /** @type {?} */
18
+ SelectOption.prototype.value;
19
+ }
20
+ /**
21
+ * @template K
22
+ */
23
+ export class MultiSelectComponent extends OdeComponent {
24
+ /**
25
+ * @param {?} injector
26
+ * @param {?} elementRef
27
+ */
28
+ constructor(injector, elementRef) {
29
+ super(injector);
30
+ this.elementRef = elementRef;
31
+ this.label = '';
32
+ this.options = [];
33
+ this.preview = false;
34
+ this.model = [];
35
+ this.isDisabled = false;
36
+ this.isOptionsVisible = false;
37
+ this.onChange = (/**
38
+ * @param {?} _
39
+ * @return {?}
40
+ */
41
+ (_) => {
42
+ });
43
+ this.onTouched = (/**
44
+ * @return {?}
45
+ */
46
+ () => {
47
+ });
48
+ }
49
+ /**
50
+ * @param {?} option
51
+ * @return {?}
52
+ */
53
+ optionClicked(option) {
54
+ if (this.model) {
55
+ /** @type {?} */
56
+ const index = this.getIndexOfOptionInModel(option);
57
+ if (index < 0) {
58
+ this.model.push(option.value);
59
+ }
60
+ else {
61
+ this.model.splice(index, 1);
62
+ }
63
+ }
64
+ else {
65
+ this.model = [option.value];
66
+ }
67
+ this.onChange(this.model);
68
+ }
69
+ /**
70
+ * @return {?}
71
+ */
72
+ selectAll() {
73
+ this.options.forEach((/**
74
+ * @param {?} option
75
+ * @return {?}
76
+ */
77
+ option => {
78
+ if (!this.model.includes(option.value)) {
79
+ this.model.push(option.value);
80
+ }
81
+ }));
82
+ this.onChange(this.model);
83
+ }
84
+ /**
85
+ * @return {?}
86
+ */
87
+ deselectAll() {
88
+ this.model = [];
89
+ this.onChange(this.model);
90
+ }
91
+ /**
92
+ * @return {?}
93
+ */
94
+ toggleOptionsVisibility() {
95
+ this.isOptionsVisible = !this.isOptionsVisible;
96
+ }
97
+ /**
98
+ * @param {?} option
99
+ * @return {?}
100
+ */
101
+ isSelected(option) {
102
+ return this.model ? (this.getIndexOfOptionInModel(option) >= 0) : false;
103
+ }
104
+ /**
105
+ * @param {?} event
106
+ * @return {?}
107
+ */
108
+ closeIfOpened(event) {
109
+ if (this.isOptionsVisible
110
+ && !this.elementRef.nativeElement.querySelector('.lct-multi-select__options-container').contains(event.target)
111
+ && !this.elementRef.nativeElement.querySelector('.lct-multi-select__toggle').contains(event.target)) {
112
+ this.isOptionsVisible = false;
113
+ }
114
+ return true;
115
+ }
116
+ /**
117
+ * @private
118
+ * @param {?} option
119
+ * @return {?}
120
+ */
121
+ getIndexOfOptionInModel(option) {
122
+ return this.model.map(this.trackByFn).indexOf(this.trackByFn(option.value));
123
+ }
124
+ /**
125
+ * @param {?} fn
126
+ * @return {?}
127
+ */
128
+ registerOnChange(fn) {
129
+ this.onChange = fn;
130
+ }
131
+ /**
132
+ * @param {?} fn
133
+ * @return {?}
134
+ */
135
+ registerOnTouched(fn) {
136
+ this.onTouched = fn;
137
+ }
138
+ /**
139
+ * @param {?} isDisabled
140
+ * @return {?}
141
+ */
142
+ setDisabledState(isDisabled) {
143
+ this.isDisabled = isDisabled;
144
+ }
145
+ /**
146
+ * @param {?} obj
147
+ * @return {?}
148
+ */
149
+ writeValue(obj) {
150
+ this.model = obj;
151
+ this.onChange(this.model);
152
+ }
153
+ }
154
+ MultiSelectComponent.decorators = [
155
+ { type: Component, args: [{
156
+ selector: 'ode-multi-select',
157
+ template: "<button type=\"button\"\n (click)=\"toggleOptionsVisibility()\" [disabled]=\"isDisabled\"\n class=\"multi-select__toggle lct-multi-select__toggle\"\n [ngClass]=\"{'multi-select__toggle--active': isOptionsVisible}\">{{label |\u00A0translate}}</button>\n<div class=\"multi-select__options-container lct-multi-select__options-container\"\n [ngClass]=\"{'multi-select__options-container--active': isOptionsVisible}\">\n <div class=\"multi-select__options-actions\">\n <button type=\"button\"\n class=\"multi-select__options-actions-item\"\n (click)=\"selectAll()\">{{'ux.multiselect.select-all' | translate}}</button>\n <button type=\"button\"\n class=\"multi-select__options-actions-item\"\n (click)=\"deselectAll()\">{{'ux.multiselect.deselect-all' | translate}}</button>\n </div>\n <ul class=\"multi-select__options lct-multi-select__options\">\n <li class=\"multi-select__options-item lct-multi-select__options-item\"\n *ngFor=\"let option of options\"\n (click)=\"optionClicked(option)\"\n [ngClass]=\"{'multi-select__options-item--selected': isSelected(option)}\">{{option.label | translate}}</li>\n </ul>\n</div>\n<div class=\"multi-select__options-preview lct-multi-select__options-preview\" *ngIf=\"preview\">\n <ng-container *ngFor=\"let option of options\">\n <button *ngIf=\"isSelected(option)\"\n type=\"button\"\n class=\"multi-select__options-preview-item lct-multi-select__options-preview-item\"\n (click)=\"optionClicked(option)\">\n <span>{{option.label | translate}}</span>\n <i class=\"multi-select__options-preview-item-delete-icon fa fa-trash is-size-5\"></i>\n </button>\n </ng-container>\n</div>\n",
158
+ providers: [{
159
+ provide: NG_VALUE_ACCESSOR,
160
+ useExisting: forwardRef((/**
161
+ * @return {?}
162
+ */
163
+ () => MultiSelectComponent)),
164
+ multi: true
165
+ }],
166
+ host: {
167
+ '(document:click)': 'closeIfOpened($event)'
168
+ },
169
+ styles: ["@charset \"UTF-8\";:host{position:relative}.multi-select__toggle{min-width:210px;outline:0;background-color:#f2f2f2}.multi-select__toggle:after{content:\"\u25BC\";float:right;margin-left:10px;transition:transform .25s,color .25s}.multi-select__toggle:hover:after{color:#fff}.multi-select__toggle.multi-select__toggle--active,.multi-select__toggle:hover{background-color:#ff8352;color:#fff}.multi-select__toggle.multi-select__toggle--active:after{transform:rotate(180deg);color:#fff}.multi-select__options-container{display:none;position:absolute;z-index:2;left:1px;top:31px;overflow:hidden;background:#fff;border:1px solid #ddd;padding:0 10px 0 20px;min-width:160px}.multi-select__options-container.multi-select__options-container--active{display:block}.multi-select__options{list-style:none;padding:0;overflow-y:scroll;max-height:200px;margin-bottom:10px}.multi-select__options-item{white-space:nowrap;cursor:pointer;line-height:25px;font-size:13px;transition:background-color .25s,color .25s;margin-bottom:5px;padding:0 10px}.multi-select__options-item.multi-select__options-item--selected{color:#fff;background-color:#217b9e}.multi-select__options-preview{color:#fff;margin:10px 0}.multi-select__options-preview-item{border:1px solid #217b9e;display:inline-block;font-size:.8em;margin-right:10px;margin-bottom:10px;padding:10px;cursor:pointer;transition:.25s;border-radius:3px;background-color:#217b9e;line-height:1.5em;color:#fff}.multi-select__options-preview-item:hover{background-color:#61bbde;border-color:#fff}.multi-select__options-preview-item-delete-icon{opacity:0;transition:opacity .25s;float:right;padding-left:10px}.multi-select__options-preview-item:hover .multi-select__options-preview-item-delete-icon{opacity:1}.multi-select__options-actions{margin-top:10px}.multi-select__options-actions-item{margin-bottom:3px;min-width:136px}.multi-select__options-actions-item:hover{background:#ffccb8}"]
170
+ }] }
171
+ ];
172
+ /** @nocollapse */
173
+ MultiSelectComponent.ctorParameters = () => [
174
+ { type: Injector },
175
+ { type: ElementRef }
176
+ ];
177
+ MultiSelectComponent.propDecorators = {
178
+ label: [{ type: Input }],
179
+ options: [{ type: Input }],
180
+ preview: [{ type: Input }],
181
+ trackByFn: [{ type: Input }]
182
+ };
183
+ if (false) {
184
+ /** @type {?} */
185
+ MultiSelectComponent.prototype.label;
186
+ /** @type {?} */
187
+ MultiSelectComponent.prototype.options;
188
+ /** @type {?} */
189
+ MultiSelectComponent.prototype.preview;
190
+ /** @type {?} */
191
+ MultiSelectComponent.prototype.trackByFn;
192
+ /** @type {?} */
193
+ MultiSelectComponent.prototype.model;
194
+ /** @type {?} */
195
+ MultiSelectComponent.prototype.isDisabled;
196
+ /** @type {?} */
197
+ MultiSelectComponent.prototype.isOptionsVisible;
198
+ /**
199
+ * @type {?}
200
+ * @private
201
+ */
202
+ MultiSelectComponent.prototype.onChange;
203
+ /**
204
+ * @type {?}
205
+ * @private
206
+ */
207
+ MultiSelectComponent.prototype.onTouched;
208
+ /**
209
+ * @type {?}
210
+ * @private
211
+ */
212
+ MultiSelectComponent.prototype.elementRef;
213
+ }
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUl2RSxrQ0FHQzs7O0lBRkcsNkJBQWM7O0lBQ2QsNkJBQVM7Ozs7O0FBZ0JiLE1BQU0sT0FBTyxvQkFBd0IsU0FBUSxZQUFZOzs7OztJQW1CckQsWUFBWSxRQUFrQixFQUFVLFVBQXNCO1FBQzFELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURvQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakJ2RCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR1gsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFHckMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUtoQixVQUFLLEdBQWEsRUFBRSxDQUFDO1FBRXJCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBdUR4QixhQUFROzs7O1FBQUcsQ0FBQyxDQUFXLEVBQUUsRUFBRTtRQUNuQyxDQUFDLEVBQUE7UUFFTyxjQUFTOzs7UUFBRyxHQUFHLEVBQUU7UUFDekIsQ0FBQyxFQUFBO0lBdkRELENBQUM7Ozs7O0lBRU0sYUFBYSxDQUFDLE1BQXVCO1FBQ3hDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTs7a0JBQ04sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUM7WUFDbEQsSUFBSSxLQUFL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Qix1dkRBQTRDO2dCQUU1QyxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixFQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDO2dCQUNGLElBQUksRUFBRTtvQkFDRixrQkFBa0IsRUFBRSx1QkFBdUI7aUJBQzlDOzthQUNKOzs7O1lBdEJrRCxRQUFRO1lBQXZDLFVBQVU7OztvQkF3QnpCLEtBQUs7c0JBR0wsS0FBSztzQkFHTCxLQUFLO3dCQUdMLEtBQUs7Ozs7SUFUTixxQ0FDa0I7O0lBRWxCLHVDQUM0Qzs7SUFFNUMsdUNBQ3VCOztJQUV2Qix5Q0FDc0Q7O0lBRXRELHFDQUE0Qjs7SUFFNUIsMENBQTBCOztJQUUxQixnREFBZ0M7Ozs7O0lBdURoQyx3Q0FDQzs7Ozs7SUFFRCx5Q0FDQzs7Ozs7SUF6RCtCLDBDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyogTXVsdGlTZWxlY3RDb21wb25lbnQgaXMgYSByZXdyaXRlIG9mIE11bHRpQ29tYm9Db21wb25lbnQgdG8gaW50ZWdyYXRlIGl0IGVhc2lseSBpbiBhbmd1bGFyIGZvcm1zICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uPEs+IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBLO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1tdWx0aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6Y2xpY2spJzogJ2Nsb3NlSWZPcGVuZWQoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50PEs+IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb248Sz4+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmV2aWV3ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cmFja0J5Rm46IChvcHRpb25WYWx1ZTogSykgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIG1vZGVsOiBBcnJheTxLPiA9IFtdO1xuXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc09wdGlvbnNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9wdGlvbkNsaWNrZWQob3B0aW9uOiBTZWxlY3RPcHRpb248Sz4pIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleE9mT3B0aW9uSW5Nb2RlbChvcHRpb24pO1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwucHVzaChvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gW29wdGlvbi52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsLnB1c2gob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVPcHRpb25zVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wdGlvbnNWaXNpYmxlID0gIXRoaXMuaXNPcHRpb25zVmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTZWxlY3RlZChvcHRpb246IFNlbGVjdE9wdGlvbjxLPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbCA/ICh0aGlzLmdldEluZGV4T2ZPcHRpb25Jbk1vZGVsKG9wdGlvbikgPj0gMCkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VJZk9wZW5lZChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3B0aW9uc1Zpc2libGVcbiAgICAgICAgICAmJiAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmxjdC1tdWx0aS1zZWxlY3RfX29wdGlvbnMtY29udGFpbmVyJykuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICAgICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubGN0LW11bHRpLXNlbGVjdF9fdG9nZ2xlJykuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5pc09wdGlvbnNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJbmRleE9mT3B0aW9uSW5Nb2RlbChvcHRpb246IFNlbGVjdE9wdGlvbjxLPik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLm1hcCh0aGlzLnRyYWNrQnlGbikuaW5kZXhPZih0aGlzLnRyYWNrQnlGbihvcHRpb24udmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IEFycmF5PEs+KSA9PiB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IEFycmF5PEs+KTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBvYmo7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/panel-section/panel-section.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, Input, Injector } from '@angular/core';
8
+ export class PanelSectionComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ */
12
+ constructor(injector) {
13
+ super(injector);
14
+ this.folded = null;
15
+ }
16
+ }
17
+ PanelSectionComponent.decorators = [
18
+ { type: Component, args: [{
19
+ selector: 'ode-panel-section',
20
+ template: "<section class=\"panel-section\">\n <div class=\"panel-section-header is-display-flex has-space-between\" (click)=\"folded !== null ? folded=!folded : null\" [class.foldable]=\"folded !== null\">\n <div class=\"is-display-flex\">\n <s5l>{{ sectionTitle\u00A0}}</s5l>\n <div class=\"has-left-padding-10\">\n <ng-content select=\"[panel-section-header-icons]\"></ng-content>\n </div>\n </div>\n\n <i class=\"opener\" *ngIf=\"folded !== null\"\n [class.opened]=\"!folded\"></i>\n </div>\n <div class=\"panel-section-content\" *ngIf=\"!folded\">\n <ng-content></ng-content>\n </div>\n</section>\n",
21
+ styles: [".panel-section-header{font-size:1.1em;padding:10px}.panel-section-header.foldable{cursor:pointer}.panel-section-content{padding:15px}"]
22
+ }] }
23
+ ];
24
+ /** @nocollapse */
25
+ PanelSectionComponent.ctorParameters = () => [
26
+ { type: Injector }
27
+ ];
28
+ PanelSectionComponent.propDecorators = {
29
+ sectionTitle: [{ type: Input, args: ['section-title',] }],
30
+ folded: [{ type: Input }]
31
+ };
32
+ if (false) {
33
+ /** @type {?} */
34
+ PanelSectionComponent.prototype.sectionTitle;
35
+ /** @type {?} */
36
+ PanelSectionComponent.prototype.folded;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFuZWwtc2VjdGlvbi9wYW5lbC1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxZQUFZOzs7O0lBR25ELFlBQVksUUFBa0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRlgsV0FBTSxHQUFZLElBQUksQ0FBQztJQUdoQyxDQUFDOzs7WUFWSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0Isd29CQUE2Qzs7YUFFaEQ7Ozs7WUFOMEIsUUFBUTs7OzJCQVE5QixLQUFLLFNBQUMsZUFBZTtxQkFDckIsS0FBSzs7OztJQUROLDZDQUE2Qzs7SUFDN0MsdUNBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLXBhbmVsLXNlY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYW5lbC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYW5lbC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoJ3NlY3Rpb24tdGl0bGUnKSBzZWN0aW9uVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBmb2xkZWQ6IGJvb2xlYW4gPSBudWxsO1xuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/portal/portal.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, Injector } from '@angular/core';
8
+ export class PortalComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ */
12
+ constructor(injector) {
13
+ super(injector);
14
+ }
15
+ }
16
+ PortalComponent.decorators = [
17
+ { type: Component, args: [{
18
+ selector: 'ode-portal',
19
+ template: "<header>\n <ng-content select=\"[header-left]\"></ng-content>\n <ng-content select=\"[header-middle]\"></ng-content>\n <ng-content select=\"[header-right]\"></ng-content>\n</header>\n<section>\n <ng-content select=\"[section]\"></ng-content>\n</section>\n<footer>\n <ng-content select=\"[footer]\"></ng-content>\n</footer>\n",
20
+ styles: ["header{position:relative;display:flex;align-items:center;top:0;width:100%}"]
21
+ }] }
22
+ ];
23
+ /** @nocollapse */
24
+ PortalComponent.ctorParameters = () => [
25
+ { type: Injector }
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wb3J0YWwvcG9ydGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTs7OztJQUM3QyxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQixDQUFDOzs7WUFSSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLHFWQUFzQzs7YUFFekM7Ozs7WUFObUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLXBvcnRhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcnRhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcG9ydGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUG9ydGFsQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/push-panel/push-panel.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
+ export class PushPanelComponent extends OdeComponent {
9
+ /**
10
+ * @param {?} injector
11
+ */
12
+ constructor(injector) {
13
+ super(injector);
14
+ this.onClose = new EventEmitter();
15
+ }
16
+ /**
17
+ * @private
18
+ * @param {?} toggle
19
+ * @return {?}
20
+ */
21
+ set toggle(toggle) {
22
+ this._opened = toggle;
23
+ }
24
+ /**
25
+ * @param {?} event
26
+ * @return {?}
27
+ */
28
+ onClick(event) {
29
+ /** @type {?} */
30
+ const checkOpener = this.opener &&
31
+ (this.opener.contains && this.opener.contains(event.target)) ||
32
+ (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));
33
+ if (this._opened &&
34
+ !this.inside.nativeElement.contains(event.target) &&
35
+ !checkOpener) {
36
+ this._opened = false;
37
+ this.onClose.emit();
38
+ }
39
+ return true;
40
+ }
41
+ }
42
+ PushPanelComponent.decorators = [
43
+ { type: Component, args: [{
44
+ selector: 'ode-push-panel',
45
+ template: "<div [ngClass]=\"{ opened: _opened }\" #inside>\n <ng-content select=\"[inside]\"></ng-content>\n</div>\n<div>\n <ng-content select=\"[companion]\"></ng-content>\n</div>\n",
46
+ host: {
47
+ '(document:click)': 'onClick($event)',
48
+ },
49
+ styles: [":host>div:nth-child(1){position:fixed;z-index:10;overflow-x:hidden;overflow-y:scroll;height:100%;top:0;left:-30%;width:30%;transition:transform .25s}:host>div:nth-child(1).opened{transform:translateX(100%)}:host>div:nth-child(2){position:relative;left:0;opacity:1;transition:transform .25s,opacity .25s}:host>div:nth-child(1).opened+div{opacity:.7;transform:translateX(30%);overflow-x:hidden}"]
50
+ }] }
51
+ ];
52
+ /** @nocollapse */
53
+ PushPanelComponent.ctorParameters = () => [
54
+ { type: Injector }
55
+ ];
56
+ PushPanelComponent.propDecorators = {
57
+ toggle: [{ type: Input }],
58
+ opener: [{ type: Input }],
59
+ onClose: [{ type: Output }],
60
+ inside: [{ type: ViewChild, args: ['inside', { static: false },] }]
61
+ };
62
+ if (false) {
63
+ /** @type {?} */
64
+ PushPanelComponent.prototype._opened;
65
+ /**
66
+ * @type {?}
67
+ * @private
68
+ */
69
+ PushPanelComponent.prototype.opener;
70
+ /**
71
+ * @type {?}
72
+ * @private
73
+ */
74
+ PushPanelComponent.prototype.onClose;
75
+ /**
76
+ * @type {?}
77
+ * @private
78
+ */
79
+ PushPanelComponent.prototype.inside;
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHVzaC1wYW5lbC9wdXNoLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV4RyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTs7OztJQUVoRCxZQUFZLFFBQWtCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVVBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBVHhELENBQUM7Ozs7OztJQUVELElBQXFCLE1BQU0sQ0FBQyxNQUFlO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBU00sT0FBTyxDQUFDLEtBQUs7O2NBQ1YsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQzNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVuRixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxDQUFDLFdBQVcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7WUFyQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLHlMQUEwQztnQkFFMUMsSUFBSSxFQUFFO29CQUNGLGtCQUFrQixFQUFFLGlCQUFpQjtpQkFDeEM7O2FBQ0o7Ozs7WUFUdUUsUUFBUTs7O3FCQWdCM0UsS0FBSztxQkFLTCxLQUFLO3NCQUVMLE1BQU07cUJBRU4sU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7SUFOdEMscUNBQWlCOzs7OztJQUVqQixvQ0FBd0I7Ozs7O0lBRXhCLHFDQUF3RDs7Ozs7SUFFeEQsb0NBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLXB1c2gtcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXNoLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wdXNoLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGRvY3VtZW50OmNsaWNrKSc6ICdvbkNsaWNrKCRldmVudCknLFxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUHVzaFBhbmVsQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHByaXZhdGUgc2V0IHRvZ2dsZSh0b2dnbGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fb3BlbmVkID0gdG9nZ2xlO1xuICAgIH1cbiAgICBfb3BlbmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgcHJpdmF0ZSBvcGVuZXI7XG5cbiAgICBAT3V0cHV0KCkgcHJpdmF0ZSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5zaWRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgaW5zaWRlOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgY29uc3QgY2hlY2tPcGVuZXIgPSB0aGlzLm9wZW5lciAmJlxuICAgICAgICAgICAgKHRoaXMub3BlbmVyLmNvbnRhaW5zICYmIHRoaXMub3BlbmVyLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHx8XG4gICAgICAgICAgICAodGhpcy5vcGVuZXIubmF0aXZlRWxlbWVudCAmJiB0aGlzLm9wZW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpO1xuXG4gICAgICAgIGlmICh0aGlzLl9vcGVuZWQgJiZcbiAgICAgICAgICAgICF0aGlzLmluc2lkZS5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgICAgICFjaGVja09wZW5lcikge1xuICAgICAgICAgICAgdGhpcy5fb3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxufVxuIl19