ngx-ntk-icon-picker 18.26.2 → 18.26.4

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 (28) hide show
  1. package/esm2022/lib/icon-picker.component.mjs +240 -0
  2. package/esm2022/lib/icon-picker.directive.mjs +136 -0
  3. package/{esm2020 → esm2022}/lib/icon-picker.module.mjs +12 -12
  4. package/esm2022/lib/icon-picker.service.mjs +74 -0
  5. package/esm2022/lib/icon.mjs +18 -0
  6. package/{esm2020 → esm2022}/lib/search-icon.pipe.mjs +4 -4
  7. package/esm2022/lib/text.directive.mjs +26 -0
  8. package/{fesm2020 → fesm2022}/ngx-ntk-icon-picker.mjs +108 -55
  9. package/{fesm2020 → fesm2022}/ngx-ntk-icon-picker.mjs.map +1 -1
  10. package/lib/icon-picker.directive.d.ts +1 -1
  11. package/lib/text.directive.d.ts +1 -1
  12. package/package.json +5 -11
  13. package/esm2020/lib/icon-picker.component.mjs +0 -204
  14. package/esm2020/lib/icon-picker.directive.mjs +0 -131
  15. package/esm2020/lib/icon-picker.service.mjs +0 -68
  16. package/esm2020/lib/icon.mjs +0 -11
  17. package/esm2020/lib/text.directive.mjs +0 -27
  18. package/fesm2015/ngx-ntk-icon-picker.mjs +0 -45004
  19. package/fesm2015/ngx-ntk-icon-picker.mjs.map +0 -1
  20. /package/{esm2020 → esm2022}/lib/icons-pack.mjs +0 -0
  21. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/pack/font-awesome4-icons-pack.mjs +0 -0
  23. /package/{esm2020 → esm2022}/lib/pack/font-awesome5-icons-pack.mjs +0 -0
  24. /package/{esm2020 → esm2022}/lib/pack/font-awesome6-icons-pack.mjs +0 -0
  25. /package/{esm2020 → esm2022}/lib/pack/material-icons-pack.mjs +0 -0
  26. /package/{esm2020 → esm2022}/lib/pack/prime-icons-pack.mjs +0 -0
  27. /package/{esm2020 → esm2022}/ngx-ntk-icon-picker.mjs +0 -0
  28. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,240 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { IconType } from './icon';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./icon-picker.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@fortawesome/angular-fontawesome";
