ngx-techlify-core 18.60.0 → 18.62.0
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.
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +4 -1
- package/esm2022/lib/base-model/techlify-list-component.mjs +6 -2
- package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +2 -2
- package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +3 -3
- package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +2 -2
- package/esm2022/lib/tag/tag.service.mjs +18 -0
- package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +85 -0
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +15 -0
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +266 -0
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +38 -0
- package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +75 -0
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +181 -0
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +46 -0
- package/esm2022/lib/validators/date.validator.mjs +31 -0
- package/esm2022/public-api.mjs +12 -6
- package/fesm2022/ngx-techlify-core.mjs +283 -127
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +1 -1
- package/lib/entity-files/entity-files-view-all.component.d.ts +1 -1
- package/lib/entity-files/entity-files-view-all.module.d.ts +1 -1
- package/lib/tag/tag.service.d.ts +8 -0
- package/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.d.ts +22 -0
- package/lib/{techlify-tagger-tag-form-field → tag/techlify-tagger-tag-form-field}/techlify-tagger-tag-form-field.component.d.ts +1 -1
- package/lib/{techlify-tagger-tag-form-field → tag/techlify-tagger-tag-form-field}/techlify-tagger-tag-form-field.module.d.ts +1 -1
- package/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.d.ts +15 -0
- package/lib/{techlify-tagger-tag-selector → tag/techlify-tagger-tag-selector}/techlify-tagger-tag-selector.component.d.ts +1 -1
- package/lib/{techlify-tagger-tag-selector → tag/techlify-tagger-tag-selector}/techlify-tagger-tag-selector.module.d.ts +2 -2
- package/lib/validators/date.validator.d.ts +6 -0
- package/package.json +1 -1
- package/public-api.d.ts +9 -5
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +0 -15
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +0 -266
- package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +0 -38
- package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +0 -181
- package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +0 -46
- /package/lib/{techlify-tagger-tag-form-field → tag/techlify-tagger-tag-form-field}/techlify-tagger-tag-form-config.model.d.ts +0 -0
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
var TechlifyTaggerTagSelectorComponent_1;
|
|
2
|
-
import { __decorate } from "tslib";
|
|
3
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { Component, Input, Inject, Optional, Self } from '@angular/core';
|
|
5
|
-
import { UntypedFormControl } from '@angular/forms';
|
|
6
|
-
import { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
|
|
7
|
-
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/cdk/a11y";
|
|
11
|
-
import * as i2 from "../core/http.service";
|
|
12
|
-
import * as i3 from "@angular/forms";
|
|
13
|
-
import * as i4 from "@angular/common";
|
|
14
|
-
import * as i5 from "@angular/material/button-toggle";
|
|
15
|
-
import * as i6 from "../searchable-selector/searchable-selector.component";
|
|
16
|
-
import * as i7 from "@angular/material/form-field";
|
|
17
|
-
let TechlifyTaggerTagSelectorComponent = class TechlifyTaggerTagSelectorComponent {
|
|
18
|
-
static { TechlifyTaggerTagSelectorComponent_1 = this; }
|
|
19
|
-
static { this.nextId = 0; }
|
|
20
|
-
get apiUrl() {
|
|
21
|
-
if (this.showAllTags) {
|
|
22
|
-
return 'api/techlify-tagger-tags';
|
|
23
|
-
}
|
|
24
|
-
else if (this.categories?.length > 0) {
|
|
25
|
-
return 'api/techlify-tagger-tags?categories=' + this.categories.join(',');
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return '';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//Default Getter and Setters for a Form Field Implementation
|
|
32
|
-
get empty() {
|
|
33
|
-
return this.value.length == 0;
|
|
34
|
-
}
|
|
35
|
-
get shouldLabelFloat() {
|
|
36
|
-
return this.focused || !this.empty;
|
|
37
|
-
}
|
|
38
|
-
get required() {
|
|
39
|
-
return this._required;
|
|
40
|
-
}
|
|
41
|
-
set required(value) {
|
|
42
|
-
this._required = coerceBooleanProperty(value);
|
|
43
|
-
this.stateChanges.next();
|
|
44
|
-
}
|
|
45
|
-
get disabled() {
|
|
46
|
-
return this._disabled;
|
|
47
|
-
}
|
|
48
|
-
set disabled(value) {
|
|
49
|
-
this._disabled = coerceBooleanProperty(value);
|
|
50
|
-
this._disabled ? this.tagSelectorCtrl.disable() : this.tagSelectorCtrl.enable();
|
|
51
|
-
this.stateChanges.next();
|
|
52
|
-
}
|
|
53
|
-
get value() {
|
|
54
|
-
return this._value;
|
|
55
|
-
}
|
|
56
|
-
set value(val) {
|
|
57
|
-
this._value = val;
|
|
58
|
-
this.tagSelectorCtrl.setValue(val);
|
|
59
|
-
this.stateChanges.next();
|
|
60
|
-
}
|
|
61
|
-
get errorState() {
|
|
62
|
-
return this.tagSelectorCtrl.dirty && this.required && (this.value.length == 0);
|
|
63
|
-
}
|
|
64
|
-
get placeholder() {
|
|
65
|
-
return this._placeholder;
|
|
66
|
-
}
|
|
67
|
-
set placeholder(value) {
|
|
68
|
-
this._placeholder = value;
|
|
69
|
-
this.stateChanges.next();
|
|
70
|
-
}
|
|
71
|
-
ngOnInit() {
|
|
72
|
-
if (this.useSelectButtonStyle) {
|
|
73
|
-
this.httpService.get(this.apiUrl)
|
|
74
|
-
.pipe(untilDestroyed(this))
|
|
75
|
-
.subscribe((res) => {
|
|
76
|
-
this.tags = res.data;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
selectionChange(value) {
|
|
81
|
-
this.value = value;
|
|
82
|
-
this._handleInput();
|
|
83
|
-
}
|
|
84
|
-
constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
|
|
85
|
-
this._focusMonitor = _focusMonitor;
|
|
86
|
-
this._elementRef = _elementRef;
|
|
87
|
-
this.httpService = httpService;
|
|
88
|
-
this._formField = _formField;
|
|
89
|
-
this.ngControl = ngControl;
|
|
90
|
-
/**Pass the Categories to filter for a model */
|
|
91
|
-
this.categories = [];
|
|
92
|
-
this.multiple = false;
|
|
93
|
-
this.enableSearch = true;
|
|
94
|
-
this.tagSelectorCtrl = new UntypedFormControl();
|
|
95
|
-
this.showAllTags = false;
|
|
96
|
-
this.useSelectButtonStyle = false;
|
|
97
|
-
this.tags = [];
|
|
98
|
-
this.stateChanges = new Subject();
|
|
99
|
-
this.focused = false;
|
|
100
|
-
this.controlType = 'techlify-tagger-selector';
|
|
101
|
-
this.id = `techlify-tagger-selector-${TechlifyTaggerTagSelectorComponent_1.nextId++}`;
|
|
102
|
-
this.onChange = (_) => { };
|
|
103
|
-
this.onTouched = () => { };
|
|
104
|
-
this._required = false;
|
|
105
|
-
this._disabled = false;
|
|
106
|
-
//Set Focus Monitor
|
|
107
|
-
_focusMonitor.monitor(_elementRef, true).subscribe(origin => {
|
|
108
|
-
if (this.focused && !origin) {
|
|
109
|
-
this.onTouched();
|
|
110
|
-
}
|
|
111
|
-
this.focused = !!origin;
|
|
112
|
-
this.stateChanges.next();
|
|
113
|
-
});
|
|
114
|
-
if (this.ngControl != null) {
|
|
115
|
-
this.ngControl.valueAccessor = this;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
setDescribedByIds(ids) {
|
|
119
|
-
// Just a empty implementation for Mat Form Field Interface
|
|
120
|
-
}
|
|
121
|
-
onContainerClick() {
|
|
122
|
-
// Just a empty implementation for Mat Form Field Interface
|
|
123
|
-
}
|
|
124
|
-
writeValue(val) {
|
|
125
|
-
this.value = val;
|
|
126
|
-
}
|
|
127
|
-
registerOnChange(fn) {
|
|
128
|
-
this.onChange = fn;
|
|
129
|
-
}
|
|
130
|
-
registerOnTouched(fn) {
|
|
131
|
-
this.onTouched = fn;
|
|
132
|
-
}
|
|
133
|
-
setDisabledState(isDisabled) {
|
|
134
|
-
this.disabled = isDisabled;
|
|
135
|
-
}
|
|
136
|
-
_handleInput() {
|
|
137
|
-
this.onChange(this.value);
|
|
138
|
-
}
|
|
139
|
-
ngOnDestroy() {
|
|
140
|
-
this.stateChanges.complete();
|
|
141
|
-
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
142
|
-
}
|
|
143
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyTaggerTagSelectorComponent, selector: "app-techlify-tagger-tag-selector", inputs: { categories: "categories", multiple: "multiple", enableSearch: "enableSearch", showAllTags: "showAllTags", useSelectButtonStyle: "useSelectButtonStyle", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], ngImport: i0, template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\n</app-searchable-selector>\n\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\n (change)=\"selectionChange($event.value)\">\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\n</mat-button-toggle-group>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] }); }
|
|
145
|
-
};
|
|
146
|
-
TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = __decorate([
|
|
147
|
-
UntilDestroy()
|
|
148
|
-
], TechlifyTaggerTagSelectorComponent);
|
|
149
|
-
export { TechlifyTaggerTagSelectorComponent };
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, decorators: [{
|
|
151
|
-
type: Component,
|
|
152
|
-
args: [{ selector: 'app-techlify-tagger-tag-selector', providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\n</app-searchable-selector>\n\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\n (change)=\"selectionChange($event.value)\">\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\n</mat-button-toggle-group>" }]
|
|
153
|
-
}], ctorParameters: () => [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.HttpService }, { type: i7.MatFormField, decorators: [{
|
|
154
|
-
type: Optional
|
|
155
|
-
}, {
|
|
156
|
-
type: Inject,
|
|
157
|
-
args: [MAT_FORM_FIELD]
|
|
158
|
-
}] }, { type: i3.NgControl, decorators: [{
|
|
159
|
-
type: Optional
|
|
160
|
-
}, {
|
|
161
|
-
type: Self
|
|
162
|
-
}] }], propDecorators: { categories: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], multiple: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], enableSearch: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], showAllTags: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], useSelectButtonStyle: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], required: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], disabled: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], value: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], placeholder: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFzQixLQUFLLEVBQWEsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF3QixrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFXeEIsSUFBTSxrQ0FBa0MsR0FBeEMsTUFBTSxrQ0FBa0M7O2FBWXRDLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQVNsQixJQUFJLE1BQU07UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLDBCQUEwQixDQUFBO1FBQ25DLENBQUM7YUFDSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxD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RUFBRSxDQUFDOzswQkErRzNGLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLFFBQVE7OzBCQUFJLElBQUk7eUNBM0dWLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQW1DRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRGb3JtRmllbGRDb250cm9sLCBNQVRfRk9STV9GSUVMRCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS10YWdnZXItdGFnLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTWF0Rm9ybUZpZWxkQ29udHJvbDxhbnk+LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlBhc3MgdGhlIENhdGVnb3JpZXMgdG8gZmlsdGVyIGZvciBhIG1vZGVsICovXG4gIEBJbnB1dCgpIGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaDogYm9vbGVhbiA9IHRydWU7XG4gIHRhZ1NlbGVjdG9yQ3RybCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgQElucHV0KCkgc2hvd0FsbFRhZ3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlU2VsZWN0QnV0dG9uU3R5bGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0YWdzOiBhbnlbXSA9IFtdO1xuXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIGNvbnRyb2xUeXBlID0gJ3RlY2hsaWZ5LXRhZ2dlci1zZWxlY3Rvcic7XG4gIGlkID0gYHRlY2hsaWZ5LXRhZ2dlci1zZWxlY3Rvci0ke1RlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuXG4gIGdldCBhcGlVcmwoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0FsbFRhZ3MpIHtcbiAgICAgIHJldHVybiAnYXBpL3RlY2hsaWZ5LXRhZ2dlci10YWdzJ1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLmNhdGVnb3JpZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAnYXBpL3RlY2hsaWZ5LXRhZ2dlci10YWdzP2NhdGVnb3JpZXM9JyArIHRoaXMuY2F0ZWdvcmllcy5qb2luKCcsJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vRGVmYXVsdCBHZXR0ZXIgYW5kIFNldHRlcnMgZm9yIGEgRm9ybSBGaWVsZCBJbXBsZW1lbnRhdGlvblxuICBnZXQgZW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoID09IDA7XG4gIH1cblxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXNhYmxlKCkgOiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5lbmFibGUoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5zZXRWYWx1ZSh2YWwpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VTZWxlY3RCdXR0b25TdHlsZSkge1xuICAgICAgdGhpcy5odHRwU2VydmljZS5nZXQodGhpcy5hcGlVcmwpXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudGFncyA9IHJlcy5kYXRhO1xuICAgICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX2hhbmRsZUlucHV0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwdWJsaWMgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XG5cbiAgICAvL1NldCBGb2N1cyBNb25pdG9yXG4gICAgX2ZvY3VzTW9uaXRvci5tb25pdG9yKF9lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcbiAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIW9yaWdpbikge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXG4gIH1cblxuICBvbkNvbnRhaW5lckNsaWNrKCkge1xuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBfaGFuZGxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVxdWlyZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKTtcbiAgfVxuXG59XG4iLCI8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgKm5nSWY9XCJhcGlVcmwgJiYgIXVzZVNlbGVjdEJ1dHRvblN0eWxlXCIgW2Zvcm1Db250cm9sXT1cInRhZ1NlbGVjdG9yQ3RybFwiIFthcGlVcmxdPVwiYXBpVXJsXCJcbiAgICBbZW5hYmxlU2VhcmNoXT1cImVuYWJsZVNlYXJjaFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG5cbjxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCIgW2hpZGVNdWx0aXBsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgICAqbmdJZj1cImFwaVVybCAmJiB1c2VTZWxlY3RCdXR0b25TdHlsZVwiIFtmb3JtQ29udHJvbF09XCJ0YWdTZWxlY3RvckN0cmxcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIChjaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSlcIj5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzXCIgW3ZhbHVlXT1cInRhZy5pZFwiPnt7dGFnLnRpdGxlfX08L21hdC1idXR0b24tdG9nZ2xlPlxuPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { TechlifyTaggerTagSelectorComponent } from './techlify-tagger-tag-selector.component';
|
|
4
|
-
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
-
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
8
|
-
import { MaterialModule } from '../material.module';
|
|
9
|
-
import { SearchableSelectorModule } from '../searchable-selector/searchable-selector.module';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class TechlifyTaggerTagSelectorModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, declarations: [TechlifyTaggerTagSelectorComponent], imports: [CommonModule,
|
|
14
|
-
MaterialModule,
|
|
15
|
-
FlexLayoutModule,
|
|
16
|
-
MatAutocompleteModule,
|
|
17
|
-
ReactiveFormsModule,
|
|
18
|
-
SearchableSelectorModule,
|
|
19
|
-
MatButtonToggleModule], exports: [TechlifyTaggerTagSelectorComponent] }); }
|
|
20
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, imports: [CommonModule,
|
|
21
|
-
MaterialModule,
|
|
22
|
-
FlexLayoutModule,
|
|
23
|
-
MatAutocompleteModule,
|
|
24
|
-
ReactiveFormsModule,
|
|
25
|
-
SearchableSelectorModule,
|
|
26
|
-
MatButtonToggleModule] }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, decorators: [{
|
|
29
|
-
type: NgModule,
|
|
30
|
-
args: [{
|
|
31
|
-
declarations: [
|
|
32
|
-
TechlifyTaggerTagSelectorComponent
|
|
33
|
-
],
|
|
34
|
-
imports: [
|
|
35
|
-
CommonModule,
|
|
36
|
-
MaterialModule,
|
|
37
|
-
FlexLayoutModule,
|
|
38
|
-
MatAutocompleteModule,
|
|
39
|
-
ReactiveFormsModule,
|
|
40
|
-
SearchableSelectorModule,
|
|
41
|
-
MatButtonToggleModule
|
|
42
|
-
],
|
|
43
|
-
exports: [TechlifyTaggerTagSelectorComponent]
|
|
44
|
-
}]
|
|
45
|
-
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQW1CN0YsTUFBTSxPQUFPLCtCQUErQjsrR0FBL0IsK0JBQStCO2dIQUEvQiwrQkFBK0IsaUJBYnhDLGtDQUFrQyxhQUdsQyxZQUFZO1lBQ1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixxQkFBcUIsYUFFYixrQ0FBa0M7Z0hBRWpDLCtCQUErQixZQVZ4QyxZQUFZO1lBQ1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixxQkFBcUI7OzRGQUlaLCtCQUErQjtrQkFmM0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osa0NBQWtDO3FCQUNuQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgU2VhcmNoYWJsZVNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi4vc2VhcmNoYWJsZS1zZWxlY3Rvci9zZWFyY2hhYmxlLXNlbGVjdG9yLm1vZHVsZSc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yTW9kdWxlIHsgfVxuIl19
|