@wizishop/img-manager 18.2.0 → 18.2.1-beta

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 (177) hide show
  1. package/esm2022/lib/components/canva-btn/canva-btn.component.mjs +73 -0
  2. package/esm2022/lib/components/images-view/images-actions-handler.mjs +168 -0
  3. package/esm2022/lib/components/images-view/images-view.component.mjs +391 -0
  4. package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +70 -0
  5. package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +73 -0
  6. package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +48 -0
  7. package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +313 -0
  8. package/esm2022/lib/components/img-editor/img-editor.component.mjs +129 -0
  9. package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +58 -0
  10. package/esm2022/lib/components/img-selection/img-selection.component.mjs +58 -0
  11. package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +128 -0
  12. package/esm2022/lib/components/img-upload/img-upload.component.mjs +133 -0
  13. package/esm2022/lib/components/loader/loader.component.mjs +21 -0
  14. package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +211 -0
  15. package/esm2022/lib/components/shared/alert/alert.component.mjs +26 -0
  16. package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +56 -0
  17. package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
  18. package/esm2022/lib/components/shared/input-search/input-search.component.mjs +53 -0
  19. package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +50 -0
  20. package/esm2022/lib/components/shared/pagination/pagination.component.mjs +49 -0
  21. package/esm2022/lib/components/shared/select/select.component.mjs +117 -0
  22. package/esm2022/lib/components/shared/table/table.component.mjs +124 -0
  23. package/esm2022/lib/components/upload-list/upload-list.component.mjs +85 -0
  24. package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +41 -0
  25. package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
  26. package/esm2022/lib/directives/auto-hide.directive.mjs +51 -0
  27. package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +36 -0
  28. package/esm2022/lib/directives/drag-drop.directive.mjs +55 -0
  29. package/esm2022/lib/directives/loading.directive.mjs +43 -0
  30. package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +130 -0
  31. package/esm2022/lib/directives/table/column.directive.mjs +50 -0
  32. package/esm2022/lib/directives/table/columnHeader.directive.mjs +215 -0
  33. package/esm2022/lib/directives/table/raw.directive.mjs +34 -0
  34. package/esm2022/lib/directives/zindex-toggle.directive.mjs +45 -0
  35. package/esm2022/lib/dto/canva-create-design.dto.mjs +9 -0
  36. package/esm2022/lib/dto/canva.dto.mjs +6 -0
  37. package/esm2022/lib/dto/config/apis/api.dto.mjs +11 -0
  38. package/esm2022/lib/dto/config/external/external-config.dto.mjs +5 -0
  39. package/esm2022/lib/dto/wizi-block-media.dto.mjs +7 -0
  40. package/esm2022/lib/pipes/images/img-src.pipe.mjs +29 -0
  41. package/{esm2020 → esm2022}/lib/pipes/number-to-array.pipe.mjs +4 -4
  42. package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
  43. package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
  44. package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +36 -0
  45. package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
  46. package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
  47. package/esm2022/lib/services/alert.service.mjs +53 -0
  48. package/{esm2020 → esm2022}/lib/services/api.service.mjs +4 -4
  49. package/esm2022/lib/services/canva.service.mjs +165 -0
  50. package/esm2022/lib/services/config/img-cdn.service.mjs +21 -0
  51. package/esm2022/lib/services/dom.service.mjs +31 -0
  52. package/{esm2020 → esm2022}/lib/services/icon.service.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/services/image-not-found.service.mjs +4 -4
  54. package/esm2022/lib/services/img-event.service.mjs +33 -0
  55. package/esm2022/lib/services/img-manager.service.mjs +134 -0
  56. package/esm2022/lib/services/img-selection.service.mjs +75 -0
  57. package/esm2022/lib/services/pexels.service.mjs +66 -0
  58. package/esm2022/lib/services/rename-picture.service.mjs +66 -0
  59. package/esm2022/lib/services/snackbar.service.mjs +67 -0
  60. package/esm2022/lib/services/table/filters-table.service.mjs +61 -0
  61. package/esm2022/lib/services/upload.service.mjs +20 -0
  62. package/esm2022/lib/services/user-settings.service.mjs +23 -0
  63. package/esm2022/lib/wz-img-manager.component.mjs +209 -0
  64. package/{esm2020 → esm2022}/lib/wz-img-manager.module.mjs +61 -61
  65. package/{fesm2020 → fesm2022}/wizishop-img-manager.mjs +1018 -830
  66. package/fesm2022/wizishop-img-manager.mjs.map +1 -0
  67. package/lib/components/canva-btn/canva-btn.component.d.ts +1 -1
  68. package/lib/components/images-view/images-actions-handler.d.ts +2 -1
  69. package/lib/components/images-view/images-view.component.d.ts +4 -9
  70. package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +1 -1
  71. package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +1 -1
  72. package/lib/components/img-editor/cropper/cropper.component.d.ts +1 -1
  73. package/lib/components/img-editor/img-editor.component.d.ts +1 -1
  74. package/lib/components/img-editor/info-section/info-section.component.d.ts +1 -1
  75. package/lib/components/img-selection/img-selection.component.d.ts +4 -5
  76. package/lib/components/img-tabs/img-tabs.component.d.ts +1 -1
  77. package/lib/components/img-upload/img-upload.component.d.ts +1 -1
  78. package/lib/components/loader/loader.component.d.ts +1 -1
  79. package/lib/components/pexels-lib/pexels-lib.component.d.ts +1 -1
  80. package/lib/components/shared/alert/alert.component.d.ts +1 -1
  81. package/lib/components/shared/checkbox/checkbox.component.d.ts +1 -1
  82. package/lib/components/shared/dropdown/dropdown.component.d.ts +1 -1
  83. package/lib/components/shared/input-search/input-search.component.d.ts +1 -1
  84. package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +1 -1
  85. package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
  86. package/lib/components/shared/select/select.component.d.ts +1 -1
  87. package/lib/components/shared/table/table.component.d.ts +1 -1
  88. package/lib/components/upload-list/upload-list.component.d.ts +1 -1
  89. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
  90. package/lib/directives/auto-hide.directive.d.ts +1 -1
  91. package/lib/directives/copy-to-clipboard.directive.d.ts +1 -1
  92. package/lib/directives/table/checkBoxRow.directive.d.ts +1 -1
  93. package/lib/directives/table/column.directive.d.ts +1 -1
  94. package/lib/directives/table/columnHeader.directive.d.ts +1 -1
  95. package/lib/directives/zindex-toggle.directive.d.ts +1 -1
  96. package/lib/wz-img-manager.component.d.ts +3 -3
  97. package/package.json +6 -12
  98. package/wizishop-img-manager-18.2.1-beta.tgz +0 -0
  99. package/wz-img-manager.scss +77 -60
  100. package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +0 -67
  101. package/esm2020/lib/components/images-view/images-actions-handler.mjs +0 -154
  102. package/esm2020/lib/components/images-view/images-view.component.mjs +0 -369
  103. package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -66
  104. package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -71
  105. package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +0 -48
  106. package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +0 -307
  107. package/esm2020/lib/components/img-editor/img-editor.component.mjs +0 -124
  108. package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +0 -54
  109. package/esm2020/lib/components/img-selection/img-selection.component.mjs +0 -53
  110. package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +0 -122
  111. package/esm2020/lib/components/img-upload/img-upload.component.mjs +0 -126
  112. package/esm2020/lib/components/loader/loader.component.mjs +0 -21
  113. package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +0 -203
  114. package/esm2020/lib/components/shared/alert/alert.component.mjs +0 -27
  115. package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +0 -52
  116. package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
  117. package/esm2020/lib/components/shared/input-search/input-search.component.mjs +0 -54
  118. package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -49
  119. package/esm2020/lib/components/shared/pagination/pagination.component.mjs +0 -49
  120. package/esm2020/lib/components/shared/select/select.component.mjs +0 -110
  121. package/esm2020/lib/components/shared/table/table.component.mjs +0 -116
  122. package/esm2020/lib/components/upload-list/upload-list.component.mjs +0 -79
  123. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
  124. package/esm2020/lib/directives/auto-hide.directive.mjs +0 -48
  125. package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +0 -37
  126. package/esm2020/lib/directives/drag-drop.directive.mjs +0 -57
  127. package/esm2020/lib/directives/loading.directive.mjs +0 -42
  128. package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +0 -114
  129. package/esm2020/lib/directives/table/column.directive.mjs +0 -45
  130. package/esm2020/lib/directives/table/columnHeader.directive.mjs +0 -204
  131. package/esm2020/lib/directives/table/raw.directive.mjs +0 -31
  132. package/esm2020/lib/directives/zindex-toggle.directive.mjs +0 -42
  133. package/esm2020/lib/dto/canva-create-design.dto.mjs +0 -4
  134. package/esm2020/lib/dto/canva.dto.mjs +0 -4
  135. package/esm2020/lib/dto/config/apis/api.dto.mjs +0 -9
  136. package/esm2020/lib/dto/config/external/external-config.dto.mjs +0 -3
  137. package/esm2020/lib/dto/wizi-block-media.dto.mjs +0 -3
  138. package/esm2020/lib/pipes/images/img-src.pipe.mjs +0 -28
  139. package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
  140. package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
  141. package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -35
  142. package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
  143. package/esm2020/lib/services/alert.service.mjs +0 -50
  144. package/esm2020/lib/services/canva.service.mjs +0 -159
  145. package/esm2020/lib/services/config/img-cdn.service.mjs +0 -23
  146. package/esm2020/lib/services/dom.service.mjs +0 -33
  147. package/esm2020/lib/services/img-event.service.mjs +0 -35
  148. package/esm2020/lib/services/img-manager.service.mjs +0 -136
  149. package/esm2020/lib/services/img-selection.service.mjs +0 -76
  150. package/esm2020/lib/services/pexels.service.mjs +0 -62
  151. package/esm2020/lib/services/rename-picture.service.mjs +0 -63
  152. package/esm2020/lib/services/snackbar.service.mjs +0 -64
  153. package/esm2020/lib/services/table/filters-table.service.mjs +0 -60
  154. package/esm2020/lib/services/upload.service.mjs +0 -22
  155. package/esm2020/lib/services/user-settings.service.mjs +0 -25
  156. package/esm2020/lib/wz-img-manager.component.mjs +0 -192
  157. package/fesm2015/wizishop-img-manager.mjs +0 -4035
  158. package/fesm2015/wizishop-img-manager.mjs.map +0 -1
  159. package/fesm2020/wizishop-img-manager.mjs.map +0 -1
  160. package/wizishop-img-manager-18.2.0.tgz +0 -0
  161. /package/{esm2020 → esm2022}/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/animations/insertRemove/insert-remove.animation.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/animations/listAnnimation/list.animation.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/components/shared/select/call-to-action.model.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/components/shared/select/select-items.dto.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/dto/config/img-manager.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/dto/export-dtos.api.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/dto/img-editor-config.dto.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/dto/img-manager.dto.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/dto/pexels-img.dto.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/dto/picture-name-update.dto.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/dto/stateDisplayed.dto.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/dto/tabDisplayed.dto.mjs +0 -0
  176. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  177. /package/{esm2020 → esm2022}/wizishop-img-manager.mjs +0 -0