7
+ import * as i4 from "./text.directive";
8
+ import * as i5 from "./search-icon.pipe";
9
+ export class IconPickerComponent {
10
+ el;
11
+ cdr;
12
+ service;
13
+ dialogElement;
14
+ // Popover
15
+ ipPosition;
16
+ ipHeight;
17
+ ipMaxHeight;
18
+ ipWidth;
19
+ // Icon css
20
+ ipIconSize;
21
+ ipIconVerticalPadding;
22
+ ipIconHorizontalPadding;
23
+ // Item Style ie input and button
24
+ ipButtonStyleClass;
25
+ ipInputSearchStyleClass;
26
+ ipDivSearchStyleClass;
27
+ ipUseRootViewContainer = false;
28
+ // Icon and behaviors
29
+ ipKeepSearchFilter;
30
+ ipPlaceHolder;
31
+ ipFallbackIcon;
32
+ ipIconPack;
33
+ show;
34
+ hidden;
35
+ top;
36
+ left;
37
+ position;
38
+ arrowTop;
39
+ selectedIcon;
40
+ iconType = IconType;
41
+ buttonWidth;
42
+ buttonHeight;
43
+ icons = [];
44
+ search = '';
45
+ directiveInstance;
46
+ initialIcon;
47
+ directiveElementRef;
48
+ listenerMouseDown;
49
+ listenerResize;
50
+ dialogArrowSize = 10;
51
+ constructor(el, cdr, service) {
52
+ this.el = el;
53
+ this.cdr = cdr;
54
+ this.service = service;
55
+ }
56
+ setDialog(instance, elementRef, icon, ipPosition, ipHeight, ipMaxHeight, ipWidth, ipPlaceHolder, ipFallbackIcon, ipIconPack, ipIconSize, ipIconVerticalPadding, ipIconHorizontalPadding, ipButtonStyleClass, ipDivSearchStyleClass, ipInputSearchStyleClass, ipKeepSearchFilter, ipUseRootViewContainer) {
57
+ this.directiveInstance = instance;
58
+ this.setInitialIcon(icon);
59
+ this.directiveElementRef = elementRef;
60
+ this.ipPosition = ipPosition;
61
+ this.ipHeight = parseInt(ipHeight, 10);
62
+ this.ipMaxHeight = parseInt(ipMaxHeight, 10);
63
+ this.ipWidth = parseInt(ipWidth, 10);
64
+ if (!this.ipWidth) {
65
+ this.ipWidth = elementRef.nativeElement.offsetWidth;
66
+ }
67
+ this.ipIconSize = parseInt(ipIconSize, 10);
68
+ this.ipIconVerticalPadding = parseInt(ipIconVerticalPadding, 10);
69
+ this.ipIconHorizontalPadding = parseInt(ipIconHorizontalPadding, 10);
70
+ this.ipKeepSearchFilter = JSON.parse(ipKeepSearchFilter);
71
+ this.ipPlaceHolder = ipPlaceHolder;
72
+ this.ipFallbackIcon = ipFallbackIcon;
73
+ this.ipIconPack = ipIconPack;
74
+ this.ipButtonStyleClass = ipButtonStyleClass;
75
+ this.ipInputSearchStyleClass = ipInputSearchStyleClass;
76
+ this.ipDivSearchStyleClass = ipDivSearchStyleClass;
77
+ this.ipUseRootViewContainer = ipUseRootViewContainer;
78
+ this.buttonHeight = this.ipIconSize + 2 * this.ipIconVerticalPadding;
79
+ this.buttonWidth = this.ipIconSize + 2 * this.ipIconHorizontalPadding;
80
+ }
81
+ ngOnInit() {
82
+ this.icons = this.service.getIcons(this.ipIconPack);
83
+ this.listenerMouseDown = (event) => this.onMouseDown(event);
84
+ this.listenerResize = () => this.onResize();
85
+ this.openDialog(this.initialIcon);
86
+ }
87
+ setInitialIcon(icon) {
88
+ this.initialIcon = icon;
89
+ this.selectedIcon = this.icons.find(el => el ?
90
+ `fa fa-${el.id}` === icon || `pi pi-${el.id}` === icon || `${el.id}` === icon :
91
+ false);
92
+ if (this.ipKeepSearchFilter && this.selectedIcon && icon !== this.ipFallbackIcon) {
93
+ this.search = this.selectedIcon.id;
94
+ }
95
+ else {
96
+ this.search = '';
97
+ }
98
+ }
99
+ openDialog(icon) {
100
+ this.setInitialIcon(icon);
101
+ this.openIconPicker();
102
+ }
103
+ setSearch(val) {
104
+ this.search = val;
105
+ }
106
+ selectIcon(icon) {
107
+ if (icon.type === IconType.FontAwesome) {
108
+ this.directiveInstance.iconSelected(`fa fa-${icon.id}`);
109
+ }
110
+ else if (icon.type === IconType.FontAwesome5) {
111
+ this.directiveInstance.iconSelected(`${icon.id}`);
112
+ }
113
+ else if (icon.type === IconType.FontAwesome6) {
114
+ this.directiveInstance.iconSelected(`${icon.id}`);
115
+ }
116
+ else if (icon.type === IconType.Material) {
117
+ this.directiveInstance.iconSelected(`${icon.id}`);
118
+ }
119
+ else if (icon.type === IconType.PrimeIcons) {
120
+ this.directiveInstance.iconSelected(`pi pi-${icon.id}`);
121
+ }
122
+ this.closeIconPicker();
123
+ }
124
+ onMouseDown(event) {
125
+ if (!this.isDescendant(this.el.nativeElement, event.target) && event.target !== this.directiveElementRef.nativeElement) {
126
+ this.closeIconPicker();
127
+ }
128
+ }
129
+ openIconPicker() {
130
+ if (!this.show) {
131
+ this.show = true;
132
+ this.hidden = true;
133
+ setTimeout(() => {
134
+ this.setDialogPosition();
135
+ this.hidden = false;
136
+ this.cdr.detectChanges();
137
+ }, 0);
138
+ this.directiveInstance.stateChanged(true);
139
+ document.addEventListener('mousedown', this.listenerMouseDown);
140
+ window.addEventListener('resize', this.listenerResize);
141
+ }
142
+ }
143
+ closeIconPicker() {
144
+ if (this.show) {
145
+ this.show = false;
146
+ this.directiveInstance.stateChanged(false);
147
+ document.removeEventListener('mousedown', this.listenerMouseDown);
148
+ window.removeEventListener('resize', this.listenerResize);
149
+ this.cdr.detectChanges();
150
+ }
151
+ }
152
+ onResize() {
153
+ if (this.position === 'fixed') {
154
+ this.setDialogPosition();
155
+ }
156
+ }
157
+ setDialogPosition() {
158
+ const dialogHeight = this.dialogElement.nativeElement.offsetHeight;
159
+ let node = this.directiveElementRef.nativeElement;
160
+ let position = 'static';
161
+ let transform = '';
162
+ let parentNode = null;
163
+ let transformNode = null;
164
+ let style = null;
165
+ while (node !== null && node.tagName !== 'HTML') {
166
+ style = window.getComputedStyle(node);
167
+ position = style.getPropertyValue('position');
168
+ transform = style.getPropertyValue('transform');
169
+ if (position !== 'static' && parentNode === null) {
170
+ parentNode = node;
171
+ }
172
+ if (transform && transform !== 'none' && transformNode === null) {
173
+ transformNode = node;
174
+ }
175
+ if (position === 'fixed') {
176
+ parentNode = transformNode;
177
+ break;
178
+ }
179
+ node = node.parentNode;
180
+ }
181
+ const boxDirective = this.createBox(this.directiveElementRef.nativeElement, (position !== 'fixed'));
182
+ if (this.ipUseRootViewContainer || (position === 'fixed' &&
183
+ (!parentNode || parentNode instanceof HTMLUnknownElement))) {
184
+ this.top = boxDirective.top;
185
+ this.left = boxDirective.left;
186
+ }
187
+ else {
188
+ if (parentNode === null) {
189
+ parentNode = node;
190
+ }
191
+ const boxParent = this.createBox(parentNode, (position !== 'fixed'));
192
+ this.top = boxDirective.top - boxParent.top;
193
+ this.left = boxDirective.left - boxParent.left;
194
+ }
195
+ if (position === 'fixed') {
196
+ this.position = 'fixed';
197
+ }
198
+ if (this.ipPosition === 'left') {
199
+ this.left -= this.ipWidth + this.dialogArrowSize - 2;
200
+ }
201
+ else if (this.ipPosition === 'top') {
202
+ this.top -= dialogHeight + this.dialogArrowSize;
203
+ this.arrowTop = dialogHeight - 1;
204
+ }
205
+ else if (this.ipPosition === 'bottom') {
206
+ this.top += boxDirective.height + this.dialogArrowSize;
207
+ }
208
+ else {
209
+ this.left += boxDirective.width + this.dialogArrowSize - 2;
210
+ }
211
+ }
212
+ isDescendant(parent, child) {
213
+ let node = child.parentNode;
214
+ while (node !== null) {
215
+ if (node === parent) {
216
+ return true;
217
+ }
218
+ node = node.parentNode;
219
+ }
220
+ return false;
221
+ }
222
+ createBox(element, offset) {
223
+ return {
224
+ top: element.getBoundingClientRect().top + (offset ? window.pageYOffset : 0),
225
+ left: element.getBoundingClientRect().left + (offset ? window.pageXOffset : 0),
226
+ width: element.offsetWidth,
227
+ height: element.offsetHeight
228
+ };
229
+ }
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.IconPickerService }], target: i0.ɵɵFactoryTarget.Component });
231
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IconPickerComponent, selector: "icon-picker", viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialogPopup"], descendants: true }], ngImport: i0, template: "<div class=\"icon-picker\" #dialogPopup\r\n [hidden]=\"!show\"\r\n [style.visibility]=\"this.hidden ? 'hidden' : 'visible'\"\r\n [style.height.px]=\"ipHeight\"\r\n [style.width.px]=\"ipWidth\"\r\n [style.top.px]=\"top\"\r\n [style.left.px]=\"left\"\r\n [style.position]=\"position\">\r\n\r\n <div class=\"arrow arrow-{{ipPosition}}\" [style.top.px]=\"arrowTop\"></div>\r\n\r\n <div class=\"icon-search {{ipDivSearchStyleClass}}\">\r\n <input type=\"text\" class=\"{{ipInputSearchStyleClass}}\" [text] [value]=\"search\" (newValue)=\"setSearch($event)\"\r\n [placeholder]=\"ipPlaceHolder\">\r\n </div>\r\n <div class=\"icon-grid\" [ngStyle]=\"{'max-height.px': ipMaxHeight}\">\r\n <div *ngFor=\"let icon of icons | searchIcon:search\">\r\n <button *ngIf=\"icon\" class=\"ip-button-icon {{ipButtonStyleClass}}\" type=\"button\" title=\"{{ icon.name }}\"\r\n [ngClass]=\"{active : icon === selectedIcon}\"\r\n [style.width.px]=\"buttonWidth\"\r\n [style.height.px]=\"buttonHeight\"\r\n [style.padding-top.px]=\"ipIconVerticalPadding\"\r\n [style.padding-bottom.px]=\"ipIconVerticalPadding\"\r\n [style.padding-left.px]=\"ipIconHorizontalPadding\"\r\n [style.padding-right.px]=\"ipIconHorizontalPadding\"\r\n (click)=\"selectIcon(icon)\">\r\n <span *ngIf=\"icon.type === iconType.FontAwesome\" class=\"fa fa-{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n <span *ngIf=\"icon.type === iconType.FontAwesome5\" class=\"{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n <span *ngIf=\"icon.type === iconType.FontAwesome6\" [style.font-size.px]=\"ipIconSize\">\r\n <fa-icon [icon]=\"['fas', icon.iconName]\"></fa-icon>\r\n </span>\r\n <span *ngIf=\"icon.type === iconType.Material\" class=\"material-icons\"\r\n [style.font-size.px]=\"ipIconSize\">{{icon.id}}</span>\r\n <span *ngIf=\"icon.type === iconType.PrimeIcons\" class=\"pi pi-{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".icon-picker{box-sizing:border-box;margin:0;position:absolute;z-index:100000;top:250px;left:30px;width:230px;height:auto;border:#777 solid 1px;cursor:default;background-color:#fff;-webkit-user-select:none;user-select:none}.icon-picker i{position:relative;cursor:default}.icon-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.icon-picker .arrow-right{top:10px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.icon-picker .arrow-left{top:10px;left:100%;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.icon-picker .arrow-bottom{top:-20px;left:10px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.icon-picker .arrow-top{left:10px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.icon-picker div.icon-search{padding:5px}.icon-picker div.icon-grid{display:flex;overflow-y:auto;flex-direction:row;flex-wrap:wrap;padding:5px}.icon-picker div.icon-grid div{margin:2px}.icon-picker div.cursor-sv{position:relative;width:15px;height:15px;border-radius:50%;border:#ddd solid 1px;cursor:default}.icon-picker div.cursor{position:relative;width:16px;height:16px;border-radius:50%;border:#222 solid 2px;cursor:default}\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: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i4.TextDirective, selector: "[text]", inputs: ["text"], outputs: ["newValue"] }, { kind: "pipe", type: i5.SearchIconPipe, name: "searchIcon" }] });
232
+ }
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerComponent, decorators: [{
234
+ type: Component,
235
+ args: [{ selector: 'icon-picker', template: "<div class=\"icon-picker\" #dialogPopup\r\n [hidden]=\"!show\"\r\n [style.visibility]=\"this.hidden ? 'hidden' : 'visible'\"\r\n [style.height.px]=\"ipHeight\"\r\n [style.width.px]=\"ipWidth\"\r\n [style.top.px]=\"top\"\r\n [style.left.px]=\"left\"\r\n [style.position]=\"position\">\r\n\r\n <div class=\"arrow arrow-{{ipPosition}}\" [style.top.px]=\"arrowTop\"></div>\r\n\r\n <div class=\"icon-search {{ipDivSearchStyleClass}}\">\r\n <input type=\"text\" class=\"{{ipInputSearchStyleClass}}\" [text] [value]=\"search\" (newValue)=\"setSearch($event)\"\r\n [placeholder]=\"ipPlaceHolder\">\r\n </div>\r\n <div class=\"icon-grid\" [ngStyle]=\"{'max-height.px': ipMaxHeight}\">\r\n <div *ngFor=\"let icon of icons | searchIcon:search\">\r\n <button *ngIf=\"icon\" class=\"ip-button-icon {{ipButtonStyleClass}}\" type=\"button\" title=\"{{ icon.name }}\"\r\n [ngClass]=\"{active : icon === selectedIcon}\"\r\n [style.width.px]=\"buttonWidth\"\r\n [style.height.px]=\"buttonHeight\"\r\n [style.padding-top.px]=\"ipIconVerticalPadding\"\r\n [style.padding-bottom.px]=\"ipIconVerticalPadding\"\r\n [style.padding-left.px]=\"ipIconHorizontalPadding\"\r\n [style.padding-right.px]=\"ipIconHorizontalPadding\"\r\n (click)=\"selectIcon(icon)\">\r\n <span *ngIf=\"icon.type === iconType.FontAwesome\" class=\"fa fa-{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n <span *ngIf=\"icon.type === iconType.FontAwesome5\" class=\"{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n <span *ngIf=\"icon.type === iconType.FontAwesome6\" [style.font-size.px]=\"ipIconSize\">\r\n <fa-icon [icon]=\"['fas', icon.iconName]\"></fa-icon>\r\n </span>\r\n <span *ngIf=\"icon.type === iconType.Material\" class=\"material-icons\"\r\n [style.font-size.px]=\"ipIconSize\">{{icon.id}}</span>\r\n <span *ngIf=\"icon.type === iconType.PrimeIcons\" class=\"pi pi-{{icon.id}}\"\r\n [style.font-size.px]=\"ipIconSize\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".icon-picker{box-sizing:border-box;margin:0;position:absolute;z-index:100000;top:250px;left:30px;width:230px;height:auto;border:#777 solid 1px;cursor:default;background-color:#fff;-webkit-user-select:none;user-select:none}.icon-picker i{position:relative;cursor:default}.icon-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.icon-picker .arrow-right{top:10px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.icon-picker .arrow-left{top:10px;left:100%;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.icon-picker .arrow-bottom{top:-20px;left:10px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.icon-picker .arrow-top{left:10px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.icon-picker div.icon-search{padding:5px}.icon-picker div.icon-grid{display:flex;overflow-y:auto;flex-direction:row;flex-wrap:wrap;padding:5px}.icon-picker div.icon-grid div{margin:2px}.icon-picker div.cursor-sv{position:relative;width:15px;height:15px;border-radius:50%;border:#ddd solid 1px;cursor:default}.icon-picker div.cursor{position:relative;width:16px;height:16px;border-radius:50%;border:#222 solid 2px;cursor:default}\n"] }]
236
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.IconPickerService }]; }, propDecorators: { dialogElement: [{
237
+ type: ViewChild,
238
+ args: ['dialogPopup']
239
+ }] } });
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW50ay1pY29uLXBpY2tlci9zcmMvbGliL2ljb24tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1udGstaWNvbi1waWNrZXIvc3JjL2xpYi9pY29uLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVGLE9BQU8sRUFBUSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFTeEMsTUFBTSxPQUFPLG1CQUFtQjtJQStDcEI7SUFDQTtJQUNBO0lBaERnQixhQUFhLENBQU07SUFFN0MsVUFBVTtJQUNILFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDakIsV0FBVyxDQUFTO0lBQ3BCLE9BQU8sQ0FBUztJQUN2QixXQUFXO0lBQ0osVUFBVSxDQUFTO0lBQ25CLHFCQUFxQixDQUFTO0lBQzlCLHVCQUF1QixDQUFTO0lBQ3ZDLGlDQUFpQztJQUMxQixrQkFBa0IsQ0FBUztJQUMzQix1QkFBdUIsQ0FBUztJQUNoQyxxQkFBcUIsQ0FBUztJQUM5QixzQkFBc0IsR0FBWSxLQUFLLENBQUM7SUFDL0MscUJBQXFCO0lBQ2Qsa0JBQWtCLENBQVU7SUFDNUIsYUFBYSxDQUFTO0lBQ3RCLGNBQWMsQ0FBUztJQUN2QixVQUFVLENBQVc7SUFFckIsSUFBSSxDQUFVO0lBQ2QsTUFBTSxDQUFVO0lBQ2hCLEdBQUcsQ0FBUztJQUNaLElBQUksQ0FBUztJQUNiLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFDakIsWUFBWSxDQUFPO0lBQ25CLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDcEIsV0FBVyxDQUFTO0lBQ3BCLFlBQVksQ0FBUztJQUU1QixLQUFLLEdBQVcs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QUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVcsRUFBRSxLQUFVO1FBQ2xDLElBQUksSUFBSSxHQUFRLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDakMsT0FBTyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3BCLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQVksRUFBRSxNQUFlO1FBQ3JDLE9BQU87WUFDTCxHQUFHLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlFLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVztZQUMxQixNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVk7U0FDN0IsQ0FBQztJQUNKLENBQUM7d0dBN09VLG1CQUFtQjs0RkFBbkIsbUJBQW1CLGlLQ1poQyxxc0VBMENBOzs0RkQ5QmEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUVFLGFBQWE7aUtBTUcsYUFBYTtzQkFBdEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEljb25QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY29uLXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWNvbiwgSWNvblR5cGUgfSBmcm9tICcuL2ljb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2ljb24tcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ljb24tcGlja2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJY29uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dQb3B1cCcpIGRpYWxvZ0VsZW1lbnQ6IGFueTtcclxuXHJcbiAgLy8gUG9wb3ZlclxyXG4gIHB1YmxpYyBpcFBvc2l0aW9uOiBzdHJpbmc7XHJcbiAgcHVibGljIGlwSGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGlwTWF4SGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGlwV2lkdGg6IG51bWJlcjtcclxuICAvLyBJY29uIGNzc1xyXG4gIHB1YmxpYyBpcEljb25TaXplOiBudW1iZXI7XHJcbiAgcHVibGljIGlwSWNvblZlcnRpY2FsUGFkZGluZzogbnVtYmVyO1xyXG4gIHB1YmxpYyBpcEljb25Ib3Jpem9udGFsUGFkZGluZzogbnVtYmVyO1xyXG4gIC8vIEl0ZW0gU3R5bGUgaWUgaW5wdXQgYW5kIGJ1dHRvblxyXG4gIHB1YmxpYyBpcEJ1dHRvblN0eWxlQ2xhc3M6IHN0cmluZztcclxuICBwdWJsaWMgaXBJbnB1dFNlYXJjaFN0eWxlQ2xhc3M6IHN0cmluZztcclxuICBwdWJsaWMgaXBEaXZTZWFyY2hTdHlsZUNsYXNzOiBzdHJpbmc7XHJcbiAgcHVibGljIGlwVXNlUm9vdFZpZXdDb250YWluZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBJY29uIGFuZCBiZWhhdmlvcnNcclxuICBwdWJsaWMgaXBLZWVwU2VhcmNoRmlsdGVyOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpcFBsYWNlSG9sZGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIGlwRmFsbGJhY2tJY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGlwSWNvblBhY2s6IHN0cmluZ1tdO1xyXG5cclxuICBwdWJsaWMgc2hvdzogYm9vbGVhbjtcclxuICBwdWJsaWMgaGlkZGVuOiBib29sZWFuO1xyXG4gIHB1YmxpYyB0b3A6IG51bWJlcjtcclxuICBwdWJsaWMgbGVmdDogbnVtYmVyO1xyXG4gIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBhcnJvd1RvcDogbnVtYmVyO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEljb246IEljb247XHJcbiAgcHVibGljIGljb25UeXBlID0gSWNvblR5cGU7XHJcbiAgcHVibGljIGJ1dHRvbldpZHRoOiBudW1iZXI7XHJcbiAgcHVibGljIGJ1dHRvbkhlaWdodDogbnVtYmVyO1xyXG5cclxuICBpY29uczogSWNvbltdID0gW107XHJcbiAgc2VhcmNoID0gJyc7XHJcblxyXG4gIHByaXZhdGUgZGlyZWN0aXZlSW5zdGFuY2U6IGFueTtcclxuICBwcml2YXRlIGluaXRpYWxJY29uOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBkaXJlY3RpdmVFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICBwcml2YXRlIGxpc3RlbmVyTW91c2VEb3duOiBhbnk7XHJcbiAgcHJpdmF0ZSBsaXN0ZW5lclJlc2l6ZTogYW55O1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ0Fycm93U2l6ZSA9IDEwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEljb25QaWNrZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBzZXREaWFsb2coaW5zdGFuY2U6IGFueSwgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgaWNvbjogc3RyaW5nLCBpcFBvc2l0aW9uOiBzdHJpbmcsIGlwSGVpZ2h0OiBzdHJpbmcsIGlwTWF4SGVpZ2h0OiBzdHJpbmcsXHJcbiAgICAgICAgICAgIGlwV2lkdGg6IHN0cmluZywgaXBQbGFjZUhvbGRlcjogc3RyaW5nLCBpcEZhbGxiYWNrSWNvbjogc3RyaW5nLCBpcEljb25QYWNrOiBzdHJpbmdbXSwgaXBJY29uU2l6ZTogc3RyaW5nLFxyXG4gICAgICAgICAgICBpcEljb25WZXJ0aWNhbFBhZGRpbmc6IHN0cmluZywgaXBJY29uSG9yaXpvbnRhbFBhZGRpbmc6IHN0cmluZywgaXBCdXR0b25TdHlsZUNsYXNzOiBzdHJpbmcsIGlwRGl2U2VhcmNoU3R5bGVDbGFzczogc3RyaW5nLFxyXG4gICAgICAgICAgICBpcElucHV0U2VhcmNoU3R5bGVDbGFzczogc3RyaW5nLCBpcEtlZXBTZWFyY2hGaWx0ZXI6IHN0cmluZywgaXBVc2VSb290Vmlld0NvbnRhaW5lcj86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgIHRoaXMuc2V0SW5pdGlhbEljb24oaWNvbik7XHJcbiAgICB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gICAgdGhpcy5pcFBvc2l0aW9uID0gaXBQb3NpdGlvbjtcclxuICAgIHRoaXMuaXBIZWlnaHQgPSBwYXJzZUludChpcEhlaWdodCwgMTApO1xyXG4gICAgdGhpcy5pcE1heEhlaWdodCA9IHBhcnNlSW50KGlwTWF4SGVpZ2h0LCAxMCk7XHJcbiAgICB0aGlzLmlwV2lkdGggPSBwYXJzZUludChpcFdpZHRoLCAxMCk7XHJcbiAgICBpZiAoIXRoaXMuaXBXaWR0aCkge1xyXG4gICAgICB0aGlzLmlwV2lkdGggPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlwSWNvblNpemUgPSBwYXJzZUludChpcEljb25TaXplLCAxMCk7XHJcbiAgICB0aGlzLmlwSWNvblZlcnRpY2FsUGFkZGluZyA9IHBhcnNlSW50KGlwSWNvblZlcnRpY2FsUGFkZGluZywgMTApO1xyXG4gICAgdGhpcy5pcEljb25Ib3Jpem9udGFsUGFkZGluZyA9IHBhcnNlSW50KGlwSWNvbkhvcml6b250YWxQYWRkaW5nLCAxMCk7XHJcbiAgICB0aGlzLmlwS2VlcFNlYXJjaEZpbHRlciA9IEpTT04ucGFyc2UoaXBLZWVwU2VhcmNoRmlsdGVyKTtcclxuICAgIHRoaXMuaXBQbGFjZUhvbGRlciA9IGlwUGxhY2VIb2xkZXI7XHJcbiAgICB0aGlzLmlwRmFsbGJhY2tJY29uID0gaXBGYWxsYmFja0ljb247XHJcbiAgICB0aGlzLmlwSWNvblBhY2sgPSBpcEljb25QYWNrO1xyXG4gICAgdGhpcy5pcEJ1dHRvblN0eWxlQ2xhc3MgPSBpcEJ1dHRvblN0eWxlQ2xhc3M7XHJcbiAgICB0aGlzLmlwSW5wdXRTZWFyY2hTdHlsZUNsYXNzID0gaXBJbnB1dFNlYXJjaFN0eWxlQ2xhc3M7XHJcbiAgICB0aGlzLmlwRGl2U2VhcmNoU3R5bGVDbGFzcyA9IGlwRGl2U2VhcmNoU3R5bGVDbGFzcztcclxuICAgIHRoaXMuaXBVc2VSb290Vmlld0NvbnRhaW5lciA9IGlwVXNlUm9vdFZpZXdDb250YWluZXI7XHJcblxyXG5cclxuICAgIHRoaXMuYnV0dG9uSGVpZ2h0ID0gdGhpcy5pcEljb25TaXplICsgMiAqIHRoaXMuaXBJY29uVmVydGljYWxQYWRkaW5nO1xyXG4gICAgdGhpcy5idXR0b25XaWR0aCA9IHRoaXMuaXBJY29uU2l6ZSArIDIgKiB0aGlzLmlwSWNvbkhvcml6b250YWxQYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmljb25zID0gdGhpcy5zZXJ2aWNlLmdldEljb25zKHRoaXMuaXBJY29uUGFjayk7XHJcbiAgICB0aGlzLmxpc3RlbmVyTW91c2VEb3duID0gKGV2ZW50OiBhbnkpID0+IHRoaXMub25Nb3VzZURvd24oZXZlbnQpO1xyXG4gICAgdGhpcy5saXN0ZW5lclJlc2l6ZSA9ICgpID0+IHRoaXMub25SZXNpemUoKTtcclxuICAgIHRoaXMub3BlbkRpYWxvZyh0aGlzLmluaXRpYWxJY29uKTtcclxuICB9XHJcblxyXG4gIHNldEluaXRpYWxJY29uKGljb246IHN0cmluZykge1xyXG4gICAgdGhpcy5pbml0aWFsSWNvbiA9IGljb247XHJcbiAgICB0aGlzLnNlbGVjdGVkSWNvbiA9IHRoaXMuaWNvbnMuZmluZChlbCA9PiBlbCA/XHJcbiAgICAgIGBmYSBmYS0ke2VsLmlkfWAgPT09IGljb24gfHwgYHBpIHBpLSR7ZWwuaWR9YCA9PT0gaWNvbiB8fCBgJHtlbC5pZH1gID09PSBpY29uIDpcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5pcEtlZXBTZWFyY2hGaWx0ZXIgJiYgdGhpcy5zZWxlY3RlZEljb24gJiYgaWNvbiAhPT0gdGhpcy5pcEZhbGxiYWNrSWNvbikge1xyXG4gICAgICB0aGlzLnNlYXJjaCA9IHRoaXMuc2VsZWN0ZWRJY29uLmlkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2ggPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5EaWFsb2coaWNvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxJY29uKGljb24pO1xyXG4gICAgdGhpcy5vcGVuSWNvblBpY2tlcigpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaCA9IHZhbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdEljb24oaWNvbjogSWNvbik6IHZvaWQge1xyXG4gICAgaWYgKGljb24udHlwZSA9PT0gSWNvblR5cGUuRm9udEF3ZXNvbWUpIHtcclxuICAgICAgdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pY29uU2VsZWN0ZWQoYGZhIGZhLSR7aWNvbi5pZH1gKTtcclxuICAgIH0gZWxzZSBpZiAoaWNvbi50eXBlID09PSBJY29uVHlwZS5Gb250QXdlc29tZTUpIHtcclxuICAgICAgdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pY29uU2VsZWN0ZWQoYCR7aWNvbi5pZH1gKTtcclxuICAgIH0gZWxzZSBpZiAoaWNvbi50eXBlID09PSBJY29uVHlwZS5Gb250QXdlc29tZTYpIHtcclxuICAgICAgdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pY29uU2VsZWN0ZWQoYCR7aWNvbi5pZH1gKTtcclxuICAgIH0gZWxzZSBpZiAoaWNvbi50eXBlID09PSBJY29uVHlwZS5NYXRlcmlhbCkge1xyXG4gICAgICB0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmljb25TZWxlY3RlZChgJHtpY29uLmlkfWApO1xyXG4gICAgfSBlbHNlIGlmIChpY29uLnR5cGUgPT09IEljb25UeXBlLlByaW1lSWNvbnMpIHtcclxuICAgICAgdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pY29uU2VsZWN0ZWQoYHBpIHBpLSR7aWNvbi5pZH1gKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2xvc2VJY29uUGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlRG93bihldmVudDogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgZXZlbnQudGFyZ2V0KSAmJiBldmVudC50YXJnZXQgIT09IHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuY2xvc2VJY29uUGlja2VyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuSWNvblBpY2tlcigpIHtcclxuICAgIGlmICghdGhpcy5zaG93KSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaWFsb2dQb3NpdGlvbigpO1xyXG4gICAgICAgIHRoaXMuaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgICAgdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zdGF0ZUNoYW5nZWQodHJ1ZSk7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubGlzdGVuZXJNb3VzZURvd24pO1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5saXN0ZW5lclJlc2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZUljb25QaWNrZXIoKSB7XHJcbiAgICBpZiAodGhpcy5zaG93KSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnN0YXRlQ2hhbmdlZChmYWxzZSk7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubGlzdGVuZXJNb3VzZURvd24pO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5saXN0ZW5lclJlc2l6ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcclxuICAgICAgdGhpcy5zZXREaWFsb2dQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGlhbG9nUG9zaXRpb24oKSB7XHJcbiAgICBjb25zdCBkaWFsb2dIZWlnaHQgPSB0aGlzLmRpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBsZXQgbm9kZSA9IHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgbGV0IHBvc2l0aW9uID0gJ3N0YXRpYyc7XHJcbiAgICBsZXQgdHJhbnNmb3JtID0gJyc7XHJcbiAgICBsZXQgcGFyZW50Tm9kZTogYW55ID0gbnVsbDtcclxuICAgIGxldCB0cmFuc2Zvcm1Ob2RlOiBhbnkgPSBudWxsO1xyXG4gICAgbGV0IHN0eWxlOiBhbnkgPSBudWxsO1xyXG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwgJiYgbm9kZS50YWdOYW1lICE9PSAnSFRNTCcpIHtcclxuICAgICAgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcclxuICAgICAgcG9zaXRpb24gPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwb3NpdGlvbicpO1xyXG4gICAgICB0cmFuc2Zvcm0gPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2Zvcm0nKTtcclxuICAgICAgaWYgKHBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwYXJlbnROb2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRyYW5zZm9ybSAmJiB0cmFuc2Zvcm0gIT09ICdub25lJyAmJiB0cmFuc2Zvcm1Ob2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgdHJhbnNmb3JtTm9kZSA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBvc2l0aW9uID09PSAnZml4ZWQnKSB7XHJcbiAgICAgICAgcGFyZW50Tm9kZSA9IHRyYW5zZm9ybU5vZGU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGJveERpcmVjdGl2ZSA9IHRoaXMuY3JlYXRlQm94KHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAocG9zaXRpb24gIT09ICdmaXhlZCcpKTtcclxuICAgIGlmICh0aGlzLmlwVXNlUm9vdFZpZXdDb250YWluZXIgfHwgKHBvc2l0aW9uID09PSAnZml4ZWQnICYmXHJcbiAgICAgICghcGFyZW50Tm9kZSB8fCBwYXJlbnROb2RlIGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50KSkpIHtcclxuICAgICAgdGhpcy50b3AgPSBib3hEaXJlY3RpdmUudG9wO1xyXG4gICAgICB0aGlzLmxlZnQgPSBib3hEaXJlY3RpdmUubGVmdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwYXJlbnROb2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGJveFBhcmVudCA9IHRoaXMuY3JlYXRlQm94KHBhcmVudE5vZGUsIChwb3NpdGlvbiAhPT0gJ2ZpeGVkJykpO1xyXG5cclxuICAgICAgdGhpcy50b3AgPSBib3hEaXJlY3RpdmUudG9wIC0gYm94UGFyZW50LnRvcDtcclxuICAgICAgdGhpcy5sZWZ0ID0gYm94RGlyZWN0aXZlLmxlZnQgLSBib3hQYXJlbnQubGVmdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocG9zaXRpb24gPT09ICdmaXhlZCcpIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pcFBvc2l0aW9uID09PSAnbGVmdCcpIHtcclxuICAgICAgdGhpcy5sZWZ0IC09IHRoaXMuaXBXaWR0aCArIHRoaXMuZGlhbG9nQXJyb3dTaXplIC0gMjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pcFBvc2l0aW9uID09PSAndG9wJykge1xyXG4gICAgICB0aGlzLnRvcCAtPSBkaWFsb2dIZWlnaHQgKyB0aGlzLmRpYWxvZ0Fycm93U2l6ZTtcclxuICAgICAgdGhpcy5hcnJvd1RvcCA9IGRpYWxvZ0hlaWdodCAtIDE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXBQb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgdGhpcy50b3AgKz0gYm94RGlyZWN0aXZlLmhlaWdodCArIHRoaXMuZGlhbG9nQXJyb3dTaXplO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sZWZ0ICs9IGJveERpcmVjdGl2ZS53aWR0aCArIHRoaXMuZGlhbG9nQXJyb3dTaXplIC0gMjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRGVzY2VuZGFudChwYXJlbnQ6IGFueSwgY2hpbGQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IG5vZGU6IGFueSA9IGNoaWxkLnBhcmVudE5vZGU7XHJcbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAobm9kZSA9PT0gcGFyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUJveChlbGVtZW50OiBhbnksIG9mZnNldDogYm9vbGVhbik6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0b3A6IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgKG9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IDApLFxyXG4gICAgICBsZWZ0OiBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyAob2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogMCksXHJcbiAgICAgIHdpZHRoOiBlbGVtZW50Lm9mZnNldFdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWNvbi1waWNrZXJcIiAjZGlhbG9nUG9wdXBcclxuICAgICBbaGlkZGVuXT1cIiFzaG93XCJcclxuICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJ0aGlzLmhpZGRlbiA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcclxuICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImlwSGVpZ2h0XCJcclxuICAgICBbc3R5bGUud2lkdGgucHhdPVwiaXBXaWR0aFwiXHJcbiAgICAgW3N0eWxlLnRvcC5weF09XCJ0b3BcIlxyXG4gICAgIFtzdHlsZS5sZWZ0LnB4XT1cImxlZnRcIlxyXG4gICAgIFtzdHlsZS5wb3NpdGlvbl09XCJwb3NpdGlvblwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYXJyb3cgYXJyb3cte3tpcFBvc2l0aW9ufX1cIiBbc3R5bGUudG9wLnB4XT1cImFycm93VG9wXCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpY29uLXNlYXJjaCB7e2lwRGl2U2VhcmNoU3R5bGVDbGFzc319XCI+XHJcbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInt7aXBJbnB1dFNlYXJjaFN0eWxlQ2xhc3N9fVwiIFt0ZXh0XSBbdmFsdWVdPVwic2VhcmNoXCIgKG5ld1ZhbHVlKT1cInNldFNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXBQbGFjZUhvbGRlclwiPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJpY29uLWdyaWRcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQucHgnOiBpcE1heEhlaWdodH1cIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGljb24gb2YgaWNvbnMgfCBzZWFyY2hJY29uOnNlYXJjaFwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwiaXAtYnV0dG9uLWljb24ge3tpcEJ1dHRvblN0eWxlQ2xhc3N9fVwiIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cInt7IGljb24ubmFtZSB9fVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZSA6IGljb24gPT09IHNlbGVjdGVkSWNvbn1cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJidXR0b25XaWR0aFwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJidXR0b25IZWlnaHRcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXRvcC5weF09XCJpcEljb25WZXJ0aWNhbFBhZGRpbmdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWJvdHRvbS5weF09XCJpcEljb25WZXJ0aWNhbFBhZGRpbmdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwiaXBJY29uSG9yaXpvbnRhbFBhZGRpbmdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnB4XT1cImlwSWNvbkhvcml6b250YWxQYWRkaW5nXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SWNvbihpY29uKVwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbi50eXBlID09PSBpY29uVHlwZS5Gb250QXdlc29tZVwiIGNsYXNzPVwiZmEgZmEte3tpY29uLmlkfX1cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5mb250LXNpemUucHhdPVwiaXBJY29uU2l6ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImljb24udHlwZSA9PT0gaWNvblR5cGUuRm9udEF3ZXNvbWU1XCIgY2xhc3M9XCJ7e2ljb24uaWR9fVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJpcEljb25TaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbi50eXBlID09PSBpY29uVHlwZS5Gb250QXdlc29tZTZcIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImlwSWNvblNpemVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFzJywgaWNvbi5pY29uTmFtZV1cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbi50eXBlID09PSBpY29uVHlwZS5NYXRlcmlhbFwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5mb250LXNpemUucHhdPVwiaXBJY29uU2l6ZVwiPnt7aWNvbi5pZH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaWNvbi50eXBlID09PSBpY29uVHlwZS5QcmltZUljb25zXCIgY2xhc3M9XCJwaSBwaS17e2ljb24uaWR9fVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJpcEljb25TaXplXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,136 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { IconPickerComponent } from './icon-picker.component';
3
+ import * as i0 from "@angular/core";
4
+ export class IconPickerDirective {
5
+ vcRef;
6
+ el;
7
+ iconPicker;
8
+ ipPlaceHolder = 'Search icon...';
9
+ ipPosition = 'right';
10
+ ipFallbackIcon = 'fas fa-user';
11
+ ipHeight = 'auto';
12
+ ipMaxHeight = '200px';
13
+ ipWidth = '230px';
14
+ ipIconSize = '16px';
15
+ ipIconVerticalPadding = '6px'; // Top / Bottom
16
+ ipIconHorizontalPadding = '10px'; // Left / Right
17
+ ipIconPack = ['fa5'];
18
+ ipKeepSearchFilter = 'false';
19
+ ipUseRootViewContainer = false;
20
+ // Default design with bootstrap
21
+ ipButtonStyleClass = 'btn btn-default';
22
+ ipDivSearchStyleClass = '';
23
+ ipInputSearchStyleClass = 'form-control input-sm';
24
+ iconPickerSelect = new EventEmitter(true);
25
+ iconPickerOpen = new EventEmitter(true);
26
+ iconPickerClose = new EventEmitter(true);
27
+ iconPickerFocus = new EventEmitter(true);
28
+ handleFocus() {
29
+ this.elementFocus();
30
+ }
31
+ dialog;
32
+ created;
33
+ ignoreChanges = false;
34
+ constructor(vcRef, el) {
35
+ this.vcRef = vcRef;
36
+ this.el = el;
37
+ this.created = false;
38
+ }
39
+ onClick() {
40
+ this.openDialog();
41
+ }
42
+ ngOnChanges(changes) {
43
+ if (changes.iconPicker) {
44
+ this.ignoreChanges = false;
45
+ }
46
+ }
47
+ ngOnInit() {
48
+ this.iconPicker = this.iconPicker || this.ipFallbackIcon || 'fa fa-user-plus';
49
+ this.iconPickerSelect.emit(this.iconPicker);
50
+ }
51
+ openDialog() {
52
+ if (!this.created) {
53
+ this.created = true;
54
+ const vcRef = this.vcRef;
55
+ const cmpRef = vcRef.createComponent(IconPickerComponent);
56
+ cmpRef.instance.setDialog(this, this.el, this.iconPicker, this.ipPosition, this.ipHeight, this.ipMaxHeight, this.ipWidth, this.ipPlaceHolder, this.ipFallbackIcon, this.ipIconPack, this.ipIconSize, this.ipIconVerticalPadding, this.ipIconHorizontalPadding, this.ipButtonStyleClass, this.ipDivSearchStyleClass, this.ipInputSearchStyleClass, this.ipKeepSearchFilter, this.ipUseRootViewContainer);
57
+ this.dialog = cmpRef.instance;
58
+ if (this.vcRef !== vcRef) {
59
+ cmpRef.changeDetectorRef.detectChanges();
60
+ }
61
+ }
62
+ else if (this.dialog) {
63
+ this.dialog.openDialog(this.iconPicker);
64
+ }
65
+ }
66
+ iconSelected(icon) {
67
+ this.iconPickerSelect.emit(icon);
68
+ }
69
+ stateChanged(state) {
70
+ if (state) {
71
+ this.iconPickerOpen.emit();
72
+ }
73
+ else {
74
+ this.iconPickerClose.emit();
75
+ }
76
+ }
77
+ elementFocus() {
78
+ this.iconPickerFocus.emit();
79
+ }
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
81
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IconPickerDirective, selector: "[iconPicker]", inputs: { iconPicker: "iconPicker", ipPlaceHolder: "ipPlaceHolder", ipPosition: "ipPosition", ipFallbackIcon: "ipFallbackIcon", ipHeight: "ipHeight", ipMaxHeight: "ipMaxHeight", ipWidth: "ipWidth", ipIconSize: "ipIconSize", ipIconVerticalPadding: "ipIconVerticalPadding", ipIconHorizontalPadding: "ipIconHorizontalPadding", ipIconPack: "ipIconPack", ipKeepSearchFilter: "ipKeepSearchFilter", ipUseRootViewContainer: "ipUseRootViewContainer", ipButtonStyleClass: "ipButtonStyleClass", ipDivSearchStyleClass: "ipDivSearchStyleClass", ipInputSearchStyleClass: "ipInputSearchStyleClass" }, outputs: { iconPickerSelect: "iconPickerSelect", iconPickerOpen: "iconPickerOpen", iconPickerClose: "iconPickerClose", iconPickerFocus: "iconPickerFocus" }, host: { listeners: { "focus": "handleFocus()", "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerDirective, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ // eslint-disable-next-line @angular-eslint/directive-selector
87
+ selector: '[iconPicker]'
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { iconPicker: [{
90
+ type: Input
91
+ }], ipPlaceHolder: [{
92
+ type: Input
93
+ }], ipPosition: [{
94
+ type: Input
95
+ }], ipFallbackIcon: [{
96
+ type: Input
97
+ }], ipHeight: [{
98
+ type: Input
99
+ }], ipMaxHeight: [{
100
+ type: Input
101
+ }], ipWidth: [{
102
+ type: Input
103
+ }], ipIconSize: [{
104
+ type: Input
105
+ }], ipIconVerticalPadding: [{
106
+ type: Input
107
+ }], ipIconHorizontalPadding: [{
108
+ type: Input
109
+ }], ipIconPack: [{
110
+ type: Input
111
+ }], ipKeepSearchFilter: [{
112
+ type: Input
113
+ }], ipUseRootViewContainer: [{
114
+ type: Input
115
+ }], ipButtonStyleClass: [{
116
+ type: Input
117
+ }], ipDivSearchStyleClass: [{
118
+ type: Input
119
+ }], ipInputSearchStyleClass: [{
120
+ type: Input
121
+ }], iconPickerSelect: [{
122
+ type: Output
123
+ }], iconPickerOpen: [{
124
+ type: Output
125
+ }], iconPickerClose: [{
126
+ type: Output
127
+ }], iconPickerFocus: [{
128
+ type: Output
129
+ }], handleFocus: [{
130
+ type: HostListener,
131
+ args: ['focus']
132
+ }], onClick: [{
133
+ type: HostListener,
134
+ args: ['click']
135
+ }] } });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW50ay1pY29uLXBpY2tlci9zcmMvbGliL2ljb24tcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLG1CQUFtQjtJQWlDcEI7SUFDQTtJQWpDRCxVQUFVLENBQVM7SUFDbkIsYUFBYSxHQUFHLGdCQUFnQixDQUFDO0lBQ2pDLFVBQVUsR0FBRyxPQUFPLENBQUM7SUFDckIsY0FBYyxHQUFHLGFBQWEsQ0FBQztJQUMvQixRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDdEIsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUNsQixVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQ3BCLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxDQUFDLGVBQWU7SUFDOUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLENBQUMsZUFBZTtJQUNqRCxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDN0Isc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLGdDQUFnQztJQUN2QixrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztJQUN2QyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDM0IsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFFakQsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLENBQVMsSUFBSSxDQUFDLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksWUFBWSxDQUFPLElBQUksQ0FBQyxDQUFDO0lB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OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsY0FBYztpQkFDekI7Z0lBRVUsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVnQixXQUFXO3NCQUFqQyxZQUFZO3VCQUFDLE9BQU87Z0JBZXJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEljb25QaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2ljb24tcGlja2VyLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnW2ljb25QaWNrZXJdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWNvblBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBpY29uUGlja2VyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXBQbGFjZUhvbGRlciA9ICdTZWFyY2ggaWNvbi4uLic7XHJcbiAgQElucHV0KCkgaXBQb3NpdGlvbiA9ICdyaWdodCc7XHJcbiAgQElucHV0KCkgaXBGYWxsYmFja0ljb24gPSAnZmFzIGZhLXVzZXInO1xyXG4gIEBJbnB1dCgpIGlwSGVpZ2h0ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGlwTWF4SGVpZ2h0ID0gJzIwMHB4JztcclxuICBASW5wdXQoKSBpcFdpZHRoID0gJzIzMHB4JztcclxuICBASW5wdXQoKSBpcEljb25TaXplID0gJzE2cHgnO1xyXG4gIEBJbnB1dCgpIGlwSWNvblZlcnRpY2FsUGFkZGluZyA9ICc2cHgnOyAvLyBUb3AgLyBCb3R0b21cclxuICBASW5wdXQoKSBpcEljb25Ib3Jpem9udGFsUGFkZGluZyA9ICcxMHB4JzsgLy8gTGVmdCAvIFJpZ2h0XHJcbiAgQElucHV0KCkgaXBJY29uUGFjayA9IFsnZmE1J107XHJcbiAgQElucHV0KCkgaXBLZWVwU2VhcmNoRmlsdGVyID0gJ2ZhbHNlJztcclxuICBASW5wdXQoKSBpcFVzZVJvb3RWaWV3Q29udGFpbmVyID0gZmFsc2U7XHJcbiAgLy8gRGVmYXVsdCBkZXNpZ24gd2l0aCBib290c3RyYXBcclxuICBASW5wdXQoKSBpcEJ1dHRvblN0eWxlQ2xhc3MgPSAnYnRuIGJ0bi1kZWZhdWx0JztcclxuICBASW5wdXQoKSBpcERpdlNlYXJjaFN0eWxlQ2xhc3MgPSAnJztcclxuICBASW5wdXQoKSBpcElucHV0U2VhcmNoU3R5bGVDbGFzcyA9ICdmb3JtLWNvbnRyb2wgaW5wdXQtc20nO1xyXG5cclxuICBAT3V0cHV0KCkgaWNvblBpY2tlclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPih0cnVlKTtcclxuICBAT3V0cHV0KCkgaWNvblBpY2tlck9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KHRydWUpO1xyXG4gIEBPdXRwdXQoKSBpY29uUGlja2VyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KHRydWUpO1xyXG4gIEBPdXRwdXQoKSBpY29uUGlja2VyRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KHRydWUpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpIGhhbmRsZUZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlhbG9nOiBhbnk7XHJcbiAgcHJpdmF0ZSBjcmVhdGVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgaWdub3JlQ2hhbmdlcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmNyZWF0ZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5vcGVuRGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLmljb25QaWNrZXIpIHtcclxuICAgICAgdGhpcy5pZ25vcmVDaGFuZ2VzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaWNvblBpY2tlciA9IHRoaXMuaWNvblBpY2tlciB8fCB0aGlzLmlwRmFsbGJhY2tJY29uIHx8ICdmYSBmYS11c2VyLXBsdXMnO1xyXG4gICAgdGhpcy5pY29uUGlja2VyU2VsZWN0LmVtaXQodGhpcy5pY29uUGlja2VyKTtcclxuICB9XHJcblxyXG4gIG9wZW5EaWFsb2coKSB7XHJcbiAgICBpZiAoIXRoaXMuY3JlYXRlZCkge1xyXG4gICAgICB0aGlzLmNyZWF0ZWQgPSB0cnVlO1xyXG4gICAgICBjb25zdCB2Y1JlZiA9IHRoaXMudmNSZWY7XHJcbiAgICAgIGNvbnN0IGNtcFJlZiA9IHZjUmVmLmNyZWF0ZUNvbXBvbmVudChJY29uUGlja2VyQ29tcG9uZW50KTtcclxuICAgICAgY21wUmVmLmluc3RhbmNlLnNldERpYWxvZyh0aGlzLCB0aGlzLmVsLCB0aGlzLmljb25QaWNrZXIsIHRoaXMuaXBQb3NpdGlvbiwgdGhpcy5pcEhlaWdodCwgdGhpcy5pcE1heEhlaWdodCxcclxuICAgICAgICB0aGlzLmlwV2lkdGgsIHRoaXMuaXBQbGFjZUhvbGRlciwgdGhpcy5pcEZhbGxiYWNrSWNvbiwgdGhpcy5pcEljb25QYWNrLCB0aGlzLmlwSWNvblNpemUsXHJcbiAgICAgICAgdGhpcy5pcEljb25WZXJ0aWNhbFBhZGRpbmcsIHRoaXMuaXBJY29uSG9yaXpvbnRhbFBhZGRpbmcsIHRoaXMuaXBCdXR0b25TdHlsZUNsYXNzLCB0aGlzLmlwRGl2U2VhcmNoU3R5bGVDbGFzcyxcclxuICAgICAgICB0aGlzLmlwSW5wdXRTZWFyY2hTdHlsZUNsYXNzLCB0aGlzLmlwS2VlcFNlYXJjaEZpbHRlciwgdGhpcy5pcFVzZVJvb3RWaWV3Q29udGFpbmVyKTtcclxuICAgICAgdGhpcy5kaWFsb2cgPSBjbXBSZWYuaW5zdGFuY2U7XHJcblxyXG4gICAgICBpZiAodGhpcy52Y1JlZiAhPT0gdmNSZWYpIHtcclxuICAgICAgICBjbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGlhbG9nKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nLm9wZW5EaWFsb2codGhpcy5pY29uUGlja2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGljb25TZWxlY3RlZChpY29uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaWNvblBpY2tlclNlbGVjdC5lbWl0KGljb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRlQ2hhbmdlZChzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHN0YXRlKSB7XHJcbiAgICAgIHRoaXMuaWNvblBpY2tlck9wZW4uZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pY29uUGlja2VyQ2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVsZW1lbnRGb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuaWNvblBpY2tlckZvY3VzLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -8,18 +8,18 @@ import { TextDirective } from './text.directive';
8
8
  import { SearchIconPipe } from './search-icon.pipe';
9
9
  import * as i0 from "@angular/core";
10
10
  export class IconPickerModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: IconPickerModule, declarations: [IconPickerComponent,
13
+ IconPickerDirective,
14
+ TextDirective,
15
+ SearchIconPipe], imports: [CommonModule,
16
+ FontAwesomeModule], exports: [IconPickerDirective] });
17
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerModule, providers: [
18
+ IconPickerService
19
+ ], imports: [CommonModule,
20
+ FontAwesomeModule] });
11
21
  }
