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

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/esm2020/lib/components/datepicker/datepicker.component.mjs +148 -0
  2. package/esm2020/lib/components/dropdown/dropdown.component.mjs +55 -0
  3. package/esm2020/lib/components/ellipsis/ellipsis.component.mjs +53 -0
  4. package/esm2020/lib/components/form-errors/form-errors.component.mjs +35 -0
  5. package/esm2020/lib/components/form-field/form-field.component.mjs +24 -0
  6. package/esm2020/lib/components/item-tree/item-tree.component.mjs +170 -0
  7. package/esm2020/lib/components/lightbox/lightbox.component.mjs +70 -0
  8. package/esm2020/lib/components/lightbox-confirm/lightbox-confirm.component.mjs +43 -0
  9. package/esm2020/lib/components/list/list.component.mjs +88 -0
  10. package/esm2020/lib/components/list-checkable/list-checkable.component.mjs +79 -0
  11. package/esm2020/lib/components/message-box/message-box.component.mjs +92 -0
  12. package/esm2020/lib/components/message-sticker/message-sticker.component.mjs +51 -0
  13. package/esm2020/lib/components/mono-select/mono-select.component.mjs +83 -0
  14. package/esm2020/lib/components/multi-combo/multi-combo.component.mjs +166 -0
  15. package/esm2020/lib/components/multi-select/multi-select.component.mjs +104 -0
  16. package/esm2020/lib/components/panel-section/panel-section.component.mjs +23 -0
  17. package/esm2020/lib/components/portal/portal.component.mjs +15 -0
  18. package/esm2020/lib/components/push-panel/push-panel.component.mjs +43 -0
  19. package/esm2020/lib/components/search-input/search-input.component.mjs +87 -0
  20. package/esm2020/lib/components/search-toolbar/search-toolbar.component.mjs +56 -0
  21. package/esm2020/lib/components/side-layout/side-layout.component.mjs +23 -0
  22. package/esm2020/lib/components/side-panel/side-panel.component.mjs +41 -0
  23. package/esm2020/lib/components/spinner-cube/spinner-cube.component.mjs +31 -0
  24. package/esm2020/lib/components/table/pager.component.mjs +48 -0
  25. package/esm2020/lib/components/tooltip/tooltip.component.mjs +104 -0
  26. package/esm2020/lib/components/upload-files/upload-files.component.mjs +59 -0
  27. package/esm2020/lib/components/value-editable/simple-select.component.mjs +29 -0
  28. package/esm2020/lib/components/wizard/wizard.component.mjs +152 -0
  29. package/esm2020/lib/directives/anchor.directive.mjs +27 -0
  30. package/esm2020/lib/directives/drag-and-drop-files.directive.mjs +82 -0
  31. package/esm2020/lib/directives/dynamic-component/component-descriptor.model.mjs +15 -0
  32. package/esm2020/lib/directives/dynamic-component/dynamic-component.directive.mjs +58 -0
  33. package/esm2020/lib/directives/dynamictemplate.directive.mjs +83 -0
  34. package/esm2020/lib/directives/object-url.directive.mjs +28 -0
  35. package/esm2020/lib/ngx-ode-ui.module.mjs +282 -0
  36. package/esm2020/lib/pipes/bytes.pipe.mjs +20 -0
  37. package/esm2020/lib/pipes/filter.pipe.mjs +97 -0
  38. package/esm2020/lib/pipes/flattenObjArray.pipe.mjs +35 -0
  39. package/esm2020/lib/pipes/keys.pipe.mjs +20 -0
  40. package/esm2020/lib/pipes/length.pipe.mjs +17 -0
  41. package/esm2020/lib/pipes/limit.pipe.mjs +17 -0
  42. package/esm2020/lib/pipes/localizedDate.pipe.mjs +23 -0
  43. package/esm2020/lib/pipes/orderBy.pipe.mjs +161 -0
  44. package/esm2020/lib/pipes/replace.pipe.mjs +20 -0
  45. package/esm2020/lib/pipes/store.pipe.mjs +17 -0
  46. package/esm2020/lib/services/dynamicModuleImports.service.mjs +13 -0
  47. package/esm2020/lib/services/inputFile.service.mjs +56 -0
  48. package/esm2020/lib/services/labels.service.mjs +32 -0
  49. package/esm2020/lib/services/spinner.service.mjs +76 -0
  50. package/esm2020/lib/utils/math.mjs +19 -0
  51. package/esm2020/lib/utils/string.mjs +11 -0
  52. package/esm2020/lib/utils/testing.mjs +7 -0
  53. package/esm2020/ngx-ode-ui.mjs +5 -0
  54. package/esm2020/public-api.mjs +57 -0
  55. package/fesm2015/ngx-ode-ui.mjs +2954 -0
  56. package/fesm2015/ngx-ode-ui.mjs.map +1 -0
  57. package/fesm2020/ngx-ode-ui.mjs +2952 -0
  58. package/fesm2020/ngx-ode-ui.mjs.map +1 -0
  59. package/index.d.ts +5 -0
  60. package/lib/components/datepicker/datepicker.component.d.ts +7 -2
  61. package/lib/components/dropdown/dropdown.component.d.ts +3 -0
  62. package/lib/components/ellipsis/ellipsis.component.d.ts +4 -1
  63. package/lib/components/form-errors/form-errors.component.d.ts +3 -0
  64. package/lib/components/form-field/form-field.component.d.ts +3 -0
  65. package/lib/components/item-tree/item-tree.component.d.ts +5 -1
  66. package/lib/components/lightbox/lightbox.component.d.ts +5 -1
  67. package/lib/components/lightbox-confirm/lightbox-confirm.component.d.ts +3 -0
  68. package/lib/components/list/list.component.d.ts +5 -1
  69. package/lib/components/list-checkable/list-checkable.component.d.ts +5 -1
  70. package/lib/components/message-box/message-box.component.d.ts +8 -4
  71. package/lib/components/message-sticker/message-sticker.component.d.ts +3 -0
  72. package/lib/components/mono-select/mono-select.component.d.ts +3 -0
  73. package/lib/components/multi-combo/multi-combo.component.d.ts +4 -1
  74. package/lib/components/multi-select/multi-select.component.d.ts +3 -0
  75. package/lib/components/panel-section/panel-section.component.d.ts +3 -0
  76. package/lib/components/portal/portal.component.d.ts +3 -0
  77. package/lib/components/push-panel/push-panel.component.d.ts +4 -1
  78. package/lib/components/search-input/search-input.component.d.ts +5 -1
  79. package/lib/components/search-toolbar/search-toolbar.component.d.ts +3 -0
  80. package/lib/components/side-layout/side-layout.component.d.ts +3 -0
  81. package/lib/components/side-panel/side-panel.component.d.ts +4 -1
  82. package/lib/components/spinner-cube/spinner-cube.component.d.ts +5 -1
  83. package/lib/components/table/pager.component.d.ts +3 -0
  84. package/lib/components/tooltip/tooltip.component.d.ts +3 -0
  85. package/lib/components/upload-files/upload-files.component.d.ts +3 -0
  86. package/lib/components/value-editable/simple-select.component.d.ts +3 -0
  87. package/lib/components/wizard/wizard.component.d.ts +5 -0
  88. package/lib/directives/anchor.directive.d.ts +3 -0
  89. package/lib/directives/drag-and-drop-files.directive.d.ts +3 -0
  90. package/lib/directives/dynamic-component/dynamic-component.directive.d.ts +3 -0
  91. package/lib/directives/dynamictemplate.directive.d.ts +4 -1
  92. package/lib/directives/object-url.directive.d.ts +3 -0
  93. package/lib/ngx-ode-ui.module.d.ts +53 -2
  94. package/lib/pipes/bytes.pipe.d.ts +3 -0
  95. package/lib/pipes/filter.pipe.d.ts +3 -0
  96. package/lib/pipes/flattenObjArray.pipe.d.ts +3 -0
  97. package/lib/pipes/keys.pipe.d.ts +3 -0
  98. package/lib/pipes/length.pipe.d.ts +3 -0
  99. package/lib/pipes/limit.pipe.d.ts +3 -0
  100. package/lib/pipes/localizedDate.pipe.d.ts +3 -0
  101. package/lib/pipes/orderBy.pipe.d.ts +3 -0
  102. package/lib/pipes/replace.pipe.d.ts +8 -0
  103. package/lib/pipes/store.pipe.d.ts +3 -0
  104. package/lib/services/dynamicModuleImports.service.d.ts +3 -0
  105. package/lib/services/inputFile.service.d.ts +3 -0
  106. package/lib/services/labels.service.d.ts +3 -0
  107. package/lib/services/spinner.service.d.ts +4 -1
  108. package/package.json +29 -17
  109. package/public-api.d.ts +3 -0
  110. package/CHANGELOG.md +0 -14
  111. package/bundles/ngx-ode-ui.umd.js +0 -5804
  112. package/bundles/ngx-ode-ui.umd.js.map +0 -1
  113. package/bundles/ngx-ode-ui.umd.min.js +0 -17
  114. package/bundles/ngx-ode-ui.umd.min.js.map +0 -1
  115. package/esm2015/lib/components/datepicker/datepicker.component.js +0 -261
  116. package/esm2015/lib/components/dropdown/dropdown.component.js +0 -76
  117. package/esm2015/lib/components/ellipsis/ellipsis.component.js +0 -98
  118. package/esm2015/lib/components/form-errors/form-errors.component.js +0 -65
  119. package/esm2015/lib/components/form-field/form-field.component.js +0 -40
  120. package/esm2015/lib/components/item-tree/item-tree.component.js +0 -289
  121. package/esm2015/lib/components/lightbox/lightbox.component.js +0 -129
  122. package/esm2015/lib/components/lightbox-confirm/lightbox-confirm.component.js +0 -65
  123. package/esm2015/lib/components/list/list.component.js +0 -140
  124. package/esm2015/lib/components/list-checkable/list-checkable.component.js +0 -137
  125. package/esm2015/lib/components/message-box/message-box.component.js +0 -153
  126. package/esm2015/lib/components/message-sticker/message-sticker.component.js +0 -81
  127. package/esm2015/lib/components/mono-select/mono-select.component.js +0 -164
  128. package/esm2015/lib/components/multi-combo/multi-combo.component.js +0 -255
  129. package/esm2015/lib/components/multi-select/multi-select.component.js +0 -214
  130. package/esm2015/lib/components/panel-section/panel-section.component.js +0 -38
  131. package/esm2015/lib/components/portal/portal.component.js +0 -27
  132. package/esm2015/lib/components/push-panel/push-panel.component.js +0 -81
  133. package/esm2015/lib/components/search-input/search-input.component.js +0 -176
  134. package/esm2015/lib/components/search-toolbar/search-toolbar.component.js +0 -84
  135. package/esm2015/lib/components/side-layout/side-layout.component.js +0 -39
  136. package/esm2015/lib/components/side-panel/side-panel.component.js +0 -76
  137. package/esm2015/lib/components/spinner-cube/spinner-cube.component.js +0 -67
  138. package/esm2015/lib/components/table/pager.component.js +0 -95
  139. package/esm2015/lib/components/tooltip/tooltip.component.js +0 -172
  140. package/esm2015/lib/components/upload-files/upload-files.component.js +0 -112
  141. package/esm2015/lib/components/value-editable/simple-select.component.js +0 -57
  142. package/esm2015/lib/components/wizard/wizard.component.js +0 -225
  143. package/esm2015/lib/directives/anchor.directive.js +0 -34
  144. package/esm2015/lib/directives/drag-and-drop-files.directive.js +0 -126
  145. package/esm2015/lib/directives/dynamic-component/component-descriptor.model.js +0 -34
  146. package/esm2015/lib/directives/dynamic-component/dynamic-component.directive.js +0 -100
  147. package/esm2015/lib/directives/dynamictemplate.directive.js +0 -159
  148. package/esm2015/lib/directives/object-url.directive.js +0 -53
  149. package/esm2015/lib/ngx-ode-ui.module.js +0 -188
  150. package/esm2015/lib/pipes/bytes.pipe.js +0 -27
  151. package/esm2015/lib/pipes/filter.pipe.js +0 -141
  152. package/esm2015/lib/pipes/flattenObjArray.pipe.js +0 -52
  153. package/esm2015/lib/pipes/keys.pipe.js +0 -27
  154. package/esm2015/lib/pipes/length.pipe.js +0 -22
  155. package/esm2015/lib/pipes/limit.pipe.js +0 -24
  156. package/esm2015/lib/pipes/localizedDate.pipe.js +0 -44
  157. package/esm2015/lib/pipes/orderBy.pipe.js +0 -269
  158. package/esm2015/lib/pipes/store.pipe.js +0 -24
  159. package/esm2015/lib/services/dynamicModuleImports.service.js +0 -19
  160. package/esm2015/lib/services/inputFile.service.js +0 -80
  161. package/esm2015/lib/services/labels.service.js +0 -54
  162. package/esm2015/lib/services/spinner.service.js +0 -163
  163. package/esm2015/lib/utils/math.js +0 -49
  164. package/esm2015/lib/utils/string.js +0 -29
  165. package/esm2015/lib/utils/testing.js +0 -20
  166. package/esm2015/ngx-ode-ui.js +0 -12
  167. package/esm2015/public-api.js +0 -59
  168. package/esm5/lib/components/datepicker/datepicker.component.js +0 -292
  169. package/esm5/lib/components/dropdown/dropdown.component.js +0 -81
  170. package/esm5/lib/components/ellipsis/ellipsis.component.js +0 -106
  171. package/esm5/lib/components/form-errors/form-errors.component.js +0 -73
  172. package/esm5/lib/components/form-field/form-field.component.js +0 -41
  173. package/esm5/lib/components/item-tree/item-tree.component.js +0 -345
  174. package/esm5/lib/components/lightbox/lightbox.component.js +0 -141
  175. package/esm5/lib/components/lightbox-confirm/lightbox-confirm.component.js +0 -67
  176. package/esm5/lib/components/list/list.component.js +0 -146
  177. package/esm5/lib/components/list-checkable/list-checkable.component.js +0 -148
  178. package/esm5/lib/components/message-box/message-box.component.js +0 -190
  179. package/esm5/lib/components/message-sticker/message-sticker.component.js +0 -92
  180. package/esm5/lib/components/mono-select/mono-select.component.js +0 -192
  181. package/esm5/lib/components/multi-combo/multi-combo.component.js +0 -294
  182. package/esm5/lib/components/multi-select/multi-select.component.js +0 -258
  183. package/esm5/lib/components/panel-section/panel-section.component.js +0 -40
  184. package/esm5/lib/components/portal/portal.component.js +0 -28
  185. package/esm5/lib/components/push-panel/push-panel.component.js +0 -91
  186. package/esm5/lib/components/search-input/search-input.component.js +0 -199
  187. package/esm5/lib/components/search-toolbar/search-toolbar.component.js +0 -93
  188. package/esm5/lib/components/side-layout/side-layout.component.js +0 -41
  189. package/esm5/lib/components/side-panel/side-panel.component.js +0 -85
  190. package/esm5/lib/components/spinner-cube/spinner-cube.component.js +0 -76
  191. package/esm5/lib/components/table/pager.component.js +0 -113
  192. package/esm5/lib/components/tooltip/tooltip.component.js +0 -188
  193. package/esm5/lib/components/upload-files/upload-files.component.js +0 -133
  194. package/esm5/lib/components/value-editable/simple-select.component.js +0 -59
  195. package/esm5/lib/components/wizard/wizard.component.js +0 -161
  196. package/esm5/lib/directives/anchor.directive.js +0 -39
  197. package/esm5/lib/directives/drag-and-drop-files.directive.js +0 -146
  198. package/esm5/lib/directives/dynamic-component/component-descriptor.model.js +0 -44
  199. package/esm5/lib/directives/dynamic-component/dynamic-component.directive.js +0 -109
  200. package/esm5/lib/directives/dynamictemplate.directive.js +0 -175
  201. package/esm5/lib/directives/object-url.directive.js +0 -62
  202. package/esm5/lib/ngx-ode-ui.module.js +0 -199
  203. package/esm5/lib/pipes/bytes.pipe.js +0 -37
  204. package/esm5/lib/pipes/filter.pipe.js +0 -179
  205. package/esm5/lib/pipes/flattenObjArray.pipe.js +0 -62
  206. package/esm5/lib/pipes/keys.pipe.js +0 -36
  207. package/esm5/lib/pipes/length.pipe.js +0 -30
  208. package/esm5/lib/pipes/limit.pipe.js +0 -35
  209. package/esm5/lib/pipes/localizedDate.pipe.js +0 -49
  210. package/esm5/lib/pipes/orderBy.pipe.js +0 -280
  211. package/esm5/lib/pipes/store.pipe.js +0 -35
  212. package/esm5/lib/services/dynamicModuleImports.service.js +0 -21
  213. package/esm5/lib/services/inputFile.service.js +0 -98
  214. package/esm5/lib/services/labels.service.js +0 -68
  215. package/esm5/lib/services/spinner.service.js +0 -195
  216. package/esm5/lib/utils/math.js +0 -49
  217. package/esm5/lib/utils/string.js +0 -29
  218. package/esm5/lib/utils/testing.js +0 -20
  219. package/esm5/ngx-ode-ui.js +0 -12
  220. package/esm5/public-api.js +0 -59
  221. package/fesm2015/ngx-ode-ui.js +0 -5027
  222. package/fesm2015/ngx-ode-ui.js.map +0 -1
  223. package/fesm5/ngx-ode-ui.js +0 -5560
  224. package/fesm5/ngx-ode-ui.js.map +0 -1
  225. package/ngx-ode-ui.d.ts +0 -6
  226. package/ngx-ode-ui.metadata.json +0 -1
@@ -1,294 +0,0 @@
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=
@@ -1,258 +0,0 @@
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=
@@ -1,40 +0,0 @@
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==
@@ -1,28 +0,0 @@
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=