@wizishop/img-manager 18.2.3-beta → 19.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +393 -393
  2. package/assets/i18n/en.json +1 -1
  3. package/assets/i18n/es.json +1 -1
  4. package/assets/i18n/fr.json +1 -1
  5. package/assets/i18n/it.json +1 -1
  6. package/fesm2022/wizishop-img-manager.mjs +1150 -953
  7. package/fesm2022/wizishop-img-manager.mjs.map +1 -1
  8. package/lib/components/images-view/images-actions-handler.d.ts +3 -2
  9. package/lib/components/images-view/images-view.component.d.ts +11 -5
  10. package/lib/components/images-view/table-view/table-view.component.d.ts +1 -0
  11. package/lib/components/img-editor/img-editor.component.d.ts +8 -1
  12. package/lib/components/img-editor/info-video/info-video.component.d.ts +20 -0
  13. package/lib/components/img-editor/show-iframe/show-iframe.component.d.ts +16 -0
  14. package/lib/components/img-selection/img-selection.component.d.ts +4 -3
  15. package/lib/components/img-tabs/img-tabs.component.d.ts +1 -0
  16. package/lib/dto/img-manager.dto.d.ts +9 -0
  17. package/lib/services/api.service.d.ts +1 -0
  18. package/lib/services/img-event.service.d.ts +3 -0
  19. package/lib/services/img-manager.service.d.ts +11 -14
  20. package/lib/services/rename-picture.service.d.ts +1 -0
  21. package/lib/services/table/filters-table.service.d.ts +1 -0
  22. package/lib/services/video-info.service.d.ts +23 -0
  23. package/lib/wz-img-manager.component.d.ts +2 -2
  24. package/lib/wz-img-manager.module.d.ts +46 -44
  25. package/package.json +15 -24
  26. package/wizishop-img-manager-19.0.0-beta.2.tgz +0 -0
  27. package/wz-img-manager.scss +2422 -2112
  28. package/esm2022/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -12
  29. package/esm2022/lib/animations/insertRemove/insert-remove.animation.mjs +0 -9
  30. package/esm2022/lib/animations/listAnnimation/list.animation.mjs +0 -16
  31. package/esm2022/lib/components/canva-btn/canva-btn.component.mjs +0 -73
  32. package/esm2022/lib/components/images-view/images-actions-handler.mjs +0 -168
  33. package/esm2022/lib/components/images-view/images-view.component.mjs +0 -391
  34. package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -70
  35. package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -73
  36. package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +0 -48
  37. package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +0 -313
  38. package/esm2022/lib/components/img-editor/img-editor.component.mjs +0 -129
  39. package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +0 -58
  40. package/esm2022/lib/components/img-selection/img-selection.component.mjs +0 -58
  41. package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +0 -128
  42. package/esm2022/lib/components/img-upload/img-upload.component.mjs +0 -133
  43. package/esm2022/lib/components/loader/loader.component.mjs +0 -21
  44. package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +0 -211
  45. package/esm2022/lib/components/shared/alert/alert.component.mjs +0 -26
  46. package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +0 -56
  47. package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
  48. package/esm2022/lib/components/shared/input-search/input-search.component.mjs +0 -53
  49. package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -50
  50. package/esm2022/lib/components/shared/pagination/pagination.component.mjs +0 -49
  51. package/esm2022/lib/components/shared/select/call-to-action.model.mjs +0 -2
  52. package/esm2022/lib/components/shared/select/select-items.dto.mjs +0 -2
  53. package/esm2022/lib/components/shared/select/select.component.mjs +0 -117
  54. package/esm2022/lib/components/shared/table/table.component.mjs +0 -124
  55. package/esm2022/lib/components/upload-list/upload-list.component.mjs +0 -85
  56. package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -41
  57. package/esm2022/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +0 -24
  58. package/esm2022/lib/directives/auto-hide.directive.mjs +0 -51
  59. package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +0 -36
  60. package/esm2022/lib/directives/drag-drop.directive.mjs +0 -55
  61. package/esm2022/lib/directives/loading.directive.mjs +0 -43
  62. package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +0 -130
  63. package/esm2022/lib/directives/table/column.directive.mjs +0 -50
  64. package/esm2022/lib/directives/table/columnHeader.directive.mjs +0 -215
  65. package/esm2022/lib/directives/table/raw.directive.mjs +0 -34
  66. package/esm2022/lib/directives/zindex-toggle.directive.mjs +0 -45
  67. package/esm2022/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -2
  68. package/esm2022/lib/dto/canva-create-design.dto.mjs +0 -9
  69. package/esm2022/lib/dto/canva.dto.mjs +0 -6
  70. package/esm2022/lib/dto/config/apis/api.dto.mjs +0 -11
  71. package/esm2022/lib/dto/config/external/external-config.dto.mjs +0 -5
  72. package/esm2022/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -2
  73. package/esm2022/lib/dto/config/img-manager.mjs +0 -8
  74. package/esm2022/lib/dto/export-dtos.api.mjs +0 -11
  75. package/esm2022/lib/dto/img-editor-config.dto.mjs +0 -2
  76. package/esm2022/lib/dto/img-manager.dto.mjs +0 -2
  77. package/esm2022/lib/dto/pexels-img.dto.mjs +0 -2
  78. package/esm2022/lib/dto/picture-name-update.dto.mjs +0 -2
  79. package/esm2022/lib/dto/stateDisplayed.dto.mjs +0 -2
  80. package/esm2022/lib/dto/tabDisplayed.dto.mjs +0 -2
  81. package/esm2022/lib/dto/wizi-block-media.dto.mjs +0 -7
  82. package/esm2022/lib/pipes/images/img-src.pipe.mjs +0 -29
  83. package/esm2022/lib/pipes/number-to-array.pipe.mjs +0 -16
  84. package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
  85. package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
  86. package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -36
  87. package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
  88. package/esm2022/lib/pipes/select/select-filters.pipe.mjs +0 -19
  89. package/esm2022/lib/services/alert.service.mjs +0 -53
  90. package/esm2022/lib/services/api.service.mjs +0 -10
  91. package/esm2022/lib/services/canva.service.mjs +0 -165
  92. package/esm2022/lib/services/config/img-cdn.service.mjs +0 -21
  93. package/esm2022/lib/services/dom.service.mjs +0 -31
  94. package/esm2022/lib/services/icon.service.mjs +0 -18
  95. package/esm2022/lib/services/image-not-found.service.mjs +0 -13
  96. package/esm2022/lib/services/img-event.service.mjs +0 -33
  97. package/esm2022/lib/services/img-manager.service.mjs +0 -134
  98. package/esm2022/lib/services/img-selection.service.mjs +0 -75
  99. package/esm2022/lib/services/pexels.service.mjs +0 -66
  100. package/esm2022/lib/services/rename-picture.service.mjs +0 -66
  101. package/esm2022/lib/services/snackbar.service.mjs +0 -67
  102. package/esm2022/lib/services/table/filters-table.service.mjs +0 -61
  103. package/esm2022/lib/services/upload.service.mjs +0 -20
  104. package/esm2022/lib/services/user-settings.service.mjs +0 -23
  105. package/esm2022/lib/wz-img-manager.component.mjs +0 -209
  106. package/esm2022/lib/wz-img-manager.module.mjs +0 -225
  107. package/esm2022/public-api.mjs +0 -14
  108. package/esm2022/wizishop-img-manager.mjs +0 -5
  109. package/wizishop-img-manager-18.2.3-beta.tgz +0 -0
@@ -1,211 +0,0 @@
1
- import { Component, ElementRef, ViewChild, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
- import { PexelsService } from '../../services/pexels.service';
3
- import { Subject } from 'rxjs';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';
6
- import { listAnnimation } from '../../animations/listAnnimation/list.animation';
7
- import { AlertService } from '../../services/alert.service';
8
- import { UploadService } from '../../services/upload.service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/pexels.service";
11
- import * as i2 from "../../services/alert.service";
12
- import * as i3 from "@ngx-translate/core";
13
- import * as i4 from "../../services/upload.service";
14
- import * as i5 from "@angular/common";
15
- import * as i6 from "@angular/forms";
16
- import * as i7 from "ngx-scrollbar";
17
- import * as i8 from "ngx-scrollbar/reached-event";
18
- import * as i9 from "../loader/loader.component";
19
- import * as i10 from "../shared/input-search/input-search.component";
20
- import * as i11 from "../shared/alert/alert.component";
21
- import * as i12 from "../../directives/loading.directive";
22
- export class PexelLibComponent {
23
- wzImgLibService;
24
- alertService;
25
- translateService;
26
- uploadService;
27
- changeDetectorRef;
28
- stateDisplayed;
29
- searchValue = '';
30
- /** Pass to true to hide search input */
31
- disableSearch = false;
32
- perPage = 30;
33
- searchUpdated = new Subject();
34
- oldSearchValue;
35
- nbResult = 0;
36
- wzImgLibDto;
37
- currentPage = 1;
38
- isLoading = true;
39
- initComponent = true;
40
- photosColumns = [];
41
- nbColumns = 6;
42
- responsiveColumns = [1250, 1050, 750, 500];
43
- outerElement = null;
44
- uploadingImg = 'ImgManager.PexelLib.uploadingImg';
45
- untitled = 'ImgManager.PexelLib.untitled';
46
- successUploadPhoto = 'ImgManager.PexelLib.successImport';
47
- errorUploadPhoto = 'ImgManager.PexelLib.errorUploadPhoto';
48
- errorRetrievePhotos = 'ImgManager.PexelLib.errorRetrievePhotos';
49
- subs = [];
50
- set content(control) {
51
- this.outerElement = control;
52
- }
53
- constructor(wzImgLibService, alertService, translateService, uploadService, changeDetectorRef) {
54
- this.wzImgLibService = wzImgLibService;
55
- this.alertService = alertService;
56
- this.translateService = translateService;
57
- this.uploadService = uploadService;
58
- this.changeDetectorRef = changeDetectorRef;
59
- }
60
- ngAfterViewInit() {
61
- this.oldSearchValue = this.searchValue;
62
- this.isLoading = false;
63
- this.setNbColumnsToDisplayPhoto();
64
- this.setPhotosColumns();
65
- this.search();
66
- }
67
- setNbColumnsToDisplayPhoto() {
68
- const width = this.outerElement.nativeElement.offsetWidth;
69
- if (this.stateDisplayed !== 'window') {
70
- this.nbColumns = 8;
71
- }
72
- this.responsiveColumns.forEach(value => {
73
- if (width < value) {
74
- this.nbColumns--;
75
- }
76
- });
77
- }
78
- onSearchNameChanged() {
79
- this.onSearchChange();
80
- }
81
- onBottomReached() {
82
- this.scrollHandler();
83
- }
84
- onSearchChange() {
85
- this.search();
86
- }
87
- search() {
88
- if (this.isLoading) {
89
- return;
90
- }
91
- if (this.searchValue !== this.oldSearchValue) {
92
- this.resetSearch();
93
- }
94
- // All the picture are displayed
95
- if (this.nbResult && this.nbResult <= (this.currentPage - 1) * this.perPage) {
96
- return;
97
- }
98
- this.isLoading = true;
99
- const searchSub = this.wzImgLibService.searchOnPexels(this.searchValue, this.perPage, this.currentPage).subscribe({
100
- next: (data) => {
101
- this.wzImgLibDto = data;
102
- this.nbResult = this.wzImgLibDto.total_results;
103
- if (this.nbResult) {
104
- data.photos.forEach(photo => {
105
- const bestColumnIndex = this.getBestColumn();
106
- const height = (photo.height / photo.width) * 1000;
107
- this.photosColumns[bestColumnIndex].height += height;
108
- this.photosColumns[bestColumnIndex].photos.push(photo);
109
- });
110
- }
111
- this.isLoading = false;
112
- this.initComponent = false;
113
- this.changeDetectorRef.markForCheck();
114
- },
115
- error: error => {
116
- this.isLoading = false;
117
- this.initComponent = false;
118
- this.alertService.openAlert(this.errorRetrievePhotos);
119
- this.changeDetectorRef.markForCheck();
120
- }
121
- });
122
- this.subs.push(searchSub);
123
- }
124
- scrollHandler() {
125
- if (this.isLoading) {
126
- return;
127
- }
128
- const bestColumnIndex = this.getBestColumn();
129
- const lastPic = this.photosColumns[bestColumnIndex].photos[this.photosColumns[bestColumnIndex].photos.length - 1];
130
- const lastPhoto = lastPic ? document.querySelector('img[src="' + lastPic.src.medium + '"]') : null;
131
- if (lastPhoto) {
132
- if (!this.isLoading) {
133
- this.currentPage += 1;
134
- this.search();
135
- }
136
- }
137
- }
138
- setPhotosColumns() {
139
- for (let indexColumn = 0; indexColumn < this.nbColumns; indexColumn++) {
140
- const photosColumn = {
141
- height: 0,
142
- photos: []
143
- };
144
- this.photosColumns.push(photosColumn);
145
- }
146
- }
147
- getBestColumn() {
148
- const bestColumn = {
149
- index: 0,
150
- height: this.photosColumns[0].height
151
- };
152
- this.photosColumns.forEach((photosColumn, index) => {
153
- if (bestColumn.height > photosColumn.height) {
154
- bestColumn.index = index;
155
- bestColumn.height = photosColumn.height;
156
- }
157
- });
158
- return bestColumn.index;
159
- }
160
- resetSearch() {
161
- this.oldSearchValue = this.searchValue;
162
- this.photosColumns = [];
163
- this.currentPage = 1;
164
- this.setPhotosColumns();
165
- this.changeDetectorRef.markForCheck();
166
- }
167
- uploadPhoto(photo, url) {
168
- photo.uploading = true;
169
- const uploadSub = this.uploadService.uploadFileByUrl(url, photo.alt).subscribe(img => {
170
- photo.uploading = false;
171
- photo.uploaded = true;
172
- this.alertService.openAlert(this.successUploadPhoto);
173
- }, error => {
174
- photo.uploading = false;
175
- if (error.error.code === 406 && error.error.message) {
176
- this.alertService.openAlertWithBackendResponse(this.errorUploadPhoto, error.error.message);
177
- }
178
- else {
179
- this.alertService.openAlert(this.errorUploadPhoto);
180
- }
181
- });
182
- // Display img uploading msg
183
- this.alertService.openAlert(this.uploadingImg);
184
- this.subs.push(uploadSub);
185
- }
186
- ngOnDestroy() {
187
- this.subs.forEach(sub => sub.unsubscribe());
188
- }
189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PexelLibComponent, deps: [{ token: i1.PexelsService }, { token: i2.AlertService }, { token: i3.TranslateService }, { token: i4.UploadService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: PexelLibComponent, selector: "pexels-lib", inputs: { stateDisplayed: "stateDisplayed", searchValue: "searchValue", disableSearch: "disableSearch" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["outerElement"], descendants: true }], ngImport: i0, template: "<div class=\"pexels-lib\" #outerElement [@easeInOut]=\"'in'\">\r\n\r\n <ng-scrollbar\r\n [reachedOffset]=\"300\"\r\n class=\"pexels-lib__scroll\"\r\n [ngClass]=\"{\r\n 'pexels-lib__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'pexels-lib__scroll--noResult': !nbResult,\r\n 'pexels-lib__scroll--hide': (!nbResult && disableSearch)\r\n }\"\r\n (reachedBottom)=\"onBottomReached()\"\r\n >\r\n <div\r\n *ngIf=\"!disableSearch\"\r\n class=\"pexels-lib__search\"\r\n [ngClass]=\"{'pexels-lib__search--smallDisplay': stateDisplayed === 'small'}\"\r\n >\r\n <wz-input-search\r\n [(ngModel)]=\"searchValue\"\r\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\r\n (changeDebounced)=\"onSearchNameChanged()\"\r\n [smallPadding]=\"stateDisplayed === 'small'\">\r\n </wz-input-search>\r\n </div>\r\n\r\n <div *ngIf=\"!initComponent\" class=\"pexels-lib__wrapper\">\r\n <p *ngIf=\"nbResult\" class=\"pexels-lib__wrapper__result-nb\">{{ 'ImgManager.PexelLib.nbImgFound' | translate }} : {{ nbResult }}</p>\r\n\r\n <div class=\"pexels-lib__wrapper__result\">\r\n\r\n <div *ngFor=\"let photosColumn of photosColumns; let indexCol = index;\" class=\"pexels-lib__wrapper__result__column\" [@listAnimation]=\"photosColumn.photos.length\">\r\n <div *ngFor=\"let photo of photosColumn.photos; let indexPhoto = index;\" class=\"pexels-lib__wrapper__result__column__element\">\r\n\r\n <img [alt]=\"photo.src.medium\" [src]=\"photo.src.medium\"\r\n class=\"pexels-lib__wrapper__result__column__element__img\"/>\r\n\r\n <div class=\"pexels-lib__wrapper__result__column__element__wrapper\">\r\n <span class=\"pexels-lib__wrapper__result__column__element__wrapper__infos\">\r\n {{ photo.width }} x {{ photo.height}}\r\n </span>\r\n\r\n <div class=\"dropdown is-up\" [ngClass]=\"{'is-hoverable': !photo.uploading}\">\r\n <div class=\"dropdown-trigger\">\r\n <button\r\n type=\"button\"\r\n class=\"button pexels-lib__wrapper__result__column__element__wrapper__button\"\r\n aria-haspopup=\"true\"\r\n aria-controls=\"dropdown-menu\">\r\n\r\n <div *ngIf=\"!photo.uploading\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <span>{{ 'ImgManager.PexelLib.import' | translate }}</span>\r\n <span class=\"icon is-small\">\r\n <i class=\"fa-solid fa-angle-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n <ng-container *ngIf=\"photo.uploaded\">\r\n &nbsp;<i class=\"fal fa-check\"></i>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"photo.uploading\">\r\n {{ 'ImgManager.PexelLib.importation' | translate }}\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\"></span>\r\n </ng-container>\r\n\r\n </button>\r\n </div>\r\n <div class=\"dropdown-menu pexels-lib__wrapper__result__column__element__wrapper__dropdown\" id=\"dropdown-menu\" role=\"menu\">\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdown-content__wrapper\">\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.portrait)\">\r\n <p>{{ 'ImgManager.PexelLib.portrait' | translate }}</p>\r\n <i class=\"fal fa-check iPortrait\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.landscape)\">\r\n <p>{{ 'ImgManager.PexelLib.landscape' | translate }}</p>\r\n <i class=\"fal fa-check iLandscape\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <p>{{ 'ImgManager.PexelLib.original' | translate }}</p>\r\n <i class=\"fal fa-check iOriginal\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <ng-container *ngIf=\"isLoading\">\r\n <wz-loader></wz-loader>\r\n </ng-container>\r\n <div\r\n *ngIf=\"!isLoading && !nbResult\"\r\n class=\"pexels-lib__alert\"\r\n [@easeInOut]=\"'in'\">\r\n <wz-alert [warning]=\"true\">\r\n {{ 'ImgManager.PexelLib.noResult' | translate }}\r\n </wz-alert>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.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: i8.NgScrollbarReachedBottom, selector: "[reachedBottom], [reached-bottom]", outputs: ["reachedBottom"] }, { kind: "component", type: i9.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "component", type: i10.InputSearchComponent, selector: "wz-input-search", inputs: ["placeholder", "smallPadding", "id"], outputs: ["changeDebounced"] }, { kind: "component", type: i11.AlertComponent, selector: "wz-alert", inputs: ["icon", "warning", "success", "iconClass"] }, { kind: "directive", type: i12.LoadingDirective, selector: "[btnLoadingAnim]" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
191
- easeInOut,
192
- listAnnimation
193
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PexelLibComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'pexels-lib', animations: [
198
- easeInOut,
199
- listAnnimation
200
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"pexels-lib\" #outerElement [@easeInOut]=\"'in'\">\r\n\r\n <ng-scrollbar\r\n [reachedOffset]=\"300\"\r\n class=\"pexels-lib__scroll\"\r\n [ngClass]=\"{\r\n 'pexels-lib__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'pexels-lib__scroll--noResult': !nbResult,\r\n 'pexels-lib__scroll--hide': (!nbResult && disableSearch)\r\n }\"\r\n (reachedBottom)=\"onBottomReached()\"\r\n >\r\n <div\r\n *ngIf=\"!disableSearch\"\r\n class=\"pexels-lib__search\"\r\n [ngClass]=\"{'pexels-lib__search--smallDisplay': stateDisplayed === 'small'}\"\r\n >\r\n <wz-input-search\r\n [(ngModel)]=\"searchValue\"\r\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\r\n (changeDebounced)=\"onSearchNameChanged()\"\r\n [smallPadding]=\"stateDisplayed === 'small'\">\r\n </wz-input-search>\r\n </div>\r\n\r\n <div *ngIf=\"!initComponent\" class=\"pexels-lib__wrapper\">\r\n <p *ngIf=\"nbResult\" class=\"pexels-lib__wrapper__result-nb\">{{ 'ImgManager.PexelLib.nbImgFound' | translate }} : {{ nbResult }}</p>\r\n\r\n <div class=\"pexels-lib__wrapper__result\">\r\n\r\n <div *ngFor=\"let photosColumn of photosColumns; let indexCol = index;\" class=\"pexels-lib__wrapper__result__column\" [@listAnimation]=\"photosColumn.photos.length\">\r\n <div *ngFor=\"let photo of photosColumn.photos; let indexPhoto = index;\" class=\"pexels-lib__wrapper__result__column__element\">\r\n\r\n <img [alt]=\"photo.src.medium\" [src]=\"photo.src.medium\"\r\n class=\"pexels-lib__wrapper__result__column__element__img\"/>\r\n\r\n <div class=\"pexels-lib__wrapper__result__column__element__wrapper\">\r\n <span class=\"pexels-lib__wrapper__result__column__element__wrapper__infos\">\r\n {{ photo.width }} x {{ photo.height}}\r\n </span>\r\n\r\n <div class=\"dropdown is-up\" [ngClass]=\"{'is-hoverable': !photo.uploading}\">\r\n <div class=\"dropdown-trigger\">\r\n <button\r\n type=\"button\"\r\n class=\"button pexels-lib__wrapper__result__column__element__wrapper__button\"\r\n aria-haspopup=\"true\"\r\n aria-controls=\"dropdown-menu\">\r\n\r\n <div *ngIf=\"!photo.uploading\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <span>{{ 'ImgManager.PexelLib.import' | translate }}</span>\r\n <span class=\"icon is-small\">\r\n <i class=\"fa-solid fa-angle-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n <ng-container *ngIf=\"photo.uploaded\">\r\n &nbsp;<i class=\"fal fa-check\"></i>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"photo.uploading\">\r\n {{ 'ImgManager.PexelLib.importation' | translate }}\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\"></span>\r\n </ng-container>\r\n\r\n </button>\r\n </div>\r\n <div class=\"dropdown-menu pexels-lib__wrapper__result__column__element__wrapper__dropdown\" id=\"dropdown-menu\" role=\"menu\">\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdown-content__wrapper\">\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.portrait)\">\r\n <p>{{ 'ImgManager.PexelLib.portrait' | translate }}</p>\r\n <i class=\"fal fa-check iPortrait\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.landscape)\">\r\n <p>{{ 'ImgManager.PexelLib.landscape' | translate }}</p>\r\n <i class=\"fal fa-check iLandscape\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <p>{{ 'ImgManager.PexelLib.original' | translate }}</p>\r\n <i class=\"fal fa-check iOriginal\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <ng-container *ngIf=\"isLoading\">\r\n <wz-loader></wz-loader>\r\n </ng-container>\r\n <div\r\n *ngIf=\"!isLoading && !nbResult\"\r\n class=\"pexels-lib__alert\"\r\n [@easeInOut]=\"'in'\">\r\n <wz-alert [warning]=\"true\">\r\n {{ 'ImgManager.PexelLib.noResult' | translate }}\r\n </wz-alert>\r\n </div>\r\n</div>\r\n" }]
201
- }], ctorParameters: () => [{ type: i1.PexelsService }, { type: i2.AlertService }, { type: i3.TranslateService }, { type: i4.UploadService }, { type: i0.ChangeDetectorRef }], propDecorators: { stateDisplayed: [{
202
- type: Input
203
- }], searchValue: [{
204
- type: Input
205
- }], disableSearch: [{
206
- type: Input
207
- }], content: [{
208
- type: ViewChild,
209
- args: ['outerElement']
210
- }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGV4ZWxzLWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvcGV4ZWxzLWxpYi9wZXhlbHMtbGliLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9wZXhlbHMtbGliL3BleGVscy1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBQyxPQUFPLEVBQThCLE1BQU0sTUFBTSxDQUFDO0FBRTFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXOUQsTUFBTSxPQUFPLGlCQUFpQjtJQW9DbEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXJDVixjQUFjLENBQWlCO0lBRS9CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDdkIsd0NBQXdDO0lBRTFDLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxD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QWE7c0JBRFosS0FBSztnQkF3QnlCLE9BQU87c0JBQXJDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1BleGVsc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BleGVscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1d6SW1nTGliRHRvLCBQaG90b3NDb2x1bW5zLCBXekltZ0xpYlBob3RvRHRvfSBmcm9tICcuLi8uLi9kdG8vcGV4ZWxzLWltZy5kdG8nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IGxpc3RBbm5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9saXN0QW5uaW1hdGlvbi9saXN0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwZXhlbHMtbGliJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGV4ZWxzLWxpYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgZWFzZUluT3V0LFxyXG4gICAgbGlzdEFubmltYXRpb25cclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXhlbExpYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcclxuICBASW5wdXQoKVxyXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKiBQYXNzIHRvIHRydWUgdG8gaGlkZSBzZWFyY2ggaW5wdXQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVyUGFnZSA9IDMwO1xyXG4gIHNlYXJjaFVwZGF0ZWQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG9sZFNlYXJjaFZhbHVlOiBzdHJpbmc7XHJcbiAgbmJSZXN1bHQgPSAwO1xyXG4gIHd6SW1nTGliRHRvOiBXekltZ0xpYkR0bztcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBpbml0Q29tcG9uZW50ID0gdHJ1ZTtcclxuICBwaG90b3NDb2x1bW5zOiBQaG90b3NDb2x1bW5zW10gPSBbXTtcclxuICBuYkNvbHVtbnMgPSA2O1xyXG4gIHJlc3BvbnNpdmVDb2x1bW5zID0gWzEyNTAsIDEwNTAsIDc1MCwgNTAwXTtcclxuICBvdXRlckVsZW1lbnQgPSBudWxsO1xyXG5cclxuICB1cGxvYWRpbmdJbWcgPSAnSW1nTWFuYWdlci5QZXhlbExpYi51cGxvYWRpbmdJbWcnO1xyXG4gIHVudGl0bGVkID0gJ0ltZ01hbmFnZXIuUGV4ZWxMaWIudW50aXRsZWQnO1xyXG4gIHN1Y2Nlc3NVcGxvYWRQaG90byA9ICdJbWdNYW5hZ2VyLlBleGVsTGliLnN1Y2Nlc3NJbXBvcnQnO1xyXG4gIGVycm9yVXBsb2FkUGhvdG8gPSAnSW1nTWFuYWdlci5QZXhlbExpYi5lcnJvclVwbG9hZFBob3RvJztcclxuICBlcnJvclJldHJpZXZlUGhvdG9zID0gJ0ltZ01hbmFnZXIuUGV4ZWxMaWIuZXJyb3JSZXRyaWV2ZVBob3Rvcyc7XHJcblxyXG4gIHByaXZhdGUgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnb3V0ZXJFbGVtZW50Jykgc2V0IGNvbnRlbnQoY29udHJvbDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5vdXRlckVsZW1lbnQgPSBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHd6SW1nTGliU2VydmljZTogUGV4ZWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7IH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5vbGRTZWFyY2hWYWx1ZSA9IHRoaXMuc2VhcmNoVmFsdWU7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TmJDb2x1bW5zVG9EaXNwbGF5UGhvdG8oKTtcclxuICAgIHRoaXMuc2V0UGhvdG9zQ29sdW1ucygpO1xyXG4gICAgdGhpcy5zZWFyY2goKTtcclxuICB9XHJcblxyXG4gIHNldE5iQ29sdW1uc1RvRGlzcGxheVBob3RvKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm91dGVyRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXRlRGlzcGxheWVkICE9PSAnd2luZG93Jykge1xyXG4gICAgICB0aGlzLm5iQ29sdW1ucyA9IDg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNwb25zaXZlQ29sdW1ucy5mb3JFYWNoKHZhbHVlID0+IHtcclxuICAgICAgaWYgKHdpZHRoIDwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm5iQ29sdW1ucy0tO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoTmFtZUNoYW5nZWQoKSB7XHJcbiAgICB0aGlzLm9uU2VhcmNoQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvbkJvdHRvbVJlYWNoZWQoKSB7XHJcbiAgICB0aGlzLnNjcm9sbEhhbmRsZXIoKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZWFyY2goKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaCgpIHtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZSAhPT0gdGhpcy5vbGRTZWFyY2hWYWx1ZSkge1xyXG4gICAgICB0aGlzLnJlc2V0U2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQWxsIHRoZSBwaWN0dXJlIGFyZSBkaXNwbGF5ZWRcclxuICAgIGlmICh0aGlzLm5iUmVzdWx0ICYmIHRoaXMubmJSZXN1bHQgPD0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGVyUGFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3Qgc2VhcmNoU3ViID0gdGhpcy53ekltZ0xpYlNlcnZpY2Uuc2VhcmNoT25QZXhlbHModGhpcy5zZWFyY2hWYWx1ZSwgdGhpcy5wZXJQYWdlLCB0aGlzLmN1cnJlbnRQYWdlKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogV3pJbWdMaWJEdG8pID0+IHtcclxuICAgICAgICB0aGlzLnd6SW1nTGliRHRvID0gZGF0YTtcclxuICAgICAgICB0aGlzLm5iUmVzdWx0ID0gdGhpcy53ekltZ0xpYkR0by50b3RhbF9yZXN1bHRzO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uYlJlc3VsdCkge1xyXG4gICAgICAgICAgZGF0YS5waG90b3MuZm9yRWFjaChwaG90byA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJlc3RDb2x1bW5JbmRleCA9IHRoaXMuZ2V0QmVzdENvbHVtbigpO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSAocGhvdG8uaGVpZ2h0IC8gcGhvdG8ud2lkdGgpICogMTAwMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGhvdG9zQ29sdW1uc1tiZXN0Q29sdW1uSW5kZXhdLmhlaWdodCArPSBoZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMucGhvdG9zQ29sdW1uc1tiZXN0Q29sdW1uSW5kZXhdLnBob3Rvcy5wdXNoKHBob3RvKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pbml0Q29tcG9uZW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JSZXRyaWV2ZVBob3Rvcyk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdWJzLnB1c2goc2VhcmNoU3ViKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbEhhbmRsZXIoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYmVzdENvbHVtbkluZGV4ID0gdGhpcy5nZXRCZXN0Q29sdW1uKCk7XHJcbiAgICBjb25zdCBsYXN0UGljID0gdGhpcy5waG90b3NDb2x1bW5zW2Jlc3RDb2x1bW5JbmRleF0ucGhvdG9zW3RoaXMucGhvdG9zQ29sdW1uc1tiZXN0Q29sdW1uSW5kZXhdLnBob3Rvcy5sZW5ndGggLSAxXTtcclxuICAgIGNvbnN0IGxhc3RQaG90byA9IGxhc3RQaWMgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbWFnZUVsZW1lbnQ+KCdpbWdbc3JjPVwiJyArIGxhc3RQaWMuc3JjLm1lZGl1bSArICdcIl0nKSA6IG51bGw7XHJcblxyXG4gICAgaWYgKGxhc3RQaG90bykge1xyXG4gICAgICBpZiAoIXRoaXMuaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSArPSAxO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBob3Rvc0NvbHVtbnMoKSB7XHJcbiAgICBmb3IgKGxldCBpbmRleENvbHVtbj0wOyBpbmRleENvbHVtbiA8IHRoaXMubmJDb2x1bW5zIDsgaW5kZXhDb2x1bW4rKykge1xyXG4gICAgICBjb25zdCBwaG90b3NDb2x1bW46IFBob3Rvc0NvbHVtbnMgPSB7XHJcbiAgICAgICAgaGVpZ2h0OiAwLFxyXG4gICAgICAgIHBob3RvczogW11cclxuICAgICAgfTtcclxuICAgICAgdGhpcy5waG90b3NDb2x1bW5zLnB1c2gocGhvdG9zQ29sdW1uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEJlc3RDb2x1bW4oKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGJlc3RDb2x1bW4gPSB7XHJcbiAgICAgIGluZGV4OiAwLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMucGhvdG9zQ29sdW1uc1swXS5oZWlnaHRcclxuICAgIH07XHJcbiAgICB0aGlzLnBob3Rvc0NvbHVtbnMuZm9yRWFjaCgocGhvdG9zQ29sdW1uLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoYmVzdENvbHVtbi5oZWlnaHQgPiBwaG90b3NDb2x1bW4uaGVpZ2h0KSB7XHJcbiAgICAgICAgYmVzdENvbHVtbi5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGJlc3RDb2x1bW4uaGVpZ2h0ID0gcGhvdG9zQ29sdW1uLmhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYmVzdENvbHVtbi5pbmRleDtcclxuICB9XHJcblxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5vbGRTZWFyY2hWYWx1ZSA9IHRoaXMuc2VhcmNoVmFsdWU7XHJcbiAgICB0aGlzLnBob3Rvc0NvbHVtbnMgPSBbXTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5zZXRQaG90b3NDb2x1bW5zKCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkUGhvdG8ocGhvdG86IFd6SW1nTGliUGhvdG9EdG8sIHVybDogc3RyaW5nKSB7XHJcbiAgICBwaG90by51cGxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIGNvbnN0IHVwbG9hZFN1YiA9IHRoaXMudXBsb2FkU2VydmljZS51cGxvYWRGaWxlQnlVcmwodXJsLCBwaG90by5hbHQpLnN1YnNjcmliZShcclxuICAgICAgaW1nID0+IHtcclxuICAgICAgICBwaG90by51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBwaG90by51cGxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuc3VjY2Vzc1VwbG9hZFBob3RvKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIHBob3RvLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmKGVycm9yLmVycm9yLmNvZGUgPT09IDQwNiAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnRXaXRoQmFja2VuZFJlc3BvbnNlKHRoaXMuZXJyb3JVcGxvYWRQaG90bywgZXJyb3IuZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yVXBsb2FkUGhvdG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBEaXNwbGF5IGltZyB1cGxvYWRpbmcgbXNnXHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLnVwbG9hZGluZ0ltZyk7XHJcbiAgICAgIHRoaXMuc3Vicy5wdXNoKHVwbG9hZFN1Yik7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwZXhlbHMtbGliXCIgI291dGVyRWxlbWVudCBbQGVhc2VJbk91dF09XCInaW4nXCI+XHJcblxyXG4gIDxuZy1zY3JvbGxiYXJcclxuICAgIFtyZWFjaGVkT2Zmc2V0XT1cIjMwMFwiXHJcbiAgICBjbGFzcz1cInBleGVscy1saWJfX3Njcm9sbFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdwZXhlbHMtbGliX19zY3JvbGwtLXNtYWxsRGlzcGxheSc6IHN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnLFxyXG4gICAgICAncGV4ZWxzLWxpYl9fc2Nyb2xsLS1ub1Jlc3VsdCc6ICFuYlJlc3VsdCxcclxuICAgICAgJ3BleGVscy1saWJfX3Njcm9sbC0taGlkZSc6ICghbmJSZXN1bHQgJiYgZGlzYWJsZVNlYXJjaClcclxuICAgIH1cIlxyXG4gICAgKHJlYWNoZWRCb3R0b20pPVwib25Cb3R0b21SZWFjaGVkKClcIlxyXG4gID5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiIWRpc2FibGVTZWFyY2hcIlxyXG4gICAgICAgIGNsYXNzPVwicGV4ZWxzLWxpYl9fc2VhcmNoXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J3BleGVscy1saWJfX3NlYXJjaC0tc21hbGxEaXNwbGF5Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCd9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPHd6LWlucHV0LXNlYXJjaFxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0ltZ01hbmFnZXIuU2VhcmNoQmFyLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAoY2hhbmdlRGVib3VuY2VkKT1cIm9uU2VhcmNoTmFtZUNoYW5nZWQoKVwiXHJcbiAgICAgICAgICBbc21hbGxQYWRkaW5nXT1cInN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnXCI+XHJcbiAgICAgICAgPC93ei1pbnB1dC1zZWFyY2g+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFpbml0Q29tcG9uZW50XCIgY2xhc3M9XCJwZXhlbHMtbGliX193cmFwcGVyXCI+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJuYlJlc3VsdFwiIGNsYXNzPVwicGV4ZWxzLWxpYl9fd3JhcHBlcl9fcmVzdWx0LW5iXCI+e3sgJ0ltZ01hbmFnZXIuUGV4ZWxMaWIubmJJbWdGb3VuZCcgfCB0cmFuc2xhdGUgfX0gOiB7eyBuYlJlc3VsdCB9fTwvcD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBleGVscy1saWJfX3dyYXBwZXJfX3Jlc3VsdFwiPlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBob3Rvc0NvbHVtbiBvZiBwaG90b3NDb2x1bW5zOyBsZXQgaW5kZXhDb2wgPSBpbmRleDtcIiBjbGFzcz1cInBleGVscy1saWJfX3dyYXBwZXJfX3Jlc3VsdF9fY29sdW1uXCIgIFtAbGlzdEFuaW1hdGlvbl09XCJwaG90b3NDb2x1bW4ucGhvdG9zLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwaG90byBvZiBwaG90b3NDb2x1bW4ucGhvdG9zOyBsZXQgaW5kZXhQaG90byA9IGluZGV4O1wiIGNsYXNzPVwicGV4ZWxzLWxpYl9fd3JhcHBlcl9fcmVzdWx0X19jb2x1bW5fX2VsZW1lbnRcIj5cclxuXHJcbiAgICAgICAgICAgICAgPGltZyBbYWx0XT1cInBob3RvLnNyYy5tZWRpdW1cIiBbc3JjXT1cInBob3RvLnNyYy5tZWRpdW1cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInBleGVscy1saWJfX3dyYXBwZXJfX3Jlc3VsdF9fY29sdW1uX19lbGVtZW50X19pbWdcIi8+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXhlbHMtbGliX193cmFwcGVyX19yZXN1bHRfX2NvbHVtbl9fZWxlbWVudF9fd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXhlbHMtbGliX193cmFwcGVyX19yZXN1bHRfX2NvbHVtbl9fZWxlbWVudF9fd3JhcHBlcl9faW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAge3sgcGhvdG8ud2lkdGggfX0geCB7eyBwaG90by5oZWlnaHR9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93biBpcy11cFwiIFtuZ0NsYXNzXT1cInsnaXMtaG92ZXJhYmxlJzogIXBob3RvLnVwbG9hZGluZ31cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIHBleGVscy1saWJfX3dyYXBwZXJfX3Jlc3VsdF9fY29sdW1uX19lbGVtZW50X193cmFwcGVyX19idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImRyb3Bkb3duLW1lbnVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXBob3RvLnVwbG9hZGluZ1wiIChjbGljayk9XCJ1cGxvYWRQaG90byhwaG90bywgcGhvdG8uc3JjLmxhcmdlMngpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdJbWdNYW5hZ2VyLlBleGVsTGliLmltcG9ydCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtYW5nbGUtdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBob3RvLnVwbG9hZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7PGkgY2xhc3M9XCJmYWwgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBob3RvLnVwbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnSW1nTWFuYWdlci5QZXhlbExpYi5pbXBvcnRhdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYnRuTG9hZGluZ0FuaW0gY2xhc3M9XCJidG5Mb2FkaW5nQW5uaW1hdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IHBleGVscy1saWJfX3dyYXBwZXJfX3Jlc3VsdF9fY29sdW1uX19lbGVtZW50X193cmFwcGVyX19kcm9wZG93blwiIGlkPVwiZHJvcGRvd24tbWVudVwiIHJvbGU9XCJtZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50X193cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInVwbG9hZFBob3RvKHBob3RvLCBwaG90by5zcmMucG9ydHJhaXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgJ0ltZ01hbmFnZXIuUGV4ZWxMaWIucG9ydHJhaXQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWNoZWNrIGlQb3J0cmFpdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInVwbG9hZFBob3RvKHBob3RvLCBwaG90by5zcmMubGFuZHNjYXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7ICdJbWdNYW5hZ2VyLlBleGVsTGliLmxhbmRzY2FwZScgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtY2hlY2sgaUxhbmRzY2FwZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInVwbG9hZFBob3RvKHBob3RvLCBwaG90by5zcmMubGFyZ2UyeClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyAnSW1nTWFuYWdlci5QZXhlbExpYi5vcmlnaW5hbCcgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtY2hlY2sgaU9yaWdpbmFsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIDwvbmctc2Nyb2xsYmFyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8d3otbG9hZGVyPjwvd3otbG9hZGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhbmJSZXN1bHRcIlxyXG4gICAgY2xhc3M9XCJwZXhlbHMtbGliX19hbGVydFwiXHJcbiAgICBbQGVhc2VJbk91dF09XCInaW4nXCI+XHJcbiAgICAgIDx3ei1hbGVydCBbd2FybmluZ109XCJ0cnVlXCI+XHJcbiAgICAgICAge3sgJ0ltZ01hbmFnZXIuUGV4ZWxMaWIubm9SZXN1bHQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvd3otYWxlcnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class AlertComponent {
5
- icon = true;
6
- warning = false;
7
- success = false;
8
- iconClass = 'fa-solid fa-info';
9
- constructor() { }
10
- ngOnInit() { }
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: AlertComponent, selector: "wz-alert", inputs: { icon: "icon", warning: "warning", success: "success", iconClass: "iconClass" }, ngImport: i0, template: "<div class=\"wz-alert\" [ngClass]=\"{ success: success, warning: warning }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p>\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"] }] });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AlertComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'wz-alert', template: "<div class=\"wz-alert\" [ngClass]=\"{ success: success, warning: warning }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p>\n</div>\n" }]
17
- }], ctorParameters: () => [], propDecorators: { icon: [{
18
- type: Input
19
- }], warning: [{
20
- type: Input
21
- }], success: [{
22
- type: Input
23
- }], iconClass: [{
24
- type: Input
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLGNBQWM7SUFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNaLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixTQUFTLEdBQUcsa0JBQWtCLENBQUM7SUFDeEMsZ0JBQWUsQ0FBQztJQUNoQixRQUFRLEtBQVUsQ0FBQzt1R0FOUixjQUFjOzJGQUFkLGNBQWMsMElDTjNCLCtLQUlBOzsyRkRFYSxjQUFjO2tCQUoxQixTQUFTOytCQUNFLFVBQVU7d0RBSVgsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3ei1hbGVydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxlcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGljb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHdhcm5pbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWNjZXNzID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaWNvbkNsYXNzID0gJ2ZhLXNvbGlkIGZhLWluZm8nO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInd6LWFsZXJ0XCIgW25nQ2xhc3NdPVwieyBzdWNjZXNzOiBzdWNjZXNzLCB3YXJuaW5nOiB3YXJuaW5nIH1cIj5cbiAgPGkgKm5nSWY9XCJpY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCI+PC9pPlxuICA8cD48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9wPlxuPC9kaXY+XG4iXX0=
@@ -1,56 +0,0 @@
1
- import { Component, Input, ViewEncapsulation } 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
- export class CheckboxComponent {
7
- label = '';
8
- value;
9
- type;
10
- alone = false;
11
- checked = false;
12
- id = '';
13
- name;
14
- disabled = false;
15
- constructor() { }
16
- _onChange;
17
- _onTouched;
18
- registerOnChange(fn) {
19
- this._onChange = fn;
20
- }
21
- registerOnTouched(fn) {
22
- this._onTouched = fn;
23
- }
24
- setDisabledState(isDisabled) {
25
- this.disabled = isDisabled;
26
- }
27
- writeValue(obj) {
28
- this.value = obj;
29
- }
30
- onChange(value) {
31
- if (this._onChange) {
32
- this._onChange(value);
33
- }
34
- }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CheckboxComponent, selector: "wz-checkbox", inputs: { label: "label", value: "value", type: "type", alone: "alone", checked: "checked", id: "id", name: "name" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }], ngImport: i0, template: "<div class=\"checkBoxField field\" [ngClass]=\"{ 'field--nowrap': type === 'column', alone: alone }\">\n <div class=\"field__row\">\n <input\n type=\"checkbox\"\n [id]=\"id\"\n class=\"is-checkradio\"\n [name]=\"name\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [checked]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n />\n <label [attr.for]=\"id\">{{ label }}</label>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }], encapsulation: i0.ViewEncapsulation.None });
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CheckboxComponent, decorators: [{
39
- type: Component,
40
- args: [{ selector: 'wz-checkbox', encapsulation: ViewEncapsulation.None, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }], template: "<div class=\"checkBoxField field\" [ngClass]=\"{ 'field--nowrap': type === 'column', alone: alone }\">\n <div class=\"field__row\">\n <input\n type=\"checkbox\"\n [id]=\"id\"\n class=\"is-checkradio\"\n [name]=\"name\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [checked]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n />\n <label [attr.for]=\"id\">{{ label }}</label>\n </div>\n</div>\n" }]
41
- }], ctorParameters: () => [], propDecorators: { label: [{
42
- type: Input
43
- }], value: [{
44
- type: Input
45
- }], type: [{
46
- type: Input
47
- }], alone: [{
48
- type: Input
49
- }], checked: [{
50
- type: Input
51
- }], id: [{
52
- type: Input
53
- }], name: [{
54
- type: Input
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVF6RSxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFWCxLQUFLLENBQU07SUFFWCxJQUFJLENBQVM7SUFFYixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWQsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVoQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRVIsSUFBSSxDQUFTO0lBQ2IsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixnQkFBZSxDQUFDO0lBQ1IsU0FBUyxDQUFXO0lBQ3BCLFVBQVUsQ0FBVztJQUU3QixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQzt1R0F4Q1UsaUJBQWlCOzJGQUFqQixpQkFBaUIsNEpBRmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQywwQkNQMUYsZ2VBZ0JBOzsyRkRQYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsYUFBYSxpQkFFUixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7d0RBSXhGLEtBQUs7c0JBREosS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sRUFBRTtzQkFERCxLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3d6LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IENoZWNrYm94Q29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgbGFiZWwgPSAnJztcbiAgQElucHV0KClcbiAgdmFsdWU6IGFueTtcbiAgQElucHV0KClcbiAgdHlwZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBhbG9uZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBjaGVja2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGlkID0gJyc7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBwcml2YXRlIF9vbkNoYW5nZTogRnVuY3Rpb247XG4gIHByaXZhdGUgX29uVG91Y2hlZDogRnVuY3Rpb247XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gIH1cblxuICBvbkNoYW5nZSh2YWx1ZSkge1xuICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xuICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNoZWNrQm94RmllbGQgZmllbGRcIiBbbmdDbGFzc109XCJ7ICdmaWVsZC0tbm93cmFwJzogdHlwZSA9PT0gJ2NvbHVtbicsIGFsb25lOiBhbG9uZSB9XCI+XG4gIDxkaXYgY2xhc3M9XCJmaWVsZF9fcm93XCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIGNsYXNzPVwiaXMtY2hlY2tyYWRpb1wiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJpZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class DropdownComponent {
5
- dropDownMenuClass;
6
- disable = false;
7
- constructor() { }
8
- ngOnInit() {
9
- }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DropdownComponent, selector: "dropdown", inputs: { dropDownMenuClass: "dropDownMenuClass", disable: "disable" }, ngImport: i0, template: "<div class=\"dropdown dropdownWizi\" [ngClass]=\"{'is-hoverable': !disable}\">\n <div class=\"dropdown-trigger\">\n\n <!-- Label -->\n <ng-content select=\"[label]\"></ng-content>\n\n </div>\n <div class=\"dropdown-menu\" [ngClass]=\"dropDownMenuClass\" role=\"menu\">\n <div class=\"dropdown-content\">\n\n <!-- Content -->\n <ng-content select=\"[item]\"></ng-content>\n\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'dropdown', template: "<div class=\"dropdown dropdownWizi\" [ngClass]=\"{'is-hoverable': !disable}\">\n <div class=\"dropdown-trigger\">\n\n <!-- Label -->\n <ng-content select=\"[label]\"></ng-content>\n\n </div>\n <div class=\"dropdown-menu\" [ngClass]=\"dropDownMenuClass\" role=\"menu\">\n <div class=\"dropdown-content\">\n\n <!-- Content -->\n <ng-content select=\"[item]\"></ng-content>\n\n </div>\n </div>\n</div>" }]
16
- }], ctorParameters: () => [], propDecorators: { dropDownMenuClass: [{
17
- type: Input
18
- }], disable: [{
19
- type: Input
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixpQkFBaUIsQ0FBUztJQUUxQixPQUFPLEdBQVksS0FBSyxDQUFDO0lBRXpCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO3VHQVZVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHdIQ045Qiw4Y0FlTTs7MkZEVE8saUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLFVBQVU7d0RBTXBCLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBkcm9wRG93bk1lbnVDbGFzczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd24gZHJvcGRvd25XaXppXCIgW25nQ2xhc3NdPVwieydpcy1ob3ZlcmFibGUnOiAhZGlzYWJsZX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiPlxuXG4gICAgICAgIDwhLS0gTGFiZWwgLS0+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYWJlbF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIFtuZ0NsYXNzXT1cImRyb3BEb3duTWVudUNsYXNzXCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnRcIj5cblxuICAgICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2l0ZW1dXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,53 +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
- placeholder = '';
9
- smallPadding = false;
10
- id;
11
- innerValue = '';
12
- changeDebounced = new EventEmitter(); // debounced
13
- onTouchedCallback = () => { };
14
- onChangeCallback = () => { };
15
- get value() {
16
- return this.innerValue;
17
- }
18
- set value(v) {
19
- if (v !== this.innerValue) {
20
- this.innerValue = v;
21
- this.onChangeCallback(v);
22
- }
23
- }
24
- writeValue(value) {
25
- if (value !== this.innerValue) {
26
- this.innerValue = value;
27
- }
28
- }
29
- registerOnChange(fn) {
30
- this.onChangeCallback = fn;
31
- }
32
- registerOnTouched(fn) {
33
- this.onTouchedCallback = fn;
34
- }
35
- handleDebouncedKeyUp(event) {
36
- this.changeDebounced.emit(event.target.value);
37
- }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: InputSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", 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]" }] });
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: InputSearchComponent, decorators: [{
42
- type: Component,
43
- 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" }]
44
- }], propDecorators: { placeholder: [{
45
- type: Input
46
- }], smallPadding: [{
47
- type: Input
48
- }], id: [{
49
- type: Input
50
- }], changeDebounced: [{
51
- type: Output
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvaW5wdXQtc2VhcmNoL2lucHV0LXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3pFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUVqQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXJCLEVBQUUsQ0FBQztJQUNLLFVBQVUsR0FBUSxFQUFFLENBQUM7SUFDbkIsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUMsQ0FBQyxZQUFZO0lBRXpELGlCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN6QyxnQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXRELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsQ0FBTTtRQUNkLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBSztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7dUdBeENVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDJLQUZwQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsMEJDTjdGLGtlQWdCQTs7MkZEUmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQixhQUVoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzhCQUkzRixXQUFXO3NCQURWLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLEVBQUU7c0JBREQsS0FBSztnQkFHSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3otaW5wdXQtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBJbnB1dFNlYXJjaENvbXBvbmVudCwgbXVsdGk6IHRydWUgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpXG4gIHNtYWxsUGFkZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBpZDtcbiAgcHJpdmF0ZSBpbm5lclZhbHVlOiBhbnkgPSAnJztcbiAgQE91dHB1dCgpIGNoYW5nZURlYm91bmNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyAvLyBkZWJvdW5jZWRcblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZURlYm91bmNlZEtleVVwKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VEZWJvdW5jZWQuZW1pdChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtc2VhcmNoIGZpZWxkXCIgW25nQ2xhc3NdPVwic21hbGxQYWRkaW5nID8gJ3NtYWxsLXBhZGRpbmcnIDogJydcIj5cbiAgPHAgY2xhc3M9XCJjb250cm9sIGhhcy1pY29ucy1sZWZ0IGhhcy1pY29ucy1yaWdodFwiPlxuICAgIDxpbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIHZhbHVlPVwiXCJcbiAgICAgIGNsYXNzPVwiaW5wdXRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBkZWJvdW5jZUtleVVwXG4gICAgICBbZGVib3VuY2VUaW1lXT1cIjEwMDBcIlxuICAgICAgKG9uRXZlbnRDaGFuZ2UpPVwiaGFuZGxlRGVib3VuY2VkS2V5VXAoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8aSBjbGFzcz1cImljb24gZmFsIGZhLXNlYXJjaFwiPjwvaT5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -1,50 +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
- _pagination;
15
- set totalItems(totalItems) {
16
- this.numberOfPage = Math.ceil(totalItems / this.pagination.itemsPerPage);
17
- this.largeNumberOfPage = this.numberOfPage > 30;
18
- }
19
- get totalItems() {
20
- return this._totalItems;
21
- }
22
- _totalItems;
23
- openAbsoluteSelect = false;
24
- largeNumberOfPage = false;
25
- numberOfPage = 0;
26
- pageChange = new EventEmitter();
27
- constructor() { }
28
- onGotoPageChange(event, directValue) {
29
- if (directValue) {
30
- this.pageChange.emit(event);
31
- this.openAbsoluteSelect = false;
32
- }
33
- else {
34
- this.pageChange.emit(parseInt(event.target.value));
35
- }
36
- }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", 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
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PageSelectorComponent, decorators: [{
41
- type: Component,
42
- 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" }]
43
- }], ctorParameters: () => [], propDecorators: { pagination: [{
44
- type: Input
45
- }], totalItems: [{
46
- type: Input
47
- }], pageChange: [{
48
- type: Output
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3BhZ2luYXRpb24vcGFnZS1zZWxlY3Rvci9wYWdlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdlLXNlbGVjdG9yL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXZFLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsSUFBYSxVQUFVLENBQUMsVUFBNkI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ08sV0FBVyxDQUFvQjtJQUV2QyxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNPLFdBQVcsQ0FBUztJQUM1QixrQkFBa0IsR0FBVyxLQUFLLENBQUM7SUFFbkMsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLFlBQVksR0FBVyxDQUFDLENBQUM7SUFFZixVQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaEUsZ0JBQWUsQ0FBQztJQUVoQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVztRQUNqQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO3VHQWxDVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwrSkNabEMsd3NEQTBCQTs7MkZEZGEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGtCQUFrQjt3REFLZixVQUFVO3NCQUF0QixLQUFLO2dCQVFPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBYUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkZpbHRlcnMge1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1wYWdlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTZWxlY3RvckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnMpIHtcbiAgICB0aGlzLl9wYWdpbmF0aW9uID0gcGFnaW5hdGlvbjtcbiAgfVxuICBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uRmlsdGVycyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gIH1cbiAgcHJpdmF0ZSBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnM7XG5cbiAgQElucHV0KCkgc2V0IHRvdGFsSXRlbXModG90YWxJdGVtczogbnVtYmVyKSB7XG4gICAgdGhpcy5udW1iZXJPZlBhZ2UgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHRoaXMucGFnaW5hdGlvbi5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMubGFyZ2VOdW1iZXJPZlBhZ2UgPSB0aGlzLm51bWJlck9mUGFnZSA+IDMwO1xuICB9XG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsSXRlbXM7XG4gIH1cbiAgcHJpdmF0ZSBfdG90YWxJdGVtczogbnVtYmVyO1xuICBvcGVuQWJzb2x1dGVTZWxlY3Q6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIGxhcmdlTnVtYmVyT2ZQYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIG51bWJlck9mUGFnZTogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG9uR290b1BhZ2VDaGFuZ2UoZXZlbnQsIGRpcmVjdFZhbHVlKSB7XG4gICAgaWYgKGRpcmVjdFZhbHVlKSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgICB0aGlzLm9wZW5BYnNvbHV0ZVNlbGVjdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ei1zZWxlY3RvclwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwid3otc2VsZWN0b3JfX2RlZmF1bHRcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogNDAgKyAoMTAqcGFnaW5hdGlvbi5jdXJyZW50UGFnZS50b1N0cmluZygpLmxlbmd0aCkgKyAncHgnfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInd6LXNlbGVjdG9yX19kZWZhdWx0X19iYXNlXCIgKm5nSWY9XCJsYXJnZU51bWJlck9mUGFnZTtcIiAoY2xpY2spPVwib3BlbkFic29sdXRlU2VsZWN0ID0gIW9wZW5BYnNvbHV0ZVNlbGVjdFwiPlxyXG4gICAgICA8aW5wdXQgbmFtZT1cInBhZ2UtaW5wdXRcIiBbdmFsdWVdPVwicGFnaW5hdGlvbi5jdXJyZW50UGFnZVwiIChjaGFuZ2UpPVwib25Hb3RvUGFnZUNoYW5nZSgkZXZlbnQsIGZhbHNlKTtvcGVuQWJzb2x1dGVTZWxlY3QgPSBmYWxzZTtcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogNDAgKyAoMTAqcGFnaW5hdGlvbi5jdXJyZW50UGFnZS50b1N0cmluZygpLmxlbmd0aCkgKyAncHgnfVwiIC8+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc29ydC1kb3duXCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwid3otc2VsZWN0b3JfX2RlZmF1bHRfX2Fic29sdXRlXCIgKm5nSWY9XCJvcGVuQWJzb2x1dGVTZWxlY3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInd6LXNlbGVjdG9yX19kZWZhdWx0X19hYnNvbHV0ZV9fd3JhcHBlclwiICpuZ0Zvcj1cImxldCBwYWdlSW5kZXggb2YgKHBhZ2luYXRpb24udG90YWxJdGVtcyB8IExhcmdlTnVtYmVyT2ZQYWdlOiBwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZSA6IHBhZ2luYXRpb24uY3VycmVudFBhZ2UpLnNsaWNlKCkucmV2ZXJzZSgpIGFzIHJlc3VsdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ei1zZWxlY3Rvcl9fZGVmYXVsdF9fYWJzb2x1dGVfX3dyYXBwZXJfX2l0ZW1cIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogcGFnZUluZGV4LnZhbHVlID09PSBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlfVwiIChjbGljayk9XCJvbkdvdG9QYWdlQ2hhbmdlKHBhZ2VJbmRleC52YWx1ZSwgdHJ1ZSlcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IHBhZ2VJbmRleC5kaXNwbGF5IH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhcmdlTnVtYmVyT2ZQYWdlXCI+XHJcbiAgICA8c2VsZWN0IG5hbWU9XCJwYWdlXCIgKGNoYW5nZSk9XCJvbkdvdG9QYWdlQ2hhbmdlKCRldmVudCwgZmFsc2UpXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IDQwICsgKDEwKnBhZ2luYXRpb24uY3VycmVudFBhZ2UudG9TdHJpbmcoKS5sZW5ndGgpICsgJ3B4J31cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFnZUluZGV4IG9mIHBhZ2luYXRpb24udG90YWxJdGVtcyB8IEFycmF5VG90YWxQYWdlczogcGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIj5cclxuICAgICAgICA8b3B0aW9uIFtzZWxlY3RlZF09XCJwYWdlSW5kZXggPT09IHBhZ2luYXRpb24uY3VycmVudFBhZ2VcIiBbdmFsdWVdPVwicGFnZUluZGV4XCI+XHJcbiAgICAgICAgICB7eyBwYWdlSW5kZXggfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NlbGVjdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==