12
- IconPickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- IconPickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: IconPickerModule, declarations: [IconPickerComponent,
14
- IconPickerDirective,
15
- TextDirective,
16
- SearchIconPipe], imports: [CommonModule,
17
- FontAwesomeModule], exports: [IconPickerDirective] });
18
- IconPickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconPickerModule, providers: [
19
- IconPickerService
20
- ], imports: [CommonModule,
21
- FontAwesomeModule] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IconPickerModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
40
40
  ]
41
41
  }]
42
42
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW50ay1pY29uLXBpY2tlci9zcmMvbGliL2ljb24tcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW9CcEQsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVRyQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixjQUFjLGFBVmQsWUFBWTtRQUNaLGlCQUFpQixhQVlqQixtQkFBbUI7K0dBR2QsZ0JBQWdCLGFBYmQ7UUFDUCxpQkFBaUI7S0FDcEIsWUFMRyxZQUFZO1FBQ1osaUJBQWlCOzRGQWVaLGdCQUFnQjtrQkFsQjVCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNwQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuXHJcbmltcG9ydCB7IEljb25QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY29uLXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWNvblBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvblBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJy4vaWNvbi1waWNrZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vdGV4dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZWFyY2hJY29uUGlwZSB9IGZyb20gJy4vc2VhcmNoLWljb24ucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb250QXdlc29tZU1vZHVsZSxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBJY29uUGlja2VyU2VydmljZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEljb25QaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgSWNvblBpY2tlckRpcmVjdGl2ZSxcclxuICAgICAgICBUZXh0RGlyZWN0aXZlLFxyXG4gICAgICAgIFNlYXJjaEljb25QaXBlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEljb25QaWNrZXJEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEljb25QaWNrZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW50ay1pY29uLXBpY2tlci9zcmMvbGliL2ljb24tcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW9CcEQsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsaUJBVHJCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGNBQWMsYUFWZCxZQUFZO1lBQ1osaUJBQWlCLGFBWWpCLG1CQUFtQjt5R0FHZCxnQkFBZ0IsYUFiZDtZQUNQLGlCQUFpQjtTQUNwQixZQUxHLFlBQVk7WUFDWixpQkFBaUI7OzRGQWVaLGdCQUFnQjtrQkFsQjVCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNwQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuXHJcbmltcG9ydCB7IEljb25QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY29uLXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWNvblBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvblBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJy4vaWNvbi1waWNrZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vdGV4dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZWFyY2hJY29uUGlwZSB9IGZyb20gJy4vc2VhcmNoLWljb24ucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb250QXdlc29tZU1vZHVsZSxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBJY29uUGlja2VyU2VydmljZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEljb25QaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgSWNvblBpY2tlckRpcmVjdGl2ZSxcclxuICAgICAgICBUZXh0RGlyZWN0aXZlLFxyXG4gICAgICAgIFNlYXJjaEljb25QaXBlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEljb25QaWNrZXJEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEljb25QaWNrZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { IconType } from './icon';
3
+ import { FontAwesome4IconsPack } from './pack/font-awesome4-icons-pack';
4
+ import { FontAwesome5IconsPack } from './pack/font-awesome5-icons-pack';
5
+ import { FontAwesome6IconsPack } from './pack/font-awesome6-icons-pack';
6
+ import { MaterialIconsPack } from './pack/material-icons-pack';
7
+ import { fas } from '@fortawesome/free-solid-svg-icons';
8
+ import { PrimeIconsPack } from './pack/prime-icons-pack';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@fortawesome/angular-fontawesome";
11
+ export class IconPickerService {
12
+ faIconLibrary;
13
+ fa4IconsPack;
14
+ fa5IconsPack;
15
+ fa6IconsPack;
16
+ matIconsPack;
17
+ primeIconsPack;
18
+ constructor(faIconLibrary) {
19
+ this.faIconLibrary = faIconLibrary;
20
+ this.fa4IconsPack = new FontAwesome4IconsPack();
21
+ this.fa5IconsPack = new FontAwesome5IconsPack();
22
+ this.fa6IconsPack = new FontAwesome6IconsPack();
23
+ this.matIconsPack = new MaterialIconsPack();
24
+ this.primeIconsPack = new PrimeIconsPack();
25
+ }
26
+ getIcons(ipIconPacks) {
27
+ const icons = [];
28
+ ipIconPacks.forEach((ipIconPack) => {
29
+ if (ipIconPack === 'fa' || ipIconPack === 'all') {
30
+ const faIcons = this.fa4IconsPack.getIcons().map(icon => {
31
+ icon.type = IconType.FontAwesome;
32
+ return icon;
33
+ });
34
+ icons.push(...faIcons);
35
+ }
36
+ if (ipIconPack === 'fa5' || ipIconPack === 'all') {
37
+ const fa5Icons = this.fa5IconsPack.getIcons().map(icon => {
38
+ icon.type = IconType.FontAwesome5;
39
+ return icon;
40
+ });
41
+ icons.push(...fa5Icons);
42
+ }
43
+ if (ipIconPack === 'fa6' || ipIconPack === 'all') {
44
+ this.faIconLibrary.addIconPacks(fas);
45
+ const fa6Icons = this.fa6IconsPack.getIcons().map(icon => {
46
+ icon.type = IconType.FontAwesome6;
47
+ return icon;
48
+ });
49
+ icons.push(...fa6Icons);
50
+ }
51
+ if (ipIconPack === 'mat' || ipIconPack === 'all') {
52
+ const matIcons = this.matIconsPack.getIcons().map(icon => {
53
+ icon.type = IconType.Material;
54
+ return icon;
55
+ });
56
+ icons.push(...matIcons);
57
+ }
58
+ if (ipIconPack === 'pi' || ipIconPack === 'all') {
59
+ const primeIcons = this.primeIconsPack.getIcons().map(icon => {
60
+ icon.type = IconType.PrimeIcons;
61
+ return icon;
62
+ });
63
+ icons.push(...primeIcons);
64
+ }
65
+ });
66
+ return icons;
67
+ }
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerService, deps: [{ token: i1.FaIconLibrary }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerService });
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconPickerService, decorators: [{
72
+ type: Injectable
73
+ }], ctorParameters: function () { return [{ type: i1.FaIconLibrary }]; } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1udGstaWNvbi1waWNrZXIvc3JjL2xpYi9pY29uLXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUV0QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7QUFHdkQsTUFBTSxPQUFPLGlCQUFpQjtJQU9OO0lBTmQsWUFBWSxDQUFZO0lBQ3hCLFlBQVksQ0FBWTtJQUN4QixZQUFZLENBQVk7SUFDeEIsWUFBWSxDQUFZO0lBQ3hCLGNBQWMsQ0FBWTtJQUVsQyxZQUFzQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFxQjtRQUM1QixNQUFNLEtBQUssR0FBVyxFQUFFLENBQUM7UUFDekIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2pDLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssS0FBSyxFQUFFO2dCQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO29CQUNqQyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7YUFDeEI7WUFDRCxJQUFJLFVBQVUsS0FBSyxLQUFLLElBQUksVUFBVSxLQUFLLEtBQUssRUFBRTtnQkFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztvQkFDbEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxVQUFVLEtBQUssS0FBSyxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO29CQUNuQyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7YUFDekI7WUFDRCxJQUFJLFVBQVUsS0FBSyxLQUFLLElBQUksVUFBVSxLQUFLLEtBQUssRUFBRTtnQkFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztvQkFDOUIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxVQUFVLEtBQUssSUFBSSxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0JBQ2hDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQXhEVSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbiwgSWNvblR5cGV9IGZyb20gJy4vaWNvbic7XHJcbmltcG9ydCB7SWNvbnNQYWNrfSBmcm9tICcuL2ljb25zLXBhY2snO1xyXG5pbXBvcnQge0ZvbnRBd2Vzb21lNEljb25zUGFja30gZnJvbSAnLi9wYWNrL2ZvbnQtYXdlc29tZTQtaWNvbnMtcGFjayc7XHJcbmltcG9ydCB7Rm9udEF3ZXNvbWU1SWNvbnNQYWNrfSBmcm9tICcuL3BhY2svZm9udC1hd2Vzb21lNS1pY29ucy1wYWNrJztcclxuaW1wb3J0IHtGb250QXdlc29tZTZJY29uc1BhY2t9IGZyb20gJy4vcGFjay9mb250LWF3ZXNvbWU2LWljb25zLXBhY2snO1xyXG5pbXBvcnQge01hdGVyaWFsSWNvbnNQYWNrfSBmcm9tICcuL3BhY2svbWF0ZXJpYWwtaWNvbnMtcGFjayc7XHJcbmltcG9ydCB7IEZhSWNvbkxpYnJhcnkgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IGZhcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XHJcbmltcG9ydCB7UHJpbWVJY29uc1BhY2t9IGZyb20gJy4vcGFjay9wcmltZS1pY29ucy1wYWNrJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEljb25QaWNrZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGZhNEljb25zUGFjazogSWNvbnNQYWNrO1xyXG4gIHByaXZhdGUgZmE1SWNvbnNQYWNrOiBJY29uc1BhY2s7XHJcbiAgcHJpdmF0ZSBmYTZJY29uc1BhY2s6IEljb25zUGFjaztcclxuICBwcml2YXRlIG1hdEljb25zUGFjazogSWNvbnNQYWNrO1xyXG4gIHByaXZhdGUgcHJpbWVJY29uc1BhY2s6IEljb25zUGFjaztcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZhSWNvbkxpYnJhcnk6IEZhSWNvbkxpYnJhcnkpIHtcclxuICAgIHRoaXMuZmE0SWNvbnNQYWNrID0gbmV3IEZvbnRBd2Vzb21lNEljb25zUGFjaygpO1xyXG4gICAgdGhpcy5mYTVJY29uc1BhY2sgPSBuZXcgRm9udEF3ZXNvbWU1SWNvbnNQYWNrKCk7XHJcbiAgICB0aGlzLmZhNkljb25zUGFjayA9IG5ldyBGb250QXdlc29tZTZJY29uc1BhY2soKTtcclxuICAgIHRoaXMubWF0SWNvbnNQYWNrID0gbmV3IE1hdGVyaWFsSWNvbnNQYWNrKCk7XHJcbiAgICB0aGlzLnByaW1lSWNvbnNQYWNrID0gbmV3IFByaW1lSWNvbnNQYWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXRJY29ucyhpcEljb25QYWNrczogc3RyaW5nW10pOiBJY29uW10ge1xyXG4gICAgY29uc3QgaWNvbnM6IEljb25bXSA9IFtdO1xyXG4gICAgaXBJY29uUGFja3MuZm9yRWFjaCgoaXBJY29uUGFjaykgPT4ge1xyXG4gICAgICBpZiAoaXBJY29uUGFjayA9PT0gJ2ZhJyB8fCBpcEljb25QYWNrID09PSAnYWxsJykge1xyXG4gICAgICAgIGNvbnN0IGZhSWNvbnMgPSB0aGlzLmZhNEljb25zUGFjay5nZXRJY29ucygpLm1hcChpY29uID0+IHtcclxuICAgICAgICAgIGljb24udHlwZSA9IEljb25UeXBlLkZvbnRBd2Vzb21lO1xyXG4gICAgICAgICAgcmV0dXJuIGljb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWNvbnMucHVzaCguLi5mYUljb25zKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXBJY29uUGFjayA9PT0gJ2ZhNScgfHwgaXBJY29uUGFjayA9PT0gJ2FsbCcpIHtcclxuICAgICAgICBjb25zdCBmYTVJY29ucyA9IHRoaXMuZmE1SWNvbnNQYWNrLmdldEljb25zKCkubWFwKGljb24gPT4ge1xyXG4gICAgICAgICAgaWNvbi50eXBlID0gSWNvblR5cGUuRm9udEF3ZXNvbWU1O1xyXG4gICAgICAgICAgcmV0dXJuIGljb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWNvbnMucHVzaCguLi5mYTVJY29ucyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlwSWNvblBhY2sgPT09ICdmYTYnIHx8IGlwSWNvblBhY2sgPT09ICdhbGwnKSB7XHJcbiAgICAgICAgdGhpcy5mYUljb25MaWJyYXJ5LmFkZEljb25QYWNrcyhmYXMpO1xyXG4gICAgICAgIGNvbnN0IGZhNkljb25zID0gdGhpcy5mYTZJY29uc1BhY2suZ2V0SWNvbnMoKS5tYXAoaWNvbiA9PiB7XHJcbiAgICAgICAgICAgaWNvbi50eXBlID0gSWNvblR5cGUuRm9udEF3ZXNvbWU2O1xyXG4gICAgICAgICAgcmV0dXJuIGljb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWNvbnMucHVzaCguLi5mYTZJY29ucyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlwSWNvblBhY2sgPT09ICdtYXQnIHx8IGlwSWNvblBhY2sgPT09ICdhbGwnKSB7XHJcbiAgICAgICAgY29uc3QgbWF0SWNvbnMgPSB0aGlzLm1hdEljb25zUGFjay5nZXRJY29ucygpLm1hcChpY29uID0+IHtcclxuICAgICAgICAgIGljb24udHlwZSA9IEljb25UeXBlLk1hdGVyaWFsO1xyXG4gICAgICAgICAgcmV0dXJuIGljb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWNvbnMucHVzaCguLi5tYXRJY29ucyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlwSWNvblBhY2sgPT09ICdwaScgfHwgaXBJY29uUGFjayA9PT0gJ2FsbCcpIHtcclxuICAgICAgICBjb25zdCBwcmltZUljb25zID0gdGhpcy5wcmltZUljb25zUGFjay5nZXRJY29ucygpLm1hcChpY29uID0+IHtcclxuICAgICAgICAgIGljb24udHlwZSA9IEljb25UeXBlLlByaW1lSWNvbnM7XHJcbiAgICAgICAgICByZXR1cm4gaWNvbjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpY29ucy5wdXNoKC4uLnByaW1lSWNvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpY29ucztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,18 @@
1
+ export class Icon {
2
+ name;
3
+ id;
4
+ filter;
5
+ aliases;
6
+ type;
7
+ iconName;
8
+ prefix;
9
+ }
10
+ export var IconType;
11
+ (function (IconType) {
12
+ IconType[IconType["FontAwesome"] = 0] = "FontAwesome";
13
+ IconType[IconType["FontAwesome5"] = 2] = "FontAwesome5";
14
+ IconType[IconType["Material"] = 3] = "Material";
15
+ IconType[IconType["FontAwesome6"] = 4] = "FontAwesome6";
16
+ IconType[IconType["PrimeIcons"] = 5] = "PrimeIcons";
17
+ })(IconType || (IconType = {}));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1udGstaWNvbi1waWNrZXIvc3JjL2xpYi9pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxJQUFJO0lBQ2YsSUFBSSxDQUFTO0lBQ2IsRUFBRSxDQUFTO0lBQ1gsTUFBTSxDQUFZO0lBQ2xCLE9BQU8sQ0FBWTtJQUNuQixJQUFJLENBQVk7SUFDaEIsUUFBUSxDQUFZO0lBQ3BCLE1BQU0sQ0FBUztDQUNoQjtBQUVELE1BQU0sQ0FBTixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIscURBQVcsQ0FBQTtJQUNYLHVEQUFnQixDQUFBO0lBQ2hCLCtDQUFRLENBQUE7SUFDUix1REFBWSxDQUFBO0lBQ1osbURBQVUsQ0FBQTtBQUNaLENBQUMsRUFOVyxRQUFRLEtBQVIsUUFBUSxRQU1uQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBJY29uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaWQ6IHN0cmluZztcclxuICBmaWx0ZXI/OiBzdHJpbmdbXTtcclxuICBhbGlhc2VzPzogc3RyaW5nW107XHJcbiAgdHlwZT86IEljb25UeXBlO1xyXG4gIGljb25OYW1lPzogSWNvbk5hbWU7XHJcbiAgcHJlZml4PzpzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEljb25UeXBlIHtcclxuICBGb250QXdlc29tZSxcclxuICBGb250QXdlc29tZTUgPSAyLFxyXG4gIE1hdGVyaWFsLFxyXG4gIEZvbnRBd2Vzb21lNixcclxuICBQcmltZUljb25zXHJcbn1cclxuIl19