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,294 @@
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 * as tslib_1 from "tslib";
7
+ import { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';
8
+ import { LabelsService } from '../../services/labels.service';
9
+ import { OdeComponent } from 'ngx-ode-core';
10
+ /* If you need to use multi-combo in a form you should give a look to the MultiSelectComponent. */
11
+ var MultiComboComponent = /** @class */ (function (_super) {
12
+ tslib_1.__extends(MultiComboComponent, _super);
13
+ function MultiComboComponent(_eref, labelsService, injector) {
14
+ var _this = _super.call(this, injector) || this;
15
+ _this._eref = _eref;
16
+ _this.labelsService = labelsService;
17
+ _this.filteredModel = [];
18
+ _this.title = 'Select';
19
+ _this.reverse = false;
20
+ _this.disabled = false;
21
+ _this.onSelectItem = new EventEmitter();
22
+ _this.onDeselectItem = new EventEmitter();
23
+ _this.filteredModelChange = new EventEmitter();
24
+ _this.onOpen = new EventEmitter();
25
+ _this.onClose = new EventEmitter();
26
+ _this.self = _this;
27
+ _this._comboModel = [];
28
+ _this.filteredComboModel = [];
29
+ _this.search = {
30
+ input: '',
31
+ reset: /**
32
+ * @return {?}
33
+ */
34
+ function () {
35
+ this.input = '';
36
+ }
37
+ };
38
+ _this.show = false;
39
+ return _this;
40
+ }
41
+ Object.defineProperty(MultiComboComponent.prototype, "comboModel", {
42
+ set: /**
43
+ * @param {?} model
44
+ * @return {?}
45
+ */
46
+ function (model) {
47
+ this._comboModel = model;
48
+ if (!model) {
49
+ this.filteredModel = [];
50
+ return;
51
+ }
52
+ for (var i = 0; i < this.filteredModel.length; i++) {
53
+ /** @type {?} */
54
+ var idx = model.indexOf(this.filteredModel[i]);
55
+ if (idx < 0) {
56
+ this.filteredModel.splice(idx, 1);
57
+ i--;
58
+ }
59
+ }
60
+ },
61
+ enumerable: true,
62
+ configurable: true
63
+ });
64
+ /**
65
+ * @param {?} label
66
+ * @return {?}
67
+ */
68
+ MultiComboComponent.prototype.labels = /**
69
+ * @param {?} label
70
+ * @return {?}
71
+ */
72
+ function (label) {
73
+ return this.labelsService.getLabel(label);
74
+ };
75
+ /**
76
+ * @return {?}
77
+ */
78
+ MultiComboComponent.prototype.toggleVisibility = /**
79
+ * @return {?}
80
+ */
81
+ function () {
82
+ this.show = !this.show;
83
+ if (this.show) {
84
+ this.search.reset();
85
+ this.onOpen.emit();
86
+ }
87
+ else {
88
+ this.onClose.emit();
89
+ }
90
+ };
91
+ /**
92
+ * @param {?} item
93
+ * @return {?}
94
+ */
95
+ MultiComboComponent.prototype.isSelected = /**
96
+ * @param {?} item
97
+ * @return {?}
98
+ */
99
+ function (item) {
100
+ return this.filteredModel && this.filteredModel.indexOf(item) >= 0;
101
+ };
102
+ /**
103
+ * @return {?}
104
+ */
105
+ MultiComboComponent.prototype.isDisabled = /**
106
+ * @return {?}
107
+ */
108
+ function () {
109
+ return this.filteredModel && this.maxSelected &&
110
+ this.maxSelected <= this.filteredModel.length;
111
+ };
112
+ /**
113
+ * @param {?} item
114
+ * @return {?}
115
+ */
116
+ MultiComboComponent.prototype.toggleItem = /**
117
+ * @param {?} item
118
+ * @return {?}
119
+ */
120
+ function (item) {
121
+ /** @type {?} */
122
+ var idx = this.filteredModel.indexOf(item);
123
+ if (idx >= 0) {
124
+ this.filteredModel.splice(idx, 1);
125
+ this.onDeselectItem.emit(item);
126
+ }
127
+ else if (!this.maxSelected ||
128
+ this.filteredModel.length < this.maxSelected) {
129
+ this.filteredModel.push(item);
130
+ this.onSelectItem.emit(item);
131
+ }
132
+ this.filteredModelChange.emit(this.filteredModel);
133
+ };
134
+ /**
135
+ * @return {?}
136
+ */
137
+ MultiComboComponent.prototype.selectAll = /**
138
+ * @return {?}
139
+ */
140
+ function () {
141
+ this.filteredModel = [];
142
+ for (var i = 0; i < this.filteredComboModel.length; i++) {
143
+ this.filteredModel.push(this.filteredComboModel[i]);
144
+ }
145
+ this.filteredModelChange.emit(this.filteredModel);
146
+ };
147
+ /**
148
+ * @return {?}
149
+ */
150
+ MultiComboComponent.prototype.deselectAll = /**
151
+ * @return {?}
152
+ */
153
+ function () {
154
+ this.filteredModel = [];
155
+ this.filteredModelChange.emit(this.filteredModel);
156
+ };
157
+ /**
158
+ * @param {?} item
159
+ * @return {?}
160
+ */
161
+ MultiComboComponent.prototype.displayItem = /**
162
+ * @param {?} item
163
+ * @return {?}
164
+ */
165
+ function (item) {
166
+ return item instanceof Object ?
167
+ this.display && typeof this.display === 'string' ?
168
+ item[this.display] :
169
+ item.toString() :
170
+ this.display && this.display instanceof Function ?
171
+ this.display(item || '') :
172
+ item;
173
+ };
174
+ /**
175
+ * @param {?} event
176
+ * @return {?}
177
+ */
178
+ MultiComboComponent.prototype.onClick = /**
179
+ * @param {?} event
180
+ * @return {?}
181
+ */
182
+ function (event) {
183
+ if (this.show && !this._eref.nativeElement.contains(event.target)) {
184
+ this.toggleVisibility();
185
+ }
186
+ return true;
187
+ };
188
+ /**
189
+ * @return {?}
190
+ */
191
+ MultiComboComponent.prototype.getFilter = /**
192
+ * @return {?}
193
+ */
194
+ function () {
195
+ if (!this.filter) {
196
+ return '';
197
+ }
198
+ /** @type {?} */
199
+ var filter = '';
200
+ if (this._comboModel.length > 0) {
201
+ if (typeof this._comboModel[0] === 'string') {
202
+ filter = this.search.input;
203
+ }
204
+ else {
205
+ filter = {};
206
+ filter[this.filter] = this.search.input;
207
+ }
208
+ }
209
+ return filter;
210
+ };
211
+ MultiComboComponent.decorators = [
212
+ { type: Component, args: [{
213
+ selector: 'ode-multi-combo',
214
+ 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",
215
+ host: {
216
+ '(document:click)': 'onClick($event)',
217
+ },
218
+ 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}"]
219
+ }] }
220
+ ];
221
+ /** @nocollapse */
222
+ MultiComboComponent.ctorParameters = function () { return [
223
+ { type: ElementRef },
224
+ { type: LabelsService },
225
+ { type: Injector }
226
+ ]; };
227
+ MultiComboComponent.propDecorators = {
228
+ comboModel: [{ type: Input }],
229
+ filteredModel: [{ type: Input, args: ['outputModel',] }],
230
+ title: [{ type: Input }],
231
+ display: [{ type: Input }],
232
+ filter: [{ type: Input }],
233
+ orderBy: [{ type: Input }],
234
+ reverse: [{ type: Input }],
235
+ maxSelected: [{ type: Input, args: ['max',] }],
236
+ disabled: [{ type: Input }],
237
+ onSelectItem: [{ type: Output }],
238
+ onDeselectItem: [{ type: Output }],
239
+ filteredModelChange: [{ type: Output, args: ['outputModelChange',] }],
240
+ onOpen: [{ type: Output }],
241
+ onClose: [{ type: Output }]
242
+ };
243
+ return MultiComboComponent;
244
+ }(OdeComponent));
245
+ export { MultiComboComponent };
246
+ if (false) {
247
+ /** @type {?} */
248
+ MultiComboComponent.prototype.filteredModel;
249
+ /** @type {?} */
250
+ MultiComboComponent.prototype.title;
251
+ /** @type {?} */
252
+ MultiComboComponent.prototype.display;
253
+ /** @type {?} */
254
+ MultiComboComponent.prototype.filter;
255
+ /** @type {?} */
256
+ MultiComboComponent.prototype.orderBy;
257
+ /** @type {?} */
258
+ MultiComboComponent.prototype.reverse;
259
+ /** @type {?} */
260
+ MultiComboComponent.prototype.maxSelected;
261
+ /** @type {?} */
262
+ MultiComboComponent.prototype.disabled;
263
+ /** @type {?} */
264
+ MultiComboComponent.prototype.onSelectItem;
265
+ /** @type {?} */
266
+ MultiComboComponent.prototype.onDeselectItem;
267
+ /** @type {?} */
268
+ MultiComboComponent.prototype.filteredModelChange;
269
+ /** @type {?} */
270
+ MultiComboComponent.prototype.onOpen;
271
+ /** @type {?} */
272
+ MultiComboComponent.prototype.onClose;
273
+ /** @type {?} */
274
+ MultiComboComponent.prototype.self;
275
+ /** @type {?} */
276
+ MultiComboComponent.prototype._comboModel;
277
+ /** @type {?} */
278
+ MultiComboComponent.prototype.filteredComboModel;
279
+ /** @type {?} */
280
+ MultiComboComponent.prototype.search;
281
+ /** @type {?} */
282
+ MultiComboComponent.prototype.show;
283
+ /**
284
+ * @type {?}
285
+ * @private
286
+ */
287
+ MultiComboComponent.prototype._eref;
288
+ /**
289
+ * @type {?}
290
+ * @private
291
+ */
292
+ MultiComboComponent.prototype.labelsService;
293
+ }
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS11aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL211bHRpLWNvbWJvL211bHRpLWNvbWJvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBSTVDO0lBUXlDLCtDQUFZO0lBRWpELDZCQUNZLEtBQWlCLEVBQ2pCLGFBQTRCLEVBQ3BDLFFBQWtCO1FBSHRCLFlBSUksa0JBQU0sUUFBUSxDQUFDLFNBQ2xCO1FBSlcsV0FBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixtQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXNCbEIsbUJBQWEsR0FBRyxFQUFFLENBQUM7UUFDaEMsV0FBSyxHQUFHLFFBQVEsQ0FBQztRQUlqQixhQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGNBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsa0JBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLG9CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0Qix5QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pFLFlBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLGFBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTVDLFVBQUksR0FBRyxLQUFJLENBQUM7UUFDWixpQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQix3QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsWUFBTSxHQUFHO1lBQ0wsS0FBSyxFQUFFLEVBQUU7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Q2xDLHVDQUEwQjs7SUFFMUIsMkNBQWlEOztJQUNqRCw2Q0FBbUQ7O0lBQ25ELGtEQUEyRTs7SUFDM0UscUNBQTJDOztJQUMzQyxzQ0FBNEM7O0lBRTVDLG1DQUFZOztJQUNaLDBDQUFpQjs7SUFFakIsaURBQXdCOztJQUV4QixxQ0FLRTs7SUFFRixtQ0FBYTs7Ozs7SUFsRFQsb0NBQXlCOzs7OztJQUN6Qiw0Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGFiZWxzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGFiZWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcblxuLyogSWYgeW91IG5lZWQgdG8gdXNlIG11bHRpLWNvbWJvIGluIGEgZm9ybSB5b3Ugc2hvdWxkIGdpdmUgYSBsb29rIHRvIHRoZSBNdWx0aVNlbGVjdENvbXBvbmVudC4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbXVsdGktY29tYm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1jb21iby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbXVsdGktY29tYm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6Y2xpY2spJzogJ29uQ2xpY2soJGV2ZW50KScsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aUNvbWJvQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lcmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGxhYmVsc1NlcnZpY2U6IExhYmVsc1NlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29tYm9Nb2RlbChtb2RlbCkge1xuICAgICAgICB0aGlzLl9jb21ib01vZGVsID0gbW9kZWw7XG5cbiAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmlsdGVyZWRNb2RlbC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gbW9kZWwuaW5kZXhPZih0aGlzLmZpbHRlcmVkTW9kZWxbaV0pO1xuICAgICAgICAgICAgaWYgKGlkeCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBJbnB1dCgnb3V0cHV0TW9kZWwnKSBmaWx0ZXJlZE1vZGVsID0gW107XG4gICAgQElucHV0KCkgdGl0bGUgPSAnU2VsZWN0JztcbiAgICBASW5wdXQoKSBkaXNwbGF5OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgICBASW5wdXQoKSBmaWx0ZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBvcmRlckJ5OiAoc3RyaW5nIHwgQXJyYXk8KHN0cmluZyB8IEZ1bmN0aW9uKT4gfCBGdW5jdGlvbik7XG4gICAgQElucHV0KCkgcmV2ZXJzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgnbWF4JykgbWF4U2VsZWN0ZWQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkRlc2VsZWN0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoJ291dHB1dE1vZGVsQ2hhbmdlJykgZmlsdGVyZWRNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbk9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgc2VsZiA9IHRoaXM7XG4gICAgX2NvbWJvTW9kZWwgPSBbXTtcblxuICAgIGZpbHRlcmVkQ29tYm9Nb2RlbCA9IFtdO1xuXG4gICAgc2VhcmNoID0ge1xuICAgICAgICBpbnB1dDogJycsXG4gICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dCA9ICcnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHNob3cgPSBmYWxzZTtcblxuICAgIGxhYmVscyhsYWJlbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYWJlbHNTZXJ2aWNlLmdldExhYmVsKGxhYmVsKTtcbiAgICB9XG5cbiAgICB0b2dnbGVWaXNpYmlsaXR5KCkge1xuICAgICAgICB0aGlzLnNob3cgPSAhdGhpcy5zaG93O1xuICAgICAgICBpZiAodGhpcy5zaG93KSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaC5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5vbk9wZW4uZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRNb2RlbCAmJiB0aGlzLmZpbHRlcmVkTW9kZWwuaW5kZXhPZihpdGVtKSA+PSAwO1xuICAgIH1cblxuICAgIGlzRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkTW9kZWwgJiYgdGhpcy5tYXhTZWxlY3RlZCAmJlxuICAgICAgICAgICAgdGhpcy5tYXhTZWxlY3RlZCA8PSB0aGlzLmZpbHRlcmVkTW9kZWwubGVuZ3RoO1xuICAgIH1cblxuICAgIHRvZ2dsZUl0ZW0oaXRlbSkge1xuICAgICAgICBjb25zdCBpZHggPSB0aGlzLmZpbHRlcmVkTW9kZWwuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICB0aGlzLm9uRGVzZWxlY3RJdGVtLmVtaXQoaXRlbSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMubWF4U2VsZWN0ZWQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwubGVuZ3RoIDwgdGhpcy5tYXhTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNb2RlbCk7XG4gICAgfVxuXG4gICAgc2VsZWN0QWxsKCkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZpbHRlcmVkQ29tYm9Nb2RlbC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsLnB1c2godGhpcy5maWx0ZXJlZENvbWJvTW9kZWxbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNb2RlbCk7XG4gICAgfVxuXG4gICAgZGVzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbCA9IFtdO1xuICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlcmVkTW9kZWwpO1xuICAgIH1cblxuICAgIGRpc3BsYXlJdGVtKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICBpdGVtIGluc3RhbmNlb2YgT2JqZWN0ID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5ICYmIHR5cGVvZiB0aGlzLmRpc3BsYXkgPT09ICdzdHJpbmcnID9cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1bdGhpcy5kaXNwbGF5XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRvU3RyaW5nKCkgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkgJiYgdGhpcy5kaXNwbGF5IGluc3RhbmNlb2YgRnVuY3Rpb24gP1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5KGl0ZW0gfHwgJycpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW07XG4gICAgfVxuXG4gICAgb25DbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5zaG93ICYmICF0aGlzLl9lcmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVWaXNpYmlsaXR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGZpbHRlcjogc3RyaW5nIHwge30gPSAnJztcbiAgICAgICAgaWYgKHRoaXMuX2NvbWJvTW9kZWwubGVuZ3RoID4gMCApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fY29tYm9Nb2RlbFswXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIgPSB0aGlzLnNlYXJjaC5pbnB1dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyID0ge307XG4gICAgICAgICAgICAgICAgZmlsdGVyW3RoaXMuZmlsdGVyXSA9IHRoaXMuc2VhcmNoLmlucHV0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,258 @@
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 * as tslib_1 from "tslib";
7
+ import { OdeComponent } from 'ngx-ode-core';
8
+ import { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';
9
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
10
+ /**
11
+ * @record
12
+ * @template K
13
+ */
14
+ export function SelectOption() { }
15
+ if (false) {
16
+ /** @type {?} */
17
+ SelectOption.prototype.label;
18
+ /** @type {?} */
19
+ SelectOption.prototype.value;
20
+ }
21
+ /**
22
+ * @template K
23
+ */
24
+ var MultiSelectComponent = /** @class */ (function (_super) {
25
+ tslib_1.__extends(MultiSelectComponent, _super);
26
+ function MultiSelectComponent(injector, elementRef) {
27
+ var _this = _super.call(this, injector) || this;
28
+ _this.elementRef = elementRef;
29
+ _this.label = '';
30
+ _this.options = [];
31
+ _this.preview = false;
32
+ _this.model = [];
33
+ _this.isDisabled = false;
34
+ _this.isOptionsVisible = false;
35
+ _this.onChange = (/**
36
+ * @param {?} _
37
+ * @return {?}
38
+ */
39
+ function (_) {
40
+ });
41
+ _this.onTouched = (/**
42
+ * @return {?}
43
+ */
44
+ function () {
45
+ });
46
+ return _this;
47
+ }
48
+ /**
49
+ * @param {?} option
50
+ * @return {?}
51
+ */
52
+ MultiSelectComponent.prototype.optionClicked = /**
53
+ * @param {?} option
54
+ * @return {?}
55
+ */
56
+ function (option) {
57
+ if (this.model) {
58
+ /** @type {?} */
59
+ var index = this.getIndexOfOptionInModel(option);
60
+ if (index < 0) {
61
+ this.model.push(option.value);
62
+ }
63
+ else {
64
+ this.model.splice(index, 1);
65
+ }
66
+ }
67
+ else {
68
+ this.model = [option.value];
69
+ }
70
+ this.onChange(this.model);
71
+ };
72
+ /**
73
+ * @return {?}
74
+ */
75
+ MultiSelectComponent.prototype.selectAll = /**
76
+ * @return {?}
77
+ */
78
+ function () {
79
+ var _this = this;
80
+ this.options.forEach((/**
81
+ * @param {?} option
82
+ * @return {?}
83
+ */
84
+ function (option) {
85
+ if (!_this.model.includes(option.value)) {
86
+ _this.model.push(option.value);
87
+ }
88
+ }));
89
+ this.onChange(this.model);
90
+ };
91
+ /**
92
+ * @return {?}
93
+ */
94
+ MultiSelectComponent.prototype.deselectAll = /**
95
+ * @return {?}
96
+ */
97
+ function () {
98
+ this.model = [];
99
+ this.onChange(this.model);
100
+ };
101
+ /**
102
+ * @return {?}
103
+ */
104
+ MultiSelectComponent.prototype.toggleOptionsVisibility = /**
105
+ * @return {?}
106
+ */
107
+ function () {
108
+ this.isOptionsVisible = !this.isOptionsVisible;
109
+ };
110
+ /**
111
+ * @param {?} option
112
+ * @return {?}
113
+ */
114
+ MultiSelectComponent.prototype.isSelected = /**
115
+ * @param {?} option
116
+ * @return {?}
117
+ */
118
+ function (option) {
119
+ return this.model ? (this.getIndexOfOptionInModel(option) >= 0) : false;
120
+ };
121
+ /**
122
+ * @param {?} event
123
+ * @return {?}
124
+ */
125
+ MultiSelectComponent.prototype.closeIfOpened = /**
126
+ * @param {?} event
127
+ * @return {?}
128
+ */
129
+ function (event) {
130
+ if (this.isOptionsVisible
131
+ && !this.elementRef.nativeElement.querySelector('.lct-multi-select__options-container').contains(event.target)
132
+ && !this.elementRef.nativeElement.querySelector('.lct-multi-select__toggle').contains(event.target)) {
133
+ this.isOptionsVisible = false;
134
+ }
135
+ return true;
136
+ };
137
+ /**
138
+ * @private
139
+ * @param {?} option
140
+ * @return {?}
141
+ */
142
+ MultiSelectComponent.prototype.getIndexOfOptionInModel = /**
143
+ * @private
144
+ * @param {?} option
145
+ * @return {?}
146
+ */
147
+ function (option) {
148
+ return this.model.map(this.trackByFn).indexOf(this.trackByFn(option.value));
149
+ };
150
+ /**
151
+ * @param {?} fn
152
+ * @return {?}
153
+ */
154
+ MultiSelectComponent.prototype.registerOnChange = /**
155
+ * @param {?} fn
156
+ * @return {?}
157
+ */
158
+ function (fn) {
159
+ this.onChange = fn;
160
+ };
161
+ /**
162
+ * @param {?} fn
163
+ * @return {?}
164
+ */
165
+ MultiSelectComponent.prototype.registerOnTouched = /**
166
+ * @param {?} fn
167
+ * @return {?}
168
+ */
169
+ function (fn) {
170
+ this.onTouched = fn;
171
+ };
172
+ /**
173
+ * @param {?} isDisabled
174
+ * @return {?}
175
+ */
176
+ MultiSelectComponent.prototype.setDisabledState = /**
177
+ * @param {?} isDisabled
178
+ * @return {?}
179
+ */
180
+ function (isDisabled) {
181
+ this.isDisabled = isDisabled;
182
+ };
183
+ /**
184
+ * @param {?} obj
185
+ * @return {?}
186
+ */
187
+ MultiSelectComponent.prototype.writeValue = /**
188
+ * @param {?} obj
189
+ * @return {?}
190
+ */
191
+ function (obj) {
192
+ this.model = obj;
193
+ this.onChange(this.model);
194
+ };
195
+ MultiSelectComponent.decorators = [
196
+ { type: Component, args: [{
197
+ selector: 'ode-multi-select',
198
+ 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",
199
+ providers: [{
200
+ provide: NG_VALUE_ACCESSOR,
201
+ useExisting: forwardRef((/**
202
+ * @return {?}
203
+ */
204
+ function () { return MultiSelectComponent; })),
205
+ multi: true
206
+ }],
207
+ host: {
208
+ '(document:click)': 'closeIfOpened($event)'
209
+ },
210
+ 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}"]
211
+ }] }
212
+ ];
213
+ /** @nocollapse */
214
+ MultiSelectComponent.ctorParameters = function () { return [
215
+ { type: Injector },
216
+ { type: ElementRef }
217
+ ]; };
218
+ MultiSelectComponent.propDecorators = {
219
+ label: [{ type: Input }],
220
+ options: [{ type: Input }],
221
+ preview: [{ type: Input }],
222
+ trackByFn: [{ type: Input }]
223
+ };
224
+ return MultiSelectComponent;
225
+ }(OdeComponent));
226
+ export { MultiSelectComponent };
227
+ if (false) {
228
+ /** @type {?} */
229
+ MultiSelectComponent.prototype.label;
230
+ /** @type {?} */
231
+ MultiSelectComponent.prototype.options;
232
+ /** @type {?} */
233
+ MultiSelectComponent.prototype.preview;
234
+ /** @type {?} */
235
+ MultiSelectComponent.prototype.trackByFn;
236
+ /** @type {?} */
237
+ MultiSelectComponent.prototype.model;
238
+ /** @type {?} */
239
+ MultiSelectComponent.prototype.isDisabled;
240
+ /** @type {?} */
241
+ MultiSelectComponent.prototype.isOptionsVisible;
242
+ /**
243
+ * @type {?}
244
+ * @private
245
+ */
246
+ MultiSelectComponent.prototype.onChange;
247
+ /**
248
+ * @type {?}
249
+ * @private
250
+ */
251
+ MultiSelectComponent.prototype.onTouched;
252
+ /**
253
+ * @type {?}
254
+ * @private
255
+ */
256
+ MultiSelectComponent.prototype.elementRef;
257
+ }
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJdkUsa0NBR0M7OztJQUZHLDZCQUFjOztJQUNkLDZCQUFTOzs7OztBQUdiO0lBYTZDLGdEQUFZO0lBbUJyRCw4QkFBWSxRQUFrQixFQUFVLFVBQXNCO1FBQTlELFlBQ0ksa0JBQU0sUUFBUSxDQUFDLFNBQ2xCO1FBRnVDLGdCQUFVLEdBQVYsVUFBVSxDQUFZO1FBakJ2RCxXQUFLLEdBQUcsRUFBRSxDQUFDO1FBR1gsYUFBTyxHQUEyQixFQUFFLENBQUM7UUFHckMsYUFBTyxHQUFHLEtBQUssQ0FBQztRQUtoQixXQUFLLEdBQWEsRUFBRSxDQUFDO1FBRXJCLGdCQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLHNCQUFnQixHQUFHLEtBQUssQ0FBQztRQXVEeEIsY0FBUTs7OztRQUFHLFVBQUMsQ0FBVztRQUMvQixDQUFDLEVBQUE7UUFFTyxlQUFTOzs7UUFBRztRQUNwQixDQUFDLEVBQUE7O0lBdkRELENBQUM7Ozs7O0lBRU0sNENBQWE7Ozs7SUFBcEIsVUFBcUIsTUFBdUI7UUFDeEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFOztnQkFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztZQUNsRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ1gs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QUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Z0JBMUdKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1Qix1dkRBQTRDO29CQUU1QyxTQUFTLEVBQUUsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVTs7OzRCQUFDLGNBQU0sT0FBQSxvQkFBb0IsRUFBcEIsQ0FBb0IsRUFBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQztvQkFDRixJQUFJLEVBQUU7d0JBQ0Ysa0JBQWtCLEVBQUUsdUJBQXVCO3FCQUM5Qzs7aUJBQ0o7Ozs7Z0JBdEJrRCxRQUFRO2dCQUF2QyxVQUFVOzs7d0JBd0J6QixLQUFLOzBCQUdMLEtBQUs7MEJBR0wsS0FBSzs0QkFHTCxLQUFLOztJQW9GViwyQkFBQztDQUFBLEFBM0dELENBYTZDLFlBQVksR0E4RnhEO1NBOUZZLG9CQUFvQjs7O0lBQzdCLHFDQUNrQjs7SUFFbEIsdUNBQzRDOztJQUU1Qyx1Q0FDdUI7O0lBRXZCLHlDQUNzRDs7SUFFdEQscUNBQTRCOztJQUU1QiwwQ0FBMEI7O0lBRTFCLGdEQUFnQzs7Ozs7SUF1RGhDLHdDQUNDOzs7OztJQUVELHlDQUNDOzs7OztJQXpEK0IsMENBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKiBNdWx0aVNlbGVjdENvbXBvbmVudCBpcyBhIHJld3JpdGUgb2YgTXVsdGlDb21ib0NvbXBvbmVudCB0byBpbnRlZ3JhdGUgaXQgZWFzaWx5IGluIGFuZ3VsYXIgZm9ybXMgKi9cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RPcHRpb248Sz4ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IEs7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLW11bHRpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpjbGljayknOiAnY2xvc2VJZk9wZW5lZCgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQ8Sz4gZXh0ZW5kcyBPZGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWwgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbjxLPj4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByZXZpZXcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRyYWNrQnlGbjogKG9wdGlvblZhbHVlOiBLKSA9PiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBwdWJsaWMgbW9kZWw6IEFycmF5PEs+ID0gW107XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzT3B0aW9uc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3B0aW9uQ2xpY2tlZChvcHRpb246IFNlbGVjdE9wdGlvbjxLPikge1xuICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEluZGV4T2ZPcHRpb25Jbk1vZGVsKG9wdGlvbik7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5wdXNoKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICBpZiAoIXRoaXMubW9kZWwuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSkge1xuICAgICAgICAgIHRoaXMubW9kZWwucHVzaChvcHRpb24udmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU9wdGlvbnNWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3B0aW9uc1Zpc2libGUgPSAhdGhpcy5pc09wdGlvbnNWaXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uPEs+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsID8gKHRoaXMuZ2V0SW5kZXhPZk9wdGlvbkluTW9kZWwob3B0aW9uKSA+PSAwKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZUlmT3BlbmVkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25zVmlzaWJsZVxuICAgICAgICAgICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubGN0LW11bHRpLXNlbGVjdF9fb3B0aW9ucy1jb250YWluZXInKS5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICAgJiYgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sY3QtbXVsdGktc2VsZWN0X190b2dnbGUnKS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGV4T2ZPcHRpb25Jbk1vZGVsKG9wdGlvbjogU2VsZWN0T3B0aW9uPEs+KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwubWFwKHRoaXMudHJhY2tCeUZuKS5pbmRleE9mKHRoaXMudHJhY2tCeUZuKG9wdGlvbi52YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogQXJyYXk8Sz4pID0+IHtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogQXJyYXk8Sz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG9iajtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLm1vZGVsKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,40 @@
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 * as tslib_1 from "tslib";
7
+ import { OdeComponent } from 'ngx-ode-core';
8
+ import { Component, Input, Injector } from '@angular/core';
9
+ var PanelSectionComponent = /** @class */ (function (_super) {
10
+ tslib_1.__extends(PanelSectionComponent, _super);
11
+ function PanelSectionComponent(injector) {
12
+ var _this = _super.call(this, injector) || this;
13
+ _this.folded = null;
14
+ return _this;
15
+ }
16
+ PanelSectionComponent.decorators = [
17
+ { type: Component, args: [{
18
+ selector: 'ode-panel-section',
19
+ 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",
20
+ styles: [".panel-section-header{font-size:1.1em;padding:10px}.panel-section-header.foldable{cursor:pointer}.panel-section-content{padding:15px}"]
21
+ }] }
22
+ ];
23
+ /** @nocollapse */
24
+ PanelSectionComponent.ctorParameters = function () { return [
25
+ { type: Injector }
26
+ ]; };
27
+ PanelSectionComponent.propDecorators = {
28
+ sectionTitle: [{ type: Input, args: ['section-title',] }],
29
+ folded: [{ type: Input }]
30
+ };
31
+ return PanelSectionComponent;
32
+ }(OdeComponent));
33
+ export { PanelSectionComponent };
34
+ if (false) {
35
+ /** @type {?} */
36
+ PanelSectionComponent.prototype.sectionTitle;
37
+ /** @type {?} */
38
+ PanelSectionComponent.prototype.folded;
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFuZWwtc2VjdGlvbi9wYW5lbC1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRDtJQUsyQyxpREFBWTtJQUduRCwrQkFBWSxRQUFrQjtRQUE5QixZQUNJLGtCQUFNLFFBQVEsQ0FBQyxTQUNsQjtRQUhRLFlBQU0sR0FBWSxJQUFJLENBQUM7O0lBR2hDLENBQUM7O2dCQVZKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3Qix3b0JBQTZDOztpQkFFaEQ7Ozs7Z0JBTjBCLFFBQVE7OzsrQkFROUIsS0FBSyxTQUFDLGVBQWU7eUJBQ3JCLEtBQUs7O0lBSVYsNEJBQUM7Q0FBQSxBQVhELENBSzJDLFlBQVksR0FNdEQ7U0FOWSxxQkFBcUI7OztJQUM5Qiw2Q0FBNkM7O0lBQzdDLHVDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1wYW5lbC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGFuZWwtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCdzZWN0aW9uLXRpdGxlJykgc2VjdGlvblRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9sZGVkOiBib29sZWFuID0gbnVsbDtcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
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 * as tslib_1 from "tslib";
7
+ import { OdeComponent } from 'ngx-ode-core';
8
+ import { Component, Injector } from '@angular/core';
9
+ var PortalComponent = /** @class */ (function (_super) {
10
+ tslib_1.__extends(PortalComponent, _super);
11
+ function PortalComponent(injector) {
12
+ return _super.call(this, injector) || this;
13
+ }
14
+ PortalComponent.decorators = [
15
+ { type: Component, args: [{
16
+ selector: 'ode-portal',
17
+ 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",
18
+ styles: ["header{position:relative;display:flex;align-items:center;top:0;width:100%}"]
19
+ }] }
20
+ ];
21
+ /** @nocollapse */
22
+ PortalComponent.ctorParameters = function () { return [
23
+ { type: Injector }
24
+ ]; };
25
+ return PortalComponent;
26
+ }(OdeComponent));
27
+ export { PortalComponent };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wb3J0YWwvcG9ydGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBEO0lBS3FDLDJDQUFZO0lBQzdDLHlCQUFZLFFBQWtCO2VBQzFCLGtCQUFNLFFBQVEsQ0FBQztJQUNuQixDQUFDOztnQkFSSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLHFWQUFzQzs7aUJBRXpDOzs7O2dCQU5tQixRQUFROztJQVc1QixzQkFBQztDQUFBLEFBVEQsQ0FLcUMsWUFBWSxHQUloRDtTQUpZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1wb3J0YWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BvcnRhbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcnRhbENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG59XG4iXX0=