ngx-ode-ui 4.6.0-dev.1 → 4.6.0

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
@@ -0,0 +1,70 @@
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 LightBoxComponent extends OdeComponent {
6
+ constructor(injector, renderer, host) {
7
+ super(injector);
8
+ this.renderer = renderer;
9
+ this.host = host;
10
+ this._show = false;
11
+ this.showCloseButton = true;
12
+ this.onClose = new EventEmitter();
13
+ }
14
+ set show(s) {
15
+ if (this.timer) {
16
+ clearTimeout(this.timer);
17
+ }
18
+ if (s) {
19
+ this._show = true;
20
+ this.timer = window.setTimeout(() => {
21
+ this.renderer.addClass(this.host.nativeElement, 'shown');
22
+ this.timer = null;
23
+ this.changeDetector.markForCheck();
24
+ }, 100);
25
+ }
26
+ else {
27
+ const wait = parseFloat(this.section &&
28
+ window.getComputedStyle(this.section.nativeElement)['transition-duration']);
29
+ this.renderer.removeClass(this.host.nativeElement, 'shown');
30
+ this.timer = window.setTimeout(() => {
31
+ this._show = false;
32
+ this.timer = null;
33
+ this.changeDetector.markForCheck();
34
+ }, wait * 1000);
35
+ }
36
+ }
37
+ get show() {
38
+ return this._show;
39
+ }
40
+ onClick(event) {
41
+ if (this.overlay.nativeElement.contains(event.target)) {
42
+ this.close();
43
+ }
44
+ }
45
+ close() {
46
+ this.show = false;
47
+ this.onClose.emit();
48
+ }
49
+ }
50
+ LightBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightBoxComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
51
+ LightBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: LightBoxComponent, selector: "ode-lightbox", inputs: { show: "show", showCloseButton: "showCloseButton" }, outputs: { onClose: "onClose" }, host: { listeners: { "click": "onClick($event)" } }, viewQueries: [{ propertyName: "section", first: true, predicate: ["section"], descendants: true }, { propertyName: "overlay", first: true, predicate: ["overlay"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section *ngIf=\"_show\" #section>\n <div overlay #overlay></div>\n <div content>\n <i (click)=\"close()\" *ngIf=\"showCloseButton == true\"></i>\n <ng-content></ng-content>\n </div>\n</section>\n", styles: ["section{position:fixed;display:flex;align-items:center;justify-content:center;height:100%;width:100%;z-index:100;top:0;left:0;opacity:0;transition:opacity .35s}section[hidden]{display:none!important}:host.shown>section{opacity:1}div[overlay]{position:absolute;top:0;left:0;opacity:.7;width:100%;height:100%;background-color:#000}div[content]{flex:0 0 auto;max-width:75%;max-height:75%;overflow:auto;background-color:#fff;z-index:2;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightBoxComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'ode-lightbox', host: {
55
+ '(click)': 'onClick($event)'
56
+ }, template: "<section *ngIf=\"_show\" #section>\n <div overlay #overlay></div>\n <div content>\n <i (click)=\"close()\" *ngIf=\"showCloseButton == true\"></i>\n <ng-content></ng-content>\n </div>\n</section>\n", styles: ["section{position:fixed;display:flex;align-items:center;justify-content:center;height:100%;width:100%;z-index:100;top:0;left:0;opacity:0;transition:opacity .35s}section[hidden]{display:none!important}:host.shown>section{opacity:1}div[overlay]{position:absolute;top:0;left:0;opacity:.7;width:100%;height:100%;background-color:#000}div[content]{flex:0 0 auto;max-width:75%;max-height:75%;overflow:auto;background-color:#fff;z-index:2;position:relative}\n"] }]
57
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { show: [{
58
+ type: Input
59
+ }], showCloseButton: [{
60
+ type: Input
61
+ }], onClose: [{
62
+ type: Output
63
+ }], section: [{
64
+ type: ViewChild,
65
+ args: ['section']
66
+ }], overlay: [{
67
+ type: ViewChild,
68
+ args: ['overlay']
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQzs7O0FBV25ILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUFZO0lBRS9DLFlBQ0ksUUFBa0IsRUFDVixRQUFtQixFQUNuQixJQUFnQjtRQUNwQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGWixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVk7UUFnQzVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFTCxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV0QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWxDNUMsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLENBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLEVBQUU7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBYUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OEdBekRRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdaQ1o5QiwrTUFPQTsyRkRLYSxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0ksY0FBYyxRQUdsQjt3QkFDRixTQUFTLEVBQUUsaUJBQWlCO3FCQUMvQjtnSkFhRyxJQUFJO3NCQURQLEtBQUs7Z0JBOEJHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFFZSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbGlnaHRib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWdodGJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlnaHRib3guY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soJGV2ZW50KSdcbiAgICB9XG5cbn0pXG5leHBvcnQgY2xhc3MgTGlnaHRCb3hDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93KHM6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocykge1xuICAgICAgICAgICAgdGhpcy5fc2hvdyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdzaG93bicpO1xuICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2FpdCA9IHBhcnNlRmxvYXQodGhpcy5zZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zZWN0aW9uLm5hdGl2ZUVsZW1lbnQpWyd0cmFuc2l0aW9uLWR1cmF0aW9uJ10pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ3Nob3duJyk7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSwgd2FpdCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNob3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93O1xuICAgIH1cblxuICAgIF9zaG93ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb24nKSBzZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXknKSBvdmVybGF5OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSB0aW1lcjogbnVtYmVyO1xuXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCkge1xuICAgICAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiAqbmdJZj1cIl9zaG93XCIgI3NlY3Rpb24+XG4gIDxkaXYgb3ZlcmxheSAjb3ZlcmxheT48L2Rpdj5cbiAgPGRpdiBjb250ZW50PlxuICAgIDxpIChjbGljayk9XCJjbG9zZSgpXCIgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b24gPT0gdHJ1ZVwiPjwvaT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
@@ -0,0 +1,43 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../lightbox/lightbox.component";
6
+ import * as i3 from "ngx-ode-sijil";
7
+ export class LightboxConfirmComponent extends OdeComponent {
8
+ constructor(injector) {
9
+ super(injector);
10
+ this.cancelText = "cancel";
11
+ this.confirmText = "confirm";
12
+ this.extraButtons = [];
13
+ this.disableConfirm = false;
14
+ this.onConfirm = new EventEmitter();
15
+ this.onCancel = new EventEmitter();
16
+ this.onExtra = new EventEmitter();
17
+ }
18
+ }
19
+ LightboxConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightboxConfirmComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
20
+ LightboxConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: LightboxConfirmComponent, selector: "ode-lightbox-confirm", inputs: { lightboxTitle: "lightboxTitle", show: "show", cancelText: "cancelText", confirmText: "confirmText", extraButtons: "extraButtons", disableConfirm: "disableConfirm" }, outputs: { onConfirm: "onConfirm", onCancel: "onCancel", onExtra: "onExtra" }, usesInheritance: true, ngImport: i0, template: "<ode-lightbox [show]=\"show\" (onClose)=\"onCancel.emit()\">\n <h2 class=\"lightbox-confirm__header\">{{ lightboxTitle | translate }}</h2>\n <div class=\"lightbox-confirm-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"lightbox-confirm-action\">\n <button (click)=\"onConfirm.emit()\" [disabled]=\"disableConfirm\" class=\"confirm\">{{ confirmText | translate }}</button>\n <button\n *ngFor=\"let extraBtn of extraButtons.slice().reverse(); index as i;\"\n (click)=\"onExtra.emit(extraButtons.length - 1 - i)\" class=\"confirm\">{{ extraBtn | translate }}</button>\n <button (click)=\"onCancel.emit()\" class=\"cancel\">{{ cancelText | translate }}</button>\n </div>\n</ode-lightbox>\n", styles: [".lightbox-confirm__header{margin-bottom:0}.lightbox-confirm-content{font-size:16px;padding:20px 0}.lightbox-confirm-action button{float:right;text-align:center;margin-left:5px;margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.LightBoxComponent, selector: "ode-lightbox", inputs: ["show", "showCloseButton"], outputs: ["onClose"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightboxConfirmComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'ode-lightbox-confirm', template: "<ode-lightbox [show]=\"show\" (onClose)=\"onCancel.emit()\">\n <h2 class=\"lightbox-confirm__header\">{{ lightboxTitle | translate }}</h2>\n <div class=\"lightbox-confirm-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"lightbox-confirm-action\">\n <button (click)=\"onConfirm.emit()\" [disabled]=\"disableConfirm\" class=\"confirm\">{{ confirmText | translate }}</button>\n <button\n *ngFor=\"let extraBtn of extraButtons.slice().reverse(); index as i;\"\n (click)=\"onExtra.emit(extraButtons.length - 1 - i)\" class=\"confirm\">{{ extraBtn | translate }}</button>\n <button (click)=\"onCancel.emit()\" class=\"cancel\">{{ cancelText | translate }}</button>\n </div>\n</ode-lightbox>\n", styles: [".lightbox-confirm__header{margin-bottom:0}.lightbox-confirm-content{font-size:16px;padding:20px 0}.lightbox-confirm-action button{float:right;text-align:center;margin-left:5px;margin-bottom:20px}\n"] }]
24
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { lightboxTitle: [{
25
+ type: Input
26
+ }], show: [{
27
+ type: Input
28
+ }], cancelText: [{
29
+ type: Input
30
+ }], confirmText: [{
31
+ type: Input
32
+ }], extraButtons: [{
33
+ type: Input
34
+ }], disableConfirm: [{
35
+ type: Input
36
+ }], onConfirm: [{
37
+ type: Output
38
+ }], onCancel: [{
39
+ type: Output
40
+ }], onExtra: [{
41
+ type: Output
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9saWdodGJveC1jb25maXJtL2xpZ2h0Ym94LWNvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gtY29uZmlybS9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFhdEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFWWCxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixjQUFTLEdBQXdCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDMUQsYUFBUSxHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pELFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUlyRSxDQUFDOztxSEFmUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixrVkNSckMseXRCQWFBOzJGRExhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxzQkFBc0I7K0ZBTXZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLWxpZ2h0Ym94LWNvbmZpcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlnaHRib3hDb25maXJtQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpIGxpZ2h0Ym94VGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhbmNlbFRleHQ6IHN0cmluZyA9IFwiY2FuY2VsXCI7XG4gICAgQElucHV0KCkgY29uZmlybVRleHQ6IHN0cmluZyA9IFwiY29uZmlybVwiO1xuICAgIEBJbnB1dCgpIGV4dHJhQnV0dG9uczogQXJyYXk8U3RyaW5nPiA9IFtdO1xuICAgIEBJbnB1dCgpIGRpc2FibGVDb25maXJtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25Db25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSAgbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25FeHRyYTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxufVxuIiwiPG9kZS1saWdodGJveCBbc2hvd109XCJzaG93XCIgKG9uQ2xvc2UpPVwib25DYW5jZWwuZW1pdCgpXCI+XG4gIDxoMiBjbGFzcz1cImxpZ2h0Ym94LWNvbmZpcm1fX2hlYWRlclwiPnt7IGxpZ2h0Ym94VGl0bGUgfCB0cmFuc2xhdGUgfX08L2gyPlxuICA8ZGl2IGNsYXNzPVwibGlnaHRib3gtY29uZmlybS1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpZ2h0Ym94LWNvbmZpcm0tYWN0aW9uXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib25Db25maXJtLmVtaXQoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlQ29uZmlybVwiIGNsYXNzPVwiY29uZmlybVwiPnt7IGNvbmZpcm1UZXh0IHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGV4dHJhQnRuIG9mIGV4dHJhQnV0dG9ucy5zbGljZSgpLnJldmVyc2UoKTsgaW5kZXggYXMgaTtcIlxuICAgICAgKGNsaWNrKT1cIm9uRXh0cmEuZW1pdChleHRyYUJ1dHRvbnMubGVuZ3RoIC0gMSAtIGkpXCIgY2xhc3M9XCJjb25maXJtXCI+e3sgZXh0cmFCdG4gfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbC5lbWl0KClcIiBjbGFzcz1cImNhbmNlbFwiPnt7IGNhbmNlbFRleHQgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L29kZS1saWdodGJveD5cbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "ngx-infinite-scroll";
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
+ export class ListComponent extends OdeComponent {
12
+ constructor(injector) {
13
+ super(injector);
14
+ /* Store pipe */
15
+ this.self = this;
16
+ this._storedElements = [];
17
+ this.searchPlaceholder = 'search';
18
+ this.noResultsLabel = 'list.results.no.items';
19
+ this.placeholder = 'list.placeholder';
20
+ this.isSearchActive = true;
21
+ this.isSearchButtonDisabled = false;
22
+ this.searchInput = false;
23
+ this.inputChange = new EventEmitter();
24
+ this.onSelect = new EventEmitter();
25
+ this.listChange = new EventEmitter();
26
+ this.scrolledDown = new EventEmitter();
27
+ this.isSelected = (arg) => false;
28
+ this.isDisabled = (arg) => false;
29
+ this.ngClass = (arg) => ({});
30
+ }
31
+ set storedElements(list) {
32
+ this._storedElements = list;
33
+ this.listChange.emit(list);
34
+ }
35
+ get storedElements() {
36
+ return this._storedElements;
37
+ }
38
+ }
39
+ ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
40
+ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: ListComponent, selector: "ode-list", inputs: { model: "model", filters: "filters", inputFilter: "inputFilter", sort: "sort", limit: "limit", searchPlaceholder: "searchPlaceholder", noResultsLabel: "noResultsLabel", placeholder: "placeholder", isSearchActive: "isSearchActive", isSearchButtonDisabled: "isSearchButtonDisabled", searchInput: "searchInput", searchDelay: "searchDelay", searchSubmit: "searchSubmit", isSelected: "isSelected", isDisabled: "isDisabled", ngClass: "ngClass" }, outputs: { inputChange: "inputChange", onSelect: "onSelect", listChange: "listChange", scrolledDown: "scrolledDown" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [delay]=\"searchDelay\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"\n>\n</ode-search-input>\n\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n\n<div\n class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\"\n>\n <ul>\n <li\n *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\"\n >\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n\n <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.SearchInputComponent, selector: "ode-search-input", inputs: ["isSearchActive", "isSearchButtonDisabled", "searchInput", "searchSubmit", "delay"], outputs: ["onChange"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { 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" }] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'ode-list', template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [delay]=\"searchDelay\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"\n>\n</ode-search-input>\n\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n\n<div\n class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\"\n>\n <ul>\n <li\n *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\"\n >\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n\n <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}\n"] }]
44
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { model: [{
45
+ type: Input
46
+ }], filters: [{
47
+ type: Input
48
+ }], inputFilter: [{
49
+ type: Input
50
+ }], sort: [{
51
+ type: Input
52
+ }], limit: [{
53
+ type: Input
54
+ }], searchPlaceholder: [{
55
+ type: Input
56
+ }], noResultsLabel: [{
57
+ type: Input
58
+ }], placeholder: [{
59
+ type: Input
60
+ }], isSearchActive: [{
61
+ type: Input
62
+ }], isSearchButtonDisabled: [{
63
+ type: Input
64
+ }], searchInput: [{
65
+ type: Input
66
+ }], searchDelay: [{
67
+ type: Input
68
+ }], searchSubmit: [{
69
+ type: Input
70
+ }], inputChange: [{
71
+ type: Output
72
+ }], onSelect: [{
73
+ type: Output
74
+ }], listChange: [{
75
+ type: Output
76
+ }], scrolledDown: [{
77
+ type: Output
78
+ }], templateRef: [{
79
+ type: ContentChild,
80
+ args: [TemplateRef]
81
+ }], isSelected: [{
82
+ type: Input
83
+ }], isDisabled: [{
84
+ type: Input
85
+ }], ngClass: [{
86
+ type: Input
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9saXN0L2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFPNUcsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBdUMzQyxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQTdCcEIsZ0JBQWdCO1FBQ2hCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQU9aLHNCQUFpQixHQUFHLFFBQVEsQ0FBQztRQUM3QixtQkFBYyxHQUFHLHVCQUF1QixDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTVCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELGVBQVUsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUl2QyxDQUFDO0lBdkNELElBQUksY0FBYyxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzswR0FUUSxhQUFhOzhGQUFiLGFBQWEsa3BCQWtDUixXQUFXLHVFQzFDN0Isd3lDQTRDQTsyRkRwQ2EsYUFBYTtrQkFMekIsU0FBUzsrQkFDSSxVQUFVOytGQW1CWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRW9CLFdBQVc7c0JBQXJDLFlBQVk7dUJBQUMsV0FBVztnQkFDaEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIHNldCBzdG9yZWRFbGVtZW50cyhsaXN0KSB7XG4gICAgICAgIHRoaXMuX3N0b3JlZEVsZW1lbnRzID0gbGlzdDtcbiAgICAgICAgdGhpcy5saXN0Q2hhbmdlLmVtaXQobGlzdCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0b3JlZEVsZW1lbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmVkRWxlbWVudHM7XG4gICAgfVxuXG4gICAgLyogU3RvcmUgcGlwZSAqL1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIF9zdG9yZWRFbGVtZW50cyA9IFtdO1xuXG4gICAgQElucHV0KCkgbW9kZWw7XG4gICAgQElucHV0KCkgZmlsdGVycztcbiAgICBASW5wdXQoKSBpbnB1dEZpbHRlcjtcbiAgICBASW5wdXQoKSBzb3J0O1xuICAgIEBJbnB1dCgpIGxpbWl0OiBudW1iZXI7XG4gICAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSAnc2VhcmNoJztcbiAgICBASW5wdXQoKSBub1Jlc3VsdHNMYWJlbCA9ICdsaXN0LnJlc3VsdHMubm8uaXRlbXMnO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ2xpc3QucGxhY2Vob2xkZXInO1xuICAgIEBJbnB1dCgpIGlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc1NlYXJjaEJ1dHRvbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZWFyY2hEZWxheTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNlYXJjaFN1Ym1pdDogKCkgPT4gdm9pZDtcblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBsaXN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2Nyb2xsZWREb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIGlzU2VsZWN0ZWQgPSAoYXJnPzogYW55KSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0Rpc2FibGVkID0gKGFyZz86IGFueSkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgbmdDbGFzcyA9IChhcmc/OiBhbnkpID0+ICh7fSk7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiIsIjxvZGUtc2VhcmNoLWlucHV0XG4gICpuZ0lmPVwiaXNTZWFyY2hBY3RpdmVcIlxuICBbaXNTZWFyY2hCdXR0b25EaXNhYmxlZF09XCJpc1NlYXJjaEJ1dHRvbkRpc2FibGVkXCJcbiAgW3NlYXJjaElucHV0XT1cInNlYXJjaElucHV0XCJcbiAgW3NlYXJjaFN1Ym1pdF09XCJzZWFyY2hTdWJtaXRcIlxuICBbZGVsYXldPVwic2VhcmNoRGVsYXlcIlxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gIChvbkNoYW5nZSk9XCJpbnB1dENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuPC9vZGUtc2VhcmNoLWlucHV0PlxuXG48ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbGJhcl1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImxpc3Qtd3JhcHBlclwiXG4gIGluZmluaXRlU2Nyb2xsXG4gIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIlxuICAoc2Nyb2xsZWQpPVwic2Nyb2xsZWREb3duLmVtaXQoKVwiXG4gIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbj5cbiAgPHVsPlxuICAgIDxsaVxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWwgfCBmaWx0ZXI6IGZpbHRlcnMgfCBmaWx0ZXI6IGlucHV0RmlsdGVyIHwgc3RvcmU6c2VsZjonc3RvcmVkRWxlbWVudHMnIHwgb3JkZXJCeTogc29ydCB8IHNsaWNlOiAwOmxpbWl0XCJcbiAgICAgIChjbGljayk9XCJvblNlbGVjdC5lbWl0KGl0ZW0pXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NlbGVjdGVkKGl0ZW0pXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3MoaXRlbSlcIlxuICAgICAgY2xhc3M9XCJsY3QtbGlzdC1pdGVtXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogaXRlbX1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgPC91bD5cblxuICA8dWwgKm5nSWY9XCJzdG9yZWRFbGVtZW50cyAmJiBzdG9yZWRFbGVtZW50cy5sZW5ndGggPT09IDBcIj5cbiAgICA8bGkgY2xhc3M9XCJuby1yZXN1bHRzXCI+e3sgbm9SZXN1bHRzTGFiZWwgfCB0cmFuc2xhdGUgfX08L2xpPlxuICA8L3VsPlxuXG4gIDx1bCAqbmdJZj1cIiFtb2RlbFwiPlxuICAgIDxsaSBjbGFzcz1cInBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX08L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "ngx-infinite-scroll";
6
+ import * as i3 from "ngx-ode-sijil";
7
+ import * as i4 from "../../pipes/filter.pipe";
8
+ import * as i5 from "../../pipes/orderBy.pipe";
9
+ import * as i6 from "../../pipes/store.pipe";
10
+ export class ListCheckableComponent extends OdeComponent {
11
+ constructor(injector) {
12
+ super(injector);
13
+ this.model = [];
14
+ this.noResultsLabel = 'list.results.no.items';
15
+ this.readOnly = false;
16
+ this.onCheck = new EventEmitter();
17
+ this.listChange = new EventEmitter();
18
+ this.scrolledDown = new EventEmitter();
19
+ this.areAllChecked = () => false;
20
+ this.isChecked = (arg) => false;
21
+ this.isDisabled = (arg) => false;
22
+ this.ngClass = (arg) => ({});
23
+ /* Store pipe */
24
+ this.self = this;
25
+ this._storedElements = [];
26
+ }
27
+ set storedElements(list) {
28
+ this._storedElements = list;
29
+ this.listChange.emit(list);
30
+ }
31
+ get storedElements() {
32
+ return this._storedElements;
33
+ }
34
+ toggleAll(checkAll) {
35
+ this.model.forEach(item => {
36
+ const isChecked = this.isChecked(item);
37
+ if (!this.isDisabled(item)
38
+ && ((isChecked && !checkAll) || (!isChecked && checkAll))) {
39
+ this.onCheck.emit({ item: item, checked: checkAll });
40
+ }
41
+ });
42
+ }
43
+ }
44
+ ListCheckableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListCheckableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
45
+ ListCheckableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: ListCheckableComponent, selector: "ode-list-checkable", inputs: { model: "model", filters: "filters", sort: "sort", limit: "limit", noResultsLabel: "noResultsLabel", readOnly: "readOnly", areAllChecked: "areAllChecked", isChecked: "isChecked", isDisabled: "isDisabled", ngClass: "ngClass" }, outputs: { onCheck: "onCheck", listChange: "listChange", scrolledDown: "scrolledDown" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-checkable-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\"><span>{{ noResultsLabel | translate }}</span></li>\n </ul>\n \n <ul>\n <li class=\"select-all\" \n [class.checked]=\"areAllChecked()\"\n *ngIf=\"!readOnly\">\n <label>\n <span>{{(areAllChecked() ? 'ux.multiselect.deselect-all' : 'ux.multiselect.select-all') | translate}}</span>\n <input type=\"checkbox\" [checked]=\"areAllChecked()\" (change)=\"toggleAll($event.target.checked)\" />\n </label>\n </li>\n\n <li class=\"lct-list-checkable-item\" \n [class.checked]=\"isChecked(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n *ngFor=\"let item of model | filter: filters | store:self:'storedElements' | orderBy: sort | slice: 0:limit\">\n <label>\n <span>\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template> \n </span>\n <input *ngIf=\"!readOnly\" type=\"checkbox\" \n [disabled]=\"isDisabled(item)\"\n [checked]=\"isChecked(item)\"\n (change)=\"onCheck.emit({item:item, checked:$event.target.checked})\"/>\n </label>\n </li>\n </ul>\n\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{border-top:1px solid #ddd;width:-webkit-fill-available;width:-moz-available;display:flex}ul li:not(.checked){color:#939393}ul li.disabled{pointer-events:none}ul li.select-all{background-color:#ff83520a;color:#5b6472}ul li.select-all span{text-align:right}ul li label{cursor:pointer;width:100%;display:flex}ul li label:hover{background-color:#eaedf2}ul li label span{padding:7px 15px;width:100%}ul li label input[type=checkbox]{margin-right:15px;align-self:center}\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.FilterPipe, name: "filter" }, { kind: "pipe", type: i5.OrderPipe, name: "orderBy" }, { kind: "pipe", type: i6.StorePipe, name: "store" }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListCheckableComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'ode-list-checkable', template: "<div class=\"list-checkable-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\"><span>{{ noResultsLabel | translate }}</span></li>\n </ul>\n \n <ul>\n <li class=\"select-all\" \n [class.checked]=\"areAllChecked()\"\n *ngIf=\"!readOnly\">\n <label>\n <span>{{(areAllChecked() ? 'ux.multiselect.deselect-all' : 'ux.multiselect.select-all') | translate}}</span>\n <input type=\"checkbox\" [checked]=\"areAllChecked()\" (change)=\"toggleAll($event.target.checked)\" />\n </label>\n </li>\n\n <li class=\"lct-list-checkable-item\" \n [class.checked]=\"isChecked(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n *ngFor=\"let item of model | filter: filters | store:self:'storedElements' | orderBy: sort | slice: 0:limit\">\n <label>\n <span>\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template> \n </span>\n <input *ngIf=\"!readOnly\" type=\"checkbox\" \n [disabled]=\"isDisabled(item)\"\n [checked]=\"isChecked(item)\"\n (change)=\"onCheck.emit({item:item, checked:$event.target.checked})\"/>\n </label>\n </li>\n </ul>\n\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{border-top:1px solid #ddd;width:-webkit-fill-available;width:-moz-available;display:flex}ul li:not(.checked){color:#939393}ul li.disabled{pointer-events:none}ul li.select-all{background-color:#ff83520a;color:#5b6472}ul li.select-all span{text-align:right}ul li label{cursor:pointer;width:100%;display:flex}ul li label:hover{background-color:#eaedf2}ul li label span{padding:7px 15px;width:100%}ul li label input[type=checkbox]{margin-right:15px;align-self:center}\n"] }]
49
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { model: [{
50
+ type: Input
51
+ }], filters: [{
52
+ type: Input
53
+ }], sort: [{
54
+ type: Input
55
+ }], limit: [{
56
+ type: Input
57
+ }], noResultsLabel: [{
58
+ type: Input
59
+ }], readOnly: [{
60
+ type: Input
61
+ }], onCheck: [{
62
+ type: Output
63
+ }], listChange: [{
64
+ type: Output
65
+ }], scrolledDown: [{
66
+ type: Output
67
+ }], templateRef: [{
68
+ type: ContentChild,
69
+ args: [TemplateRef]
70
+ }], areAllChecked: [{
71
+ type: Input
72
+ }], isChecked: [{
73
+ type: Input
74
+ }], isDisabled: [{
75
+ type: Input
76
+ }], ngClass: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jaGVja2FibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1jaGVja2FibGUvbGlzdC1jaGVja2FibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1jaGVja2FibGUvbGlzdC1jaGVja2FibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBcUM1RyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQThCcEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUE5QlgsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUlYLG1CQUFjLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUV6QixZQUFPLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdkQsa0JBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDakMsZUFBVSxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsWUFBTyxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLGdCQUFnQjtRQUNoQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFXckIsQ0FBQztJQVZELElBQUksY0FBYyxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBTU0sU0FBUyxDQUFFLFFBQWdCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO21CQUNsQixDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFHO2dCQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxDQUFFLENBQUM7YUFDdEQ7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O21IQTFDUSxzQkFBc0I7dUdBQXRCLHNCQUFzQix3YUFZakIsV0FBVyx1RUNsRDdCLGk4Q0FzQ0E7MkZEQWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjsrRkFLckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFb0IsV0FBVztzQkFBckMsWUFBWTt1QkFBQyxXQUFXO2dCQUVoQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogTGlzdENoZWNrYWJsZUNvbXBvbmVudCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgTGlzdENvbXBvbmVudCB0byBlYXNpbHkgc2VsZWN0IHJvd3MgYnkgdXNpbmcgYSBjaGVja2JveC5cbiAqIFxuICogXG5gYGBcbjxvZGUtbGlzdC1jaGVja2FibGVcbiAgICAgIFtyZWFkT25seV09XCJhX2Jvb2xlYW5cIlxuICAgICAgW21vZGVsXT1cImFuX2FycmF5X29mX2l0ZW1zXCJcbiAgICAgIFtmaWx0ZXJzXT1cIlwiXG4gICAgICBbc29ydF09XCInK2Rpc3BsYXlOYW1lJ1wiXG4gICAgICBbbGltaXRdPVwiYV9udW1iZXJcIlxuICAgICAgW25vUmVzdWx0c0xhYmVsXT1cInRleHRfdG9fZGlzcGxheV93aGVuX25vX2l0ZW1faW5fbW9kZWxcIlxuICAgICAgW2lzQ2hlY2tlZF09XCJhX2xhbWJkYV93aGljaF90YWtlc18xX2l0ZW1fYXJndW1lbnRfYW5kX3JldHVybnNfYV9ib29sZWFuXCJcbiAgICAgIFthcmVBbGxDaGVja2VkXT1cImFfbGFtYmRhX3dpdGhfbm9fYXJndW1lbnRfd2hpY2hfcmV0dXJuc19hX2Jvb2xlYW5cIlxuICAgICAgW25nQ2xhc3NdPVwiYV9sYW1iZGFfd2hpY2hfdGFrZXNfMV9pdGVtX2FyZ3VtZW50X2FuZF9yZXR1cm5zX2FuX29iamVjdFwiXG4gICAgICAob25DaGVjayk9XCJlbWl0c19hbl8kZXZlbnRfbGlrZV97aXRlbTphbnk7IGNoZWNrZWQ6Ym9vbGVhbn1cIlxuICAgICAgKGxpc3RDaGFuZ2UpPVwiXCJcbiAgICAgIChzY3JvbGxlZERvd24pPVwiXCJcbiAgICAgID5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxzcGFuPnt7aXRlbS5kaXNwbGF5TmFtZXx0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIFxuPC9vZGUtbGlzdC1jaGVja2FibGU+XG5gzIBgYFxuICovXG5cbnR5cGUgT25DaGVja0RhdGEgPSB7aXRlbTphbnksIGNoZWNrZWQ6Ym9vbGVhbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLWxpc3QtY2hlY2thYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1jaGVja2FibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QtY2hlY2thYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENoZWNrYWJsZUNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbW9kZWwgPSBbXTtcbiAgICBASW5wdXQoKSBmaWx0ZXJzO1xuICAgIEBJbnB1dCgpIHNvcnQ7XG4gICAgQElucHV0KCkgbGltaXQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBub1Jlc3VsdHNMYWJlbCA9ICdsaXN0LnJlc3VsdHMubm8uaXRlbXMnO1xuICAgIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25DaGVjazogRXZlbnRFbWl0dGVyPE9uQ2hlY2tEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbGlzdENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNjcm9sbGVkRG93bjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBhcmVBbGxDaGVja2VkID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNDaGVja2VkID0gKGFyZz86IGFueSkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEaXNhYmxlZCA9IChhcmc/OiBhbnkpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIG5nQ2xhc3MgPSAoYXJnPzogYW55KSA9PiAoe30pO1xuXG4gICAgLyogU3RvcmUgcGlwZSAqL1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIF9zdG9yZWRFbGVtZW50cyA9IFtdO1xuICAgIHNldCBzdG9yZWRFbGVtZW50cyhsaXN0KSB7XG4gICAgICAgIHRoaXMuX3N0b3JlZEVsZW1lbnRzID0gbGlzdDtcbiAgICAgICAgdGhpcy5saXN0Q2hhbmdlLmVtaXQobGlzdCk7XG4gICAgfVxuICAgIGdldCBzdG9yZWRFbGVtZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlZEVsZW1lbnRzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZUFsbCggY2hlY2tBbGw6Ym9vbGVhbiApIHtcbiAgICAgICAgdGhpcy5tb2RlbC5mb3JFYWNoKCBpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKGl0ZW0pO1xuICAgICAgICAgICAgaWYoICF0aGlzLmlzRGlzYWJsZWQoaXRlbSlcbiAgICAgICAgICAgICAgICAgJiYgKChpc0NoZWNrZWQgJiYgIWNoZWNrQWxsKSB8fCAoIWlzQ2hlY2tlZCAmJiBjaGVja0FsbCkpICkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGVjay5lbWl0KCB7aXRlbTppdGVtLCBjaGVja2VkOmNoZWNrQWxsfSApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QtY2hlY2thYmxlLXdyYXBwZXJcIlxuICAgICBpbmZpbml0ZVNjcm9sbFxuICAgICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCJcbiAgICAgKHNjcm9sbGVkKT1cInNjcm9sbGVkRG93bi5lbWl0KClcIlxuICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiPlxuXG4gIDx1bCAqbmdJZj1cInN0b3JlZEVsZW1lbnRzICYmIHN0b3JlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMFwiPlxuICAgIDxsaSBjbGFzcz1cIm5vLXJlc3VsdHNcIj48c3Bhbj57eyBub1Jlc3VsdHNMYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L2xpPlxuICA8L3VsPlxuICBcbiAgPHVsPlxuICAgIDxsaSBjbGFzcz1cInNlbGVjdC1hbGxcIiBcbiAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiYXJlQWxsQ2hlY2tlZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhcmVhZE9ubHlcIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPHNwYW4+e3soYXJlQWxsQ2hlY2tlZCgpID8gJ3V4Lm11bHRpc2VsZWN0LmRlc2VsZWN0LWFsbCcgOiAndXgubXVsdGlzZWxlY3Quc2VsZWN0LWFsbCcpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhcmVBbGxDaGVja2VkKClcIiAoY2hhbmdlKT1cInRvZ2dsZUFsbCgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCIgLz5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cblxuICAgIDxsaSBjbGFzcz1cImxjdC1saXN0LWNoZWNrYWJsZS1pdGVtXCIgXG4gICAgICAgIFtjbGFzcy5jaGVja2VkXT1cImlzQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgW25nQ2xhc3NdPVwibmdDbGFzcyhpdGVtKVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsIHwgZmlsdGVyOiBmaWx0ZXJzIHwgc3RvcmU6c2VsZjonc3RvcmVkRWxlbWVudHMnIHwgb3JkZXJCeTogc29ydCB8IHNsaWNlOiAwOmxpbWl0XCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBpdGVtfVwiPjwvbmctdGVtcGxhdGU+ICAgICAgICBcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8aW5wdXQgKm5nSWY9XCIhcmVhZE9ubHlcIiB0eXBlPVwiY2hlY2tib3hcIiBcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2suZW1pdCh7aXRlbTppdGVtLCBjaGVja2VkOiRldmVudC50YXJnZXQuY2hlY2tlZH0pXCIvPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuICA8L3VsPlxuXG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,92 @@
1
+ import { HostBinding } from '@angular/core';
2
+ import { Component, Input, Output } from '@angular/core';
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 const icons = {
8
+ info: 'fa-question-circle',
9
+ warning: 'fa-exclamation-circle',
10
+ danger: 'fa-ban',
11
+ success: 'fa-check-circle'
12
+ };
13
+ export class MessageBoxComponent extends OdeComponent {
14
+ constructor(eltRef, injector) {
15
+ super(injector);
16
+ this.eltRef = eltRef;
17
+ this._position = 'inherit';
18
+ /**
19
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
20
+ * No effect when position is 'inherit'.
21
+ */
22
+ this.gravity = 'left';
23
+ this.hidden = false;
24
+ }
25
+ set messages(value) {
26
+ this._messages = [];
27
+ for (const message of value) {
28
+ if (typeof message == 'string') {
29
+ this._messages.push([message, {}]);
30
+ }
31
+ else if (typeof message == 'object') {
32
+ this._messages.push(message);
33
+ }
34
+ }
35
+ }
36
+ get messages() {
37
+ return this._messages;
38
+ }
39
+ set position(value) {
40
+ this._position = value;
41
+ }
42
+ get isGravityLeft() { return this.gravity === 'left'; }
43
+ get isGravityRight() { return this.gravity === 'right'; }
44
+ canHide() {
45
+ if (this._position == 'absolute') {
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ hide() {
51
+ this.hidden = true;
52
+ this.hideEvent.emit();
53
+ }
54
+ ngOnInit() {
55
+ super.ngOnInit();
56
+ if (this.type == undefined) {
57
+ throw new Error('MessageSticker : type\' property must be set');
58
+ }
59
+ this.eltRef.nativeElement.style.position = this._position;
60
+ if (this._position == 'absolute') {
61
+ this.eltRef.nativeElement.style.width = '450px';
62
+ // TODO: Maybe use a static counter to push on top the last open MessageBox ?
63
+ this.eltRef.nativeElement.style.zIndex = '10';
64
+ }
65
+ }
66
+ }
67
+ MessageBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
68
+ MessageBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MessageBoxComponent, selector: "message-box", inputs: { type: "type", header: "header", messages: "messages", position: "position", gravity: "gravity" }, outputs: { hideEvent: "onHide" }, host: { properties: { "class.gravity-left": "this.isGravityLeft", "class.gravity-right": "this.isGravityRight" } }, usesInheritance: true, ngImport: i0, template: "<article class=\"message is-{{type}}\" [hidden]=\"hidden\">\n <div *ngIf=\"header\" class=\"message-header\">\n <p>\n <i *ngIf=\"canHide()\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n {{header | translate}}\n </p>\n </div>\n <div class=\"message-body\">\n <i *ngIf=\"canHide() && !header\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n <p *ngFor=\"let message of messages\">\n <s5l [s5l-params]=\"message[1]\">{{message[0]}}</s5l>\n </p>\n </div>\n</article>\n", styles: [":host{font-size:initial;position:inherit;top:-5px}:host.gravity-left{right:-5px}:host.gravity-right{left:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageBoxComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'message-box', template: "<article class=\"message is-{{type}}\" [hidden]=\"hidden\">\n <div *ngIf=\"header\" class=\"message-header\">\n <p>\n <i *ngIf=\"canHide()\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n {{header | translate}}\n </p>\n </div>\n <div class=\"message-body\">\n <i *ngIf=\"canHide() && !header\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n <p *ngFor=\"let message of messages\">\n <s5l [s5l-params]=\"message[1]\">{{message[0]}}</s5l>\n </p>\n </div>\n</article>\n", styles: [":host{font-size:initial;position:inherit;top:-5px}:host.gravity-left{right:-5px}:host.gravity-right{left:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}\n"] }]
72
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { type: [{
73
+ type: Input
74
+ }], header: [{
75
+ type: Input
76
+ }], messages: [{
77
+ type: Input
78
+ }], position: [{
79
+ type: Input
80
+ }], gravity: [{
81
+ type: Input
82
+ }], isGravityLeft: [{
83
+ type: HostBinding,
84
+ args: ['class.gravity-left']
85
+ }], isGravityRight: [{
86
+ type: HostBinding,
87
+ args: ['class.gravity-right']
88
+ }], hideEvent: [{
89
+ type: Output,
90
+ args: ['onHide']
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQVUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFJNUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLElBQUksRUFBRyxvQkFBb0I7SUFDM0IsT0FBTyxFQUFHLHVCQUF1QjtJQUNqQyxNQUFNLEVBQUcsUUFBUTtJQUNqQixPQUFPLEVBQUcsaUJBQWlCO0NBQzlCLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQUNqRCxZQUNZLE1BQWtCLEVBQzFCLFFBQWtCO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZWLFdBQU0sR0FBTixNQUFNLENBQVk7UUEyQnRCLGNBQVMsR0FBMkIsU0FBUyxDQUFDO1FBS3REOzs7V0FHRztRQUNNLFlBQU8sR0FBcUIsTUFBTSxDQUFDO1FBSTVDLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFyQ1gsQ0FBQztJQVFMLElBQWEsUUFBUSxDQUFDLEtBQWdDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3pCLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO2lCQUNJLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztTQUNKO0lBQ0wsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBYSxRQUFRLENBQUMsS0FBNkI7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQU9ELElBQXVDLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFBLENBQUMsQ0FBQztJQUN6RixJQUF3QyxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQSxDQUFDLENBQUM7SUFJNUYsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ2hELDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqRDtJQUVMLENBQUM7O2dIQW5FUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw0VUNsQmhDLHFnQkFjQTsyRkRJYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0ksYUFBYTt3SEFXZCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBaUJPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQUNpQyxhQUFhO3NCQUFuRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDTyxjQUFjO3NCQUFyRCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFHaEIsU0FBUztzQkFBMUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgY29uc3QgaWNvbnMgPSB7XG4gICAgaW5mbyA6ICdmYS1xdWVzdGlvbi1jaXJjbGUnLFxuICAgIHdhcm5pbmcgOiAnZmEtZXhjbGFtYXRpb24tY2lyY2xlJyxcbiAgICBkYW5nZXIgOiAnZmEtYmFuJyxcbiAgICBzdWNjZXNzIDogJ2ZhLWNoZWNrLWNpcmNsZSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWVzc2FnZS1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS1ib3guY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQm94Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbHRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcikgIHtcbiAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIH1cblxuICAgIEBJbnB1dCgpIHR5cGU6IE1lc3NhZ2VUeXBlO1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xuXG4gICAgLy8gdHlwZSAoc3RyaW5nIHwgW3N0cmluZyxPYmplY3RdKVtdIGVuYWJsZSB0byBwYXNzIGFuIGFycmF5IG9mIFN0cmluZyB3aGVyZSBTdHJpbmcgaXMgaTE4biBrZXlcbiAgICAvLyBvciBhbiBhcnJheSBvZiB0dXBsZTxTdHJpbmcsIE9iamVjdD4gd2hlcmUgU3RyaW5nIGlzIGkxOG4ga2V5IGFuZCBPYmplY3QgaXMgMTE4biBwYXJhbXNcbiAgICBwcml2YXRlIF9tZXNzYWdlczogW3N0cmluZywge31dW107XG4gICAgQElucHV0KCkgc2V0IG1lc3NhZ2VzKHZhbHVlOiAoc3RyaW5nIHwgW3N0cmluZywge31dKVtdKSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKFttZXNzYWdlLCB7fV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBtZXNzYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiAnYWJzb2x1dGUnIHwgJ2luaGVyaXQnID0gJ2luaGVyaXQnO1xuICAgIEBJbnB1dCgpIHNldCBwb3NpdGlvbih2YWx1ZTogJ2Fic29sdXRlJyB8ICdpbmhlcml0Jykge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGBncmF2aXR5YCBzZXQgdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBtZXNzYWdlIGJveCBpZiBpdHMgcG9zaXRpb24gaXMgJ2Fic29sdXRlJy5cbiAgICAgKiBObyBlZmZlY3Qgd2hlbiBwb3NpdGlvbiBpcyAnaW5oZXJpdCcuXG4gICAgICovXG4gICAgQElucHV0KCkgZ3Jhdml0eTogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmdyYXZpdHktbGVmdCcpIGdldCBpc0dyYXZpdHlMZWZ0KCkgeyByZXR1cm4gdGhpcy5ncmF2aXR5ID09PSAnbGVmdCcgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZ3Jhdml0eS1yaWdodCcpIGdldCBpc0dyYXZpdHlSaWdodCgpIHsgcmV0dXJuIHRoaXMuZ3Jhdml0eSA9PT0gJ3JpZ2h0JyB9XG5cbiAgICBoaWRkZW4gPSBmYWxzZTtcbiAgICBAT3V0cHV0KCdvbkhpZGUnKSBoaWRlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbiAgICBjYW5IaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24gPT0gJ2Fic29sdXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBoaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlkZUV2ZW50LmVtaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTWVzc2FnZVN0aWNrZXIgOiB0eXBlXFwnIHByb3BlcnR5IG11c3QgYmUgc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IHRoaXMuX3Bvc2l0aW9uO1xuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24gPT0gJ2Fic29sdXRlJykge1xuICAgICAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICc0NTBweCc7XG4gICAgICAgICAgICAvLyBUT0RPOiBNYXliZSB1c2UgYSBzdGF0aWMgY291bnRlciB0byBwdXNoIG9uIHRvcCB0aGUgbGFzdCBvcGVuIE1lc3NhZ2VCb3ggP1xuICAgICAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAnMTAnO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbiIsIjxhcnRpY2xlIGNsYXNzPVwibWVzc2FnZSBpcy17e3R5cGV9fVwiIFtoaWRkZW5dPVwiaGlkZGVuXCI+XG4gIDxkaXYgKm5nSWY9XCJoZWFkZXJcIiBjbGFzcz1cIm1lc3NhZ2UtaGVhZGVyXCI+XG4gICAgPHA+XG4gICAgICA8aSAqbmdJZj1cImNhbkhpZGUoKVwiIChjbGljayk9XCJoaWRlKClcIiBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT5cbiAgICAgIHt7aGVhZGVyIHwgdHJhbnNsYXRlfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1ib2R5XCI+XG4gICAgPGkgKm5nSWY9XCJjYW5IaWRlKCkgJiYgIWhlYWRlclwiIChjbGljayk9XCJoaWRlKClcIiBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT5cbiAgICA8cCAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiPlxuICAgICAgPHM1bCBbczVsLXBhcmFtc109XCJtZXNzYWdlWzFdXCI+e3ttZXNzYWdlWzBdfX08L3M1bD5cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9hcnRpY2xlPlxuIl19
@@ -0,0 +1,51 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, EventEmitter, Input, ViewChild } from '@angular/core';
3
+ import { icons, MessageBoxComponent } from '../message-box/message-box.component';
4
+ import { DynamicComponentDirective } from '../../directives/dynamic-component/dynamic-component.directive';
5
+ import { ComponentDescriptor } from '../../directives/dynamic-component/component-descriptor.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../directives/dynamic-component/dynamic-component.directive";
8
+ export class MessageStickerComponent extends OdeComponent {
9
+ constructor(injector) {
10
+ super(injector);
11
+ this.gravity = 'left';
12
+ this.icons = icons;
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ if (this.type === undefined) {
17
+ throw new Error('MessageSticker : type\' property must be set');
18
+ }
19
+ }
20
+ newMessageBox() {
21
+ return new ComponentDescriptor(MessageBoxComponent, {
22
+ type: this.type,
23
+ header: this.header,
24
+ messages: this.messages,
25
+ position: 'absolute',
26
+ gravity: this.gravity,
27
+ hideEvent: new EventEmitter()
28
+ });
29
+ }
30
+ loadMessageBox() {
31
+ this.dComponent.load();
32
+ }
33
+ }
34
+ MessageStickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageStickerComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
35
+ MessageStickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MessageStickerComponent, selector: "ode-message-sticker", inputs: { type: "type", header: "header", messages: "messages", gravity: "gravity" }, viewQueries: [{ propertyName: "dComponent", first: true, predicate: DynamicComponentDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<i (click)=\"loadMessageBox()\" class=\"fa {{icons[type]}} is-{{type}}\"></i>\n<span message-box-anchor>\n <ng-container [dynamic-component]=\"newMessageBox()\"></ng-container>\n </span>\n", styles: [":host{display:inline;padding-left:.2em}span[message-box-anchor]{position:absolute;z-index:8}i{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.DynamicComponentDirective, selector: "[dynamic-component]", inputs: ["dynamic-component"] }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageStickerComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'ode-message-sticker', template: "<i (click)=\"loadMessageBox()\" class=\"fa {{icons[type]}} is-{{type}}\"></i>\n<span message-box-anchor>\n <ng-container [dynamic-component]=\"newMessageBox()\"></ng-container>\n </span>\n", styles: [":host{display:inline;padding-left:.2em}span[message-box-anchor]{position:absolute;z-index:8}i{cursor:pointer}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { type: [{
40
+ type: Input
41
+ }], header: [{
42
+ type: Input
43
+ }], messages: [{
44
+ type: Input
45
+ }], gravity: [{
46
+ type: Input
47
+ }], dComponent: [{
48
+ type: ViewChild,
49
+ args: [DynamicComponentDirective]
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL21lc3NhZ2Utc3RpY2tlci9tZXNzYWdlLXN0aWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1zdGlja2VyL21lc3NhZ2Utc3RpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBYyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7QUFPcEcsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFlBQVk7SUFTckQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFOWCxZQUFPLEdBQXFCLE1BQU0sQ0FBQztRQUduQyxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBSXZCLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ25FO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksbUJBQW1CLENBQUMsbUJBQW1CLEVBQUU7WUFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsVUFBVTtZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsU0FBUyxFQUFFLElBQUksWUFBWSxFQUFRO1NBQ3RDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOztvSEFqQ1EsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNkxBS3JCLHlCQUF5Qix1RUNoQnhDLGdOQUlBOzJGRE9hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxxQkFBcUI7K0ZBS3RCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2dDLFVBQVU7c0JBQS9DLFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ljb25zLCBNZXNzYWdlQm94Q29tcG9uZW50LCBNZXNzYWdlVHlwZX0gZnJvbSAnLi4vbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21wb25lbnREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLWNvbXBvbmVudC9jb21wb25lbnQtZGVzY3JpcHRvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLW1lc3NhZ2Utc3RpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utc3RpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS1zdGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVN0aWNrZXJDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHR5cGU6IE1lc3NhZ2VUeXBlO1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1lc3NhZ2VzOiAoc3RyaW5nIHwgW3N0cmluZywge31dKVtdO1xuICAgIEBJbnB1dCgpIGdyYXZpdHk6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlKSBkQ29tcG9uZW50OiBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlO1xuXG4gICAgcmVhZG9ubHkgaWNvbnMgPSBpY29ucztcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXNzYWdlU3RpY2tlciA6IHR5cGVcXCcgcHJvcGVydHkgbXVzdCBiZSBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld01lc3NhZ2VCb3goKTogQ29tcG9uZW50RGVzY3JpcHRvciB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50RGVzY3JpcHRvcihNZXNzYWdlQm94Q29tcG9uZW50LCB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMuaGVhZGVyLFxuICAgICAgICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIGdyYXZpdHk6IHRoaXMuZ3Jhdml0eSxcbiAgICAgICAgICAgIGhpZGVFdmVudDogbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRNZXNzYWdlQm94KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRDb21wb25lbnQubG9hZCgpO1xuICAgIH1cbn1cbiIsIjxpIChjbGljayk9XCJsb2FkTWVzc2FnZUJveCgpXCIgY2xhc3M9XCJmYSB7e2ljb25zW3R5cGVdfX0gaXMte3t0eXBlfX1cIj48L2k+XG48c3BhbiBtZXNzYWdlLWJveC1hbmNob3I+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtkeW5hbWljLWNvbXBvbmVudF09XCJuZXdNZXNzYWdlQm94KClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuIl19