ngx-ode-ui 4.6.0-dev.0 → 4.6.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/esm2020/lib/components/datepicker/datepicker.component.mjs +148 -0
  2. package/esm2020/lib/components/dropdown/dropdown.component.mjs +55 -0
  3. package/esm2020/lib/components/ellipsis/ellipsis.component.mjs +53 -0
  4. package/esm2020/lib/components/form-errors/form-errors.component.mjs +35 -0
  5. package/esm2020/lib/components/form-field/form-field.component.mjs +24 -0
  6. package/esm2020/lib/components/item-tree/item-tree.component.mjs +170 -0
  7. package/esm2020/lib/components/lightbox/lightbox.component.mjs +70 -0
  8. package/esm2020/lib/components/lightbox-confirm/lightbox-confirm.component.mjs +43 -0
  9. package/esm2020/lib/components/list/list.component.mjs +88 -0
  10. package/esm2020/lib/components/list-checkable/list-checkable.component.mjs +79 -0
  11. package/esm2020/lib/components/message-box/message-box.component.mjs +92 -0
  12. package/esm2020/lib/components/message-sticker/message-sticker.component.mjs +51 -0
  13. package/esm2020/lib/components/mono-select/mono-select.component.mjs +83 -0
  14. package/esm2020/lib/components/multi-combo/multi-combo.component.mjs +166 -0
  15. package/esm2020/lib/components/multi-select/multi-select.component.mjs +104 -0
  16. package/esm2020/lib/components/panel-section/panel-section.component.mjs +23 -0
  17. package/esm2020/lib/components/portal/portal.component.mjs +15 -0
  18. package/esm2020/lib/components/push-panel/push-panel.component.mjs +43 -0
  19. package/esm2020/lib/components/search-input/search-input.component.mjs +87 -0
  20. package/esm2020/lib/components/search-toolbar/search-toolbar.component.mjs +56 -0
  21. package/esm2020/lib/components/side-layout/side-layout.component.mjs +23 -0
  22. package/esm2020/lib/components/side-panel/side-panel.component.mjs +41 -0
  23. package/esm2020/lib/components/spinner-cube/spinner-cube.component.mjs +31 -0
  24. package/esm2020/lib/components/table/pager.component.mjs +48 -0
  25. package/esm2020/lib/components/tooltip/tooltip.component.mjs +104 -0
  26. package/esm2020/lib/components/upload-files/upload-files.component.mjs +59 -0
  27. package/esm2020/lib/components/value-editable/simple-select.component.mjs +29 -0
  28. package/esm2020/lib/components/wizard/wizard.component.mjs +152 -0
  29. package/esm2020/lib/directives/anchor.directive.mjs +27 -0
  30. package/esm2020/lib/directives/drag-and-drop-files.directive.mjs +82 -0
  31. package/esm2020/lib/directives/dynamic-component/component-descriptor.model.mjs +15 -0
  32. package/esm2020/lib/directives/dynamic-component/dynamic-component.directive.mjs +58 -0
  33. package/esm2020/lib/directives/dynamictemplate.directive.mjs +83 -0
  34. package/esm2020/lib/directives/object-url.directive.mjs +28 -0
  35. package/esm2020/lib/ngx-ode-ui.module.mjs +282 -0
  36. package/esm2020/lib/pipes/bytes.pipe.mjs +20 -0
  37. package/esm2020/lib/pipes/filter.pipe.mjs +97 -0
  38. package/esm2020/lib/pipes/flattenObjArray.pipe.mjs +35 -0
  39. package/esm2020/lib/pipes/keys.pipe.mjs +20 -0
  40. package/esm2020/lib/pipes/length.pipe.mjs +17 -0
  41. package/esm2020/lib/pipes/limit.pipe.mjs +17 -0
  42. package/esm2020/lib/pipes/localizedDate.pipe.mjs +23 -0
  43. package/esm2020/lib/pipes/orderBy.pipe.mjs +161 -0
  44. package/esm2020/lib/pipes/replace.pipe.mjs +20 -0
  45. package/esm2020/lib/pipes/store.pipe.mjs +17 -0
  46. package/esm2020/lib/services/dynamicModuleImports.service.mjs +13 -0
  47. package/esm2020/lib/services/inputFile.service.mjs +56 -0
  48. package/esm2020/lib/services/labels.service.mjs +32 -0
  49. package/esm2020/lib/services/spinner.service.mjs +76 -0
  50. package/esm2020/lib/utils/math.mjs +19 -0
  51. package/esm2020/lib/utils/string.mjs +11 -0
  52. package/esm2020/lib/utils/testing.mjs +7 -0
  53. package/esm2020/ngx-ode-ui.mjs +5 -0
  54. package/esm2020/public-api.mjs +57 -0
  55. package/fesm2015/ngx-ode-ui.mjs +2954 -0
  56. package/fesm2015/ngx-ode-ui.mjs.map +1 -0
  57. package/fesm2020/ngx-ode-ui.mjs +2952 -0
  58. package/fesm2020/ngx-ode-ui.mjs.map +1 -0
  59. package/index.d.ts +5 -0
  60. package/lib/components/datepicker/datepicker.component.d.ts +7 -2
  61. package/lib/components/dropdown/dropdown.component.d.ts +3 -0
  62. package/lib/components/ellipsis/ellipsis.component.d.ts +4 -1
  63. package/lib/components/form-errors/form-errors.component.d.ts +3 -0
  64. package/lib/components/form-field/form-field.component.d.ts +3 -0
  65. package/lib/components/item-tree/item-tree.component.d.ts +5 -1
  66. package/lib/components/lightbox/lightbox.component.d.ts +5 -1
  67. package/lib/components/lightbox-confirm/lightbox-confirm.component.d.ts +3 -0
  68. package/lib/components/list/list.component.d.ts +5 -1
  69. package/lib/components/list-checkable/list-checkable.component.d.ts +5 -1
  70. package/lib/components/message-box/message-box.component.d.ts +8 -4
  71. package/lib/components/message-sticker/message-sticker.component.d.ts +3 -0
  72. package/lib/components/mono-select/mono-select.component.d.ts +3 -0
  73. package/lib/components/multi-combo/multi-combo.component.d.ts +4 -1
  74. package/lib/components/multi-select/multi-select.component.d.ts +3 -0
  75. package/lib/components/panel-section/panel-section.component.d.ts +3 -0
  76. package/lib/components/portal/portal.component.d.ts +3 -0
  77. package/lib/components/push-panel/push-panel.component.d.ts +4 -1
  78. package/lib/components/search-input/search-input.component.d.ts +5 -1
  79. package/lib/components/search-toolbar/search-toolbar.component.d.ts +3 -0
  80. package/lib/components/side-layout/side-layout.component.d.ts +3 -0
  81. package/lib/components/side-panel/side-panel.component.d.ts +4 -1
  82. package/lib/components/spinner-cube/spinner-cube.component.d.ts +5 -1
  83. package/lib/components/table/pager.component.d.ts +3 -0
  84. package/lib/components/tooltip/tooltip.component.d.ts +3 -0
  85. package/lib/components/upload-files/upload-files.component.d.ts +3 -0
  86. package/lib/components/value-editable/simple-select.component.d.ts +3 -0
  87. package/lib/components/wizard/wizard.component.d.ts +5 -0
  88. package/lib/directives/anchor.directive.d.ts +3 -0
  89. package/lib/directives/drag-and-drop-files.directive.d.ts +3 -0
  90. package/lib/directives/dynamic-component/dynamic-component.directive.d.ts +3 -0
  91. package/lib/directives/dynamictemplate.directive.d.ts +4 -1
  92. package/lib/directives/object-url.directive.d.ts +3 -0
  93. package/lib/ngx-ode-ui.module.d.ts +53 -2
  94. package/lib/pipes/bytes.pipe.d.ts +3 -0
  95. package/lib/pipes/filter.pipe.d.ts +3 -0
  96. package/lib/pipes/flattenObjArray.pipe.d.ts +3 -0
  97. package/lib/pipes/keys.pipe.d.ts +3 -0
  98. package/lib/pipes/length.pipe.d.ts +3 -0
  99. package/lib/pipes/limit.pipe.d.ts +3 -0
  100. package/lib/pipes/localizedDate.pipe.d.ts +3 -0
  101. package/lib/pipes/orderBy.pipe.d.ts +3 -0
  102. package/lib/pipes/replace.pipe.d.ts +8 -0
  103. package/lib/pipes/store.pipe.d.ts +3 -0
  104. package/lib/services/dynamicModuleImports.service.d.ts +3 -0
  105. package/lib/services/inputFile.service.d.ts +3 -0
  106. package/lib/services/labels.service.d.ts +3 -0
  107. package/lib/services/spinner.service.d.ts +4 -1
  108. package/package.json +29 -17
  109. package/public-api.d.ts +3 -0
  110. package/CHANGELOG.md +0 -14
  111. package/bundles/ngx-ode-ui.umd.js +0 -5805
  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 -177
  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 -200
  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 -5028
  222. package/fesm2015/ngx-ode-ui.js.map +0 -1
  223. package/fesm5/ngx-ode-ui.js +0 -5561
  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,87 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ export class SearchInputComponent extends OdeComponent {
9
+ constructor(injector, _elRef, _renderer) {
10
+ super(injector);
11
+ this._elRef = _elRef;
12
+ this._renderer = _renderer;
13
+ /* Inputs / Outputs / View */
14
+ this.isSearchActive = false;
15
+ this.isSearchButtonDisabled = false;
16
+ this.searchInput = false;
17
+ this._delay = 200;
18
+ this.onChange = new EventEmitter();
19
+ /* Internal logic */
20
+ this.$searchTerms = new Subject();
21
+ }
22
+ set delay(d) {
23
+ this._delay = d;
24
+ this.observable = this.$searchTerms.pipe(debounceTime(this.delay), distinctUntilChanged());
25
+ if (this.observer) {
26
+ this.observer.unsubscribe();
27
+ }
28
+ this.observer = this.observable.subscribe(val => {
29
+ this.onChange.emit(val);
30
+ });
31
+ }
32
+ get delay() {
33
+ return this._delay;
34
+ }
35
+ evalAttributes() {
36
+ const element = this._elRef.nativeElement;
37
+ if (element && this.searchBox) {
38
+ for (let i = 0; i < element.attributes.length; i++) {
39
+ const attr = element.attributes[i];
40
+ this._renderer.setAttribute(this.searchBox.nativeElement, attr.name, attr.value);
41
+ }
42
+ }
43
+ }
44
+ ngOnInit() {
45
+ super.ngOnInit();
46
+ if (!this.observable) {
47
+ this.observable = this.$searchTerms
48
+ .pipe(debounceTime(this.delay), distinctUntilChanged());
49
+ this.observer = this.observable.subscribe(val => {
50
+ this.onChange.emit(val);
51
+ });
52
+ }
53
+ setTimeout(() => this.evalAttributes(), 20);
54
+ }
55
+ ngOnDestroy() {
56
+ super.ngOnDestroy();
57
+ this.observer.unsubscribe();
58
+ }
59
+ search(str) {
60
+ this.$searchTerms.next(str);
61
+ }
62
+ handleSubmit() {
63
+ this.searchSubmit();
64
+ }
65
+ }
66
+ SearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SearchInputComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
67
+ SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SearchInputComponent, selector: "ode-search-input", inputs: { isSearchActive: "isSearchActive", isSearchButtonDisabled: "isSearchButtonDisabled", searchInput: "searchInput", searchSubmit: "searchSubmit", delay: "delay" }, outputs: { onChange: "onChange" }, viewQueries: [{ propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form\n class=\"search-container\"\n (ngSubmit)=\"searchInput && handleSubmit()\">\n <input\n #searchBox\n class=\"search-input\"\n name=\"searchTerm\"\n type=\"search\"\n (input)=\"search(searchBox.value)\" />\n <button class=\"search-button\" *ngIf=\"searchInput\" [attr.disabled]=\"isSearchButtonDisabled ? true : null\">\n <i class=\"fa fa-search is-size-4 search-icon\"></i>\n </button>\n</form>\n\n<!-- <input *ngIf=\"!searchInput\" type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/> -->", styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SearchInputComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'ode-search-input', template: "<form\n class=\"search-container\"\n (ngSubmit)=\"searchInput && handleSubmit()\">\n <input\n #searchBox\n class=\"search-input\"\n name=\"searchTerm\"\n type=\"search\"\n (input)=\"search(searchBox.value)\" />\n <button class=\"search-button\" *ngIf=\"searchInput\" [attr.disabled]=\"isSearchButtonDisabled ? true : null\">\n <i class=\"fa fa-search is-size-4 search-icon\"></i>\n </button>\n</form>\n\n<!-- <input *ngIf=\"!searchInput\" type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/> -->", styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}\n"] }]
71
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { isSearchActive: [{
72
+ type: Input
73
+ }], isSearchButtonDisabled: [{
74
+ type: Input
75
+ }], searchInput: [{
76
+ type: Input
77
+ }], searchSubmit: [{
78
+ type: Input
79
+ }], delay: [{
80
+ type: Input
81
+ }], onChange: [{
82
+ type: Output
83
+ }], searchBox: [{
84
+ type: ViewChild,
85
+ args: ['searchBox']
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFhLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQWEsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVFsRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTtJQUVsRCxZQUFZLFFBQWtCLEVBQ1YsTUFBa0IsRUFDbEIsU0FBb0I7UUFDcEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRkEsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBSXhDLDZCQUE2QjtRQUNwQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFlOUIsV0FBTSxHQUFHLEdBQUcsQ0FBQztRQUVYLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl0RSxvQkFBb0I7UUFFWixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUE1QjdDLENBQUM7SUFPRCxJQUFh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JztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1zZWFyY2gtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaElucHV0Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8qIElucHV0cyAvIE91dHB1dHMgLyBWaWV3ICovXG4gICAgQElucHV0KCkgaXNTZWFyY2hBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1NlYXJjaEJ1dHRvbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZWFyY2hTdWJtaXQ6ICgpID0+IHZvaWQ7XG4gICAgQElucHV0KCkgc2V0IGRlbGF5KGQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9kZWxheSA9IGQ7XG4gICAgICAgIHRoaXMub2JzZXJ2YWJsZSA9IHRoaXMuJHNlYXJjaFRlcm1zLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgZGVsYXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWxheTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZGVsYXkgPSAyMDA7XG5cbiAgICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hCb3gnKSBzZWFyY2hCb3g6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiBJbnRlcm5hbCBsb2dpYyAqL1xuXG4gICAgcHJpdmF0ZSAkc2VhcmNoVGVybXMgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBldmFsQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIHRoaXMuc2VhcmNoQm94KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBlbGVtZW50LmF0dHJpYnV0ZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQsIGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLm9ic2VydmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2YWJsZSA9IHRoaXMuJHNlYXJjaFRlcm1zXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlbGF5KSxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh2YWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV2YWxBdHRyaWJ1dGVzKCksIDIwKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHNlYXJjaChzdHI6IHN0cmluZykge1xuICAgICAgICB0aGlzLiRzZWFyY2hUZXJtcy5uZXh0KHN0cik7XG4gICAgfVxuXG4gICAgaGFuZGxlU3VibWl0KCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN1Ym1pdCgpO1xuICAgIH1cblxufVxuIiwiPGZvcm1cbiAgICBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIlxuICAgIChuZ1N1Ym1pdCk9XCJzZWFyY2hJbnB1dCAmJiBoYW5kbGVTdWJtaXQoKVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoQm94XG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgbmFtZT1cInNlYXJjaFRlcm1cIlxuICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgKGlucHV0KT1cInNlYXJjaChzZWFyY2hCb3gudmFsdWUpXCIgLz5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiICpuZ0lmPVwic2VhcmNoSW5wdXRcIiBbYXR0ci5kaXNhYmxlZF09XCJpc1NlYXJjaEJ1dHRvbkRpc2FibGVkID8gdHJ1ZSA6IG51bGxcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggaXMtc2l6ZS00IHNlYXJjaC1pY29uXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuPC9mb3JtPlxuXG48IS0tIDxpbnB1dCAqbmdJZj1cIiFzZWFyY2hJbnB1dFwiIHR5cGU9XCJzZWFyY2hcIiAjc2VhcmNoQm94IChpbnB1dCk9XCJzZWFyY2goc2VhcmNoQm94LnZhbHVlKVwiLz4gLS0+Il19
@@ -0,0 +1,56 @@
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 "@angular/common";
5
+ import * as i2 from "ngx-ode-sijil";
6
+ /**
7
+ * Search Toolbar component.
8
+ * Used within List component, Search Toolbar will display following information:
9
+ * - Label of the search filter section (example: 'Search by')
10
+ * - List of search type filters (example: 'Name', 'Email' , ...)
11
+ * - Number of items returned by the search
12
+ *
13
+ ```
14
+ <ode-search-toolbar
15
+ [label]="'user.searchType.label'"
16
+ [searchTypes]="searchTypes"
17
+ [nbItem]="nbUser || 0"
18
+ [nbItemLabel]="'list.results.users'"
19
+ (selectSearchType)="handleSelectSearchType($event)"
20
+ >
21
+ </ode-search-toolbar>
22
+ ```
23
+ */
24
+ export class SearchToolbarComponent extends OdeComponent {
25
+ constructor(injector) {
26
+ super(injector);
27
+ this.nbItem = 0;
28
+ this.selectSearchType = new EventEmitter();
29
+ }
30
+ ngOnInit() {
31
+ if (this.searchTypes && this.searchTypes.length > 0) {
32
+ this.selectedSearchTypeValue = this.searchTypes[0].value;
33
+ }
34
+ }
35
+ handleSearchTypeClick(searchTypeValue) {
36
+ this.selectedSearchTypeValue = searchTypeValue;
37
+ this.selectSearchType.emit(searchTypeValue);
38
+ }
39
+ }
40
+ SearchToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SearchToolbarComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
41
+ SearchToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SearchToolbarComponent, selector: "ode-search-toolbar", inputs: { label: "label", searchTypes: "searchTypes", nbItem: "nbItem", nbItemLabel: "nbItemLabel" }, outputs: { selectSearchType: "selectSearchType" }, usesInheritance: true, ngImport: i0, template: "<div class=\"search-toolbar\">\n <div class=\"search-toolbar-label\">\n <s5l>{{ label }}</s5l>\n <button\n *ngFor=\"let searchType of searchTypes\"\n class=\"button has-left-margin-5\"\n [ngClass]=\"{\n 'is-selected': searchType.value === selectedSearchTypeValue\n }\"\n (click)=\"handleSearchTypeClick(searchType.value)\"\n >\n <s5l>{{ searchType.label }}</s5l>\n </button>\n </div>\n <div>\n <strong class=\"badge\">{{ nbItem }} <s5l>{{ nbItemLabel }}</s5l></strong>\n </div>\n</div>\n", styles: [".search-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px}.search-toolbar .search-toolbar-label{font-size:.85rem}.search-toolbar .search-toolbar-label .button{padding:4px 12px;border-radius:20px;font-size:12px;border-width:2px;border-color:#ff8d2e}\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: "component", type: i2.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SearchToolbarComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'ode-search-toolbar', template: "<div class=\"search-toolbar\">\n <div class=\"search-toolbar-label\">\n <s5l>{{ label }}</s5l>\n <button\n *ngFor=\"let searchType of searchTypes\"\n class=\"button has-left-margin-5\"\n [ngClass]=\"{\n 'is-selected': searchType.value === selectedSearchTypeValue\n }\"\n (click)=\"handleSearchTypeClick(searchType.value)\"\n >\n <s5l>{{ searchType.label }}</s5l>\n </button>\n </div>\n <div>\n <strong class=\"badge\">{{ nbItem }} <s5l>{{ nbItemLabel }}</s5l></strong>\n </div>\n</div>\n", styles: [".search-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px}.search-toolbar .search-toolbar-label{font-size:.85rem}.search-toolbar .search-toolbar-label .button{padding:4px 12px;border-radius:20px;font-size:12px;border-width:2px;border-color:#ff8d2e}\n"] }]
45
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { label: [{
46
+ type: Input
47
+ }], searchTypes: [{
48
+ type: Input
49
+ }], nbItem: [{
50
+ type: Input
51
+ }], nbItemLabel: [{
52
+ type: Input
53
+ }], selectSearchType: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLXRvb2xiYXIvc2VhcmNoLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLXRvb2xiYXIvc2VhcmNoLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQU9ILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxZQUFZO0lBVXRELFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBUFQsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUVsQixxQkFBZ0IsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU10RSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGVBQXVCO1FBQ2xELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDOzttSEF2QlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsME9DM0JuQyxpaUJBa0JBOzJGRFNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7K0ZBTXJCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tIFwibmd4LW9kZS1jb3JlXCI7XG5cbi8qKlxuICogU2VhcmNoIFRvb2xiYXIgY29tcG9uZW50LlxuICogVXNlZCB3aXRoaW4gTGlzdCBjb21wb25lbnQsIFNlYXJjaCBUb29sYmFyIHdpbGwgZGlzcGxheSBmb2xsb3dpbmcgaW5mb3JtYXRpb246XG4gKiAtIExhYmVsIG9mIHRoZSBzZWFyY2ggZmlsdGVyIHNlY3Rpb24gKGV4YW1wbGU6ICdTZWFyY2ggYnknKVxuICogLSBMaXN0IG9mIHNlYXJjaCB0eXBlIGZpbHRlcnMgKGV4YW1wbGU6ICdOYW1lJywgJ0VtYWlsJyAsIC4uLilcbiAqIC0gTnVtYmVyIG9mIGl0ZW1zIHJldHVybmVkIGJ5IHRoZSBzZWFyY2hcbiAqXG5gYGBcbjxvZGUtc2VhcmNoLXRvb2xiYXJcbiAgW2xhYmVsXT1cIid1c2VyLnNlYXJjaFR5cGUubGFiZWwnXCJcbiAgW3NlYXJjaFR5cGVzXT1cInNlYXJjaFR5cGVzXCJcbiAgW25iSXRlbV09XCJuYlVzZXIgfHwgMFwiXG4gIFtuYkl0ZW1MYWJlbF09XCInbGlzdC5yZXN1bHRzLnVzZXJzJ1wiXG4gIChzZWxlY3RTZWFyY2hUeXBlKT1cImhhbmRsZVNlbGVjdFNlYXJjaFR5cGUoJGV2ZW50KVwiXG4+XG48L29kZS1zZWFyY2gtdG9vbGJhcj5cbmBgYFxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29kZS1zZWFyY2gtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC10b29sYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoVG9vbGJhckNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2VhcmNoVHlwZXM6IEFycmF5PHtsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfT47XG4gIEBJbnB1dCgpIG5iSXRlbTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbmJJdGVtTGFiZWw6IHN0cmluZztcbiAgQE91dHB1dCgpIHNlbGVjdFNlYXJjaFR5cGU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHNlbGVjdGVkU2VhcmNoVHlwZVZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5zZWFyY2hUeXBlcyAmJiB0aGlzLnNlYXJjaFR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaFR5cGVWYWx1ZSA9IHRoaXMuc2VhcmNoVHlwZXNbMF0udmFsdWU7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU2VhcmNoVHlwZUNsaWNrKHNlYXJjaFR5cGVWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFNlYXJjaFR5cGVWYWx1ZSA9IHNlYXJjaFR5cGVWYWx1ZTtcbiAgICB0aGlzLnNlbGVjdFNlYXJjaFR5cGUuZW1pdChzZWFyY2hUeXBlVmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoLXRvb2xiYXJcIj5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC10b29sYmFyLWxhYmVsXCI+XG4gICAgPHM1bD57eyBsYWJlbCB9fTwvczVsPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBzZWFyY2hUeXBlIG9mIHNlYXJjaFR5cGVzXCJcbiAgICAgIGNsYXNzPVwiYnV0dG9uIGhhcy1sZWZ0LW1hcmdpbi01XCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2lzLXNlbGVjdGVkJzogc2VhcmNoVHlwZS52YWx1ZSA9PT0gc2VsZWN0ZWRTZWFyY2hUeXBlVmFsdWVcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVNlYXJjaFR5cGVDbGljayhzZWFyY2hUeXBlLnZhbHVlKVwiXG4gICAgPlxuICAgICAgPHM1bD57eyBzZWFyY2hUeXBlLmxhYmVsIH19PC9zNWw+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxzdHJvbmcgY2xhc3M9XCJiYWRnZVwiPnt7IG5iSXRlbSB9fSA8czVsPnt7IG5iSXRlbUxhYmVsIH19PC9zNWw+PC9zdHJvbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,23 @@
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
+ export class SideLayoutComponent extends OdeComponent {
6
+ constructor(injector) {
7
+ super(injector);
8
+ this.showCompanion = false;
9
+ this.close = new EventEmitter();
10
+ }
11
+ }
12
+ SideLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SideLayoutComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
13
+ SideLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SideLayoutComponent, selector: "ode-side-layout", inputs: { showCompanion: "showCompanion" }, outputs: { close: "closeCompanion" }, usesInheritance: true, ngImport: i0, template: "<div class=\"side-layout\">\n <div class=\"side-card\">\n <ng-content select=\"[side-card]\"></ng-content>\n </div>\n <div class=\"side-companion\" *ngIf=\"showCompanion\">\n <ng-content select=\"[side-companion]\"></ng-content>\n </div>\n</div>\n", styles: ["div.side-layout{display:flex;flex-wrap:nowrap;align-items:flex-start}div.side-card{flex:400px 0 0;position:relative}div.side-companion{flex:1;position:relative;margin-left:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SideLayoutComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'ode-side-layout', template: "<div class=\"side-layout\">\n <div class=\"side-card\">\n <ng-content select=\"[side-card]\"></ng-content>\n </div>\n <div class=\"side-companion\" *ngIf=\"showCompanion\">\n <ng-content select=\"[side-companion]\"></ng-content>\n </div>\n</div>\n", styles: ["div.side-layout{display:flex;flex-wrap:nowrap;align-items:flex-start}div.side-card{flex:400px 0 0;position:relative}div.side-companion{flex:1;position:relative;margin-left:25px}\n"] }]
17
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { showCompanion: [{
18
+ type: Input
19
+ }], close: [{
20
+ type: Output,
21
+ args: ['closeCompanion']
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1sYXlvdXQvc2lkZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1sYXlvdXQvc2lkZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7QUFPakYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFlBQVk7SUFJakQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKWCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUNMLFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUkvRSxDQUFDOztnSEFOUSxtQkFBbUI7b0dBQW5CLG1CQUFtQixnS0NSaEMsbVFBUUE7MkZEQWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNJLGlCQUFpQjsrRkFLbEIsYUFBYTtzQkFBckIsS0FBSztnQkFDb0IsS0FBSztzQkFBOUIsTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLXNpZGUtbGF5b3V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGUtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2lkZUxheW91dENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgc2hvd0NvbXBhbmlvbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoJ2Nsb3NlQ29tcGFuaW9uJykgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNpZGUtbGF5b3V0XCI+XG4gIDxkaXYgY2xhc3M9XCJzaWRlLWNhcmRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2lkZS1jYXJkXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzaWRlLWNvbXBhbmlvblwiICpuZ0lmPVwic2hvd0NvbXBhbmlvblwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzaWRlLWNvbXBhbmlvbl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,41 @@
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
+ export class SidePanelComponent extends OdeComponent {
6
+ constructor(injector, elementRef) {
7
+ super(injector);
8
+ this.elementRef = elementRef;
9
+ this.onClose = new EventEmitter();
10
+ }
11
+ set toggle(toggle) {
12
+ this.opened = toggle;
13
+ }
14
+ onClick(event) {
15
+ const checkOpener = this.opener &&
16
+ (this.opener.contains && this.opener.contains(event.target)) ||
17
+ (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));
18
+ if (this.opened &&
19
+ !this.elementRef.nativeElement.contains(event.target) &&
20
+ !checkOpener) {
21
+ this.opened = false;
22
+ this.onClose.emit();
23
+ }
24
+ return true;
25
+ }
26
+ }
27
+ SidePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SidePanelComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
28
+ SidePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SidePanelComponent, selector: "ode-side-panel", inputs: { toggle: "toggle", opener: "opener" }, outputs: { onClose: "onClose" }, host: { listeners: { "document:click": "onClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{ opened: opened }\">\n <ng-content></ng-content>\n</div>\n", styles: ["div{position:fixed;z-index:10;overflow-x:hidden;overflow-y:scroll;top:0;left:-30%;width:30%;transition:transform .25s}div.opened{transform:translate(100%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SidePanelComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'ode-side-panel', host: {
32
+ '(document:click)': 'onClick($event)',
33
+ }, template: "<div [ngClass]=\"{ opened: opened }\">\n <ng-content></ng-content>\n</div>\n", styles: ["div{position:fixed;z-index:10;overflow-x:hidden;overflow-y:scroll;top:0;left:-30%;width:30%;transition:transform .25s}div.opened{transform:translate(100%)}\n"] }]
34
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { toggle: [{
35
+ type: Input
36
+ }], opener: [{
37
+ type: Input
38
+ }], onClose: [{
39
+ type: Output
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLXBhbmVsL3NpZGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQzs7O0FBVTdGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBR2hELFlBQVksUUFBa0IsRUFBVSxVQUFzQjtRQUMxRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEb0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVNwRCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVBoRCxDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBS0QsT0FBTyxDQUFDLEtBQUs7UUFDVCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUMzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVwRixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQ1gsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNyRCxDQUFDLFdBQVcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzsrR0ExQlEsa0JBQWtCO21HQUFsQixrQkFBa0IsNE5DWC9CLCtFQUdBOzJGRFFhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxnQkFBZ0IsUUFHcEI7d0JBQ0Ysa0JBQWtCLEVBQUUsaUJBQWlCO3FCQUN4Qzt3SEFTWSxNQUFNO3NCQUFsQixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1zaWRlLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2lkZS1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNpZGVQYW5lbENvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgb3BlbmVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0b2dnbGUodG9nZ2xlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdG9nZ2xlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIG9wZW5lcjtcbiAgICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIG9uQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgY29uc3QgY2hlY2tPcGVuZXIgPSB0aGlzLm9wZW5lciAmJlxuICAgICAgICAgICAgKHRoaXMub3BlbmVyLmNvbnRhaW5zICYmIHRoaXMub3BlbmVyLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHx8XG4gICAgICAgICAgICAodGhpcy5vcGVuZXIubmF0aXZlRWxlbWVudCAmJiB0aGlzLm9wZW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCAmJlxuICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgICAgICFjaGVja09wZW5lcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgb3BlbmVkOiBvcGVuZWQgfVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/spinner.service";
5
+ import * as i2 from "@angular/common";
6
+ export class SpinnerCubeComponent extends OdeComponent {
7
+ constructor(injector, spinner) {
8
+ super(injector);
9
+ this.spinner = spinner;
10
+ }
11
+ set loadingProp(prop) {
12
+ this._loadingProp = prop;
13
+ }
14
+ get loadingProp() { return this._loadingProp; }
15
+ ngOnInit() {
16
+ super.ngOnInit();
17
+ this.subscriptions.add(this.spinner.trigger.subscribe(() => {
18
+ this.changeDetector.markForCheck();
19
+ }));
20
+ }
21
+ }
22
+ SpinnerCubeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SpinnerCubeComponent, deps: [{ token: i0.Injector }, { token: i1.SpinnerService }], target: i0.ɵɵFactoryTarget.Component });
23
+ SpinnerCubeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SpinnerCubeComponent, selector: "ode-spinner-cube", inputs: { loadingProp: ["waitingFor", "loadingProp"] }, usesInheritance: true, ngImport: i0, template: "<div class=\"spinner-wrapper\" *ngIf=\"spinner.isLoading(loadingProp)\">\n <div class=\"spinner-cube\">\n <div class=\"sk-cube sk-cube1\"></div>\n <div class=\"sk-cube sk-cube2\"></div>\n <div class=\"sk-cube sk-cube3\"></div>\n <div class=\"sk-cube sk-cube4\"></div>\n <div class=\"sk-cube sk-cube5\"></div>\n <div class=\"sk-cube sk-cube6\"></div>\n <div class=\"sk-cube sk-cube7\"></div>\n <div class=\"sk-cube sk-cube8\"></div>\n <div class=\"sk-cube sk-cube9\"></div>\n </div>\n</div>\n", styles: ["div.spinner-wrapper{position:fixed;width:100%;height:100%;pointer-events:all;display:flex;justify-content:center;align-items:center}div.spinner-cube{width:20vh;height:20vh}div.sk-cube{width:33%;height:33%;float:left;animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out}div.sk-cube1{animation-delay:.2s}div.sk-cube2{animation-delay:.3s}div.sk-cube3{animation-delay:.4s}div.sk-cube4{animation-delay:.1s}div.sk-cube5{animation-delay:.2s}div.sk-cube6{animation-delay:.3s}div.sk-cube7{animation-delay:0s}div.sk-cube8{animation-delay:.1s}div.sk-cube9{animation-delay:.2s}@keyframes sk-cubeGridScaleDelay{0%,70%,to{transform:scaleZ(1)}35%{transform:scale3D(0,0,1)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SpinnerCubeComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'ode-spinner-cube', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"spinner-wrapper\" *ngIf=\"spinner.isLoading(loadingProp)\">\n <div class=\"spinner-cube\">\n <div class=\"sk-cube sk-cube1\"></div>\n <div class=\"sk-cube sk-cube2\"></div>\n <div class=\"sk-cube sk-cube3\"></div>\n <div class=\"sk-cube sk-cube4\"></div>\n <div class=\"sk-cube sk-cube5\"></div>\n <div class=\"sk-cube sk-cube6\"></div>\n <div class=\"sk-cube sk-cube7\"></div>\n <div class=\"sk-cube sk-cube8\"></div>\n <div class=\"sk-cube sk-cube9\"></div>\n </div>\n</div>\n", styles: ["div.spinner-wrapper{position:fixed;width:100%;height:100%;pointer-events:all;display:flex;justify-content:center;align-items:center}div.spinner-cube{width:20vh;height:20vh}div.sk-cube{width:33%;height:33%;float:left;animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out}div.sk-cube1{animation-delay:.2s}div.sk-cube2{animation-delay:.3s}div.sk-cube3{animation-delay:.4s}div.sk-cube4{animation-delay:.1s}div.sk-cube5{animation-delay:.2s}div.sk-cube6{animation-delay:.3s}div.sk-cube7{animation-delay:0s}div.sk-cube8{animation-delay:.1s}div.sk-cube9{animation-delay:.2s}@keyframes sk-cubeGridScaleDelay{0%,70%,to{transform:scaleZ(1)}35%{transform:scale3D(0,0,1)}}\n"] }]
27
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.SpinnerService }]; }, propDecorators: { loadingProp: [{
28
+ type: Input,
29
+ args: ['waitingFor']
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1jdWJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL3NwaW5uZXItY3ViZS9zcGlubmVyLWN1YmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1jdWJlL3NwaW5uZXItY3ViZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQixNQUFNLGVBQWUsQ0FBQzs7OztBQVN2RyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTtJQVVsRCxZQUNJLFFBQWtCLEVBQ1gsT0FBdUI7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRGIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFFOUIsQ0FBQztJQVpMLElBQ0ksV0FBVyxDQUFDLElBQVk7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFVL0MsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7O2lIQXJCUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix1SUNWakMsMGdCQWFBOzJGREhhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBQ1gsdUJBQXVCLENBQUMsTUFBTTs0SEFPM0MsV0FBVztzQkFEZCxLQUFLO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1zcGlubmVyLWN1YmUnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLWN1YmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NwaW5uZXItY3ViZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNwaW5uZXJDdWJlQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgnd2FpdGluZ0ZvcicpXG4gICAgc2V0IGxvYWRpbmdQcm9wKHByb3A6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sb2FkaW5nUHJvcCA9IHByb3A7XG4gICAgfVxuICAgIGdldCBsb2FkaW5nUHJvcCgpIHsgcmV0dXJuIHRoaXMuX2xvYWRpbmdQcm9wOyB9XG4gICAgcHJpdmF0ZSBfbG9hZGluZ1Byb3A6IHN0cmluZztcblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHVibGljIHNwaW5uZXI6IFNwaW5uZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3Bpbm5lci50cmlnZ2VyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic3Bpbm5lci13cmFwcGVyXCIgKm5nSWY9XCJzcGlubmVyLmlzTG9hZGluZyhsb2FkaW5nUHJvcClcIj5cbiAgPGRpdiBjbGFzcz1cInNwaW5uZXItY3ViZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlIHNrLWN1YmUxXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTJcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2stY3ViZSBzay1jdWJlM1wiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlIHNrLWN1YmU0XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2stY3ViZSBzay1jdWJlNlwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlIHNrLWN1YmU3XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZThcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2stY3ViZSBzay1jdWJlOVwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,48 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-ode-sijil";
5
+ import * as i2 from "@angular/common";
6
+ export class PagerComponent extends OdeComponent {
7
+ constructor(injector, bundles) {
8
+ super(injector);
9
+ this.bundles = bundles;
10
+ this.offsetChange = new EventEmitter();
11
+ this.translate = (...args) => this.bundles.translate(...args);
12
+ }
13
+ ngOnInit() { }
14
+ previousPage() {
15
+ if (this.offset - this.limit >= 0) {
16
+ this.offset = this.offset - this.limit;
17
+ }
18
+ else {
19
+ this.offset = 0;
20
+ }
21
+ this.offsetChange.emit(this.offset);
22
+ }
23
+ nextPage() {
24
+ if (this.offset + this.limit <= this.total) {
25
+ this.offset = this.offset + this.limit;
26
+ }
27
+ this.offsetChange.emit(this.offset);
28
+ }
29
+ offsetLimit() {
30
+ return this.offset + this.limit < this.total ?
31
+ this.offset + this.limit : this.total;
32
+ }
33
+ }
34
+ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PagerComponent, deps: [{ token: i0.Injector }, { token: i1.BundlesService }], target: i0.ɵɵFactoryTarget.Component });
35
+ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: PagerComponent, selector: "ode-pager", inputs: { limit: "limit", offset: "offset", total: "total" }, outputs: { offsetChange: "offsetChange" }, usesInheritance: true, ngImport: i0, template: "<strong><s5l>pager.page</s5l></strong>\n<a class=\"button\" [ngClass]=\"{'is-hidden': offset - limit < 0}\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left\"></i> <s5l>pager.page.previous</s5l>\n</a>\n<span>{{\"pager.position\" | translate : {offset : offset+1, offsetLimit:offsetLimit(), total:total} }}</span>\n<a class=\"button\" [ngClass]=\"{'is-hidden': offset + limit > total}\" (click)=\"nextPage()\">\n <s5l>pager.page.next</s5l> <i class=\"fa fa-chevron-right\"></i>\n</a>\n", styles: ["i{cursor:pointer;padding:0 2px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: PagerComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'ode-pager', changeDetection: ChangeDetectionStrategy.OnPush, template: "<strong><s5l>pager.page</s5l></strong>\n<a class=\"button\" [ngClass]=\"{'is-hidden': offset - limit < 0}\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left\"></i> <s5l>pager.page.previous</s5l>\n</a>\n<span>{{\"pager.position\" | translate : {offset : offset+1, offsetLimit:offsetLimit(), total:total} }}</span>\n<a class=\"button\" [ngClass]=\"{'is-hidden': offset + limit > total}\" (click)=\"nextPage()\">\n <s5l>pager.page.next</s5l> <i class=\"fa fa-chevron-right\"></i>\n</a>\n", styles: ["i{cursor:pointer;padding:0 2px}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.BundlesService }]; }, propDecorators: { limit: [{
40
+ type: Input
41
+ }], offset: [{
42
+ type: Input
43
+ }], offsetChange: [{
44
+ type: Output
45
+ }], total: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7O0FBWWxILE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUM1QyxZQUNJLFFBQWtCLEVBQ1YsT0FBdUI7UUFFM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRlosWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFRekIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXBELGNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQVQ5RCxDQUFDO0lBV0wsUUFBUSxLQUFJLENBQUM7SUFFYixZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFDO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUM7OzJHQXRDUSxjQUFjOytGQUFkLGNBQWMsaUxDYjNCLHFmQVFBOzJGREthLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0ksV0FBVyxtQkFLSix1QkFBdUIsQ0FBQyxNQUFNOzRIQVV0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCdW5kbGVzU2VydmljZX0gZnJvbSAnbmd4LW9kZS1zaWppbCc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtcGFnZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICBpIHtjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDAgMnB4O31cbiAgICBgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlckNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBidW5kbGVzOiBCdW5kbGVzU2VydmljZVxuICAgICAgICApICB7XG4gICAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIH1cblxuICAgIEBJbnB1dCgpIGxpbWl0OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBvZmZzZXQ6IG51bWJlcjtcbiAgICBAT3V0cHV0KCkgb2Zmc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASW5wdXQoKSB0b3RhbDogbnVtYmVyO1xuXG4gICAgdHJhbnNsYXRlID0gKC4uLmFyZ3MpID0+ICh0aGlzLmJ1bmRsZXMudHJhbnNsYXRlIGFzIGFueSkoLi4uYXJncyk7XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9mZnNldCAtIHRoaXMubGltaXQgPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSB0aGlzLm9mZnNldCAtIHRoaXMubGltaXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXRDaGFuZ2UuZW1pdCh0aGlzLm9mZnNldCk7XG4gICAgfVxuXG4gICAgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9mZnNldCArIHRoaXMubGltaXQgPD0gdGhpcy50b3RhbCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSB0aGlzLm9mZnNldCArIHRoaXMubGltaXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZmZzZXRDaGFuZ2UuZW1pdCh0aGlzLm9mZnNldCk7XG4gICAgfVxuXG4gICAgb2Zmc2V0TGltaXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2Zmc2V0ICsgdGhpcy5saW1pdCA8IHRoaXMudG90YWwgP1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgKyB0aGlzLmxpbWl0IDogdGhpcy50b3RhbDtcbiAgICB9XG59XG4iLCI8c3Ryb25nPjxzNWw+cGFnZXIucGFnZTwvczVsPjwvc3Ryb25nPlxuPGEgY2xhc3M9XCJidXR0b25cIiBbbmdDbGFzc109XCJ7J2lzLWhpZGRlbic6IG9mZnNldCAtIGxpbWl0IDwgMH1cIiAoY2xpY2spPVwicHJldmlvdXNQYWdlKClcIj5cbiAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IDxzNWw+cGFnZXIucGFnZS5wcmV2aW91czwvczVsPlxuPC9hPlxuPHNwYW4+e3tcInBhZ2VyLnBvc2l0aW9uXCIgfCB0cmFuc2xhdGUgOiB7b2Zmc2V0IDogb2Zmc2V0KzEsICBvZmZzZXRMaW1pdDpvZmZzZXRMaW1pdCgpLCB0b3RhbDp0b3RhbH0gfX08L3NwYW4+XG48YSBjbGFzcz1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cInsnaXMtaGlkZGVuJzogb2Zmc2V0ICsgbGltaXQgID4gdG90YWx9XCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIj5cbiAgPHM1bD5wYWdlci5wYWdlLm5leHQ8L3M1bD4gPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxuPC9hPlxuIl19
@@ -0,0 +1,104 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class TooltipComponent extends OdeComponent {
5
+ constructor(injector, ref, renderer) {
6
+ super(injector);
7
+ this.ref = ref;
8
+ this.renderer = renderer;
9
+ this.position = 'bottom';
10
+ this.offset = 5;
11
+ this.onTransitionEnd = () => {
12
+ if (this.tooltipElt && !this.tooltipElt.classList.contains('shown')) {
13
+ this.tooltipElt.parentNode.removeChild(this.tooltipElt);
14
+ this.tooltipElt = null;
15
+ }
16
+ };
17
+ }
18
+ onMouseEnter() {
19
+ const r = this.renderer;
20
+ if (!this.tooltipElt) {
21
+ this.tooltipElt = this.renderer.createElement('div');
22
+ let tooltipText = this.renderer.createText(this.tooltipContents);
23
+ this.renderer.appendChild(this.tooltipElt, tooltipText);
24
+ this.renderer.addClass(this.tooltipElt, "tooltip");
25
+ this.renderer.appendChild(document.getElementsByTagName('body')[0], this.tooltipElt);
26
+ }
27
+ const tip = this.tooltipElt;
28
+ const pos = this.getPosition(this.ref.nativeElement, tip, this.position);
29
+ for (const prop in pos) {
30
+ this.renderer.setStyle(tip, prop, pos[prop] + 'px');
31
+ }
32
+ this.renderer.addClass(tip, 'shown');
33
+ }
34
+ onMouseLeave() {
35
+ const wait = this.tooltipElt &&
36
+ parseFloat(window.getComputedStyle(this.tooltipElt)['transition-duration']);
37
+ this.renderer.removeClass(this.tooltipElt, 'shown');
38
+ setTimeout(this.onTransitionEnd, wait * 1000);
39
+ }
40
+ getPosition(elt, tip, pos) {
41
+ const rect = {
42
+ top: elt.getBoundingClientRect().top + window.scrollY,
43
+ left: elt.getBoundingClientRect().left + window.scrollX
44
+ };
45
+ let left, top;
46
+ switch (pos) {
47
+ case 'top':
48
+ top = rect.top - tip.offsetHeight - this.offset;
49
+ left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;
50
+ break;
51
+ case 'left':
52
+ top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;
53
+ left = rect.left - tip.offsetWidth - this.offset;
54
+ break;
55
+ case 'right':
56
+ top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;
57
+ left = rect.left + elt.offsetWidth + this.offset;
58
+ break;
59
+ case 'bottom':
60
+ default:
61
+ top = rect.top + elt.offsetHeight + this.offset;
62
+ left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;
63
+ }
64
+ if (left < 0) {
65
+ left = rect.left + elt.offsetWidth + this.offset;
66
+ }
67
+ if (top < 0) {
68
+ top = rect.top + elt.offsetHeight + this.offset;
69
+ }
70
+ if (left + tip.offsetWidth >= window.pageXOffset + window.innerWidth) {
71
+ left = rect.left - tip.offsetWidth - this.offset;
72
+ }
73
+ if (top - tip.offsetHeight >= window.pageYOffset + window.innerHeight) {
74
+ top = rect.top - tip.offsetHeight - this.offset;
75
+ }
76
+ return {
77
+ top: top < 5 ? 5 : top,
78
+ left: left < 5 ? 5 : left
79
+ };
80
+ }
81
+ ngOnDestroy() {
82
+ if (this.tooltipElt) {
83
+ this.tooltipElt.parentNode.removeChild(this.tooltipElt);
84
+ this.tooltipElt = null;
85
+ }
86
+ }
87
+ }
88
+ TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
89
+ TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TooltipComponent, selector: "[tooltip]", inputs: { tooltipContents: ["tooltip", "tooltipContents"], position: "position", offset: "offset" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["body>div.tooltip{position:absolute;z-index:100}\n"] });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TooltipComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: '[tooltip]', template: `<ng-content></ng-content>`, host: {
93
+ '(mouseenter)': 'onMouseEnter()',
94
+ '(mouseleave)': 'onMouseLeave()'
95
+ }, styles: ["body>div.tooltip{position:absolute;z-index:100}\n"] }]
96
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { tooltipContents: [{
97
+ type: Input,
98
+ args: ['tooltip']
99
+ }], position: [{
100
+ type: Input
101
+ }], offset: [{
102
+ type: Input
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQVdsRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUU5QyxZQUFZLFFBQWtCLEVBQ1YsR0FBZSxFQUNmLFFBQW1CO1FBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZaLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSzlCLGFBQVEsR0FBd0MsUUFBUSxDQUFDO1FBQ3pELFdBQU0sR0FBRyxDQUFDLENBQUM7UUE2QnBCLG9CQUFlLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDMUI7UUFDTCxDQUFDLENBQUE7SUF0Q1csQ0FBQztJQVFiLFlBQVk7UUFDUixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFD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Q0FBQyxDQUFDLENBQUMsSUFBSTtTQUM1QixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUMxQjtJQUNMLENBQUM7OzZHQWpHUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixzUUFQZiwyQkFBMkI7MkZBTzVCLGdCQUFnQjtrQkFUNUIsU0FBUzsrQkFDSSxXQUFXLFlBQ1gsMkJBQTJCLFFBRS9CO3dCQUNGLGNBQWMsRUFBRSxnQkFBZ0I7d0JBQ2hDLGNBQWMsRUFBRSxnQkFBZ0I7cUJBQ25DO2dKQVVpQixlQUFlO3NCQUFoQyxLQUFLO3VCQUFDLFNBQVM7Z0JBQ1AsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t0b29sdGlwXScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ29uTW91c2VFbnRlcigpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdvbk1vdXNlTGVhdmUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICAgICAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgQElucHV0KCd0b29sdGlwJykgdG9vbHRpcENvbnRlbnRzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcG9zaXRpb246ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG4gICAgQElucHV0KCkgb2Zmc2V0ID0gNTtcblxuICAgIHByaXZhdGUgdG9vbHRpcEVsdDogSFRNTEVsZW1lbnQ7XG5cbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLnJlbmRlcmVyO1xuXG4gICAgICAgIGlmICghdGhpcy50b29sdGlwRWx0KSB7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgbGV0IHRvb2x0aXBUZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRoaXMudG9vbHRpcENvbnRlbnRzKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWx0LCB0b29sdGlwVGV4dCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsdCwgXCJ0b29sdGlwXCIpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLCB0aGlzLnRvb2x0aXBFbHQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRpcCA9IHRoaXMudG9vbHRpcEVsdDtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRQb3NpdGlvbih0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCB0aXAsIHRoaXMucG9zaXRpb24pO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcG9zKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRpcCwgcHJvcCwgcG9zW3Byb3BdICsgJ3B4Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aXAsICdzaG93bicpO1xuICAgIH1cblxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2FpdCA9IHRoaXMudG9vbHRpcEVsdCAmJlxuICAgICAgICAgICAgcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRvb2x0aXBFbHQpWyd0cmFuc2l0aW9uLWR1cmF0aW9uJ10pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudG9vbHRpcEVsdCwgJ3Nob3duJyk7XG4gICAgICAgIHNldFRpbWVvdXQodGhpcy5vblRyYW5zaXRpb25FbmQsIHdhaXQgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBvblRyYW5zaXRpb25FbmQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFbHQgJiYgIXRoaXMudG9vbHRpcEVsdC5jbGFzc0xpc3QuY29udGFpbnMoJ3Nob3duJykpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEVsdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMudG9vbHRpcEVsdCk7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbHQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvbihlbHQsIHRpcCwgcG9zKSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB7XG4gICAgICAgICAgICB0b3A6IGVsdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWSxcbiAgICAgICAgICAgIGxlZnQ6IGVsdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGxlZnQsIHRvcDtcblxuICAgICAgICBzd2l0Y2ggKHBvcykge1xuXG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIHRvcCA9IHJlY3QudG9wIC0gdGlwLm9mZnNldEhlaWdodCAtIHRoaXMub2Zmc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgKyBlbHQub2Zmc2V0V2lkdGggLyAyIC0gdGlwLm9mZnNldFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHRvcCA9IHJlY3QudG9wICsgZWx0Lm9mZnNldEhlaWdodCAvIDIgLSB0aXAub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcmVjdC5sZWZ0IC0gdGlwLm9mZnNldFdpZHRoIC0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgKyBlbHQub2Zmc2V0SGVpZ2h0IC8gMiAtIHRpcC5vZmZzZXRIZWlnaHQgLyAyO1xuICAgICAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgKyBlbHQub2Zmc2V0V2lkdGggKyB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRvcCA9IHJlY3QudG9wICsgZWx0Lm9mZnNldEhlaWdodCArIHRoaXMub2Zmc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgKyBlbHQub2Zmc2V0V2lkdGggLyAyIC0gdGlwLm9mZnNldFdpZHRoIC8gMjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsZWZ0IDwgMCApIHtcbiAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgKyBlbHQub2Zmc2V0V2lkdGggKyB0aGlzLm9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgdG9wID0gcmVjdC50b3AgKyBlbHQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5vZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlZnQgKyB0aXAub2Zmc2V0V2lkdGggPj0gd2luZG93LnBhZ2VYT2Zmc2V0ICsgd2luZG93LmlubmVyV2lkdGgpIHtcbiAgICAgICAgICAgIGxlZnQgPSByZWN0LmxlZnQgLSB0aXAub2Zmc2V0V2lkdGggLSB0aGlzLm9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9wIC0gdGlwLm9mZnNldEhlaWdodCA+PSB3aW5kb3cucGFnZVlPZmZzZXQgKyB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICAgIHRvcCA9IHJlY3QudG9wIC0gdGlwLm9mZnNldEhlaWdodCAtIHRoaXMub2Zmc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogdG9wIDwgNSA/IDUgOiB0b3AsXG4gICAgICAgICAgICBsZWZ0OiBsZWZ0IDwgNSA/IDUgOiBsZWZ0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFbHQpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEVsdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMudG9vbHRpcEVsdCk7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbHQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,59 @@
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 "../../services/inputFile.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "ngx-ode-sijil";
7
+ import * as i4 from "../../directives/drag-and-drop-files.directive";
8
+ export class UploadFilesComponent extends OdeComponent {
9
+ constructor(injector, inputFileService) {
10
+ super(injector);
11
+ this.inputFileService = inputFileService;
12
+ this.upload = new EventEmitter();
13
+ this.invalidUpload = new EventEmitter();
14
+ }
15
+ ngOnInit() {
16
+ super.ngOnInit();
17
+ this.multiple = this.maxFilesNumber > 1;
18
+ }
19
+ onChange($event) {
20
+ if ($event.target) {
21
+ this.inputFileService
22
+ .validateFiles($event.target.files, this.maxFilesNumber, this.allowedExtensions)
23
+ .subscribe(files => this.upload.emit(files), error => this.invalidUpload.emit(error));
24
+ }
25
+ }
26
+ onClickDropzoneInput($event) {
27
+ $event.stopPropagation();
28
+ const inputFileElement = this.inputFileRef.nativeElement;
29
+ inputFileElement.click();
30
+ }
31
+ onDragAndDrop($event) {
32
+ this.upload.emit($event);
33
+ }
34
+ onInvalidDragAndDrop($event) {
35
+ this.invalidUpload.emit($event);
36
+ }
37
+ }
38
+ UploadFilesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: UploadFilesComponent, deps: [{ token: i0.Injector }, { token: i1.InputFileService }], target: i0.ɵɵFactoryTarget.Component });
39
+ UploadFilesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: UploadFilesComponent, selector: "ode-upload-files", inputs: { fileSrc: "fileSrc", allowedExtensions: "allowedExtensions", maxFilesNumber: "maxFilesNumber", disabled: "disabled" }, outputs: { upload: "upload", invalidUpload: "invalidUpload" }, viewQueries: [{ propertyName: "inputFileRef", first: true, predicate: ["inputFileRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"upload-files-dropzone\"\n dragAndDropFiles\n [allowedExtensions]=\"allowedExtensions\"\n [maxFilesNumber]=\"maxFilesNumber\"\n [disabled]=\"disabled\"\n (dragAndDrop)=\"onDragAndDrop($event)\"\n (invalidDragAndDrop)=\"onInvalidDragAndDrop($event)\">\n <div *ngIf=\"fileSrc\" class=\"upload-files-dropzone-image\">\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcExternalUrl(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcWorkspace(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <i class=\"upload-files-dropzone-image__icon {{ fileSrc }}\"\n *ngIf=\"!inputFileService.isSrcExternalUrl(fileSrc)\n && !inputFileService.isSrcWorkspace(fileSrc)\"></i>\n </div>\n\n <div class=\"upload-files-dropzone-input\" *ngIf=\"!disabled\">\n <button class=\"confirm upload-files-dropzone-input__button\"\n (click)=\"onClickDropzoneInput($event)\">\n <s5l>ux.upload-files.button.label</s5l>\n </button>\n <i class=\"upload-files-dropzone-input__icon fa fa-cloud-upload fa-2x\">\n </i>\n <span class=\"upload-files-dropzone-input__help\">\n <s5l>ux.upload-files.button.help</s5l>\n </span>\n <input *ngIf=\"multiple === true else singleFileInput\"\n class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n multiple\n #inputFileRef>\n <ng-template #singleFileInput>\n <input class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n #inputFileRef>\n </ng-template>\n </div>\n</div>\n", styles: [".upload-files-dropzone{display:flex;align-items:center;justify-content:center;min-height:150px;margin:20px;padding:20px 10px;background-color:#fafafa;border:2px dashed #ddd;border-radius:5px}.upload-files-dropzone-image{display:flex;align-items:center;justify-content:center;width:120px;height:120px}.upload-files-dropzone-image__image{max-height:90%;max-width:90%}.upload-files-dropzone-image__icon{font-size:5em}.upload-files-dropzone-input{display:flex;align-items:center;background-color:#fff;border-radius:5px;box-shadow:1px 1px 5px #0000004d;padding:10px;margin:0 40px 0 20px}.upload-files-dropzone-input__input{display:none}.upload-files-dropzone-input__icon{margin-left:10px}.upload-files-dropzone-input__help{margin-left:10px;font-style:italic}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }, { kind: "directive", type: i4.DragAndDropFilesDirective, selector: "[dragAndDropFiles]", inputs: ["allowedExtensions", "maxFilesNumber", "disabled"], outputs: ["dragAndDrop", "invalidDragAndDrop"] }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: UploadFilesComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'ode-upload-files', template: "<div class=\"upload-files-dropzone\"\n dragAndDropFiles\n [allowedExtensions]=\"allowedExtensions\"\n [maxFilesNumber]=\"maxFilesNumber\"\n [disabled]=\"disabled\"\n (dragAndDrop)=\"onDragAndDrop($event)\"\n (invalidDragAndDrop)=\"onInvalidDragAndDrop($event)\">\n <div *ngIf=\"fileSrc\" class=\"upload-files-dropzone-image\">\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcExternalUrl(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <img src=\"{{ fileSrc }}\"\n *ngIf=\"inputFileService.isSrcWorkspace(fileSrc)\"\n class=\"upload-files-dropzone-image__image\"/>\n <i class=\"upload-files-dropzone-image__icon {{ fileSrc }}\"\n *ngIf=\"!inputFileService.isSrcExternalUrl(fileSrc)\n && !inputFileService.isSrcWorkspace(fileSrc)\"></i>\n </div>\n\n <div class=\"upload-files-dropzone-input\" *ngIf=\"!disabled\">\n <button class=\"confirm upload-files-dropzone-input__button\"\n (click)=\"onClickDropzoneInput($event)\">\n <s5l>ux.upload-files.button.label</s5l>\n </button>\n <i class=\"upload-files-dropzone-input__icon fa fa-cloud-upload fa-2x\">\n </i>\n <span class=\"upload-files-dropzone-input__help\">\n <s5l>ux.upload-files.button.help</s5l>\n </span>\n <input *ngIf=\"multiple === true else singleFileInput\"\n class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n multiple\n #inputFileRef>\n <ng-template #singleFileInput>\n <input class=\"upload-files-dropzone-input__input\"\n type=\"file\"\n (change)=\"onChange($event)\"\n #inputFileRef>\n </ng-template>\n </div>\n</div>\n", styles: [".upload-files-dropzone{display:flex;align-items:center;justify-content:center;min-height:150px;margin:20px;padding:20px 10px;background-color:#fafafa;border:2px dashed #ddd;border-radius:5px}.upload-files-dropzone-image{display:flex;align-items:center;justify-content:center;width:120px;height:120px}.upload-files-dropzone-image__image{max-height:90%;max-width:90%}.upload-files-dropzone-image__icon{font-size:5em}.upload-files-dropzone-input{display:flex;align-items:center;background-color:#fff;border-radius:5px;box-shadow:1px 1px 5px #0000004d;padding:10px;margin:0 40px 0 20px}.upload-files-dropzone-input__input{display:none}.upload-files-dropzone-input__icon{margin-left:10px}.upload-files-dropzone-input__help{margin-left:10px;font-style:italic}\n"] }]
43
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.InputFileService }]; }, propDecorators: { fileSrc: [{
44
+ type: Input
45
+ }], allowedExtensions: [{
46
+ type: Input
47
+ }], maxFilesNumber: [{
48
+ type: Input
49
+ }], disabled: [{
50
+ type: Input
51
+ }], upload: [{
52
+ type: Output
53
+ }], invalidUpload: [{
54
+ type: Output
55
+ }], inputFileRef: [{
56
+ type: ViewChild,
57
+ args: ['inputFileRef']
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZC1maWxlcy91cGxvYWQtZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvdXBsb2FkLWZpbGVzL3VwbG9hZC1maWxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRaEgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFvQmxELFlBQVksUUFBa0IsRUFDWCxnQkFBa0M7UUFDN0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVZyRCxXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEQsa0JBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVV6RCxDQUFDO0lBRU0sUUFBUTtRQUNYLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxRQUFRLENBQUMsTUFBTTtRQUNsQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsZ0JBQWdCO2lCQUNoQixhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUM7aUJBQy9FLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNyQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBYTtRQUNyQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztRQUN6RCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQWM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7aUhBbkRRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDRYQ1RqQyw0eERBMkNBOzJGRGxDYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzhIQU01QixPQUFPO3NCQUROLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxNQUFNO2dCQUdQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lucHV0RmlsZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lucHV0RmlsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtdXBsb2FkLWZpbGVzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGVzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZmlsZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRGaWxlc0NvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBmaWxlU3JjOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBhbGxvd2VkRXh0ZW5zaW9uczogQXJyYXk8c3RyaW5nPjtcbiAgICBASW5wdXQoKVxuICAgIG1heEZpbGVzTnVtYmVyOiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVwbG9hZDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgaW52YWxpZFVwbG9hZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dEZpbGVSZWYnKVxuICAgIGlucHV0RmlsZVJlZjogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwdWJsaWMgaW5wdXRGaWxlU2VydmljZTogSW5wdXRGaWxlU2VydmljZSkge1xuICAgICAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkwqB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMubXVsdGlwbGUgPSB0aGlzLm1heEZpbGVzTnVtYmVyID4gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICgkZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RmlsZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAudmFsaWRhdGVGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzLCB0aGlzLm1heEZpbGVzTnVtYmVyLCB0aGlzLmFsbG93ZWRFeHRlbnNpb25zKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZmlsZXMgPT4gdGhpcy51cGxvYWQuZW1pdChmaWxlcylcbiAgICAgICAgICAgICAgICAgICAgLCBlcnJvciA9PiB0aGlzLmludmFsaWRVcGxvYWQuZW1pdChlcnJvcikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tEcm9wem9uZUlucHV0KCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjb25zdCBpbnB1dEZpbGVFbGVtZW50ID0gdGhpcy5pbnB1dEZpbGVSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaW5wdXRGaWxlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRyYWdBbmREcm9wKCRldmVudDogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbnZhbGlkRHJhZ0FuZERyb3AoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkVXBsb2FkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidXBsb2FkLWZpbGVzLWRyb3B6b25lXCJcbiAgICAgZHJhZ0FuZERyb3BGaWxlc1xuICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwiYWxsb3dlZEV4dGVuc2lvbnNcIlxuICAgICBbbWF4RmlsZXNOdW1iZXJdPVwibWF4RmlsZXNOdW1iZXJcIlxuICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAoZHJhZ0FuZERyb3ApPVwib25EcmFnQW5kRHJvcCgkZXZlbnQpXCJcbiAgICAgKGludmFsaWREcmFnQW5kRHJvcCk9XCJvbkludmFsaWREcmFnQW5kRHJvcCgkZXZlbnQpXCI+XG4gIDxkaXYgKm5nSWY9XCJmaWxlU3JjXCIgY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW1hZ2VcIj5cbiAgICA8aW1nIHNyYz1cInt7IGZpbGVTcmMgfX1cIlxuICAgICAgICAgKm5nSWY9XCJpbnB1dEZpbGVTZXJ2aWNlLmlzU3JjRXh0ZXJuYWxVcmwoZmlsZVNyYylcIlxuICAgICAgICAgY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW1hZ2VfX2ltYWdlXCIvPlxuICAgIDxpbWcgc3JjPVwie3sgZmlsZVNyYyB9fVwiXG4gICAgICAgICAqbmdJZj1cImlucHV0RmlsZVNlcnZpY2UuaXNTcmNXb3Jrc3BhY2UoZmlsZVNyYylcIlxuICAgICAgICAgY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW1hZ2VfX2ltYWdlXCIvPlxuICAgIDxpIGNsYXNzPVwidXBsb2FkLWZpbGVzLWRyb3B6b25lLWltYWdlX19pY29uIHt7IGZpbGVTcmMgfX1cIlxuICAgICAgICpuZ0lmPVwiIWlucHV0RmlsZVNlcnZpY2UuaXNTcmNFeHRlcm5hbFVybChmaWxlU3JjKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWlucHV0RmlsZVNlcnZpY2UuaXNTcmNXb3Jrc3BhY2UoZmlsZVNyYylcIj48L2k+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW5wdXRcIiAqbmdJZj1cIiFkaXNhYmxlZFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJjb25maXJtIHVwbG9hZC1maWxlcy1kcm9wem9uZS1pbnB1dF9fYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrRHJvcHpvbmVJbnB1dCgkZXZlbnQpXCI+XG4gICAgICA8czVsPnV4LnVwbG9hZC1maWxlcy5idXR0b24ubGFiZWw8L3M1bD5cbiAgICA8L2J1dHRvbj5cbiAgICA8aSBjbGFzcz1cInVwbG9hZC1maWxlcy1kcm9wem9uZS1pbnB1dF9faWNvbiBmYSBmYS1jbG91ZC11cGxvYWQgZmEtMnhcIj5cbiAgICA8L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW5wdXRfX2hlbHBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHM1bD51eC51cGxvYWQtZmlsZXMuYnV0dG9uLmhlbHA8L3M1bD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgPGlucHV0ICpuZ0lmPVwibXVsdGlwbGUgPT09IHRydWUgZWxzZSBzaW5nbGVGaWxlSW5wdXRcIlxuICAgICAgICAgICBjbGFzcz1cInVwbG9hZC1maWxlcy1kcm9wem9uZS1pbnB1dF9faW5wdXRcIlxuICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICNpbnB1dEZpbGVSZWY+XG4gICAgPG5nLXRlbXBsYXRlICNzaW5nbGVGaWxlSW5wdXQ+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJ1cGxvYWQtZmlsZXMtZHJvcHpvbmUtaW5wdXRfX2lucHV0XCJcbiAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAjaW5wdXRGaWxlUmVmPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { OdeComponent } from 'ngx-ode-core';
2
+ import { ChangeDetectionStrategy, 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 "@angular/forms";
6
+ import * as i3 from "../../pipes/orderBy.pipe";
7
+ export class SimpleSelectComponent extends OdeComponent {
8
+ constructor(injector) {
9
+ super(injector);
10
+ this.selectChange = new EventEmitter();
11
+ }
12
+ }
13
+ SimpleSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SimpleSelectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
14
+ SimpleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: SimpleSelectComponent, selector: "ode-simple-select", inputs: { selected: "selected", model: "model", options: "options", ignoreOption: "ignoreOption" }, outputs: { selectChange: "selectChange" }, usesInheritance: true, ngImport: i0, template: "<select [ngModel]=\"model[selected]\" (ngModelChange)=\"model[selected] = $event; selectChange.emit($event)\">\n\n<option *ngIf=\"ignoreOption.length > 0 \" [ngValue]=\"ignoreOption[0].value\">\n {{ignoreOption[0].label}}\n</option>\n<option *ngFor=\"let option of options | orderBy: 'label'\" [ngValue]=\"option.value\">\n {{option.label}}\n</option>\n</select>\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.OrderPipe, name: "orderBy" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: SimpleSelectComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'ode-simple-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [ngModel]=\"model[selected]\" (ngModelChange)=\"model[selected] = $event; selectChange.emit($event)\">\n\n<option *ngIf=\"ignoreOption.length > 0 \" [ngValue]=\"ignoreOption[0].value\">\n {{ignoreOption[0].label}}\n</option>\n<option *ngFor=\"let option of options | orderBy: 'label'\" [ngValue]=\"option.value\">\n {{option.label}}\n</option>\n</select>\n" }]
18
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { selected: [{
19
+ type: Input
20
+ }], model: [{
21
+ type: Input
22
+ }], options: [{
23
+ type: Input
24
+ }], ignoreOption: [{
25
+ type: Input
26
+ }], selectChange: [{
27
+ type: Output
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy92YWx1ZS1lZGl0YWJsZS9zaW1wbGUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL3ZhbHVlLWVkaXRhYmxlL3NpbXBsZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7OztBQWMxRyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQU9uRCxZQUFZLFFBQWtCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUhSLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFJMUUsQ0FBQzs7a0hBVFEscUJBQXFCO3NHQUFyQixxQkFBcUIsK05DZmxDLHdnQkFTQTsyRkRNYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU07K0ZBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1zaW1wbGUtc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2ltcGxlU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZWxlY3RlZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1vZGVsOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbiAgICBASW5wdXQoKSBvcHRpb25zOiBPcHRpb25bXTtcbiAgICBASW5wdXQoKSBpZ25vcmVPcHRpb246IE9wdGlvbltdO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG59XG5cbiIsIjxzZWxlY3QgW25nTW9kZWxdPVwibW9kZWxbc2VsZWN0ZWRdXCIgKG5nTW9kZWxDaGFuZ2UpPVwibW9kZWxbc2VsZWN0ZWRdID0gJGV2ZW50OyBzZWxlY3RDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+XG5cbjxvcHRpb24gKm5nSWY9XCJpZ25vcmVPcHRpb24ubGVuZ3RoID4gMCBcIiBbbmdWYWx1ZV09XCJpZ25vcmVPcHRpb25bMF0udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpZ25vcmVPcHRpb25bMF0ubGFiZWx9fVxuPC9vcHRpb24+XG48b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9ucyB8IG9yZGVyQnk6ICdsYWJlbCdcIiBbbmdWYWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29wdGlvbi5sYWJlbH19XG48L29wdGlvbj5cbjwvc2VsZWN0PlxuIl19