@acorex/components 4.2.67 → 4.2.70

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 (48) hide show
  1. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +2 -2
  2. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +2 -2
  3. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +2 -2
  4. package/esm2020/lib/checkbox/checkbox.component.mjs +3 -3
  5. package/esm2020/lib/color-picker/color-picker.component.mjs +1 -1
  6. package/esm2020/lib/date-picker/date-picker.component.mjs +3 -6
  7. package/esm2020/lib/drawer/drawer.component.mjs +1 -2
  8. package/esm2020/lib/dropdown/dropdown.component.mjs +10 -11
  9. package/esm2020/lib/form-group/form-group.component.mjs +4 -3
  10. package/esm2020/lib/menu/menu.component.mjs +3 -3
  11. package/esm2020/lib/popup/popup.component.mjs +2 -2
  12. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +1 -1
  13. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +1 -1
  14. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +28 -25
  15. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -0
  16. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +4 -4
  17. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +5 -5
  18. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +26 -29
  19. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +5 -3
  20. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +11 -9
  21. package/esm2020/lib/property-editor/property-editor.class.mjs +1 -1
  22. package/esm2020/lib/property-editor/property-editor.module.mjs +17 -6
  23. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +1 -1
  24. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +1 -1
  25. package/esm2020/lib/search-bar/search-bar.component.mjs +251 -0
  26. package/esm2020/lib/search-bar/search-bar.module.mjs +28 -0
  27. package/esm2020/lib/selectbox/selectbox.component.mjs +9 -3
  28. package/esm2020/lib/selectbox/selectbox2.component.mjs +1 -1
  29. package/esm2020/lib/selection-list/selection-list.component.mjs +3 -3
  30. package/esm2020/lib/switch/switch.component.mjs +2 -2
  31. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +2 -2
  32. package/esm2020/public-api.mjs +3 -1
  33. package/fesm2015/acorex-components.mjs +5108 -4766
  34. package/fesm2015/acorex-components.mjs.map +1 -1
  35. package/fesm2020/acorex-components.mjs +5086 -4753
  36. package/fesm2020/acorex-components.mjs.map +1 -1
  37. package/lib/dropdown/dropdown.component.d.ts +2 -2
  38. package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -0
  39. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -0
  40. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +7 -6
  41. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +1 -0
  42. package/lib/property-editor/editors/text-editor/text.editor.d.ts +3 -0
  43. package/lib/property-editor/property-editor.class.d.ts +2 -0
  44. package/lib/search-bar/search-bar.component.d.ts +53 -0
  45. package/lib/search-bar/search-bar.module.d.ts +17 -0
  46. package/lib/selectbox/selectbox.component.d.ts +3 -1
  47. package/package.json +1 -1
  48. package/public-api.d.ts +2 -0