@@ -1,54 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
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 "../../../directives/abstract-debounce/debounce-keyup.directive";
7
- export class InputSearchComponent {
8
- constructor() {
9
- this.placeholder = '';
10
- this.smallPadding = false;
11
- this.innerValue = '';
12
- this.changeDebounced = new EventEmitter(); // debounced
13
- this.onTouchedCallback = () => { };
14
- this.onChangeCallback = () => { };
15
- }
16
- get value() {
17
- return this.innerValue;
18
- }
19
- set value(v) {
20
- if (v !== this.innerValue) {
21
- this.innerValue = v;
22
- this.onChangeCallback(v);
23
- }
24
- }
25
- writeValue(value) {
26
- if (value !== this.innerValue) {
27
- this.innerValue = value;
28
- }
29
- }
30
- registerOnChange(fn) {
31
- this.onChangeCallback = fn;
32
- }
33
- registerOnTouched(fn) {
34
- this.onTouchedCallback = fn;
35
- }
36
- handleDebouncedKeyUp(event) {
37
- this.changeDebounced.emit(event.target.value);
38
- }
39
- }
40
- InputSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- InputSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InputSearchComponent, selector: "wz-input-search", inputs: { placeholder: "placeholder", smallPadding: "smallPadding", id: "id" }, outputs: { changeDebounced: "changeDebounced" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputSearchComponent, multi: true }], ngImport: i0, template: "<div class=\"input-search field\" [ngClass]=\"smallPadding ? 'small-padding' : ''\">\n <p class=\"control has-icons-left has-icons-right\">\n <input\n [placeholder]=\"placeholder\"\n value=\"\"\n class=\"input\"\n type=\"text\"\n [attr.id]=\"id\"\n [(ngModel)]=\"value\"\n debounceKeyUp\n [debounceTime]=\"1000\"\n (onEventChange)=\"handleDebouncedKeyUp($event)\"\n />\n <i class=\"icon fal fa-search\"></i>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: i3.DebounceKeyupDirective, selector: "input[debounceKeyUp]" }] });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputSearchComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'wz-input-search', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputSearchComponent, multi: true }], template: "<div class=\"input-search field\" [ngClass]=\"smallPadding ? 'small-padding' : ''\">\n <p class=\"control has-icons-left has-icons-right\">\n <input\n [placeholder]=\"placeholder\"\n value=\"\"\n class=\"input\"\n type=\"text\"\n [attr.id]=\"id\"\n [(ngModel)]=\"value\"\n debounceKeyUp\n [debounceTime]=\"1000\"\n (onEventChange)=\"handleDebouncedKeyUp($event)\"\n />\n <i class=\"icon fal fa-search\"></i>\n </p>\n</div>\n" }]
45
- }], propDecorators: { placeholder: [{
46
- type: Input
47
- }], smallPadding: [{
48
- type: Input
49
- }], id: [{
50
- type: Input
51
- }], changeDebounced: [{
52
- type: Output
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvaW5wdXQtc2VhcmNoL2lucHV0LXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3pFLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFPRSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdiLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDLENBQUMsWUFBWTtRQUV6RCxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDekMscUJBQWdCLEdBQXFCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQThCdkQ7SUE1QkMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1FBQ2QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBSztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2tIQXhDVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiwyS0FGcEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLDBCQ043RixrZUFnQkE7NEZEUmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQixhQUVoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzhCQUkzRixXQUFXO3NCQURWLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLEVBQUU7c0JBREQsS0FBSztnQkFHSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3otaW5wdXQtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBJbnB1dFNlYXJjaENvbXBvbmVudCwgbXVsdGk6IHRydWUgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpXG4gIHNtYWxsUGFkZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBpZDtcbiAgcHJpdmF0ZSBpbm5lclZhbHVlOiBhbnkgPSAnJztcbiAgQE91dHB1dCgpIGNoYW5nZURlYm91bmNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyAvLyBkZWJvdW5jZWRcblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZURlYm91bmNlZEtleVVwKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VEZWJvdW5jZWQuZW1pdChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtc2VhcmNoIGZpZWxkXCIgW25nQ2xhc3NdPVwic21hbGxQYWRkaW5nID8gJ3NtYWxsLXBhZGRpbmcnIDogJydcIj5cbiAgPHAgY2xhc3M9XCJjb250cm9sIGhhcy1pY29ucy1sZWZ0IGhhcy1pY29ucy1yaWdodFwiPlxuICAgIDxpbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIHZhbHVlPVwiXCJcbiAgICAgIGNsYXNzPVwiaW5wdXRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBkZWJvdW5jZUtleVVwXG4gICAgICBbZGVib3VuY2VUaW1lXT1cIjEwMDBcIlxuICAgICAgKG9uRXZlbnRDaGFuZ2UpPVwiaGFuZGxlRGVib3VuY2VkS2V5VXAoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8aSBjbGFzcz1cImljb24gZmFsIGZhLXNlYXJjaFwiPjwvaT5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "../../../../pipes/pagination/array-total-pages/array-pages.pipe";
6
- import * as i4 from "../../../../pipes/pagination/large-number-of-page/large-number-of-page.pipe";
7
- export class PageSelectorComponent {
8
- set pagination(pagination) {
9
- this._pagination = pagination;
10
- }
11
- get pagination() {
12
- return this._pagination;
13
- }
14
- set totalItems(totalItems) {
15
- this.numberOfPage = Math.ceil(totalItems / this.pagination.itemsPerPage);
16
- this.largeNumberOfPage = this.numberOfPage > 30;
17
- }
18
- get totalItems() {
19
- return this._totalItems;
20
- }
21
- constructor() {
22
- this.openAbsoluteSelect = false;
23
- this.largeNumberOfPage = false;
24
- this.numberOfPage = 0;
25
- this.pageChange = new EventEmitter();
26
- }
27
- onGotoPageChange(event, directValue) {
28
- if (directValue) {
29
- this.pageChange.emit(event);
30
- this.openAbsoluteSelect = false;
31
- }
32
- else {
33
- this.pageChange.emit(parseInt(event.target.value));
34
- }
35
- }
36
- }
37
- PageSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- PageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PageSelectorComponent, selector: "wz-page-selector", inputs: { pagination: "pagination", totalItems: "totalItems" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"wz-selector\">\r\n\r\n <div class=\"wz-selector__default\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <div class=\"wz-selector__default__base\" *ngIf=\"largeNumberOfPage;\" (click)=\"openAbsoluteSelect = !openAbsoluteSelect\">\r\n <input name=\"page-input\" [value]=\"pagination.currentPage\" (change)=\"onGotoPageChange($event, false);openAbsoluteSelect = false;\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\" />\r\n <i class=\"fa-solid fa-sort-down\"></i>\r\n </div>\r\n <div class=\"wz-selector__default__absolute\" *ngIf=\"openAbsoluteSelect\">\r\n <div class=\"wz-selector__default__absolute__wrapper\" *ngFor=\"let pageIndex of (pagination.totalItems | LargeNumberOfPage: pagination.itemsPerPage : pagination.currentPage).slice().reverse() as result\">\r\n <div class=\"wz-selector__default__absolute__wrapper__item\" [ngClass]=\"{'selected': pageIndex.value === pagination.currentPage}\" (click)=\"onGotoPageChange(pageIndex.value, true)\">\r\n <span>{{ pageIndex.display }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!largeNumberOfPage\">\r\n <select name=\"page\" (change)=\"onGotoPageChange($event, false)\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <ng-container *ngFor=\"let pageIndex of pagination.totalItems | ArrayTotalPages: pagination.itemsPerPage\">\r\n <option [selected]=\"pageIndex === pagination.currentPage\" [value]=\"pageIndex\">\r\n {{ pageIndex }}\r\n </option>\r\n </ng-container>\r\n </select>\r\n </ng-container>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "pipe", type: i3.PagniationArrayTotalPages, name: "ArrayTotalPages" }, { kind: "pipe", type: i4.LargeNumberOfPagePipe, name: "LargeNumberOfPage" }] });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageSelectorComponent, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'wz-page-selector', template: "<div class=\"wz-selector\">\r\n\r\n <div class=\"wz-selector__default\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <div class=\"wz-selector__default__base\" *ngIf=\"largeNumberOfPage;\" (click)=\"openAbsoluteSelect = !openAbsoluteSelect\">\r\n <input name=\"page-input\" [value]=\"pagination.currentPage\" (change)=\"onGotoPageChange($event, false);openAbsoluteSelect = false;\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\" />\r\n <i class=\"fa-solid fa-sort-down\"></i>\r\n </div>\r\n <div class=\"wz-selector__default__absolute\" *ngIf=\"openAbsoluteSelect\">\r\n <div class=\"wz-selector__default__absolute__wrapper\" *ngFor=\"let pageIndex of (pagination.totalItems | LargeNumberOfPage: pagination.itemsPerPage : pagination.currentPage).slice().reverse() as result\">\r\n <div class=\"wz-selector__default__absolute__wrapper__item\" [ngClass]=\"{'selected': pageIndex.value === pagination.currentPage}\" (click)=\"onGotoPageChange(pageIndex.value, true)\">\r\n <span>{{ pageIndex.display }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!largeNumberOfPage\">\r\n <select name=\"page\" (change)=\"onGotoPageChange($event, false)\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <ng-container *ngFor=\"let pageIndex of pagination.totalItems | ArrayTotalPages: pagination.itemsPerPage\">\r\n <option [selected]=\"pageIndex === pagination.currentPage\" [value]=\"pageIndex\">\r\n {{ pageIndex }}\r\n </option>\r\n </ng-container>\r\n </select>\r\n </ng-container>\r\n</div>\r\n" }]
42
- }], ctorParameters: function () { return []; }, propDecorators: { pagination: [{
43
- type: Input
44
- }], totalItems: [{
45
- type: Input
46
- }], pageChange: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3BhZ2luYXRpb24vcGFnZS1zZWxlY3Rvci9wYWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdlLXNlbGVjdG9yL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXZFLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsSUFBYSxVQUFVLENBQUMsVUFBNkI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBYSxVQUFVLENBQUMsVUFBa0I7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFTRDtRQVBBLHVCQUFrQixHQUFXLEtBQUssQ0FBQztRQUVuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFFZixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakQsQ0FBQztJQUVoQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVztRQUNqQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDOzttSEFsQ1UscUJBQXFCO3VHQUFyQixxQkFBcUIsK0pDWmxDLHdzREEwQkE7NEZEZGEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGtCQUFrQjswRUFLZixVQUFVO3NCQUF0QixLQUFLO2dCQVFPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBYUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkZpbHRlcnMge1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1wYWdlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTZWxlY3RvckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnMpIHtcbiAgICB0aGlzLl9wYWdpbmF0aW9uID0gcGFnaW5hdGlvbjtcbiAgfVxuICBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uRmlsdGVycyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gIH1cbiAgcHJpdmF0ZSBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnM7XG5cbiAgQElucHV0KCkgc2V0IHRvdGFsSXRlbXModG90YWxJdGVtczogbnVtYmVyKSB7XG4gICAgdGhpcy5udW1iZXJPZlBhZ2UgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHRoaXMucGFnaW5hdGlvbi5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMubGFyZ2VOdW1iZXJPZlBhZ2UgPSB0aGlzLm51bWJlck9mUGFnZSA+IDMwO1xuICB9XG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsSXRlbXM7XG4gIH1cbiAgcHJpdmF0ZSBfdG90YWxJdGVtczogbnVtYmVyO1xuICBvcGVuQWJzb2x1dGVTZWxlY3Q6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIGxhcmdlTnVtYmVyT2ZQYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIG51bWJlck9mUGFnZTogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG9uR290b1BhZ2VDaGFuZ2UoZXZlbnQsIGRpcmVjdFZhbHVlKSB7XG4gICAgaWYgKGRpcmVjdFZhbHVlKSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgICB0aGlzLm9wZW5BYnNvbHV0ZVNlbGVjdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ei1zZWxlY3RvclwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwid3otc2VsZWN0b3JfX2RlZmF1bHRcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogNDAgKyAoMTAqcGFnaW5hdGlvbi5jdXJyZW50UGFnZS50b1N0cmluZygpLmxlbmd0aCkgKyAncHgnfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInd6LXNlbGVjdG9yX19kZWZhdWx0X19iYXNlXCIgKm5nSWY9XCJsYXJnZU51bWJlck9mUGFnZTtcIiAoY2xpY2spPVwib3BlbkFic29sdXRlU2VsZWN0ID0gIW9wZW5BYnNvbHV0ZVNlbGVjdFwiPlxyXG4gICAgICA8aW5wdXQgbmFtZT1cInBhZ2UtaW5wdXRcIiBbdmFsdWVdPVwicGFnaW5hdGlvbi5jdXJyZW50UGFnZVwiIChjaGFuZ2UpPVwib25Hb3RvUGFnZUNoYW5nZSgkZXZlbnQsIGZhbHNlKTtvcGVuQWJzb2x1dGVTZWxlY3QgPSBmYWxzZTtcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogNDAgKyAoMTAqcGFnaW5hdGlvbi5jdXJyZW50UGFnZS50b1N0cmluZygpLmxlbmd0aCkgKyAncHgnfVwiIC8+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc29ydC1kb3duXCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwid3otc2VsZWN0b3JfX2RlZmF1bHRfX2Fic29sdXRlXCIgKm5nSWY9XCJvcGVuQWJzb2x1dGVTZWxlY3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInd6LXNlbGVjdG9yX19kZWZhdWx0X19hYnNvbHV0ZV9fd3JhcHBlclwiICpuZ0Zvcj1cImxldCBwYWdlSW5kZXggb2YgKHBhZ2luYXRpb24udG90YWxJdGVtcyB8IExhcmdlTnVtYmVyT2ZQYWdlOiBwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZSA6IHBhZ2luYXRpb24uY3VycmVudFBhZ2UpLnNsaWNlKCkucmV2ZXJzZSgpIGFzIHJlc3VsdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ei1zZWxlY3Rvcl9fZGVmYXVsdF9fYWJzb2x1dGVfX3dyYXBwZXJfX2l0ZW1cIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogcGFnZUluZGV4LnZhbHVlID09PSBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlfVwiIChjbGljayk9XCJvbkdvdG9QYWdlQ2hhbmdlKHBhZ2VJbmRleC52YWx1ZSwgdHJ1ZSlcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IHBhZ2VJbmRleC5kaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhcmdlTnVtYmVyT2ZQYWdlXCI+XHJcbiAgICA8c2VsZWN0IG5hbWU9XCJwYWdlXCIgKGNoYW5nZSk9XCJvbkdvdG9QYWdlQ2hhbmdlKCRldmVudCwgZmFsc2UpXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IDQwICsgKDEwKnBhZ2luYXRpb24uY3VycmVudFBhZ2UudG9TdHJpbmcoKS5sZW5ndGgpICsgJ3B4J31cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFnZUluZGV4IG9mIHBhZ2luYXRpb24udG90YWxJdGVtcyB8IEFycmF5VG90YWxQYWdlczogcGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIj5cclxuICAgICAgICA8b3B0aW9uIFtzZWxlY3RlZF09XCJwYWdlSW5kZXggPT09IHBhZ2luYXRpb24uY3VycmVudFBhZ2VcIiBbdmFsdWVdPVwicGFnZUluZGV4XCI+XHJcbiAgICAgICAgICB7eyBwYWdlSW5kZXggfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NlbGVjdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,49 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { PagniationIsLastPage } from '../../../pipes/pagination/total-pages/is-last-page.pipe';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "./page-selector/page-selector.component";
6
- import * as i3 from "@ngx-translate/core";
7
- import * as i4 from "../../../pipes/pagination/total-pages/is-last-page.pipe";
8
- import * as i5 from "../../../pipes/pagination/text/custom-text.pipe";
9
- export class PaginationComponent {
10
- set pagination(pagination) {
11
- this._pagination = pagination;
12
- }
13
- get pagination() {
14
- return this._pagination;
15
- }
16
- constructor() {
17
- this.pageChange = new EventEmitter();
18
- }
19
- decrementPage() {
20
- if (this.pagination.currentPage <= 1) {
21
- return;
22
- }
23
- this.pagination.currentPage--;
24
- this.pageChange.emit(this.pagination);
25
- }
26
- incrementPage() {
27
- const isLastPage = new PagniationIsLastPage().transform(this.pagination.currentPage, this.pagination.totalItems, this.pagination.itemsPerPage);
28
- if (isLastPage) {
29
- return;
30
- }
31
- this.pagination.currentPage++;
32
- this.pageChange.emit(this.pagination);
33
- }
34
- onGotoPageChange(pageNumber) {
35
- this.pagination.currentPage = parseInt(pageNumber);
36
- this.pageChange.emit(this.pagination);
37
- }
38
- }
39
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PaginationComponent, selector: "wz-pagination", inputs: { pagination: "pagination" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"wz-pagination\" *ngIf=\"pagination && pagination.itemsPerPage\">\n <div class=\"wz-pagination__wrapper\">\n <div class=\"wz-pagination__wrapper__page\">\n <p>{{ 'PaginationComponent.page' | translate }}</p>\n\n <wz-page-selector [pagination]=\"pagination\" [totalItems]=\"pagination.totalItems\" (pageChange)=\"onGotoPageChange($event)\"></wz-page-selector>\n </div>\n\n <div class=\"wz-pagination__wrapper__elements\">\n <p>{{ pagination.currentPage | customPagniationText: pagination.totalItems:pagination.itemsPerPage }}</p>\n </div>\n\n <div class=\"wz-pagination__wrapper__arrows\">\n <div\n (click)=\"decrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--left\"\n [ngClass]=\"{ 'wz-pagination__wrapper__arrows__arrow--disabled': pagination.currentPage === 1 }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n <div\n (click)=\"incrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--right\"\n [ngClass]=\"{\n 'wz-pagination__wrapper__arrows__arrow--disabled':\n pagination.currentPage | IsLastPage: pagination.totalItems:pagination.itemsPerPage\n }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PageSelectorComponent, selector: "wz-page-selector", inputs: ["pagination", "totalItems"], outputs: ["pageChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.PagniationIsLastPage, name: "IsLastPage" }, { kind: "pipe", type: i5.PagniationText, name: "customPagniationText" }] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, decorators: [{
42
- type: Component,
43
- args: [{ selector: 'wz-pagination', template: "<div class=\"wz-pagination\" *ngIf=\"pagination && pagination.itemsPerPage\">\n <div class=\"wz-pagination__wrapper\">\n <div class=\"wz-pagination__wrapper__page\">\n <p>{{ 'PaginationComponent.page' | translate }}</p>\n\n <wz-page-selector [pagination]=\"pagination\" [totalItems]=\"pagination.totalItems\" (pageChange)=\"onGotoPageChange($event)\"></wz-page-selector>\n </div>\n\n <div class=\"wz-pagination__wrapper__elements\">\n <p>{{ pagination.currentPage | customPagniationText: pagination.totalItems:pagination.itemsPerPage }}</p>\n </div>\n\n <div class=\"wz-pagination__wrapper__arrows\">\n <div\n (click)=\"decrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--left\"\n [ngClass]=\"{ 'wz-pagination__wrapper__arrows__arrow--disabled': pagination.currentPage === 1 }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n <div\n (click)=\"incrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--right\"\n [ngClass]=\"{\n 'wz-pagination__wrapper__arrows__arrow--disabled':\n pagination.currentPage | IsLastPage: pagination.totalItems:pagination.itemsPerPage\n }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n </div>\n </div>\n</div>\n" }]
44
- }], ctorParameters: function () { return []; }, propDecorators: { pagination: [{
45
- type: Input
46
- }], pageChange: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBWS9GLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsSUFBYSxVQUFVLENBQUMsVUFBNkI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBS0Q7UUFGVSxlQUFVLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7SUFFNUQsQ0FBQztJQUVoQixhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxDQUFDLEVBQUU7WUFDcEMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUM3QixDQUFDO1FBQ0YsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBVTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O2lIQXJDVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixrSUNiaEMsMjdDQWlDQTs0RkRwQmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGVBQWU7MEVBSVosVUFBVTtzQkFBdEIsS0FBSztnQkFRSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ25pYXRpb25Jc0xhc3RQYWdlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvcGFnaW5hdGlvbi90b3RhbC1wYWdlcy9pcy1sYXN0LXBhZ2UucGlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkZpbHRlcnMge1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgcGFnaW5hdGlvbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRmlsdGVycykge1xuICAgIHRoaXMuX3BhZ2luYXRpb24gPSBwYWdpbmF0aW9uO1xuICB9XG4gIGdldCBwYWdpbmF0aW9uKCk6IFBhZ2luYXRpb25GaWx0ZXJzIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbjtcbiAgfVxuICBwcml2YXRlIF9wYWdpbmF0aW9uOiBQYWdpbmF0aW9uRmlsdGVycztcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25GaWx0ZXJzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZGVjcmVtZW50UGFnZSgpIHtcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlIDw9IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlLS07XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgfVxuXG4gIGluY3JlbWVudFBhZ2UoKSB7XG4gICAgY29uc3QgaXNMYXN0UGFnZSA9IG5ldyBQYWduaWF0aW9uSXNMYXN0UGFnZSgpLnRyYW5zZm9ybShcbiAgICAgIHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZSxcbiAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbEl0ZW1zLFxuICAgICAgdGhpcy5wYWdpbmF0aW9uLml0ZW1zUGVyUGFnZVxuICAgICk7XG4gICAgaWYgKGlzTGFzdFBhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlKys7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgfVxuXG4gIG9uR290b1BhZ2VDaGFuZ2UocGFnZU51bWJlcikge1xuICAgIHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZSA9IHBhcnNlSW50KHBhZ2VOdW1iZXIpO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ei1wYWdpbmF0aW9uXCIgKm5nSWY9XCJwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uaXRlbXNQZXJQYWdlXCI+XG4gIDxkaXYgY2xhc3M9XCJ3ei1wYWdpbmF0aW9uX193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInd6LXBhZ2luYXRpb25fX3dyYXBwZXJfX3BhZ2VcIj5cbiAgICAgIDxwPnt7ICdQYWdpbmF0aW9uQ29tcG9uZW50LnBhZ2UnIHwgdHJhbnNsYXRlIH19PC9wPlxuXG4gICAgICA8d3otcGFnZS1zZWxlY3RvciBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCIgW3RvdGFsSXRlbXNdPVwicGFnaW5hdGlvbi50b3RhbEl0ZW1zXCIgKHBhZ2VDaGFuZ2UpPVwib25Hb3RvUGFnZUNoYW5nZSgkZXZlbnQpXCI+PC93ei1wYWdlLXNlbGVjdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInd6LXBhZ2luYXRpb25fX3dyYXBwZXJfX2VsZW1lbnRzXCI+XG4gICAgICA8cD57eyBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlIHwgY3VzdG9tUGFnbmlhdGlvblRleHQ6IHBhZ2luYXRpb24udG90YWxJdGVtczpwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3ei1wYWdpbmF0aW9uX193cmFwcGVyX19hcnJvd3NcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKGNsaWNrKT1cImRlY3JlbWVudFBhZ2UoKVwiXG4gICAgICAgIGNsYXNzPVwid3otcGFnaW5hdGlvbl9fd3JhcHBlcl9fYXJyb3dzX19hcnJvdyB3ei1wYWdpbmF0aW9uX193cmFwcGVyX19hcnJvd3NfX2Fycm93LS1sZWZ0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnd3otcGFnaW5hdGlvbl9fd3JhcHBlcl9fYXJyb3dzX19hcnJvdy0tZGlzYWJsZWQnOiBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlID09PSAxIH1cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInd6LXBhZ2luYXRpb25fX3dyYXBwZXJfX2Fycm93c19fYXJyb3dfX2ljb25cIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKGNsaWNrKT1cImluY3JlbWVudFBhZ2UoKVwiXG4gICAgICAgIGNsYXNzPVwid3otcGFnaW5hdGlvbl9fd3JhcHBlcl9fYXJyb3dzX19hcnJvdyB3ei1wYWdpbmF0aW9uX193cmFwcGVyX19hcnJvd3NfX2Fycm93LS1yaWdodFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnd3otcGFnaW5hdGlvbl9fd3JhcHBlcl9fYXJyb3dzX19hcnJvdy0tZGlzYWJsZWQnOlxuICAgICAgICAgICAgcGFnaW5hdGlvbi5jdXJyZW50UGFnZSB8IElzTGFzdFBhZ2U6IHBhZ2luYXRpb24udG90YWxJdGVtczpwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZVxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3ei1wYWdpbmF0aW9uX193cmFwcGVyX19hcnJvd3NfX2Fycm93X19pY29uXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,110 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngx-translate/core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@angular/forms";
8
- import * as i4 from "ngx-scrollbar";
9
- import * as i5 from "../../../directives/auto-hide.directive";
10
- import * as i6 from "../../../directives/zindex-toggle.directive";
11
- import * as i7 from "../../../pipes/select/select-filters.pipe";
12
- export class SelectComponent {
13
- constructor(translateService) {
14
- this.translateService = translateService;
15
- this.search = false;
16
- this.type = 'default';
17
- this.maxWidth = '100%';
18
- this.disabled = false;
19
- this.selectValue = new EventEmitter();
20
- this.clickOnCallToAction = new EventEmitter();
21
- this.openCategories = false;
22
- this.searchValue = '';
23
- this.indexItemSelected = -1;
24
- // ControlValueAccessor methods
25
- this.onChange = () => { };
26
- this.onTouch = () => { };
27
- }
28
- ngOnInit() {
29
- this.indexItemSelected = this.items.findIndex(item => item.selected);
30
- }
31
- onClose() {
32
- this.openCategories = false;
33
- }
34
- customTB(item, index) {
35
- return `${item.id}-${index}`;
36
- }
37
- onSelectItem(id) {
38
- this.unselectAll();
39
- this.setIndexItemSelected(id);
40
- const itemSelected = this.getItemSelected();
41
- itemSelected.selected = true;
42
- this.selectValue.emit(this.indexItemSelected);
43
- this.onChange(itemSelected);
44
- }
45
- onClickCallToAction() {
46
- this.onClose();
47
- this.clickOnCallToAction.emit(this.callToAction.value);
48
- }
49
- getItemSelected() {
50
- return this.items[this.indexItemSelected];
51
- }
52
- showCategories() {
53
- this.openCategories = true;
54
- setTimeout(() => {
55
- this.searchElement.nativeElement.focus();
56
- }, 0);
57
- }
58
- unselectAll() {
59
- this.items.forEach(item => item.selected = false);
60
- }
61
- setIndexItemSelected(id) {
62
- this.indexItemSelected = this.items.findIndex(item => item.id === id);
63
- }
64
- writeValue(selectItem) {
65
- if (!selectItem) {
66
- return;
67
- }
68
- this.unselectAll();
69
- selectItem.selected = true;
70
- this.setIndexItemSelected(selectItem.id);
71
- }
72
- registerOnChange(fn) {
73
- this.onChange = fn;
74
- }
75
- registerOnTouched(fn) {
76
- this.onTouch = fn;
77
- }
78
- }
79
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
80
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectComponent, selector: "wac-select", inputs: { items: "items", placeholder: "placeholder", label: "label", maxWidthItems: "maxWidthItems", search: "search", type: "type", callToAction: "callToAction", maxWidth: "maxWidth", disabled: "disabled" }, outputs: { selectValue: "selectValue", clickOnCallToAction: "clickOnCallToAction" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }], viewQueries: [{ propertyName: "searchElement", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<p *ngIf=\"label\" [innerHTML]=\"label\" class=\"wac-select__label\"></p>\r\n\r\n<div class=\"wac-select\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\r\n\r\n <div class=\"wac-select__current\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && openCategories = !openCategories\" *ngIf=\"!search\">\r\n <span *ngIf=\"indexItemSelected !== -1\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span [innerHTML]=\"(indexItemSelected !== -1 ? items[indexItemSelected].name : placeholder) | translate\"></span><span><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__current wac-select__current--withSearch\" [ngClass]=\"{ 'select-disabled' : disabled, 'open-search': openCategories }\" *ngIf=\"search\">\r\n <div class=\"wac-select__current__search\" *ngIf=\"openCategories && !disabled\">\r\n <i class=\"far fa-search\"></i>\r\n <input #search type=\"text\" [(ngModel)]=\"searchValue\" />\r\n </div>\r\n <span (click)=\"openCategories = !openCategories;\" *ngIf=\"items[indexItemSelected]?.icon && !openCategories\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span (click)=\"showCategories()\" [innerHTML]=\"items[indexItemSelected]?.name ? items[indexItemSelected].name : placeholder\"></span>\r\n <span (click)=\"openCategories = !openCategories;\"><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openCategories, open: type === 'open' }\" [ngStyle]=\"{ 'max-width': maxWidthItems }\">\r\n <ng-scrollbar *ngIf=\"items.length\" style=\"height: 110px; width: 100%;\">\r\n\r\n <div *ngIf=\"callToAction\" class=\"wac-select__content__cta\">\r\n <div (click)=\"onClickCallToAction()\">\r\n <i *ngIf=\"callToAction.icon\" [classList]=\"callToAction.icon\"></i><strong *ngIf=\"callToAction.boldText\">{{ callToAction.boldText }}</strong\r\n ><span>{{ callToAction?.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let item of items | selectFilters: searchValue; let index = index;\"\r\n (click)=\"onClose()\"\r\n class=\"wac-select__content__item\"\r\n >\r\n <div *ngIf=\"!item.hide\" [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(item.id)\">\r\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name | translate }}\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <div *ngIf=\"!(items | selectFilters: searchValue)?.length\" class=\"wac-select__content__empty\">\r\n <span>{{'wac.datatable.noresult' | translate}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "directive", type: i5.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i6.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.SelectFiltersPipe, name: "selectFilters" }] });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, decorators: [{
82
- type: Component,
83
- args: [{ selector: 'wac-select', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }], template: "<p *ngIf=\"label\" [innerHTML]=\"label\" class=\"wac-select__label\"></p>\r\n\r\n<div class=\"wac-select\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\r\n\r\n <div class=\"wac-select__current\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && openCategories = !openCategories\" *ngIf=\"!search\">\r\n <span *ngIf=\"indexItemSelected !== -1\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span [innerHTML]=\"(indexItemSelected !== -1 ? items[indexItemSelected].name : placeholder) | translate\"></span><span><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__current wac-select__current--withSearch\" [ngClass]=\"{ 'select-disabled' : disabled, 'open-search': openCategories }\" *ngIf=\"search\">\r\n <div class=\"wac-select__current__search\" *ngIf=\"openCategories && !disabled\">\r\n <i class=\"far fa-search\"></i>\r\n <input #search type=\"text\" [(ngModel)]=\"searchValue\" />\r\n </div>\r\n <span (click)=\"openCategories = !openCategories;\" *ngIf=\"items[indexItemSelected]?.icon && !openCategories\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span (click)=\"showCategories()\" [innerHTML]=\"items[indexItemSelected]?.name ? items[indexItemSelected].name : placeholder\"></span>\r\n <span (click)=\"openCategories = !openCategories;\"><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openCategories, open: type === 'open' }\" [ngStyle]=\"{ 'max-width': maxWidthItems }\">\r\n <ng-scrollbar *ngIf=\"items.length\" style=\"height: 110px; width: 100%;\">\r\n\r\n <div *ngIf=\"callToAction\" class=\"wac-select__content__cta\">\r\n <div (click)=\"onClickCallToAction()\">\r\n <i *ngIf=\"callToAction.icon\" [classList]=\"callToAction.icon\"></i><strong *ngIf=\"callToAction.boldText\">{{ callToAction.boldText }}</strong\r\n ><span>{{ callToAction?.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let item of items | selectFilters: searchValue; let index = index;\"\r\n (click)=\"onClose()\"\r\n class=\"wac-select__content__item\"\r\n >\r\n <div *ngIf=\"!item.hide\" [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(item.id)\">\r\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name | translate }}\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <div *ngIf=\"!(items | selectFilters: searchValue)?.length\" class=\"wac-select__content__empty\">\r\n <span>{{'wac.datatable.noresult' | translate}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n" }]
84
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { items: [{
85
- type: Input
86
- }], placeholder: [{
87
- type: Input
88
- }], label: [{
89
- type: Input
90
- }], maxWidthItems: [{
91
- type: Input
92
- }], search: [{
93
- type: Input
94
- }], type: [{
95
- type: Input
96
- }], callToAction: [{
97
- type: Input
98
- }], maxWidth: [{
99
- type: Input
100
- }], disabled: [{
101
- type: Input
102
- }], selectValue: [{
103
- type: Output
104
- }], clickOnCallToAction: [{
105
- type: Output
106
- }], searchElement: [{
107
- type: ViewChild,
108
- args: ['search']
109
- }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBU3pFLE1BQU0sT0FBTyxlQUFlO0lBc0MxQixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdmLFNBQUksR0FBRyxTQUFTLENBQUM7UUFLUixhQUFRLEdBQUcsTUFBTSxDQUFDO1FBRzNCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFUCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFekMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUl4RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixzQkFBaUIsR0FBVyxDQUFDLENBQUMsQ0FBQztRQWlEL0IsK0JBQStCO1FBRS9CLGFBQVEsR0FBcUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3RELFlBQU8sR0FBUSxH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SztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVjLGFBQWE7c0JBQWpDLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAnLi9zZWxlY3QtaXRlbXMuZHRvJztcbmltcG9ydCB7IENhbGxsVG9BY3Rpb24gfSBmcm9tICcuL2NhbGwtdG8tYWN0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2FjLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogU2VsZWN0Q29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgaXRlbXM6IFNlbGVjdEl0ZW1bXTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbWF4V2lkdGhJdGVtczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNlYXJjaCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGUgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KClcbiAgY2FsbFRvQWN0aW9uOiBDYWxsbFRvQWN0aW9uO1xuXG4gIEBJbnB1dCgpIG1heFdpZHRoID0gJzEwMCUnO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHNlbGVjdFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpIGNsaWNrT25DYWxsVG9BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdzZWFyY2gnKSBzZWFyY2hFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIG9wZW5DYXRlZ29yaWVzID0gZmFsc2U7XG4gIHNlYXJjaFZhbHVlID0gJyc7XG5cbiAgaW5kZXhJdGVtU2VsZWN0ZWQ6IG51bWJlciA9IC0xO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4SXRlbVNlbGVjdGVkID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5vcGVuQ2F0ZWdvcmllcyA9IGZhbHNlO1xuICB9XG5cbiAgY3VzdG9tVEIoaXRlbTogU2VsZWN0SXRlbSwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBgJHtpdGVtLmlkfS0ke2luZGV4fWA7XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oaWQ6IG51bWJlcikge1xuICAgIHRoaXMudW5zZWxlY3RBbGwoKTtcbiAgICB0aGlzLnNldEluZGV4SXRlbVNlbGVjdGVkKGlkKTtcbiAgICBjb25zdCBpdGVtU2VsZWN0ZWQ6IFNlbGVjdEl0ZW0gPSB0aGlzLmdldEl0ZW1TZWxlY3RlZCgpO1xuICAgIGl0ZW1TZWxlY3RlZC5zZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RWYWx1ZS5lbWl0KHRoaXMuaW5kZXhJdGVtU2VsZWN0ZWQpO1xuICAgIHRoaXMub25DaGFuZ2UoaXRlbVNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2xpY2tDYWxsVG9BY3Rpb24oKSB7XG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgdGhpcy5jbGlja09uQ2FsbFRvQWN0aW9uLmVtaXQodGhpcy5jYWxsVG9BY3Rpb24udmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtU2VsZWN0ZWQoKTogU2VsZWN0SXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNbdGhpcy5pbmRleEl0ZW1TZWxlY3RlZF07XG4gIH1cblxuICBzaG93Q2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLm9wZW5DYXRlZ29yaWVzID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgLy8gdGhpcyB3aWxsIG1ha2UgdGhlIGV4ZWN1dGlvbiBhZnRlciB0aGUgYWJvdmUgYm9vbGVhbiBoYXMgY2hhbmdlZFxuICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5kZXhJdGVtU2VsZWN0ZWQoaWQ6IG51bWJlcikge1xuICAgIHRoaXMuaW5kZXhJdGVtU2VsZWN0ZWQgPSB0aGlzLml0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGlkKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcblxuICBvbkNoYW5nZTogKHNlbGVjdEl0ZW06IFNlbGVjdEl0ZW0pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge31cblxuICB3cml0ZVZhbHVlKHNlbGVjdEl0ZW06IGFueSl7XG4gICAgaWYgKCFzZWxlY3RJdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudW5zZWxlY3RBbGwoKTtcbiAgICBzZWxlY3RJdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICB0aGlzLnNldEluZGV4SXRlbVNlbGVjdGVkKHNlbGVjdEl0ZW0uaWQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KXtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSl7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cbn1cbiIsIjxwICpuZ0lmPVwibGFiZWxcIiBbaW5uZXJIVE1MXT1cImxhYmVsXCIgY2xhc3M9XCJ3YWMtc2VsZWN0X19sYWJlbFwiPjwvcD5cclxuXHJcbjxkaXYgY2xhc3M9XCJ3YWMtc2VsZWN0XCIgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xvc2UoKVwiIFtuZ1N0eWxlXT1cInsgJ21heC13aWR0aCc6IG1heFdpZHRoIH1cIiBbekluZGV4VG9nZ2xlXT1cIm9wZW5DYXRlZ29yaWVzXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtc2VsZWN0X19jdXJyZW50XCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0LWRpc2FibGVkJyA6IGRpc2FibGVkIH1cIiAoY2xpY2spPVwiIWRpc2FibGVkICYmIG9wZW5DYXRlZ29yaWVzID0gIW9wZW5DYXRlZ29yaWVzXCIgKm5nSWY9XCIhc2VhcmNoXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImluZGV4SXRlbVNlbGVjdGVkICE9PSAtMVwiIGNsYXNzPVwiaWNvblwiIFtpbm5lckhUTUxdPVwiaXRlbXNbaW5kZXhJdGVtU2VsZWN0ZWRdLmljb25cIj48L3NwYW4+XHJcbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIihpbmRleEl0ZW1TZWxlY3RlZCAhPT0gLTEgPyBpdGVtc1tpbmRleEl0ZW1TZWxlY3RlZF0ubmFtZSA6IHBsYWNlaG9sZGVyKSB8IHRyYW5zbGF0ZVwiPjwvc3Bhbj48c3Bhbj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tZG93blwiPjwvaT48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtc2VsZWN0X19jdXJyZW50IHdhYy1zZWxlY3RfX2N1cnJlbnQtLXdpdGhTZWFyY2hcIiBbbmdDbGFzc109XCJ7ICdzZWxlY3QtZGlzYWJsZWQnIDogZGlzYWJsZWQsICdvcGVuLXNlYXJjaCc6IG9wZW5DYXRlZ29yaWVzIH1cIiAqbmdJZj1cInNlYXJjaFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIndhYy1zZWxlY3RfX2N1cnJlbnRfX3NlYXJjaFwiICpuZ0lmPVwib3BlbkNhdGVnb3JpZXMgJiYgIWRpc2FibGVkXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgPGlucHV0ICNzZWFyY2ggdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gKGNsaWNrKT1cIm9wZW5DYXRlZ29yaWVzID0gIW9wZW5DYXRlZ29yaWVzO1wiICpuZ0lmPVwiaXRlbXNbaW5kZXhJdGVtU2VsZWN0ZWRdPy5pY29uICYmICFvcGVuQ2F0ZWdvcmllc1wiIGNsYXNzPVwiaWNvblwiIFtpbm5lckhUTUxdPVwiaXRlbXNbaW5kZXhJdGVtU2VsZWN0ZWRdLmljb25cIj48L3NwYW4+XHJcbiAgICA8c3BhbiAoY2xpY2spPVwic2hvd0NhdGVnb3JpZXMoKVwiIFtpbm5lckhUTUxdPVwiaXRlbXNbaW5kZXhJdGVtU2VsZWN0ZWRdPy5uYW1lID8gaXRlbXNbaW5kZXhJdGVtU2VsZWN0ZWRdLm5hbWUgOiBwbGFjZWhvbGRlclwiPjwvc3Bhbj5cclxuICAgIDxzcGFuIChjbGljayk9XCJvcGVuQ2F0ZWdvcmllcyA9ICFvcGVuQ2F0ZWdvcmllcztcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tZG93blwiPjwvaT48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtc2VsZWN0X19jb250ZW50XCIgKm5nSWY9XCIhZGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7IGhpZGRlbjogIW9wZW5DYXRlZ29yaWVzLCBvcGVuOiB0eXBlID09PSAnb3BlbicgfVwiIFtuZ1N0eWxlXT1cInsgJ21heC13aWR0aCc6IG1heFdpZHRoSXRlbXMgfVwiPlxyXG4gICAgPG5nLXNjcm9sbGJhciAqbmdJZj1cIml0ZW1zLmxlbmd0aFwiIHN0eWxlPVwiaGVpZ2h0OiAxMTBweDsgd2lkdGg6IDEwMCU7XCI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY2FsbFRvQWN0aW9uXCIgY2xhc3M9XCJ3YWMtc2VsZWN0X19jb250ZW50X19jdGFcIj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJvbkNsaWNrQ2FsbFRvQWN0aW9uKClcIj5cclxuICAgICAgICAgIDxpICpuZ0lmPVwiY2FsbFRvQWN0aW9uLmljb25cIiBbY2xhc3NMaXN0XT1cImNhbGxUb0FjdGlvbi5pY29uXCI+PC9pPjxzdHJvbmcgKm5nSWY9XCJjYWxsVG9BY3Rpb24uYm9sZFRleHRcIj57eyBjYWxsVG9BY3Rpb24uYm9sZFRleHQgfX08L3N0cm9uZ1xyXG4gICAgICAgICAgPjxzcGFuPnt7IGNhbGxUb0FjdGlvbj8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMgfCBzZWxlY3RGaWx0ZXJzOiBzZWFyY2hWYWx1ZTsgbGV0IGluZGV4ID0gaW5kZXg7XCJcclxuICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcclxuICAgICAgICBjbGFzcz1cIndhYy1zZWxlY3RfX2NvbnRlbnRfX2l0ZW1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXRlbS5oaWRlXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogaXRlbS5zZWxlY3RlZCB9XCIgKGNsaWNrKT1cIm9uU2VsZWN0SXRlbShpdGVtLmlkKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25cIiBbaW5uZXJIVE1MXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9zcGFuPnt7IGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvbmctc2Nyb2xsYmFyPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhKGl0ZW1zIHwgc2VsZWN0RmlsdGVyczogc2VhcmNoVmFsdWUpPy5sZW5ndGhcIiBjbGFzcz1cIndhYy1zZWxlY3RfX2NvbnRlbnRfX2VtcHR5XCI+XHJcbiAgICAgIDxzcGFuPnt7J3dhYy5kYXRhdGFibGUubm9yZXN1bHQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,116 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
- import { v4 as uuid } from 'uuid';
3
- import { FiltersTableService } from '../../../services/table/filters-table.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../services/table/filters-table.service";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@angular/forms";
8
- import * as i4 from "../../loader/loader.component";
9
- import * as i5 from "../input-search/input-search.component";
10
- import * as i6 from "../pagination/pagination.component";
11
- import * as i7 from "../checkbox/checkbox.component";
12
- export class TableComponent {
13
- constructor(filtersTableService) {
14
- this.filtersTableService = filtersTableService;
15
- this.tableFiltersChange = new EventEmitter();
16
- this.placeholder = '';
17
- /// Input/Output of checkbox ///
18
- /** Pass to true to display checkbox in the header table */
19
- this.checkbox = false;
20
- /** Emit new header checboxValue */
21
- this.toggleAllCheckBox = new EventEmitter();
22
- /// Input to disable section ///
23
- /** Pass to true to hide search input */
24
- this.disableSearch = false;
25
- /** Pass to true to hide the pagniator */
26
- this.disablePagniation = false;
27
- /// Input for loader on table body ///
28
- this.isLoading = false;
29
- }
30
- ngOnInit() {
31
- this.headerCheckBoxId = uuid(); // Create checkbox unique id
32
- /* Handle routing filters */
33
- if (this.tableRoutingName) {
34
- this._filterGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);
35
- // Performe initial fetch data
36
- this._filterGroup.valuesChange$.next([]);
37
- this.setTablesFilters();
38
- // Listen to filters changes with debounced time to limit multiple api calls
39
- this.filterGroupChangeSub = this._filterGroup.valuesChange$.subscribe(filters => {
40
- this.setTablesFilters();
41
- });
42
- }
43
- }
44
- onToggleAllCheckBox(event) {
45
- this.toggleAllCheckBox.emit(event.target.checked);
46
- }
47
- searchChange(event) {
48
- // Reset table filters
49
- this.tableFilters.sort = undefined;
50
- this.tableFilters.order = undefined;
51
- this.tableFilters.currentPage = 1;
52
- this.tableFiltersChange.emit(this.tableFilters);
53
- // Reset routing filters
54
- if (this._filterGroup) {
55
- this._filterGroup.setValues({
56
- searchValue: this.tableFilters.searchValue,
57
- sort: undefined,
58
- order: undefined,
59
- currentPage: 1
60
- });
61
- }
62
- }
63
- pageChange() {
64
- this.tableFiltersChange.emit(this.tableFilters);
65
- if (this._filterGroup) {
66
- this._filterGroup.setValues({
67
- itemsPerPage: this.tableFilters.itemsPerPage,
68
- currentPage: this.tableFilters.currentPage
69
- });
70
- }
71
- }
72
- /**
73
- * Set tableFilters from routing data existing in the url
74
- * */
75
- setTablesFilters() {
76
- this.tableFilters = {
77
- sort: this._filterGroup.get('sort'),
78
- order: this._filterGroup.get('order'),
79
- searchValue: this._filterGroup.get('searchValue'),
80
- itemsPerPage: this._filterGroup.get('itemsPerPage') ? parseInt(this._filterGroup.get('itemsPerPage')) : 0,
81
- currentPage: this._filterGroup.get('currentPage') ? parseInt(this._filterGroup.get('currentPage')) : 0,
82
- totalItems: this.tableFilters.totalItems
83
- };
84
- this.tableFiltersChange.emit(this.tableFilters);
85
- }
86
- ngDestroy() {
87
- if (this.filterGroupChangeSub) {
88
- this.filterGroupChangeSub.unsubscribe();
89
- }
90
- }
91
- }
92
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, deps: [{ token: i1.FiltersTableService }], target: i0.ɵɵFactoryTarget.Component });
93
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableComponent, selector: "wz-table", inputs: { tableFilters: "tableFilters", tableRoutingName: "tableRoutingName", placeholder: "placeholder", checkbox: "checkbox", disableSearch: "disableSearch", disablePagniation: "disablePagniation", isLoading: "isLoading" }, outputs: { tableFiltersChange: "tableFiltersChange", toggleAllCheckBox: "toggleAllCheckBox" }, ngImport: i0, template: "<div class=\"wz-table\">\n <!-- Header section -->\n <div class=\"wz-table__head\" id=\"headerTable\">\n <div *ngIf=\"checkbox\" class=\"wz-table__head__cell wz-table__head__cell--checkbox\">\n <wz-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wz-checkbox>\n </div>\n\n <!-- Header contents are added with the headerCell directive -->\n <ng-content select=\"[headerCell]\"></ng-content>\n </div>\n\n <!-- Search section -->\n <div *ngIf=\"!disableSearch\" class=\"wz-table__search\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"searchChange($event)\"\n [placeholder]=\"placeholder\"\n [smallPadding]=\"true\"\n ></wz-input-search>\n </div>\n\n <!-- Body section -->\n <div class=\"wz-table__body\">\n <!-- Loader on body -->\n <div class=\"wz-table__body__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n <!-- Body contents are added with the tableRow directive -->\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\n </div>\n\n <!-- Pagination section -->\n <wz-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wz-pagination>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "component", type: i5.InputSearchComponent, selector: "wz-input-search", inputs: ["placeholder", "smallPadding", "id"], outputs: ["changeDebounced"] }, { kind: "component", type: i6.PaginationComponent, selector: "wz-pagination", inputs: ["pagination"], outputs: ["pageChange"] }, { kind: "component", type: i7.CheckboxComponent, selector: "wz-checkbox", inputs: ["label", "value", "type", "alone", "checked", "id", "name"] }], encapsulation: i0.ViewEncapsulation.None });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, decorators: [{
95
- type: Component,
96
- args: [{ selector: 'wz-table', encapsulation: ViewEncapsulation.None, template: "<div class=\"wz-table\">\n <!-- Header section -->\n <div class=\"wz-table__head\" id=\"headerTable\">\n <div *ngIf=\"checkbox\" class=\"wz-table__head__cell wz-table__head__cell--checkbox\">\n <wz-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wz-checkbox>\n </div>\n\n <!-- Header contents are added with the headerCell directive -->\n <ng-content select=\"[headerCell]\"></ng-content>\n </div>\n\n <!-- Search section -->\n <div *ngIf=\"!disableSearch\" class=\"wz-table__search\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"searchChange($event)\"\n [placeholder]=\"placeholder\"\n [smallPadding]=\"true\"\n ></wz-input-search>\n </div>\n\n <!-- Body section -->\n <div class=\"wz-table__body\">\n <!-- Loader on body -->\n <div class=\"wz-table__body__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n <!-- Body contents are added with the tableRow directive -->\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\n </div>\n\n <!-- Pagination section -->\n <wz-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wz-pagination>\n</div>\n" }]
97
- }], ctorParameters: function () { return [{ type: i1.FiltersTableService }]; }, propDecorators: { tableFilters: [{
98
- type: Input
99
- }], tableFiltersChange: [{
100
- type: Output
101
- }], tableRoutingName: [{
102
- type: Input
103
- }], placeholder: [{
104
- type: Input
105
- }], checkbox: [{
106
- type: Input
107
- }], toggleAllCheckBox: [{
108
- type: Output
109
- }], disableSearch: [{
110
- type: Input
111
- }], disablePagniation: [{
112
- type: Input
113
- }], isLoading: [{
114
- type: Input
115
- }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7QUFPbEcsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBNUJsRCx1QkFBa0IsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyRSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUlsQyxnQ0FBZ0M7UUFFaEMsMkRBQTJEO1FBQ2xELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsbUNBQW1DO1FBQ3pCLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLGdDQUFnQztRQUVoQyx3Q0FBd0M7UUFDL0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMseUNBQXlDO1FBQ2hDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUU1QyxzQ0FBc0M7UUFDN0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQU1vQyxDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JB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QVU7U0FDekMsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7NEdBeEdVLGNBQWM7Z0dBQWQsY0FBYyxpWENYM0IsOHhDQWtDQTs0RkR2QmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVLGlCQUVMLGlCQUFpQixDQUFDLElBQUk7MEdBSzVCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUtFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhYmxlRmlsdGVycywgRmlsdGVyc1RhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RhYmxlL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3d6LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vLyBJbnB1dC9PdXRwdXQgb2YgdGFibGUgZmlsdGVycyAvLy9cblxuICBASW5wdXQoKSB0YWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycztcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyc0NoYW5nZTogRXZlbnRFbWl0dGVyPFRhYmxlRmlsdGVycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgdGFibGVSb3V0aW5nTmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB0YWJsZVxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyR3JvdXA6IE53YkZpbHRlckdyb3VwO1xuXG4gIC8vLyBJbnB1dC9PdXRwdXQgb2YgY2hlY2tib3ggLy8vXG5cbiAgLyoqIFBhc3MgdG8gdHJ1ZSB0byBkaXNwbGF5IGNoZWNrYm94IGluIHRoZSBoZWFkZXIgdGFibGUgKi9cbiAgQElucHV0KCkgY2hlY2tib3ggPSBmYWxzZTtcbiAgLyoqIEVtaXQgbmV3IGhlYWRlciBjaGVjYm94VmFsdWUgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUFsbENoZWNrQm94OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy8vIElucHV0IHRvIGRpc2FibGUgc2VjdGlvbiAvLy9cblxuICAvKiogUGFzcyB0byB0cnVlIHRvIGhpZGUgc2VhcmNoIGlucHV0ICovXG4gIEBJbnB1dCgpIGRpc2FibGVTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFBhc3MgdG8gdHJ1ZSB0byBoaWRlIHRoZSBwYWduaWF0b3IgKi9cbiAgQElucHV0KCkgZGlzYWJsZVBhZ25pYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLy8gSW5wdXQgZm9yIGxvYWRlciBvbiB0YWJsZSBib2R5IC8vL1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAvLy8gUHJpdmF0ZSB2YXJpYWJsZXMgLy8vXG4gIGhlYWRlckNoZWNrQm94SWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBmaWx0ZXJHcm91cENoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsdGVyc1RhYmxlU2VydmljZTogRmlsdGVyc1RhYmxlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlckNoZWNrQm94SWQgPSB1dWlkKCk7IC8vIENyZWF0ZSBjaGVja2JveCB1bmlxdWUgaWRcblxuICAgIC8qIEhhbmRsZSByb3V0aW5nIGZpbHRlcnMgKi9cbiAgICBpZiAodGhpcy50YWJsZVJvdXRpbmdOYW1lKSB7XG4gICAgICB0aGlzLl9maWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRUYWJsZUZpbHRlckdyb3VwKHRoaXMudGFibGVSb3V0aW5nTmFtZSk7XG5cbiAgICAgIC8vIFBlcmZvcm1lIGluaXRpYWwgZmV0Y2ggZGF0YVxuICAgICAgdGhpcy5fZmlsdGVyR3JvdXAudmFsdWVzQ2hhbmdlJC5uZXh0KFtdKTtcblxuICAgICAgdGhpcy5zZXRUYWJsZXNGaWx0ZXJzKCk7XG5cbiAgICAgIC8vIExpc3RlbiB0byBmaWx0ZXJzIGNoYW5nZXMgd2l0aCBkZWJvdW5jZWQgdGltZSB0byBsaW1pdCBtdWx0aXBsZSBhcGkgY2FsbHNcbiAgICAgIHRoaXMuZmlsdGVyR3JvdXBDaGFuZ2VTdWIgPSB0aGlzLl9maWx0ZXJHcm91cC52YWx1ZXNDaGFuZ2UkLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgdGhpcy5zZXRUYWJsZXNGaWx0ZXJzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblRvZ2dsZUFsbENoZWNrQm94KGV2ZW50KSB7XG4gICAgdGhpcy50b2dnbGVBbGxDaGVja0JveC5lbWl0KGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgfVxuXG4gIHNlYXJjaENoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgLy8gUmVzZXQgdGFibGUgZmlsdGVyc1xuICAgIHRoaXMudGFibGVGaWx0ZXJzLnNvcnQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50YWJsZUZpbHRlcnMub3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMudGFibGVGaWx0ZXJzQ2hhbmdlLmVtaXQodGhpcy50YWJsZUZpbHRlcnMpO1xuXG4gICAgLy8gUmVzZXQgcm91dGluZyBmaWx0ZXJzXG4gICAgaWYgKHRoaXMuX2ZpbHRlckdyb3VwKSB7XG4gICAgICB0aGlzLl9maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xuICAgICAgICBzZWFyY2hWYWx1ZTogdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUsXG4gICAgICAgIHNvcnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgb3JkZXI6IHVuZGVmaW5lZCxcbiAgICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHBhZ2VDaGFuZ2UoKSB7XG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XG4gICAgaWYgKHRoaXMuX2ZpbHRlckdyb3VwKSB7XG4gICAgICB0aGlzLl9maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xuICAgICAgICBpdGVtc1BlclBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSxcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIFNldCB0YWJsZUZpbHRlcnMgZnJvbSByb3V0aW5nIGRhdGEgZXhpc3RpbmcgaW4gdGhlIHVybFxuICAgKiAqL1xuICBwcml2YXRlIHNldFRhYmxlc0ZpbHRlcnMoKSB7XG4gICAgdGhpcy50YWJsZUZpbHRlcnMgPSB7XG4gICAgICBzb3J0OiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ3NvcnQnKSxcbiAgICAgIG9yZGVyOiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ29yZGVyJyksXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCdzZWFyY2hWYWx1ZScpLFxuICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpID8gcGFyc2VJbnQodGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSkgOiAwLFxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiAwLFxuICAgICAgdG90YWxJdGVtczogdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtc1xuICAgIH07XG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XG4gIH1cblxuICBuZ0Rlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyR3JvdXBDaGFuZ2VTdWIpIHtcbiAgICAgIHRoaXMuZmlsdGVyR3JvdXBDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ei10YWJsZVwiPlxuICA8IS0tIEhlYWRlciBzZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwid3otdGFibGVfX2hlYWRcIiBpZD1cImhlYWRlclRhYmxlXCI+XG4gICAgPGRpdiAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJ3ei10YWJsZV9faGVhZF9fY2VsbCB3ei10YWJsZV9faGVhZF9fY2VsbC0tY2hlY2tib3hcIj5cbiAgICAgIDx3ei1jaGVja2JveCBbaWRdPVwiaGVhZGVyQ2hlY2tCb3hJZFwiIChjaGFuZ2UpPVwib25Ub2dnbGVBbGxDaGVja0JveCgkZXZlbnQpXCIgW2Fsb25lXT1cInRydWVcIj48L3d6LWNoZWNrYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBIZWFkZXIgY29udGVudHMgYXJlIGFkZGVkIHdpdGggdGhlIGhlYWRlckNlbGwgZGlyZWN0aXZlIC0tPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJDZWxsXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBTZWFyY2ggc2VjdGlvbiAtLT5cbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgY2xhc3M9XCJ3ei10YWJsZV9fc2VhcmNoXCI+XG4gICAgPHd6LWlucHV0LXNlYXJjaFxuICAgICAgWyhuZ01vZGVsKV09XCJ0YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWVcIlxuICAgICAgKGNoYW5nZURlYm91bmNlZCk9XCJzZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICA+PC93ei1pbnB1dC1zZWFyY2g+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQm9keSBzZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwid3otdGFibGVfX2JvZHlcIj5cbiAgICA8IS0tIExvYWRlciBvbiBib2R5IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ3ei10YWJsZV9fYm9keV9fbG9hZGVyXCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDx3ei1sb2FkZXIgW3NtYWxsXT1cInRydWVcIj48L3d6LWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEJvZHkgY29udGVudHMgYXJlIGFkZGVkIHdpdGggdGhlIHRhYmxlUm93IGRpcmVjdGl2ZSAtLT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGVSb3ddXCIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8IS0tIFBhZ2luYXRpb24gc2VjdGlvbiAtLT5cbiAgPHd6LXBhZ2luYXRpb24gKm5nSWY9XCIhZGlzYWJsZVBhZ25pYXRpb25cIiBbcGFnaW5hdGlvbl09XCJ0YWJsZUZpbHRlcnNcIiAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKClcIj48L3d6LXBhZ2luYXRpb24+XG48L2Rpdj5cbiJdfQ==