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
@@ -1,83 +0,0 @@
1
- import { Component, forwardRef, Input } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { OdeComponent } from 'ngx-ode-core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "ngx-ode-sijil";
7
- export class MonoSelectComponent extends OdeComponent {
8
- constructor(elementRef, injector) {
9
- super(injector);
10
- this.elementRef = elementRef;
11
- this.placeholder = 'monoselect.placeholder.default';
12
- this.options = [];
13
- this.translateOptions = true;
14
- this.opened = false;
15
- this.selectedOption = null;
16
- this.disabled = false;
17
- this.onChange = (_) => {
18
- };
19
- this.onTouched = () => {
20
- };
21
- }
22
- optionClicked(option) {
23
- this.selectedOption = option;
24
- this.opened = false;
25
- this.onChange(this.selectedOption != null ? this.selectedOption.value : null);
26
- }
27
- onClickOnDocument(event) {
28
- if (this.opened &&
29
- !this.elementRef.nativeElement.querySelector('.lct-form-select').contains(event.target)) {
30
- this.opened = false;
31
- }
32
- return true;
33
- }
34
- onClickOnHost() {
35
- if (!this.opened && !this.disabled) {
36
- this.opened = true;
37
- }
38
- else {
39
- this.opened = false;
40
- }
41
- }
42
- registerOnChange(fn) {
43
- this.onChange = fn;
44
- }
45
- registerOnTouched(fn) {
46
- this.onTouched = fn;
47
- }
48
- setDisabledState(isDisabled) {
49
- this.disabled = isDisabled;
50
- }
51
- writeValue(obj) {
52
- this.selectedOption = this.options.find(option => option.value === obj);
53
- this.onChange(this.selectedOption ? this.selectedOption.value : null);
54
- }
55
- }
56
- MonoSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MonoSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
57
- MonoSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MonoSelectComponent, selector: "ode-mono-select", inputs: { placeholder: "placeholder", options: "options", trackByFn: "trackByFn", translateOptions: "translateOptions", disabled: "disabled" }, host: { listeners: { "document:click": "onClickOnDocument($event)", "click": "onClickOnHost()" } }, providers: [{
58
- provide: NG_VALUE_ACCESSOR,
59
- useExisting: forwardRef(() => MonoSelectComponent),
60
- multi: true
61
- }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-select lct-form-select\" [ngClass]=\"{'form-select--opened': opened, 'form-select--disabled': disabled}\">\n <ul>\n <li class=\"form-select__options--selected lct-form-select__options--selected\">\n <strong>{{selectedOption ? ((translateOptions == true) ? (selectedOption.label | translate) : selectedOption.label) : (placeholder | translate)}}</strong>\n <ul class=\"form-select__list lct-form-select__list\" *ngIf=\"opened\">\n <li class=\"form-select__options lct-form-select__options\"\n (click)=\"$event.stopPropagation(); optionClicked()\">{{placeholder | translate}}</li>\n <li class=\"form-select__options lct-form-select__options\"\n *ngFor=\"let option of options\"\n (click)=\"$event.stopPropagation(); optionClicked(option)\">{{(translateOptions == true) ? (option.label | translate) : option.label}}</li>\n </ul>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MonoSelectComponent, decorators: [{
63
- type: Component,
64
- args: [{ selector: 'ode-mono-select', providers: [{
65
- provide: NG_VALUE_ACCESSOR,
66
- useExisting: forwardRef(() => MonoSelectComponent),
67
- multi: true
68
- }], host: {
69
- '(document:click)': 'onClickOnDocument($event)',
70
- '(click)': 'onClickOnHost()'
71
- }, template: "<div class=\"form-select lct-form-select\" [ngClass]=\"{'form-select--opened': opened, 'form-select--disabled': disabled}\">\n <ul>\n <li class=\"form-select__options--selected lct-form-select__options--selected\">\n <strong>{{selectedOption ? ((translateOptions == true) ? (selectedOption.label | translate) : selectedOption.label) : (placeholder | translate)}}</strong>\n <ul class=\"form-select__list lct-form-select__list\" *ngIf=\"opened\">\n <li class=\"form-select__options lct-form-select__options\"\n (click)=\"$event.stopPropagation(); optionClicked()\">{{placeholder | translate}}</li>\n <li class=\"form-select__options lct-form-select__options\"\n *ngFor=\"let option of options\"\n (click)=\"$event.stopPropagation(); optionClicked(option)\">{{(translateOptions == true) ? (option.label | translate) : option.label}}</li>\n </ul>\n </li>\n </ul>\n</div>\n" }]
72
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { placeholder: [{
73
- type: Input
74
- }], options: [{
75
- type: Input
76
- }], trackByFn: [{
77
- type: Input
78
- }], translateOptions: [{
79
- type: Input
80
- }], disabled: [{
81
- type: Input
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uby1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbW9uby1zZWxlY3QvbW9uby1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbW9uby1zZWxlY3QvbW9uby1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBZTVDLE1BQU0sT0FBTyxtQkFBdUIsU0FBUSxZQUFZO0lBMEJwRCxZQUFvQixVQUFzQixFQUFFLFFBQWtCO1FBQzFELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURBLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4Qm5DLGdCQUFXLEdBQUcsZ0NBQWdDLENBQUM7UUFHL0MsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFNckMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBRWpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixtQkFBYyxHQUFvQixJQUFJLENBQUM7UUFHdkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQTRCaEIsYUFBUSxHQUFHLENBQUMsQ0FBSSxFQUFFLEVBQUU7UUFDNUIsQ0FBQyxDQUFBO1FBRU8sY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUN6QixDQUFDLENBQUE7SUF0QkQsQ0FBQztJQVJNLGFBQWEsQ0FBQyxNQUF3QjtRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQU1NLGlCQUFpQixDQUFDLEtBQWlCO1FBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU07WUFDWCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sYUFBYTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQztJQVFELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBTTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7O2dIQW5FUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw4UkFWakIsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsaURDWk4sNjZCQWNBOzJGRElhLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDSSxpQkFBaUIsYUFFaEIsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQyxRQUNJO3dCQUNGLGtCQUFrQixFQUFFLDJCQUEyQjt3QkFDL0MsU0FBUyxFQUFFLGlCQUFpQjtxQkFDL0I7d0hBSU0sV0FBVztzQkFEakIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFRQyxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7U2VsZWN0T3B0aW9ufSBmcm9tICcuLi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1tb25vLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vbm8tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbm9TZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6Y2xpY2spJzogJ29uQ2xpY2tPbkRvY3VtZW50KCRldmVudCknLFxuICAgICAgICAnKGNsaWNrKSc6ICdvbkNsaWNrT25Ib3N0KCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25vU2VsZWN0Q29tcG9uZW50PEs+IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyID0gJ21vbm9zZWxlY3QucGxhY2Vob2xkZXIuZGVmYXVsdCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb248Sz4+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cmFja0J5Rm46IChvcHRpb25WYWx1ZTogSykgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHJhbnNsYXRlT3B0aW9uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgb3BlbmVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbjxLPiA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIG9wdGlvbkNsaWNrZWQob3B0aW9uPzogU2VsZWN0T3B0aW9uPEs+KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG4gICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbiAhPSBudWxsID8gdGhpcy5zZWxlY3RlZE9wdGlvbi52YWx1ZSA6IG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja09uRG9jdW1lbnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMub3BlbmVkICYmXG4gICAgICAgICAgICAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmxjdC1mb3JtLXNlbGVjdCcpLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tPbkhvc3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IEspID0+IHtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IEspOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IG9iaik7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc2VsZWN0ZWRPcHRpb24udmFsdWUgOiBudWxsKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgbGN0LWZvcm0tc2VsZWN0XCIgW25nQ2xhc3NdPVwieydmb3JtLXNlbGVjdC0tb3BlbmVkJzogb3BlbmVkLCAnZm9ybS1zZWxlY3QtLWRpc2FibGVkJzogZGlzYWJsZWR9XCI+XG4gIDx1bD5cbiAgICA8bGkgY2xhc3M9XCJmb3JtLXNlbGVjdF9fb3B0aW9ucy0tc2VsZWN0ZWQgbGN0LWZvcm0tc2VsZWN0X19vcHRpb25zLS1zZWxlY3RlZFwiPlxuICAgICAgPHN0cm9uZz57e3NlbGVjdGVkT3B0aW9uID8gKCh0cmFuc2xhdGVPcHRpb25zID09IHRydWUpID8gKHNlbGVjdGVkT3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlKSA6IHNlbGVjdGVkT3B0aW9uLmxhYmVsKSA6IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSl9fTwvc3Ryb25nPlxuICAgICAgPHVsIGNsYXNzPVwiZm9ybS1zZWxlY3RfX2xpc3QgbGN0LWZvcm0tc2VsZWN0X19saXN0XCIgKm5nSWY9XCJvcGVuZWRcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiZm9ybS1zZWxlY3RfX29wdGlvbnMgbGN0LWZvcm0tc2VsZWN0X19vcHRpb25zXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IG9wdGlvbkNsaWNrZWQoKVwiPnt7cGxhY2Vob2xkZXIgfCB0cmFuc2xhdGV9fTwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cImZvcm0tc2VsZWN0X19vcHRpb25zIGxjdC1mb3JtLXNlbGVjdF9fb3B0aW9uc1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgb3B0aW9uQ2xpY2tlZChvcHRpb24pXCI+e3sodHJhbnNsYXRlT3B0aW9ucyA9PSB0cnVlKSA/IChvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUpIDogb3B0aW9uLmxhYmVsfX08L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -1,166 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { OdeComponent } from 'ngx-ode-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/labels.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "../search-input/search-input.component";
7
- import * as i4 from "ngx-ode-sijil";
8
- import * as i5 from "../../pipes/filter.pipe";
9
- import * as i6 from "../../pipes/orderBy.pipe";
10
- import * as i7 from "../../pipes/store.pipe";
11
- /* If you need to use multi-combo in a form you should give a look to the MultiSelectComponent. */
12
- export class MultiComboComponent extends OdeComponent {
13
- constructor(_eref, labelsService, injector) {
14
- super(injector);
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
- this.input = '';
33
- }
34
- };
35
- this.show = false;
36
- }
37
- set comboModel(model) {
38
- this._comboModel = model;
39
- if (!model) {
40
- this.filteredModel = [];
41
- return;
42
- }
43
- for (let i = 0; i < this.filteredModel.length; i++) {
44
- const idx = model.indexOf(this.filteredModel[i]);
45
- if (idx < 0) {
46
- this.filteredModel.splice(idx, 1);
47
- i--;
48
- }
49
- }
50
- }
51
- labels(label) {
52
- return this.labelsService.getLabel(label);
53
- }
54
- toggleVisibility() {
55
- this.show = !this.show;
56
- if (this.show) {
57
- this.search.reset();
58
- this.onOpen.emit();
59
- }
60
- else {
61
- this.onClose.emit();
62
- }
63
- }
64
- isSelected(item) {
65
- return this.filteredModel && this.filteredModel.indexOf(item) >= 0;
66
- }
67
- isDisabled() {
68
- return this.filteredModel && this.maxSelected &&
69
- this.maxSelected <= this.filteredModel.length;
70
- }
71
- toggleItem(item) {
72
- const idx = this.filteredModel.indexOf(item);
73
- if (idx >= 0) {
74
- this.filteredModel.splice(idx, 1);
75
- this.onDeselectItem.emit(item);
76
- }
77
- else if (!this.maxSelected ||
78
- this.filteredModel.length < this.maxSelected) {
79
- this.filteredModel.push(item);
80
- this.onSelectItem.emit(item);
81
- }
82
- this.filteredModelChange.emit(this.filteredModel);
83
- }
84
- selectAll() {
85
- this.filteredModel = [];
86
- for (let i = 0; i < this.filteredComboModel.length; i++) {
87
- this.filteredModel.push(this.filteredComboModel[i]);
88
- }
89
- this.filteredModelChange.emit(this.filteredModel);
90
- }
91
- deselectAll() {
92
- this.filteredModel = [];
93
- this.filteredModelChange.emit(this.filteredModel);
94
- }
95
- displayItem(item) {
96
- return item instanceof Object ?
97
- this.display && typeof this.display === 'string' ?
98
- item[this.display] :
99
- item.toString() :
100
- this.display && this.display instanceof Function ?
101
- this.display(item || '') :
102
- item;
103
- }
104
- onClick(event) {
105
- if (this.show && !this._eref.nativeElement.contains(event.target)) {
106
- this.toggleVisibility();
107
- }
108
- return true;
109
- }
110
- getFilter() {
111
- if (!this.filter) {
112
- return '';
113
- }
114
- let filter = '';
115
- if (this._comboModel.length > 0) {
116
- if (typeof this._comboModel[0] === 'string') {
117
- filter = this.search.input;
118
- }
119
- else {
120
- filter = {};
121
- filter[this.filter] = this.search.input;
122
- }
123
- }
124
- return filter;
125
- }
126
- }
127
- MultiComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MultiComboComponent, deps: [{ token: i0.ElementRef }, { token: i1.LabelsService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
128
- MultiComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MultiComboComponent, selector: "ode-multi-combo", inputs: { comboModel: "comboModel", filteredModel: ["outputModel", "filteredModel"], title: "title", display: "display", filter: "filter", orderBy: "orderBy", reverse: "reverse", maxSelected: ["max", "maxSelected"], disabled: "disabled" }, outputs: { onSelectItem: "onSelectItem", onDeselectItem: "onDeselectItem", filteredModelChange: "outputModelChange", onOpen: "onOpen", onClose: "onClose" }, host: { listeners: { "document:click": "onClick($event)" } }, usesInheritance: true, ngImport: i0, 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", styles: [":host{position:relative}:host>button{min-width:150px}:host>div{position:absolute;z-index:2;left:0px;overflow:hidden;background:white;border:2px solid black}:host>div.hidden{max-height:0px;border-width:0px}: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}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SearchInputComponent, selector: "ode-search-input", inputs: ["isSearchActive", "isSearchButtonDisabled", "searchInput", "searchSubmit", "delay"], outputs: ["onChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.FilterPipe, name: "filter" }, { kind: "pipe", type: i6.OrderPipe, name: "orderBy" }, { kind: "pipe", type: i7.StorePipe, name: "store" }] });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MultiComboComponent, decorators: [{
130
- type: Component,
131
- args: [{ selector: 'ode-multi-combo', host: {
132
- '(document:click)': 'onClick($event)',
133
- }, 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", styles: [":host{position:relative}:host>button{min-width:150px}:host>div{position:absolute;z-index:2;left:0px;overflow:hidden;background:white;border:2px solid black}:host>div.hidden{max-height:0px;border-width:0px}: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}\n"] }]
134
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LabelsService }, { type: i0.Injector }]; }, propDecorators: { comboModel: [{
135
- type: Input
136
- }], filteredModel: [{
137
- type: Input,
138
- args: ['outputModel']
139
- }], title: [{
140
- type: Input
141
- }], display: [{
142
- type: Input
143
- }], filter: [{
144
- type: Input
145
- }], orderBy: [{
146
- type: Input
147
- }], reverse: [{
148
- type: Input
149
- }], maxSelected: [{
150
- type: Input,
151
- args: ['max']
152
- }], disabled: [{
153
- type: Input
154
- }], onSelectItem: [{
155
- type: Output
156
- }], onDeselectItem: [{
157
- type: Output
158
- }], filteredModelChange: [{
159
- type: Output,
160
- args: ['outputModelChange']
161
- }], onOpen: [{
162
- type: Output
163
- }], onClose: [{
164
- type: Output
165
- }] } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktY29tYm8vbXVsdGktY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktY29tYm8vbXVsdGktY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7QUFFNUMsa0dBQWtHO0FBVWxHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBRWpELFlBQ1ksS0FBaUIsRUFDakIsYUFBNEIsRUFDcEMsUUFBa0I7UUFDbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSFIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXNCbEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUlqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pFLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTVDLFNBQUksR0FBRyxJQUFJLENBQUM7UUFD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bWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYWJlbHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYWJlbHMuc2VydmljZSc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG4vKiBJZiB5b3UgbmVlZCB0byB1c2UgbXVsdGktY29tYm8gaW4gYSBmb3JtIHlvdSBzaG91bGQgZ2l2ZSBhIGxvb2sgdG8gdGhlIE11bHRpU2VsZWN0Q29tcG9uZW50LiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1tdWx0aS1jb21ibycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWNvbWJvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tdWx0aS1jb21iby5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE11bHRpQ29tYm9Db21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VyZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbGFiZWxzU2VydmljZTogTGFiZWxzU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb21ib01vZGVsKG1vZGVsKSB7XG4gICAgICAgIHRoaXMuX2NvbWJvTW9kZWwgPSBtb2RlbDtcblxuICAgICAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwgPSBbXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWx0ZXJlZE1vZGVsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBtb2RlbC5pbmRleE9mKHRoaXMuZmlsdGVyZWRNb2RlbFtpXSk7XG4gICAgICAgICAgICBpZiAoaWR4IDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICBpLS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KCdvdXRwdXRNb2RlbCcpIGZpbHRlcmVkTW9kZWwgPSBbXTtcbiAgICBASW5wdXQoKSB0aXRsZSA9ICdTZWxlY3QnO1xuICAgIEBJbnB1dCgpIGRpc3BsYXk6IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAgIEBJbnB1dCgpIGZpbHRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9yZGVyQnk6IChzdHJpbmcgfCBBcnJheTwoc3RyaW5nIHwgRnVuY3Rpb24pPiB8IEZ1bmN0aW9uKTtcbiAgICBASW5wdXQoKSByZXZlcnNlID0gZmFsc2U7XG4gICAgQElucHV0KCdtYXgnKSBtYXhTZWxlY3RlZDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uRGVzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnb3V0cHV0TW9kZWxDaGFuZ2UnKSBmaWx0ZXJlZE1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBzZWxmID0gdGhpcztcbiAgICBfY29tYm9Nb2RlbCA9IFtdO1xuXG4gICAgZmlsdGVyZWRDb21ib01vZGVsID0gW107XG5cbiAgICBzZWFyY2ggPSB7XG4gICAgICAgIGlucHV0OiAnJyxcbiAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0ID0gJyc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc2hvdyA9IGZhbHNlO1xuXG4gICAgbGFiZWxzKGxhYmVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhYmVsc1NlcnZpY2UuZ2V0TGFiZWwobGFiZWwpO1xuICAgIH1cblxuICAgIHRvZ2dsZVZpc2liaWxpdHkoKSB7XG4gICAgICAgIHRoaXMuc2hvdyA9ICF0aGlzLnNob3c7XG4gICAgICAgIGlmICh0aGlzLnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLm9uT3Blbi5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoaXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZE1vZGVsICYmIHRoaXMuZmlsdGVyZWRNb2RlbC5pbmRleE9mKGl0ZW0pID49IDA7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRNb2RlbCAmJiB0aGlzLm1heFNlbGVjdGVkICYmXG4gICAgICAgICAgICB0aGlzLm1heFNlbGVjdGVkIDw9IHRoaXMuZmlsdGVyZWRNb2RlbC5sZW5ndGg7XG4gICAgfVxuXG4gICAgdG9nZ2xlSXRlbShpdGVtKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZmlsdGVyZWRNb2RlbC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIHRoaXMub25EZXNlbGVjdEl0ZW0uZW1pdChpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5tYXhTZWxlY3RlZCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbC5sZW5ndGggPCB0aGlzLm1heFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwucHVzaChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3RJdGVtLmVtaXQoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJlZE1vZGVsKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmlsdGVyZWRDb21ib01vZGVsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTW9kZWwucHVzaCh0aGlzLmZpbHRlcmVkQ29tYm9Nb2RlbFtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJlZE1vZGVsKTtcbiAgICB9XG5cbiAgICBkZXNlbGVjdEFsbCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE1vZGVsID0gW107XG4gICAgICAgIHRoaXMuZmlsdGVyZWRNb2RlbENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRNb2RlbCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUl0ZW0oaXRlbSkge1xuICAgICAgICByZXR1cm4gIGl0ZW0gaW5zdGFuY2VvZiBPYmplY3QgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkgJiYgdHlwZW9mIHRoaXMuZGlzcGxheSA9PT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVt0aGlzLmRpc3BsYXldIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udG9TdHJpbmcoKSA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheSAmJiB0aGlzLmRpc3BsYXkgaW5zdGFuY2VvZiBGdW5jdGlvbiA/XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkoaXRlbSB8fCAnJykgOlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnNob3cgJiYgIXRoaXMuX2VyZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVZpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5maWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgZmlsdGVyOiBzdHJpbmcgfCB7fSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5fY29tYm9Nb2RlbC5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9jb21ib01vZGVsWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpbHRlciA9IHRoaXMuc2VhcmNoLmlucHV0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7fTtcbiAgICAgICAgICAgICAgICBmaWx0ZXJbdGhpcy5maWx0ZXJdID0gdGhpcy5zZWFyY2guaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG5cbn1cbiIsIjxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgb3BlbmVkOiBzaG93IH1cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gIHt7IHRpdGxlIH19XG48L2J1dHRvbj5cbjxkaXYgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFzaG93IH1cIj5cbiAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWFsbFwiIChjbGljayk9XCJzZWxlY3RBbGwoKVwiICpuZ0lmPVwiIW1heFNlbGVjdGVkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMoJ3NlbGVjdC5hbGwnKVwiIHR5cGU9XCJidXR0b25cIj57eyBsYWJlbHMoJ3NlbGVjdC5hbGwnKSB9fTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJkZXNlbGVjdC1hbGxcIiAoY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzKCdkZXNlbGVjdC5hbGwnKVwiIHR5cGU9XCJidXR0b25cIj57eyBsYWJlbHMoJ2Rlc2VsZWN0LmFsbCcpIH19PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZmlsdGVyXCIgY2xhc3M9XCJmaWx0ZXJcIj5cbiAgICA8b2RlLXNlYXJjaC1pbnB1dCAob25DaGFuZ2UpPVwic2VhcmNoLmlucHV0ID0gJGV2ZW50XCIgW2F0dHIucGxhY2Vob2xkZXJdPVwibGFiZWxzKCdzZWFyY2gnKVwiPjwvb2RlLXNlYXJjaC1pbnB1dD5cbiAgPC9kaXY+XG4gIDx1bD5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2NvbWJvTW9kZWwgfCBmaWx0ZXI6IGdldEZpbHRlcigpIHwgb3JkZXJCeTogb3JkZXJCeSB8IHN0b3JlOiBzZWxmOidmaWx0ZXJlZENvbWJvTW9kZWwnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUl0ZW0oaXRlbSlcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpc1NlbGVjdGVkKGl0ZW0pIH1cIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIj5cbiAgICAgIHt7IGRpc3BsYXlJdGVtKGl0ZW0pIHwgdHJhbnNsYXRlIH19XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -1,104 +0,0 @@
1
- import { OdeComponent } from 'ngx-ode-core';
2
- import { Component, forwardRef, Input } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "ngx-ode-sijil";
7
- export class MultiSelectComponent extends OdeComponent {
8
- constructor(injector, elementRef) {
9
- super(injector);
10
- this.elementRef = elementRef;
11
- this.label = '';
12
- this.options = [];
13
- this.preview = false;
14
- this.model = [];
15
- this.isDisabled = false;
16
- this.isOptionsVisible = false;
17
- this.onChange = (_) => {
18
- };
19
- this.onTouched = () => {
20
- };
21
- }
22
- optionClicked(option) {
23
- if (this.model) {
24
- const index = this.getIndexOfOptionInModel(option);
25
- if (index < 0) {
26
- this.model.push(option.value);
27
- }
28
- else {
29
- this.model.splice(index, 1);
30
- }
31
- }
32
- else {
33
- this.model = [option.value];
34
- }
35
- this.onChange(this.model);
36
- }
37
- selectAll() {
38
- this.options.forEach(option => {
39
- if (!this.model.includes(option.value)) {
40
- this.model.push(option.value);
41
- }
42
- });
43
- this.onChange(this.model);
44
- }
45
- deselectAll() {
46
- this.model = [];
47
- this.onChange(this.model);
48
- }
49
- toggleOptionsVisibility() {
50
- this.isOptionsVisible = !this.isOptionsVisible;
51
- }
52
- isSelected(option) {
53
- return this.model ? (this.getIndexOfOptionInModel(option) >= 0) : false;
54
- }
55
- closeIfOpened(event) {
56
- if (this.isOptionsVisible
57
- && !this.elementRef.nativeElement.querySelector('.lct-multi-select__options-container').contains(event.target)
58
- && !this.elementRef.nativeElement.querySelector('.lct-multi-select__toggle').contains(event.target)) {
59
- this.isOptionsVisible = false;
60
- }
61
- return true;
62
- }
63
- getIndexOfOptionInModel(option) {
64
- return this.model.map(this.trackByFn).indexOf(this.trackByFn(option.value));
65
- }
66
- registerOnChange(fn) {
67
- this.onChange = fn;
68
- }
69
- registerOnTouched(fn) {
70
- this.onTouched = fn;
71
- }
72
- setDisabledState(isDisabled) {
73
- this.isDisabled = isDisabled;
74
- }
75
- writeValue(obj) {
76
- this.model = obj;
77
- this.onChange(this.model);
78
- }
79
- }
80
- MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
81
- MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MultiSelectComponent, selector: "ode-multi-select", inputs: { label: "label", options: "options", preview: "preview", trackByFn: "trackByFn" }, host: { listeners: { "document:click": "closeIfOpened($event)" } }, providers: [{
82
- provide: NG_VALUE_ACCESSOR,
83
- useExisting: forwardRef(() => MultiSelectComponent),
84
- multi: true
85
- }], usesInheritance: true, ngImport: i0, 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", styles: ["@charset \"UTF-8\";:host{position:relative}.multi-select__toggle{min-width:210px;outline:none;background-color:#f2f2f2}.multi-select__toggle:after{content:\"\\25bc\";float:right;margin-left:10px;transition:transform .25s,color .25s}.multi-select__toggle:hover:after{color:#fff}.multi-select__toggle:hover,.multi-select__toggle.multi-select__toggle--active{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:white;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:all .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}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MultiSelectComponent, decorators: [{
87
- type: Component,
88
- args: [{ selector: 'ode-multi-select', providers: [{
89
- provide: NG_VALUE_ACCESSOR,
90
- useExisting: forwardRef(() => MultiSelectComponent),
91
- multi: true
92
- }], host: {
93
- '(document:click)': 'closeIfOpened($event)'
94
- }, 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", styles: ["@charset \"UTF-8\";:host{position:relative}.multi-select__toggle{min-width:210px;outline:none;background-color:#f2f2f2}.multi-select__toggle:after{content:\"\\25bc\";float:right;margin-left:10px;transition:transform .25s,color .25s}.multi-select__toggle:hover:after{color:#fff}.multi-select__toggle:hover,.multi-select__toggle.multi-select__toggle--active{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:white;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:all .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}\n"] }]
95
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { label: [{
96
- type: Input
97
- }], options: [{
98
- type: Input
99
- }], preview: [{
100
- type: Input
101
- }], trackByFn: [{
102
- type: Input
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFzQnZFLE1BQU0sT0FBTyxvQkFBd0IsU0FBUSxZQUFZO0lBbUJyRCxZQUFZLFFBQWtCLEVBQVUsVUFBc0I7UUFDMUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRG9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQnZELFVBQUssR0FBRyxFQUFFLENBQUM7UUFHWCxZQUFPLEdBQTJCLEVBQUUsQ0FBQztRQUdyQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBS2hCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFFckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUF1RHhCLGFBQVEsR0FBRyxDQUFDLENBQVcsRUFBRSxFQUFFO1FBQ25DLENBQUMsQ0FBQTtRQUVPLGNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDekIsQ0FBQyxDQUFBO0lBdkRELENBQUM7SUFFTSxhQUFhLENBQUMsTUFBdUI7UUFDeEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sdUJBQXVCO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNuRCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQXVCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RSxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCO2VBQ3BCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7ZUFDM0csQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25HLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBdUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQVFELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOztpSEE3RlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsMk1BVGxCLENBQUM7WUFDVixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLGlEQ25CTiw2dURBZ0NBOzJGRFJhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDSSxrQkFBa0IsYUFHakIsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQyxRQUNJO3dCQUNGLGtCQUFrQixFQUFFLHVCQUF1QjtxQkFDOUM7d0hBSU0sS0FBSztzQkFEWCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKiBNdWx0aVNlbGVjdENvbXBvbmVudCBpcyBhIHJld3JpdGUgb2YgTXVsdGlDb21ib0NvbXBvbmVudCB0byBpbnRlZ3JhdGUgaXQgZWFzaWx5IGluIGFuZ3VsYXIgZm9ybXMgKi9cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RPcHRpb248Sz4ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IEs7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLW11bHRpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpjbGljayknOiAnY2xvc2VJZk9wZW5lZCgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQ8Sz4gZXh0ZW5kcyBPZGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWwgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbjxLPj4gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByZXZpZXcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRyYWNrQnlGbjogKG9wdGlvblZhbHVlOiBLKSA9PiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBwdWJsaWMgbW9kZWw6IEFycmF5PEs+ID0gW107XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzT3B0aW9uc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3B0aW9uQ2xpY2tlZChvcHRpb246IFNlbGVjdE9wdGlvbjxLPikge1xuICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEluZGV4T2ZPcHRpb25Jbk1vZGVsKG9wdGlvbik7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5wdXNoKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICBpZiAoIXRoaXMubW9kZWwuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSkge1xuICAgICAgICAgIHRoaXMubW9kZWwucHVzaChvcHRpb24udmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU9wdGlvbnNWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3B0aW9uc1Zpc2libGUgPSAhdGhpcy5pc09wdGlvbnNWaXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uPEs+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsID8gKHRoaXMuZ2V0SW5kZXhPZk9wdGlvbkluTW9kZWwob3B0aW9uKSA+PSAwKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZUlmT3BlbmVkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25zVmlzaWJsZVxuICAgICAgICAgICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubGN0LW11bHRpLXNlbGVjdF9fb3B0aW9ucy1jb250YWluZXInKS5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICAgJiYgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sY3QtbXVsdGktc2VsZWN0X190b2dnbGUnKS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGV4T2ZPcHRpb25Jbk1vZGVsKG9wdGlvbjogU2VsZWN0T3B0aW9uPEs+KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwubWFwKHRoaXMudHJhY2tCeUZuKS5pbmRleE9mKHRoaXMudHJhY2tCeUZuKG9wdGlvbi52YWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogQXJyYXk8Sz4pID0+IHtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogQXJyYXk8Sz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG9iajtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLm1vZGVsKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlT3B0aW9uc1Zpc2liaWxpdHkoKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJtdWx0aS1zZWxlY3RfX3RvZ2dsZSBsY3QtbXVsdGktc2VsZWN0X190b2dnbGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J211bHRpLXNlbGVjdF9fdG9nZ2xlLS1hY3RpdmUnOiBpc09wdGlvbnNWaXNpYmxlfVwiPnt7bGFiZWwgfMKgdHJhbnNsYXRlfX08L2J1dHRvbj5cbjxkaXYgY2xhc3M9XCJtdWx0aS1zZWxlY3RfX29wdGlvbnMtY29udGFpbmVyIGxjdC1tdWx0aS1zZWxlY3RfX29wdGlvbnMtY29udGFpbmVyXCJcbiAgICAgW25nQ2xhc3NdPVwieydtdWx0aS1zZWxlY3RfX29wdGlvbnMtY29udGFpbmVyLS1hY3RpdmUnOiBpc09wdGlvbnNWaXNpYmxlfVwiPlxuICA8ZGl2IGNsYXNzPVwibXVsdGktc2VsZWN0X19vcHRpb25zLWFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJtdWx0aS1zZWxlY3RfX29wdGlvbnMtYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiPnt7J3V4Lm11bHRpc2VsZWN0LnNlbGVjdC1hbGwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJtdWx0aS1zZWxlY3RfX29wdGlvbnMtYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkZXNlbGVjdEFsbCgpXCI+e3sndXgubXVsdGlzZWxlY3QuZGVzZWxlY3QtYWxsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gIDwvZGl2PlxuICA8dWwgY2xhc3M9XCJtdWx0aS1zZWxlY3RfX29wdGlvbnMgbGN0LW11bHRpLXNlbGVjdF9fb3B0aW9uc1wiPlxuICAgIDxsaSBjbGFzcz1cIm11bHRpLXNlbGVjdF9fb3B0aW9ucy1pdGVtIGxjdC1tdWx0aS1zZWxlY3RfX29wdGlvbnMtaXRlbVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgIChjbGljayk9XCJvcHRpb25DbGlja2VkKG9wdGlvbilcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J211bHRpLXNlbGVjdF9fb3B0aW9ucy1pdGVtLS1zZWxlY3RlZCc6IGlzU2VsZWN0ZWQob3B0aW9uKX1cIj57e29wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZX19PC9saT5cbiAgPC91bD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm11bHRpLXNlbGVjdF9fb3B0aW9ucy1wcmV2aWV3IGxjdC1tdWx0aS1zZWxlY3RfX29wdGlvbnMtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxuICAgIDxidXR0b24gKm5nSWY9XCJpc1NlbGVjdGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cIm11bHRpLXNlbGVjdF9fb3B0aW9ucy1wcmV2aWV3LWl0ZW0gbGN0LW11bHRpLXNlbGVjdF9fb3B0aW9ucy1wcmV2aWV3LWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbkNsaWNrZWQob3B0aW9uKVwiPlxuICAgICAgPHNwYW4+e3tvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpIGNsYXNzPVwibXVsdGktc2VsZWN0X19vcHRpb25zLXByZXZpZXctaXRlbS1kZWxldGUtaWNvbiBmYSBmYS10cmFzaCBpcy1zaXplLTVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { OdeComponent } from 'ngx-ode-core';
2
- import { Component, Input } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "ngx-ode-sijil";
6
- export class PanelSectionComponent extends OdeComponent {
7
- constructor(injector) {
8
- super(injector);
9
- this.folded = null;
10
- }
11
- }
12
- PanelSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PanelSectionComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
13
- PanelSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: PanelSectionComponent, selector: "ode-panel-section", inputs: { sectionTitle: ["section-title", "sectionTitle"], folded: "folded" }, usesInheritance: true, ngImport: i0, 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", styles: [".panel-section-header{font-size:1.1em;padding:10px}.panel-section-header.foldable{cursor:pointer}.panel-section-content{padding:15px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PanelSectionComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'ode-panel-section', 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", styles: [".panel-section-header{font-size:1.1em;padding:10px}.panel-section-header.foldable{cursor:pointer}.panel-section-content{padding:15px}\n"] }]
17
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { sectionTitle: [{
18
- type: Input,
19
- args: ['section-title']
20
- }], folded: [{
21
- type: Input
22
- }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9wYW5lbC1zZWN0aW9uL3BhbmVsLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGFuZWwtc2VjdGlvbi9wYW5lbC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUFHbkQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGWCxXQUFNLEdBQVksSUFBSSxDQUFDO0lBR2hDLENBQUM7O2tIQUxRLHFCQUFxQjtzR0FBckIscUJBQXFCLCtKQ1JsQyw4bkJBZ0JBOzJGRFJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxtQkFBbUI7K0ZBS0wsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNiLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1wYW5lbC1zZWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGFuZWwtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCdzZWN0aW9uLXRpdGxlJykgc2VjdGlvblRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9sZGVkOiBib29sZWFuID0gbnVsbDtcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwicGFuZWwtc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtc2VjdGlvbi1oZWFkZXIgaXMtZGlzcGxheS1mbGV4IGhhcy1zcGFjZS1iZXR3ZWVuXCIgKGNsaWNrKT1cImZvbGRlZCAhPT0gbnVsbCA/IGZvbGRlZD0hZm9sZGVkIDogbnVsbFwiIFtjbGFzcy5mb2xkYWJsZV09XCJmb2xkZWQgIT09IG51bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXMtZGlzcGxheS1mbGV4XCI+XG4gICAgICA8czVsPnt7IHNlY3Rpb25UaXRsZcKgfX08L3M1bD5cbiAgICAgIDxkaXYgY2xhc3M9XCJoYXMtbGVmdC1wYWRkaW5nLTEwXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwYW5lbC1zZWN0aW9uLWhlYWRlci1pY29uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxpIGNsYXNzPVwib3BlbmVyXCIgKm5nSWY9XCJmb2xkZWQgIT09IG51bGxcIlxuICAgICAgIFtjbGFzcy5vcGVuZWRdPVwiIWZvbGRlZFwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1zZWN0aW9uLWNvbnRlbnRcIiAqbmdJZj1cIiFmb2xkZWRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
@@ -1,15 +0,0 @@
1
- import { OdeComponent } from 'ngx-ode-core';
2
- import { Component } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class PortalComponent extends OdeComponent {
5
- constructor(injector) {
6
- super(injector);
7
- }
8
- }
9
- PortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PortalComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
10
- PortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: PortalComponent, selector: "ode-portal", usesInheritance: true, ngImport: i0, 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", styles: ["header{position:relative;display:flex;align-items:center;top:0px;width:100%}\n"] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PortalComponent, decorators: [{
12
- type: Component,
13
- args: [{ selector: 'ode-portal', 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", styles: ["header{position:relative;display:flex;align-items:center;top:0px;width:100%}\n"] }]
14
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvcnRhbC9wb3J0YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvcG9ydGFsL3BvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxlQUFnQixTQUFRLFlBQVk7SUFDN0MsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7NEdBSFEsZUFBZTtnR0FBZixlQUFlLHlFQ1I1QiwyVUFXQTsyRkRIYSxlQUFlO2tCQUwzQixTQUFTOytCQUNJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1wb3J0YWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BvcnRhbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcnRhbENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG59XG4iLCI8aGVhZGVyPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyLWxlZnRdXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyLW1pZGRsZV1cIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXItcmlnaHRdXCI+PC9uZy1jb250ZW50PlxuPC9oZWFkZXI+XG48c2VjdGlvbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlY3Rpb25dXCI+PC9uZy1jb250ZW50PlxuPC9zZWN0aW9uPlxuPGZvb3Rlcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG48L2Zvb3Rlcj5cbiJdfQ==
@@ -1,43 +0,0 @@
1
- import { OdeComponent } from 'ngx-ode-core';
2
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class PushPanelComponent extends OdeComponent {
6
- constructor(injector) {
7
- super(injector);
8
- this.onClose = new EventEmitter();
9
- }
10
- set toggle(toggle) {
11
- this._opened = toggle;
12
- }
13
- onClick(event) {
14
- const checkOpener = this.opener &&
15
- (this.opener.contains && this.opener.contains(event.target)) ||
16
- (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));
17
- if (this._opened &&
18
- !this.inside.nativeElement.contains(event.target) &&
19
- !checkOpener) {
20
- this._opened = false;
21
- this.onClose.emit();
22
- }
23
- return true;
24
- }
25
- }
26
- PushPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PushPanelComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
27
- PushPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: PushPanelComponent, selector: "ode-push-panel", inputs: { toggle: "toggle", opener: "opener" }, outputs: { onClose: "onClose" }, host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "inside", first: true, predicate: ["inside"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{ opened: _opened }\" #inside>\n <ng-content select=\"[inside]\"></ng-content>\n</div>\n<div>\n <ng-content select=\"[companion]\"></ng-content>\n</div>\n", styles: [":host>div:nth-child(1){position:fixed;z-index:10;overflow-x:hidden;overflow-y:scroll;height:100%;top:0px;left:-30%;width:30%;transition:transform .25s}:host>div:nth-child(1).opened{transform:translate(100%)}:host>div:nth-child(2){position:relative;left:0%;opacity:1;transition:transform .25s,opacity .25s}:host>div:nth-child(1).opened+div{opacity:.7;transform:translate(30%);overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PushPanelComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'ode-push-panel', host: {
31
- '(document:click)': 'onClick($event)',
32
- }, template: "<div [ngClass]=\"{ opened: _opened }\" #inside>\n <ng-content select=\"[inside]\"></ng-content>\n</div>\n<div>\n <ng-content select=\"[companion]\"></ng-content>\n</div>\n", styles: [":host>div:nth-child(1){position:fixed;z-index:10;overflow-x:hidden;overflow-y:scroll;height:100%;top:0px;left:-30%;width:30%;transition:transform .25s}:host>div:nth-child(1).opened{transform:translate(100%)}:host>div:nth-child(2){position:relative;left:0%;opacity:1;transition:transform .25s,opacity .25s}:host>div:nth-child(1).opened+div{opacity:.7;transform:translate(30%);overflow-x:hidden}\n"] }]
33
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { toggle: [{
34
- type: Input
35
- }], opener: [{
36
- type: Input
37
- }], onClose: [{
38
- type: Output
39
- }], inside: [{
40
- type: ViewChild,
41
- args: ['inside']
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9wdXNoLXBhbmVsL3B1c2gtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvcHVzaC1wYW5lbC9wdXNoLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7OztBQVV4RyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTtJQUVoRCxZQUFZLFFBQWtCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVVBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBVHhELENBQUM7SUFFRCxJQUFxQixNQUFNLENBQUMsTUFBZTtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBU00sT0FBTyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDM0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFcEYsSUFBSSxJQUFJLENBQUMsT0FBTztZQUNaLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakQsQ0FBQyxXQUFXLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7K0dBN0JRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhUQ1gvQiwrS0FNQTsyRkRLYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0ksZ0JBQWdCLFFBR3BCO3dCQUNGLGtCQUFrQixFQUFFLGlCQUFpQjtxQkFDeEM7K0ZBUW9CLE1BQU07c0JBQTFCLEtBQUs7Z0JBS1csTUFBTTtzQkFBdEIsS0FBSztnQkFFWSxPQUFPO3NCQUF4QixNQUFNO2dCQUVzQixNQUFNO3NCQUFsQyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtcHVzaC1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1c2gtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3B1c2gtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6Y2xpY2spJzogJ29uQ2xpY2soJGV2ZW50KScsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBQdXNoUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgQElucHV0KCkgcHJpdmF0ZSBzZXQgdG9nZ2xlKHRvZ2dsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9vcGVuZWQgPSB0b2dnbGU7XG4gICAgfVxuICAgIF9vcGVuZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBwcml2YXRlIG9wZW5lcjtcblxuICAgIEBPdXRwdXQoKSBwcml2YXRlIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnNpZGUnKSBwcml2YXRlIGluc2lkZTogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrT3BlbmVyID0gdGhpcy5vcGVuZXIgJiZcbiAgICAgICAgICAgICh0aGlzLm9wZW5lci5jb250YWlucyAmJiB0aGlzLm9wZW5lci5jb250YWlucyhldmVudC50YXJnZXQpKSB8fFxuICAgICAgICAgICAgKHRoaXMub3BlbmVyLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5vcGVuZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKTtcblxuICAgICAgICBpZiAodGhpcy5fb3BlbmVkICYmXG4gICAgICAgICAgICAhdGhpcy5pbnNpZGUubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgICAgICAhY2hlY2tPcGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieyBvcGVuZWQ6IF9vcGVuZWQgfVwiICNpbnNpZGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbnNpZGVdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29tcGFuaW9uXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19