@@ -0,0 +1,251 @@
1
+ import { AXConfig, AXDateTime } from '@acorex/core';
2
+ import { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';
3
+ import * as _ from 'lodash';
4
+ import { AXDropdownComponent } from '../dropdown/dropdown.component';
5
+ import { AXPropertyEditorRendererDirective } from '../property-editor/property-editor-renderer.directive';
6
+ import { AXValidationFormComponent } from '../validation/validation-form.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../dropdown/dropdown.component";
9
+ import * as i2 from "../validation/validation-form.component";
10
+ import * as i3 from "../label/label.component";
11
+ import * as i4 from "../button/button.component";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "../property-editor/property-editor-renderer.directive";
14
+ import * as i7 from "@acorex/core";
15
+ export class AXSearchBarComponent {
16
+ constructor(ref) {
17
+ this.ref = ref;
18
+ this.size = 'md';
19
+ this.disabled = false;
20
+ this.fitParent = false;
21
+ this.dropdownWidth = '600px';
22
+ this.rtl = AXConfig.get('layout.rtl');
23
+ this.onValueChange = new EventEmitter();
24
+ this.onSearchValue = new EventEmitter();
25
+ this._items = [];
26
+ this._filterItems = [];
27
+ this._filterItemsClone = [];
28
+ this._defultValueCount = [];
29
+ this._context = {};
30
+ }
31
+ set items(v) {
32
+ this._defultValueCount = v.filter((x) => x.value);
33
+ v.forEach((el) => {
34
+ el.property.uniqueNumber = Math.random();
35
+ if (el.value != null) {
36
+ this._filterItems.push({
37
+ name: el.property.name,
38
+ title: el.property.title,
39
+ textValue: this._handleTextValue(el),
40
+ value: el.value ? this._handleDefultVlaue(el) : null,
41
+ component: el
42
+ });
43
+ }
44
+ });
45
+ this._items = _.chain(v)
46
+ .groupBy((x) => x.property.row)
47
+ .map((value, key) => ({ row: key, items: value }))
48
+ .value();
49
+ }
50
+ clearItem(name) {
51
+ this._editors.find((x) => x.property.property.name === name).clear();
52
+ }
53
+ refresh() {
54
+ this._defultValueCount = [];
55
+ this._filterItems = [];
56
+ this._filterItemsClone = [];
57
+ this.items = this._items[0].items;
58
+ }
59
+ handleButtonClick() {
60
+ this.dropdown.toggle();
61
+ }
62
+ async handleValueChange(e) {
63
+ await this._handleInitVlaue(e);
64
+ this.onValueChange.emit(e);
65
+ }
66
+ handleItemRemoveClick(item) {
67
+ this._editors.forEach((e) => {
68
+ if (e.property.property.name == item.name) {
69
+ e.clear();
70
+ }
71
+ });
72
+ this._filterItems = this._filterItems.filter((el) => el.name != item.name);
73
+ }
74
+ search() {
75
+ this.form.validate().then((c) => {
76
+ if (c.result) {
77
+ this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value != null && el.value != '')));
78
+ this.handleButtonClick();
79
+ this.onSearchValue.emit(this._filterItems);
80
+ }
81
+ });
82
+ }
83
+ clear() {
84
+ this._editors.forEach((e) => {
85
+ e.clear();
86
+ });
87
+ this._filterItems = [];
88
+ this._filterItemsClone = [];
89
+ this.handleButtonClick();
90
+ this.onSearchValue.emit(this._filterItems);
91
+ }
92
+ renderCol(e) {
93
+ let className = [];
94
+ if (typeof e == 'number') {
95
+ className.push(`col-${e}`);
96
+ }
97
+ else {
98
+ for (const key in e) {
99
+ switch (key) {
100
+ case 'lg':
101
+ className.push(`col-lg-${e[key]}`);
102
+ break;
103
+ case 'md':
104
+ className.push(`col-md-${e[key]}`);
105
+ break;
106
+ case 'sm':
107
+ className.push(`col-sm-${e[key]}`);
108
+ break;
109
+ case 'xs':
110
+ className.push(`col-xs-${e[key]}`);
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ return className.toString().replace(/,/g, ' ');
116
+ }
117
+ _handleShowTitleSelected(item) {
118
+ if (item.title) {
119
+ return item.title + ':';
120
+ }
121
+ }
122
+ _handleShowValueSelected(item) {
123
+ if (item.component.property.editorClass === 'ax/editors/check') {
124
+ return item.component.property.editorOptions.label;
125
+ }
126
+ else {
127
+ return item.textValue;
128
+ }
129
+ }
130
+ ngOnInit() { }
131
+ ngAfterViewInit() {
132
+ setTimeout(() => {
133
+ if (!this.dropdown.dropdownWidth) {
134
+ this.dropdown.dropdownWidth = '600px';
135
+ }
136
+ });
137
+ }
138
+ _handleTextValue(dataItem) {
139
+ let text = '';
140
+ if (Array.isArray(dataItem.value)) {
141
+ if (dataItem.value.length) {
142
+ dataItem.value.forEach((element, index) => {
143
+ text +=
144
+ index === dataItem.value.length - 1
145
+ ? element[dataItem.property.editorOptions.textField]
146
+ : element[dataItem.property.editorOptions.textField] + ',';
147
+ });
148
+ }
149
+ return text;
150
+ }
151
+ else if (dataItem.property.editorClass === 'ax/editors/date') {
152
+ if (dataItem.value) {
153
+ return new AXDateTime(dataItem.value, 'jalali').format('yyyy/MM/DD');
154
+ }
155
+ else {
156
+ return;
157
+ }
158
+ }
159
+ else {
160
+ return;
161
+ }
162
+ }
163
+ async _handleDefultVlaue(dataItem) {
164
+ await this._handleInitVlaue(dataItem);
165
+ this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value != null && el.value != '')));
166
+ if (this._filterItems.length === this._defultValueCount.length) {
167
+ this.onSearchValue.emit(this._filterItems);
168
+ }
169
+ }
170
+ async _handleInitVlaue(e) {
171
+ let value = [];
172
+ let text = [];
173
+ if (e.property.editorOptions?.valueField && e.value != null) {
174
+ if (e.property.editorOptions.returnAllData) {
175
+ value = e.value;
176
+ text = await this._handleTextValue(e);
177
+ }
178
+ else if (e.property.editorOptions?.mode == 'multiple') {
179
+ e.value.forEach((element) => {
180
+ value.push(element[e.property.editorOptions.valueField]);
181
+ text.push(element[e.property.editorOptions.textField]);
182
+ });
183
+ }
184
+ else {
185
+ if (e.value.length) {
186
+ value = e.value[0][e.property.editorOptions.valueField];
187
+ text = e.value[0][e.property.editorOptions.textField];
188
+ }
189
+ }
190
+ }
191
+ else {
192
+ value = e.value;
193
+ text = e.value;
194
+ }
195
+ const findEl = this._filterItemsClone.find((el) => el.uniqueNumber == e.property.uniqueNumber);
196
+ if (findEl) {
197
+ findEl.value = value;
198
+ findEl.textValue = e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text;
199
+ }
200
+ else if (e.value != null) {
201
+ this._filterItemsClone.push({
202
+ name: e.property.name,
203
+ title: e.property.title,
204
+ uniqueNumber: e.property.uniqueNumber,
205
+ value,
206
+ textValue: e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text,
207
+ component: e,
208
+ filterOptions: {
209
+ filters: e.property?.filterOptions?.filters ? e.property.filterOptions.filters : [],
210
+ logic: e.property?.filterOptions?.logic ? e.property.filterOptions.logic : 'and',
211
+ ignoreCase: e.property?.filterOptions?.ignoreCase ? e.property.filterOptions.ignoreCase : true,
212
+ joinType: e.property?.filterOptions?.joinType ? e.property.filterOptions.joinType : 'INNER',
213
+ operator: e.property?.filterOptions?.operator ? e.property.filterOptions.operator : null,
214
+ truncateDate: e.property?.filterOptions?.truncateDate ? e.property.filterOptions.truncateDate : true
215
+ }
216
+ });
217
+ }
218
+ }
219
+ }
220
+ AXSearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
221
+ AXSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { size: "size", disabled: "disabled", fitParent: "fitParent", dropdownWidth: "dropdownWidth", rtl: "rtl", items: "items" }, outputs: { onValueChange: "onValueChange", onSearchValue: "onSearchValue" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }, { propertyName: "_editors", predicate: AXPropertyEditorRendererDirective, descendants: true }], ngImport: i0, template: "<div>\r\n <ax-drop-down [fitParent]=\"fitParent\" [dropdownWidth]=\"dropdownWidth\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-sliders-h\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\" style=\"direction:rtl;\">\r\n <b>{{_handleShowTitleSelected(item)}}</b> {{_handleShowValueSelected(item)}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <ax-validation-form #form>\r\n <ng-container *ngFor=\"let item of _items\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let prop of item.items\">\r\n <div *ngIf=\"prop.property.visible != false\" class=\"{{renderCol(prop.property.col)}}\">\r\n <div>\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [validationForm]=\"form\"\r\n [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </ax-validation-form>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n </ax-drop-down>\r\n</div>", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"], components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading", "dropdownWidth"], outputs: ["dropdownToggle", "onButtonClick"] }, { type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: ["property", "validationForm", "context", "host", "groupId"], outputs: ["onValueChange"] }], pipes: { "trans": i7.AXTranslatorPipe } });
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, decorators: [{
223
+ type: Component,
224
+ args: [{ selector: 'ax-search-bar', template: "<div>\r\n <ax-drop-down [fitParent]=\"fitParent\" [dropdownWidth]=\"dropdownWidth\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-sliders-h\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\" style=\"direction:rtl;\">\r\n <b>{{_handleShowTitleSelected(item)}}</b> {{_handleShowValueSelected(item)}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <ax-validation-form #form>\r\n <ng-container *ngFor=\"let item of _items\">\r\n <div class=\"row\">\r\n <ng-container *ngFor=\"let prop of item.items\">\r\n <div *ngIf=\"prop.property.visible != false\" class=\"{{renderCol(prop.property.col)}}\">\r\n <div>\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [validationForm]=\"form\"\r\n [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </ax-validation-form>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n </ax-drop-down>\r\n</div>", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"] }]
225
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dropdown: [{
226
+ type: ViewChild,
227
+ args: ['dropdown', { static: true }]
228
+ }], _editors: [{
229
+ type: ViewChildren,
230
+ args: [AXPropertyEditorRendererDirective]
231
+ }], form: [{
232
+ type: ViewChild,
233
+ args: [AXValidationFormComponent]
234
+ }], size: [{
235
+ type: Input
236
+ }], disabled: [{
237
+ type: Input
238
+ }], fitParent: [{
239
+ type: Input
240
+ }], dropdownWidth: [{
241
+ type: Input
242
+ }], rtl: [{
243
+ type: Input
244
+ }], items: [{
245
+ type: Input
246
+ }], onValueChange: [{
247
+ type: Output
248
+ }], onSearchValue: [{
249
+ type: Output
250
+ }] } });
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUxRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7O0FBaUJwRixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLEdBQStCO1FBQS9CLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBTW5ELFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBRzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUczQixrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUdoQyxRQUFHLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQXdCMUMsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RCxrQkFBYSxHQUF5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USxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQzNGLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDeEYsWUFBWSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJO2lCQUNyRzthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7a0hBbE9VLG9CQUFvQjtzR0FBcEIsb0JBQW9CLGlaQUlwQix5QkFBeUIsOERBRHRCLGlDQUFpQyxnREMzQmpELGdxRkFnRE07NEZEeEJPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlO2lHQU1nQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1UsUUFBUTtzQkFBeEQsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBQ1QsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBR3BDLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQXNCTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb25maWcsIEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFYUHJvcGVydHlDb2xEZWYsIEFYUHJvcGVydHlDb25maWcsIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQsIEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJUZXh0SXRlbXNNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxuICB0ZXh0VmFsdWU6IHN0cmluZztcclxuICBmaWx0ZXJPcHRpb25zPzogRmlsdGVyTW9kZWw7XHJcbiAgY29tcG9uZW50OiBBWFByb3BlcnR5Q29uZmlnO1xyXG4gIHVuaXF1ZU51bWJlcj86IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KSB7fVxyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd246IEFYRHJvcGRvd25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZHJlbihBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUpIF9lZGl0b3JzOiBRdWVyeUxpc3Q8QVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlPjtcclxuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBmaXRQYXJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkcm9wZG93bldpZHRoOiBzdHJpbmcgPSAnNjAwcHgnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJ0bDogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaXRlbXModjogQVhQcm9wZXJ0eUNvbmZpZ1tdKSB7XHJcbiAgICB0aGlzLl9kZWZ1bHRWYWx1ZUNvdW50ID0gdi5maWx0ZXIoKHgpID0+IHgudmFsdWUpO1xyXG4gICAgdi5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICBlbC5wcm9wZXJ0eS51bmlxdWVOdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xyXG4gICAgICBpZiAoZWwudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogZWwucHJvcGVydHkubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBlbC5wcm9wZXJ0eS50aXRsZSxcclxuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5faGFuZGxlVGV4dFZhbHVlKGVsKSxcclxuICAgICAgICAgIHZhbHVlOiBlbC52YWx1ZSA/IHRoaXMuX2hhbmRsZURlZnVsdFZsYXVlKGVsKSA6IG51bGwsXHJcbiAgICAgICAgICBjb21wb25lbnQ6IGVsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5faXRlbXMgPSBfLmNoYWluKHYpXHJcbiAgICAgIC5ncm91cEJ5KCh4KSA9PiB4LnByb3BlcnR5LnJvdylcclxuICAgICAgLm1hcCgodmFsdWUsIGtleSkgPT4gKHsgcm93OiBrZXksIGl0ZW1zOiB2YWx1ZSB9KSlcclxuICAgICAgLnZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25TZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPEZpbHRlclRleHRJdGVtc01vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBfaXRlbXM6IGFueVtdID0gW107XHJcbiAgX2ZpbHRlckl0ZW1zOiBGaWx0ZXJUZXh0SXRlbXNNb2RlbFtdID0gW107XHJcbiAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcclxuICBfZGVmdWx0VmFsdWVDb3VudDogYW55ID0gW107XHJcbiAgX2NvbnRleHQ6IGFueSA9IHt9O1xyXG5cclxuICBwdWJsaWMgY2xlYXJJdGVtKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5maW5kKCh4KSA9PiB4LnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT09IG5hbWUpLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuX2RlZnVsdFZhbHVlQ291bnQgPSBbXTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gW107XHJcbiAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lID0gW107XHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy5faXRlbXNbMF0uaXRlbXM7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCdXR0b25DbGljaygpIHtcclxuICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50KSB7XHJcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZSk7XHJcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUl0ZW1SZW1vdmVDbGljayhpdGVtOiBGaWx0ZXJUZXh0SXRlbXNNb2RlbCkge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIGlmIChlLnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT0gaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgZS5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyKChlbCkgPT4gZWwubmFtZSAhPSBpdGVtLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgpIHtcclxuICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oKGMpID0+IHtcclxuICAgICAgaWYgKGMucmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5fZmlsdGVySXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUuZmlsdGVyKChlbCkgPT4gZWwudmFsdWUgIT0gbnVsbCAmJiBlbC52YWx1ZSAhPSAnJykpKTtcclxuICAgICAgICB0aGlzLmhhbmRsZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaFZhbHVlLmVtaXQodGhpcy5fZmlsdGVySXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIGUuY2xlYXIoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBbXTtcclxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUgPSBbXTtcclxuICAgIHRoaXMuaGFuZGxlQnV0dG9uQ2xpY2soKTtcclxuICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNvbChlOiBudW1iZXIgfCBBWFByb3BlcnR5Q29sRGVmKSB7XHJcbiAgICBsZXQgY2xhc3NOYW1lOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKHR5cGVvZiBlID09ICdudW1iZXInKSB7XHJcbiAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtJHtlfWApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZSkge1xyXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbGctJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnbWQnOlxyXG4gICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLW1kLSR7ZVtrZXldfWApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ3NtJzpcclxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1zbS0ke2Vba2V5XX1gKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICd4cyc6XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wteHMtJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNsYXNzTmFtZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJyAnKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVTaG93VGl0bGVTZWxlY3RlZChpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS50aXRsZSkge1xyXG4gICAgICByZXR1cm4gaXRlbS50aXRsZSArICc6JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9oYW5kbGVTaG93VmFsdWVTZWxlY3RlZChpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2NoZWNrJykge1xyXG4gICAgICByZXR1cm4gaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yT3B0aW9ucy5sYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpdGVtLnRleHRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5kcm9wZG93bi5kcm9wZG93bldpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi5kcm9wZG93bldpZHRoID0gJzYwMHB4JztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hhbmRsZVRleHRWYWx1ZShkYXRhSXRlbTogYW55KSB7XHJcbiAgICBsZXQgdGV4dCA9ICcnO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YUl0ZW0udmFsdWUpKSB7XHJcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBkYXRhSXRlbS52YWx1ZS5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgdGV4dCArPVxyXG4gICAgICAgICAgICBpbmRleCA9PT0gZGF0YUl0ZW0udmFsdWUubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudFtkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnRleHRGaWVsZF1cclxuICAgICAgICAgICAgICA6IGVsZW1lbnRbZGF0YUl0ZW0ucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdICsgJywnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZXh0O1xyXG4gICAgfSBlbHNlIGlmIChkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScpIHtcclxuICAgICAgaWYgKGRhdGFJdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGRhdGFJdGVtLnZhbHVlLCAnamFsYWxpJykuZm9ybWF0KCd5eXl5L01NL0REJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVEZWZ1bHRWbGF1ZShkYXRhSXRlbTogYW55KSB7XHJcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZGF0YUl0ZW0pO1xyXG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUuZmlsdGVyKChlbCkgPT4gZWwudmFsdWUgIT0gbnVsbCAmJiBlbC52YWx1ZSAhPSAnJykpKTtcclxuICAgIGlmICh0aGlzLl9maWx0ZXJJdGVtcy5sZW5ndGggPT09IHRoaXMuX2RlZnVsdFZhbHVlQ291bnQubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUluaXRWbGF1ZShlKSB7XHJcbiAgICBsZXQgdmFsdWUgPSBbXTtcclxuICAgIGxldCB0ZXh0OiBhbnkgPSBbXTtcclxuICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnM/LnZhbHVlRmllbGQgJiYgZS52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMucmV0dXJuQWxsRGF0YSkge1xyXG4gICAgICAgIHZhbHVlID0gZS52YWx1ZTtcclxuICAgICAgICB0ZXh0ID0gYXdhaXQgdGhpcy5faGFuZGxlVGV4dFZhbHVlKGUpO1xyXG4gICAgICB9IGVsc2UgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8ubW9kZSA9PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgZS52YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZS5wdXNoKGVsZW1lbnRbZS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnZhbHVlRmllbGRdKTtcclxuICAgICAgICAgIHRleHQucHVzaChlbGVtZW50W2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoZS52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgIHZhbHVlID0gZS52YWx1ZVswXVtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudmFsdWVGaWVsZF07XHJcbiAgICAgICAgICB0ZXh0ID0gZS52YWx1ZVswXVtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudGV4dEZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbHVlID0gZS52YWx1ZTtcclxuICAgICAgdGV4dCA9IGUudmFsdWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaW5kRWwgPSB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbmQoKGVsKSA9PiBlbC51bmlxdWVOdW1iZXIgPT0gZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIpO1xyXG4gICAgaWYgKGZpbmRFbCkge1xyXG4gICAgICBmaW5kRWwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgZmluZEVsLnRleHRWYWx1ZSA9IGUucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2RhdGUnID8gbmV3IEFYRGF0ZVRpbWUodGV4dCwgJ2phbGFsaScpLmZvcm1hdCgneXl5eS9NTS9ERCcpIDogdGV4dDtcclxuICAgIH0gZWxzZSBpZiAoZS52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUucHVzaCh7XHJcbiAgICAgICAgbmFtZTogZS5wcm9wZXJ0eS5uYW1lLFxyXG4gICAgICAgIHRpdGxlOiBlLnByb3BlcnR5LnRpdGxlLFxyXG4gICAgICAgIHVuaXF1ZU51bWJlcjogZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIsXHJcbiAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgdGV4dFZhbHVlOiBlLnByb3BlcnR5LmVkaXRvckNsYXNzID09PSAnYXgvZWRpdG9ycy9kYXRlJyA/IG5ldyBBWERhdGVUaW1lKHRleHQsICdqYWxhbGknKS5mb3JtYXQoJ3l5eXkvTU0vREQnKSA6IHRleHQsXHJcbiAgICAgICAgY29tcG9uZW50OiBlLFxyXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcclxuICAgICAgICAgIGZpbHRlcnM6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmZpbHRlcnMgPyBlLnByb3BlcnR5LmZpbHRlck9wdGlvbnMuZmlsdGVycyA6IFtdLFxyXG4gICAgICAgICAgbG9naWM6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmxvZ2ljID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmxvZ2ljIDogJ2FuZCcsXHJcbiAgICAgICAgICBpZ25vcmVDYXNlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5pZ25vcmVDYXNlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmlnbm9yZUNhc2UgOiB0cnVlLFxyXG4gICAgICAgICAgam9pblR5cGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LmpvaW5UeXBlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmpvaW5UeXBlIDogJ0lOTkVSJyxcclxuICAgICAgICAgIG9wZXJhdG9yOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5vcGVyYXRvciA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy5vcGVyYXRvciA6IG51bGwsXHJcbiAgICAgICAgICB0cnVuY2F0ZURhdGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LnRydW5jYXRlRGF0ZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy50cnVuY2F0ZURhdGUgOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICAgIDxheC1kcm9wLWRvd24gW2ZpdFBhcmVudF09XCJmaXRQYXJlbnRcIiBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoXCIgW3NpemVdPVwic2l6ZVwiIFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgIGljb249XCJmYXIgZmEtc2xpZGVycy1oXCIgI2Ryb3Bkb3duIG1heEhlaWdodD1cInVuc2V0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBzdGFydD5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheCBjaGlwcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9maWx0ZXJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcHMtdGV4dFwiIHN0eWxlPVwiZGlyZWN0aW9uOnJ0bDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3tfaGFuZGxlU2hvd1RpdGxlU2VsZWN0ZWQoaXRlbSl9fTwvYj4ge3tfaGFuZGxlU2hvd1ZhbHVlU2VsZWN0ZWQoaXRlbSl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIiAoY2xpY2spPVwiaGFuZGxlSXRlbVJlbW92ZUNsaWNrKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgcGFuZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib3hcIj5cclxuICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLWZvcm0gI2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcCBvZiBpdGVtLml0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3AucHJvcGVydHkudmlzaWJsZSAhPSBmYWxzZVwiIGNsYXNzPVwie3tyZW5kZXJDb2wocHJvcC5wcm9wZXJ0eS5jb2wpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e3Byb3AucHJvcGVydHkudGl0bGV9fTwvYXgtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbdmFsaWRhdGlvbkZvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5XT1cInByb3BcIiBbY29udGV4dF09XCJfY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZWFyY2goKVwiPnt7J2NvbW1vbi5zZWFyY2gnIHwgdHJhbnN9fTwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJibGFuayBkYW5nZXJcIiAoY2xpY2spPVwiY2xlYXIoKVwiPnt7J2RhdGFHcmlkLmNsZWFyRmlsdGVyJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbi1mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyIGVuZD5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBlbmQgaWNvbj1cImZhciBmYS1zbGlkZXJzLWggaWNvblwiIHR5cGU9XCJsaWdodCBibGFua1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIj57eydjb21tb24uc2VhcmNoJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L2F4LWRyb3AtZG93bj5cclxuPC9kaXY+Il19
@@ -0,0 +1,28 @@
1
+ import { AXTranslatorModule } from '@acorex/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { AXButtonModule } from '../button/button.module';
6
+ import { AXDropdownModule } from '../dropdown/dropdown.module';
7
+ import { AXFormGroupModule } from '../form-group/form-group.module';
8
+ import { AXLabelModule } from '../label/label.module';
9
+ import { AXProppertyEditorModule } from '../property-editor/property-editor.module';
10
+ import { AXTextBoxModule } from '../textbox/textbox.module';
11
+ import { AXValidationModule } from '../validation/validation.module';
12
+ import { AXSearchBarComponent } from './search-bar.component';
13
+ import * as i0 from "@angular/core";
14
+ export class AXSearchBarModule {
15
+ }
16
+ AXSearchBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ AXSearchBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarModule, declarations: [AXSearchBarComponent], imports: [CommonModule, FormsModule, AXDropdownModule, AXButtonModule, AXTextBoxModule, AXProppertyEditorModule, AXFormGroupModule, AXLabelModule, AXTranslatorModule, AXValidationModule], exports: [AXSearchBarComponent] });
18
+ AXSearchBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarModule, providers: [], imports: [[CommonModule, FormsModule, AXDropdownModule, AXButtonModule, AXTextBoxModule, AXProppertyEditorModule, AXFormGroupModule, AXLabelModule, AXTranslatorModule, AXValidationModule]] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [AXSearchBarComponent],
23
+ imports: [CommonModule, FormsModule, AXDropdownModule, AXButtonModule, AXTextBoxModule, AXProppertyEditorModule, AXFormGroupModule, AXLabelModule, AXTranslatorModule, AXValidationModule],
24
+ exports: [AXSearchBarComponent],
25
+ providers: [],
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFROUQsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQUxYLG9CQUFvQixhQUN6QixZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFDLGtCQUFrQixhQUM5SyxvQkFBb0I7Z0hBR3JCLGlCQUFpQixhQUZmLEVBQUUsWUFGSixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUMsa0JBQWtCLENBQUM7NEZBSWhMLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxrQkFBa0IsQ0FBQztvQkFDekwsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYRm9ybUdyb3VwTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1ncm91cC9mb3JtLWdyb3VwLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICcuLi9sYWJlbC9sYWJlbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFByb3BwZXJ0eUVkaXRvck1vZHVsZSB9IGZyb20gJy4uL3Byb3BlcnR5LWVkaXRvci9wcm9wZXJ0eS1lZGl0b3IubW9kdWxlJztcclxuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFNlYXJjaEJhckNvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWJhci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0FYU2VhcmNoQmFyQ29tcG9uZW50XSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWERyb3Bkb3duTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhUZXh0Qm94TW9kdWxlLCBBWFByb3BwZXJ0eUVkaXRvck1vZHVsZSwgQVhGb3JtR3JvdXBNb2R1bGUsIEFYTGFiZWxNb2R1bGUsIEFYVHJhbnNsYXRvck1vZHVsZSxBWFZhbGlkYXRpb25Nb2R1bGVdLFxyXG4gICAgZXhwb3J0czogW0FYU2VhcmNoQmFyQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJhck1vZHVsZSB7IH1cclxuIl19