@c8y/ngx-components 1021.54.10 → 1021.54.11
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/datapoint-selector/datapoint-library.service.d.ts +2 -2
- package/datapoint-selector/datapoint-library.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts +5 -0
- package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts +13 -2
- package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts +2 -0
- package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selector.component.d.ts +11 -1
- package/datapoint-selector/datapoint-selector.component.d.ts.map +1 -1
- package/esm2022/datapoint-selector/datapoint-library.service.mjs +11 -6
- package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +5 -3
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +12 -6
- package/esm2022/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.mjs +5 -3
- package/esm2022/datapoint-selector/datapoint-selector.component.mjs +22 -5
- package/esm2022/upgrade/ng1/downgraded.services.mjs +3 -1
- package/esm2022/upgrade/ng1/index.mjs +4 -3
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +49 -19
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +4 -2
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/locales/de.po +6 -6
- package/locales/fr.po +7 -7
- package/locales/ja_JP.po +222 -171
- package/locales/locales.pot +12 -3
- package/package.json +1 -1
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
- package/upgrade/ng1/index.d.ts.map +1 -1
|
@@ -12,13 +12,18 @@ import * as i4 from "ngx-bootstrap/tooltip";
|
|
|
12
12
|
import * as i5 from "ngx-bootstrap/popover";
|
|
13
13
|
import * as i6 from "../datapoint-template-popover/datapoint-template-popover.component";
|
|
14
14
|
import * as i7 from "../datapoint-attributes-form/datapoint-attributes-form.component";
|
|
15
|
+
export const AddButtonTypes = {
|
|
16
|
+
none: 'none',
|
|
17
|
+
addRemove: 'add-remove',
|
|
18
|
+
select: 'select'
|
|
19
|
+
};
|
|
15
20
|
export class DatapointSelectorListItemComponent {
|
|
16
21
|
constructor(formBuilder) {
|
|
17
22
|
this.formBuilder = formBuilder;
|
|
18
23
|
this.defaultFormOptions = {};
|
|
19
24
|
this.isSelected = false;
|
|
20
25
|
this.isCollapsed = true;
|
|
21
|
-
this.
|
|
26
|
+
this.addButtonType = AddButtonTypes.addRemove;
|
|
22
27
|
this.editable = true;
|
|
23
28
|
this.showActiveToggle = false;
|
|
24
29
|
this.activeToggleDisabled = false;
|
|
@@ -31,6 +36,7 @@ export class DatapointSelectorListItemComponent {
|
|
|
31
36
|
this.colorPickerDisabled = true;
|
|
32
37
|
this.disableTypeaheadIfSelected = false;
|
|
33
38
|
this.pattern = '';
|
|
39
|
+
this.AddButtonTypes = AddButtonTypes;
|
|
34
40
|
this.formGroup = this.formBuilder.group({
|
|
35
41
|
details: [],
|
|
36
42
|
color: [],
|
|
@@ -153,7 +159,7 @@ export class DatapointSelectorListItemComponent {
|
|
|
153
159
|
return obj;
|
|
154
160
|
}
|
|
155
161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorListItemComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: { defaultFormOptions: "defaultFormOptions", isSelected: "isSelected", isCollapsed: "isCollapsed",
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: { defaultFormOptions: "defaultFormOptions", isSelected: "isSelected", isCollapsed: "isCollapsed", addButtonType: "addButtonType", editable: "editable", showActiveToggle: "showActiveToggle", activeToggleDisabled: "activeToggleDisabled", showOptions: "showOptions", datapointLibraryEntries: "datapointLibraryEntries", actions: "actions", optionToRemove: "optionToRemove", hasUnlinkTemplateOption: "hasUnlinkTemplateOption", colorPickerDisabled: "colorPickerDisabled", disableTypeaheadIfSelected: "disableTypeaheadIfSelected", highlightText: "highlightText" }, outputs: { added: "added", removed: "removed" }, providers: [
|
|
157
163
|
{
|
|
158
164
|
provide: NG_VALUE_ACCESSOR,
|
|
159
165
|
useExisting: forwardRef(() => DatapointSelectorListItemComponent),
|
|
@@ -164,7 +170,7 @@ export class DatapointSelectorListItemComponent {
|
|
|
164
170
|
useExisting: forwardRef(() => DatapointSelectorListItemComponent),
|
|
165
171
|
multi: true
|
|
166
172
|
}
|
|
167
|
-
], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center \">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-4\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group form-group-sm\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label>\n {{ 'Data point template' | translate }} \n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n ></button>\n </label>\n \n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"input-group input-group-sm\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n [delay]=\"500\"\n placement=\"left\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i6.DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: i7.DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["selectableChartRenderTypes", "selectableChartLineTypes", "selectableAxisTypes", "showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
173
|
+
], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center \">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-4\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"addButtonType === AddButtonTypes.addRemove\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n <button\n *ngIf=\"addButtonType === AddButtonTypes.select\"\n class=\"btn btn-default btn-sm m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Select' | translate\"\n [tooltip]=\"'Select data point' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >{{ 'Select' | translate }}</button>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse *ngIf=\"editable\">\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group form-group-sm\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label>\n {{ 'Data point template' | translate }} \n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n ></button>\n </label>\n \n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"input-group input-group-sm\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n [delay]=\"500\"\n placement=\"left\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i6.DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: i7.DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["selectableChartRenderTypes", "selectableChartLineTypes", "selectableAxisTypes", "showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
168
174
|
}
|
|
169
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorListItemComponent, decorators: [{
|
|
170
176
|
type: Component,
|
|
@@ -179,14 +185,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
179
185
|
useExisting: forwardRef(() => DatapointSelectorListItemComponent),
|
|
180
186
|
multi: true
|
|
181
187
|
}
|
|
182
|
-
], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center \">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-4\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"
|
|
188
|
+
], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center \">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-4\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"addButtonType === AddButtonTypes.addRemove\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n <button\n *ngIf=\"addButtonType === AddButtonTypes.select\"\n class=\"btn btn-default btn-sm m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Select' | translate\"\n [tooltip]=\"'Select data point' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >{{ 'Select' | translate }}</button>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse *ngIf=\"editable\">\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group form-group-sm\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label>\n {{ 'Data point template' | translate }} \n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n ></button>\n </label>\n \n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"input-group input-group-sm\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n </div>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n [delay]=\"500\"\n placement=\"left\"\n container=\"body\"\n [adaptivePosition]=\"false\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n" }]
|
|
183
189
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { defaultFormOptions: [{
|
|
184
190
|
type: Input
|
|
185
191
|
}], isSelected: [{
|
|
186
192
|
type: Input
|
|
187
193
|
}], isCollapsed: [{
|
|
188
194
|
type: Input
|
|
189
|
-
}],
|
|
195
|
+
}], addButtonType: [{
|
|
190
196
|
type: Input
|
|
191
197
|
}], editable: [{
|
|
192
198
|
type: Input
|
|
@@ -218,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
218
224
|
type: ContentChild,
|
|
219
225
|
args: [ListItemDragHandleComponent]
|
|
220
226
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtc2VsZWN0b3IvZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFHTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBbUIsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBR0wsMEJBQTBCLEVBRzNCLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQWtCdEMsTUFBTSxPQUFPLGtDQUFrQztJQTBCN0MsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF4Qm5DLHVCQUFrQixHQUEyQyxFQUFFLENBQUM7UUFDaEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JPZkZpbHRlclBpcGUsIExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlQsXG4gIEtQSURldGFpbHMsXG4gIE1hbmFnZWRPYmplY3RLUElcbn0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhcG9pbnRTZWxlY3Rvckxpc3RJdGVtQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb3JtT3B0aW9uczogUGFydGlhbDxEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZz4gPSB7fTtcbiAgQElucHV0KCkgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBZGRSZW1vdmVCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBlZGl0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBY3RpdmVUb2dnbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aXZlVG9nZ2xlRGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0YXBvaW50TGlicmFyeUVudHJpZXM6IE9ic2VydmFibGU8SVJlc3VsdExpc3Q8TWFuYWdlZE9iamVjdEtQST4+O1xuICBASW5wdXQoKSBhY3Rpb25zOiBEYXRhcG9pbnRBY3Rpb25bXSA9IFtdO1xuICBASW5wdXQoKSBvcHRpb25Ub1JlbW92ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNVbmxpbmtUZW1wbGF0ZU9wdGlvbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEtQSURldGFpbHM+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxLUElEZXRhaWxzPigpO1xuICBASW5wdXQoKSBjb2xvclBpY2tlckRpc2FibGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzYWJsZVR5cGVhaGVhZElmU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0VGV4dDogc3RyaW5nO1xuICBAQ29udGVudENoaWxkKExpc3RJdGVtRHJhZ0hhbmRsZUNvbXBvbmVudCkgZHJhZ0hhbmRsZTogTGlzdEl0ZW1EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHBhdHRlcm4gPSAnJztcbiAgZmlsdGVyUGlwZTogRm9yT2ZGaWx0ZXJQaXBlPE1hbmFnZWRPYmplY3RLUEk+O1xuICBpc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZGV0YWlsczogW10sXG4gICAgICBjb2xvcjogW10sXG4gICAgICBfX2FjdGl2ZTogW10sXG4gICAgICBfX3RhcmdldDogW10sXG4gICAgICBmcmFnbWVudDogW10sXG4gICAgICBzZXJpZXM6IFtdLFxuICAgICAgX190ZW1wbGF0ZTogW11cbiAgICB9KTtcbiAgICB0aGlzLmlzVmFsaWQkID0gdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdWQUxJRCcpLFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLnZhbGlkKVxuICAgICk7XG4gIH1cblxuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwPy5pbnZhbGlkKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV07XG4gICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBjb250cm9sLmVycm9ycztcbiAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKVswXS5tZXNzYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cD8udmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgLi4ub2JqLCBkZXRhaWxzOiBvYmogfSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShtYXAodG1wID0+IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRtcCkpKS5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmbik7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXA/LmRpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgfVxuXG4gIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIGFkZE9yUmVtb3ZlSXRlbSgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkZWQuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KHRoaXMudHJhbnNmb3JtRm9ybVZhbHVlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoKGRhdGE6IE1hbmFnZWRPYmplY3RLUElbXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJEYXRhcG9pbnRMYWJlbChkYXRhLCBmaWx0ZXJTdHIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdW5saW5rRGF0YXBvaW50VGVtcGxhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlLmRldGFpbHMgfHwge307XG4gICAgdGhpcy5yZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlscyk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7IF9fdGVtcGxhdGU6IHVuZGVmaW5lZCwgZGV0YWlscyB9KTtcbiAgfVxuXG4gIGRhdGFQb2ludFRlbXBsYXRlU2VsZWN0ZWQodGVtcGxhdGU6IE1hbmFnZWRPYmplY3RLUEkpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzVG9Bc3NpZ246IEFycmF5PGtleW9mIEtQSURldGFpbHM+ID0gW1xuICAgICAgJ2NvbG9yJyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnbWluJyxcbiAgICAgICdtYXgnLFxuICAgICAgJ3llbGxvd1JhbmdlTWF4JyxcbiAgICAgICd5ZWxsb3dSYW5nZU1pbicsXG4gICAgICAncmVkUmFuZ2VNYXgnLFxuICAgICAgJ3JlZFJhbmdlTWluJyxcbiAgICAgICd0YXJnZXQnLFxuICAgICAgJ29yaWVudGF0aW9uJyxcbiAgICAgICd1bml0J1xuICAgIF07XG4gICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzLCBfX3RhcmdldCwgX19hY3RpdmUgfSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xuICAgIGNvbnN0IGRhdGFQb2ludDogS1BJRGV0YWlscyA9IHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgc2VyaWVzLFxuICAgICAgX19hY3RpdmUsXG4gICAgICBfX3RhcmdldCxcbiAgICAgIF9fdGVtcGxhdGU6IHRlbXBsYXRlLmlkXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzVG9Bc3NpZ24pIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGVtcGxhdGVbREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdW2F0dHJpYnV0ZV07XG4gICAgICBkYXRhUG9pbnRbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgICB0aGlzLndyaXRlVmFsdWUoZGF0YVBvaW50KTtcbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFVudXNlZFByb3BlcnRpZXMoZGV0YWlsczogUGFydGlhbDxLUElEZXRhaWxzPik6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvd1RhcmdldCwgc2hvd1llbGxvd1JhbmdlLCBzaG93UmVkUmFuZ2UgfSA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICAgIGRldGFpbHMuX190ZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXNob3dUYXJnZXQpIHtcbiAgICAgIGRldGFpbHMudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXNob3dZZWxsb3dSYW5nZSkge1xuICAgICAgZGV0YWlscy55ZWxsb3dSYW5nZU1pbiA9IHVuZGVmaW5lZDtcbiAgICAgIGRldGFpbHMueWVsbG93UmFuZ2VNYXggPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghc2hvd1JlZFJhbmdlKSB7XG4gICAgICBkZXRhaWxzLnJlZFJhbmdlTWluID0gdW5kZWZpbmVkO1xuICAgICAgZGV0YWlscy5yZWRSYW5nZU1heCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckRhdGFwb2ludExhYmVsKGtwaXM6IE1hbmFnZWRPYmplY3RLUElbXSwgZmlsdGVyU3RyOiBzdHJpbmcpOiBNYW5hZ2VkT2JqZWN0S1BJW10ge1xuICAgIHJldHVybiBrcGlzLmZpbHRlcihcbiAgICAgIChtbzogTWFuYWdlZE9iamVjdEtQSSkgPT5cbiAgICAgICAgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdICYmXG4gICAgICAgIG1vW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXS5sYWJlbCAmJlxuICAgICAgICB0eXBlb2YgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdLmxhYmVsID09PSAnc3RyaW5nJyAmJlxuICAgICAgICBtb1tEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRm9ybVZhbHVlKGZvcm1WYWx1ZTogYW55KSB7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmFzc2lnbih7fSwgZm9ybVZhbHVlLmRldGFpbHMgfHwge30sIGZvcm1WYWx1ZSk7XG4gICAgZGVsZXRlIG9iai5kZXRhaWxzO1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cbiIsIjxjOHktbGkgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sbGFwc2UtLWNvbnRhaW5lci1zbWFsbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgI2xpPlxuICA8Yzh5LWxpLWRyYWctaGFuZGxlPjxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1saS1kcmFnLWhhbmRsZVwiPjwvbmctY29udGVudD48L2M4eS1saS1kcmFnLWhhbmRsZT5cbiAgPGM4eS1saS1jaGVja2JveFxuICAgIGNsYXNzPVwiYS1zLWNlbnRlciBwLXItMFwiXG4gICAgKm5nSWY9XCJzaG93QWN0aXZlVG9nZ2xlXCJcbiAgICBbZGlzcGxheUFzU3dpdGNoXT1cInRydWVcIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIl9fYWN0aXZlXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPjwvYzh5LWxpLWNoZWNrYm94PlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlciBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC00XCIgW3RpdGxlXT1cIidDaGFuZ2UgY29sb3InIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWNvbG9ycGlja2VyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ29sb3InIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImZvcm1Hcm91cC52YWx1ZS5jb2xvclwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIGRhdGEtcG9pbnQtbGFiZWwgdGV4dC10cnVuY2F0ZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWxpLmNvbGxhcHNlZFwiXG4gICAgICAoY2xpY2spPVwibGkuY29sbGFwc2VkID0gIWxpLmNvbGxhcHNlZFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCIgW3RpdGxlXT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiPlxuICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgIFt0ZXh0XT1cImZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzPy5sYWJlbFwiXG4gICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkIGljb24tZmxleFwiICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0XCI+XG4gICAgICAgIDxpIGM4eUljb249XCJleGNoYW5nZVwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgZm9ybUdyb3VwLnZhbHVlLl9fdGFyZ2V0Lm5hbWUgfX08L3NwYW4+XG4gICAgICA8L3NtYWxsPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCBidG4tZG90LS1kYW5nZXIgbS1sLWF1dG9cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidJbnZhbGlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbcG9wb3Zlcl09XCJcbiAgICAgICAgZXJyb3JNZXNzYWdlXG4gICAgICAgICAgPyBlcnJvck1lc3NhZ2VcbiAgICAgICAgICA6ICgnU29tZSBlbnRyaWVzIGFyZSBpbnZhbGlkLiBDaGVjayB0aGUgaW5wdXQgZmllbGRzIHdpdGggcmVkIGJvcmRlcnMuJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAqbmdJZj1cIiEoaXNWYWxpZCQgfCBhc3luYylcIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJ3YXJuaW5nXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJtLWwtYXV0byBhLXMtY2VudGVyIHAtci00XCIgKm5nSWY9XCJzaG93QWRkUmVtb3ZlQnV0dG9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kb3QgYnRuLWRvdC0tZGFuZ2VyXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9vbHRpcF09XCInUmVtb3ZlIGZyb20gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJhZGRPclJlbW92ZUl0ZW0oKVwiXG4gICAgICAgICpuZ0lmPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLXJlbW92ZS1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbi0yMFwiIGM4eUljb249XCJtaW51cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWRkIHRvIHNlbGVjdGVkIGRhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidBZGQgdG8gc2VsZWN0ZWQgZGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGlzVmFsaWQkIHwgYXN5bmMpXCJcbiAgICAgICAgKGNsaWNrKT1cImFkZE9yUmVtb3ZlSXRlbSgpXCJcbiAgICAgICAgKm5nSWY9XCIhaXNTZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0tLWFkZC1kYXRhcG9pbnQtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwidGV4dC1wcmltYXJ5IGljb24tMjBcIiBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdJZj1cIm9wdGlvblRvUmVtb3ZlXCJcbiAgICBbaWNvbl09XCInbWludXMtY2lyY2xlJ1wiXG4gICAgW2xhYmVsXT1cIidSZW1vdmUgZnJvbSBsaXN0JyB8IHRyYW5zbGF0ZVwiXG4gICAgKGNsaWNrKT1cInJlbW92ZSgpXCJcbiAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPGM4eS1saS1hY3Rpb25cbiAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIlxuICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcbiAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAoY2xpY2spPVwiYWN0aW9uLmNhbGxiYWNrKGZvcm1Hcm91cC52YWx1ZSlcIlxuICA+PC9jOHktbGktYWN0aW9uPlxuICA8Yzh5LWxpLWNvbGxhcHNlPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRhLXBvaW50LWRldGFpbHNcIj5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgc21hbGwgbS1iLTE2XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNtYWxsIG0tYi0wIG0tci04IGEtcy1zdGFydCB0ZXh0LW11dGVkXCIgdHJhbnNsYXRlPkZyYWdtZW50PC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuZnJhZ21lbnRcIlxuICAgICAgICAgICAgICBbcGF0dGVybl09XCJoaWdobGlnaHRUZXh0XCJcbiAgICAgICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInAtdC00IHAtYi00IGQtZmxleCBzZXBhcmF0b3ItYm90dG9tXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgbS1iLTAgbS1yLTggYS1zLXN0YXJ0IHRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+U2VyaWVzPC9sYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJmb3JtR3JvdXAudmFsdWUuc2VyaWVzXCJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaGlnaGxpZ2h0VGV4dFwiXG4gICAgICAgICAgICAgIFtzaG91bGRUcmltUGF0dGVybl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtc21cIlxuICAgICAgICAqbmdJZj1cImRhdGFwb2ludExpYnJhcnlFbnRyaWVzICYmIGRhdGFwb2ludExpYnJhcnlFbnRyaWVzIHwgYXN5bmMgYXMgbGlicmFyeUVudHJpZXNcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWw+XG4gICAgICAgICAge3sgJ0RhdGEgcG9pbnQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19IFxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3BvcG92ZXJdPVwiZGF0YXBvaW50SGludFBvcG92ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICBcblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RhdGFwb2ludEhpbnRQb3BvdmVyVGVtcGxhdGU+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdVc2luZyBhIGRhdGEgcG9pbnQgdGVtcGxhdGUgc2V0cyBjb2xvciwgbGFiZWwsIHVuaXQgYW5kIHJhbmdlcy4gUmVtb3ZpbmcgdGhlIHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gc2V0IHRoZSB2YWx1ZXMgbWFudWFsbHkuJ1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbVwiPlxuICAgICAgICAgIDxjOHktdHlwZWFoZWFkXG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvd1wiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ05vIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmb3JtR3JvdXAudmFsdWUuX190ZW1wbGF0ZSA/IGZvcm1Hcm91cC52YWx1ZS5kZXRhaWxzIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAob25TZWFyY2gpPVwic2V0UGlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNwbGF5UHJvcGVydHldPVwiJ2xhYmVsJ1wiXG4gICAgICAgICAgICBbaGlkZU5ld109XCJ0cnVlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0YXBvaW50TGlicmFyeUVudHJpZXNcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzU2VsZWN0ZWQgJiYgZGlzYWJsZVR5cGVhaGVhZElmU2VsZWN0ZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjOHktbGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGluayBpbnRlcmFjdFwiXG4gICAgICAgICAgICAgICpjOHlGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBkYXRhcG9pbnRMaWJyYXJ5RW50cmllcztcbiAgICAgICAgICAgICAgICBsb2FkTW9yZTogJ2F1dG8nO1xuICAgICAgICAgICAgICAgIHBpcGU6IGZpbHRlclBpcGU7XG4gICAgICAgICAgICAgICAgbm90Rm91bmQ6IG5vdEZvdW5kVGVtcGxhdGVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGFQb2ludFRlbXBsYXRlU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbYWN0aXZlXT1cImZvcm1Hcm91cC52YWx1ZS5fX3RlbXBsYXRlID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCInbWVudWl0ZW0nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGM4eS1oaWdobGlnaHQgW3RleHRdPVwiaXRlbS5jOHlfS3BpPy5sYWJlbFwiIFtwYXR0ZXJuXT1cInBhdHRlcm5cIj48L2M4eS1oaWdobGlnaHQ+XG4gICAgICAgICAgICAgIDxjOHktbGktaWNvbiBpY29uPVwiY2lyY2xlXCIgW3N0eWxlLmNvbG9yXT1cIml0ZW0uYzh5X0twaT8uY29sb3JcIj48L2M4eS1saS1pY29uPlxuICAgICAgICAgICAgPC9jOHktbGk+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdEZvdW5kVGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxjOHktbGkgY2xhc3M9XCJiZy1sZXZlbC0yIHAtOFwiICpuZ0lmPVwicGF0dGVybi5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+Tm8gbWF0Y2ggZm91bmQuPC9zcGFuPlxuICAgICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9jOHktdHlwZWFoZWFkPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSW5mbycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJkYXRhcG9pbnRPdmVydmlld1BvcG92ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInRleHQtaW5mb1wiIGM4eUljb249XCJpbmZvXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICB0b29sdGlwPVwie3sgJ1VubGluayBkYXRhIHBvaW50IHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1VubGluayBkYXRhIHBvaW50IHRlbXBsYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtR3JvdXAudmFsdWUuX190ZW1wbGF0ZSAmJiBoYXNVbmxpbmtUZW1wbGF0ZU9wdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ1bmxpbmtEYXRhcG9pbnRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInVubGlua1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkYXRhcG9pbnRPdmVydmlld1BvcG92ZXJUZW1wbGF0ZT5cbiAgICAgICAgPGM4eS1kYXRhcG9pbnQtdGVtcGxhdGUtcG9wb3ZlclxuICAgICAgICAgIFtkYXRhcG9pbnRdPVwiZm9ybUdyb3VwLnZhbHVlLmRldGFpbHNcIlxuICAgICAgICA+PC9jOHktZGF0YXBvaW50LXRlbXBsYXRlLXBvcG92ZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGM4eS1kYXRhcG9pbnQtYXR0cmlidXRlcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiZGVmYXVsdEZvcm1PcHRpb25zXCJcbiAgICAgICAgW3Nob3dUYXJnZXRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dUYXJnZXRcIlxuICAgICAgICBbc2hvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1llbGxvd1JhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93WWVsbG93UmFuZ2VcIlxuICAgICAgICBbc2hvd1JlZFJhbmdlXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93UmVkUmFuZ2VcIlxuICAgICAgICBbc2hvd0NoYXJ0XT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zaG93Q2hhcnRcIlxuICAgICAgICBbc2hvd0Zvcm1JZlRlbXBsYXRlV2FzU2VsZWN0ZWRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dGb3JtSWZUZW1wbGF0ZVdhc1NlbGVjdGVkXCJcbiAgICAgICAgW3NlbGVjdGFibGVDaGFydFJlbmRlclR5cGVzXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zZWxlY3RhYmxlQ2hhcnRSZW5kZXJUeXBlc1wiXG4gICAgICAgIFtzZWxlY3RhYmxlQ2hhcnRMaW5lVHlwZXNdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNlbGVjdGFibGVDaGFydExpbmVUeXBlc1wiXG4gICAgICAgIFtzZWxlY3RhYmxlQXhpc1R5cGVzXT1cImRlZmF1bHRGb3JtT3B0aW9ucy5zZWxlY3RhYmxlQXhpc1R5cGVzXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV0YWlsc1wiXG4gICAgICA+PC9jOHktZGF0YXBvaW50LWF0dHJpYnV0ZXMtZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9jOHktbGktY29sbGFwc2U+XG48L2M4eS1saT5cbiJdfQ==
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtc2VsZWN0b3IvZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbS9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFHTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBbUIsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBR0wsMEJBQTBCLEVBRzNCLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQUV0QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLE1BQU07SUFDWixTQUFTLEVBQUUsWUFBWTtJQUN2QixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUM7QUFtQlgsTUFBTSxPQUFPLGtDQUFrQztJQTJCN0MsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF6Qm5DLHVCQUFrQixHQUEyQyxFQUFFLENBQUM7UUFDaEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixrQkFBYSxHQUFrQixjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3hELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUNoQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDdkMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLCtCQUEwQixHQUFHLEtBQUssQ0FBQztRQUk1QyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBSWIsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFHOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxFQUFFO1lBQ1osTUFBTSxFQUFFLEVBQUU7WUFDVixVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUF5QjtRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNwQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUM5QixJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ3ZELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDNUMsT0FBTztRQUNULENBQUM7UUFDRCxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUNwQixHQUFHLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxRQUEwQjtRQUNsRCxNQUFNLGtCQUFrQixHQUE0QjtZQUNsRCxPQUFPO1lBQ1AsT0FBTztZQUNQLEtBQUs7WUFDTCxLQUFLO1lBQ0wsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsYUFBYTtZQUNiLFFBQVE7WUFDUixhQUFhO1lBQ2IsTUFBTTtTQUNQLENBQUM7UUFDRixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEUsTUFBTSxTQUFTLEdBQWU7WUFDNUIsUUFBUTtZQUNSLE1BQU07WUFDTixRQUFRO1lBQ1IsUUFBUTtZQUNSLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtTQUN4QixDQUFDO1FBQ0YsS0FBSyxNQUFNLFNBQVMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlELFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBNEI7UUFDeEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzlFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7WUFDaEMsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxJQUF3QixFQUFFLFNBQWlCO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxFQUFvQixFQUFFLEVBQUUsQ0FDdkIsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQzlCLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEtBQUs7WUFDcEMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUN4RCxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUVPLGtCQUFrQixDQUFDLFNBQWM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ25CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs4R0F6S1Usa0NBQWtDO2tHQUFsQyxrQ0FBa0Msa3FCQWJsQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLENBQUM7Z0JBQ2pFLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDakUsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGtFQXFCYSwyQkFBMkIsZ0RDakUzQyw2MlNBaVBBOzsyRkRuTWEsa0NBQWtDO2tCQWhCOUMsU0FBUzsrQkFDRSxrQ0FBa0MsYUFFakM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUNBQW1DLENBQUM7NEJBQ2pFLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQ0FBbUMsQ0FBQzs0QkFDakUsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7Z0ZBSVEsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0UsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNxQyxVQUFVO3NCQUFwRCxZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvck9mRmlsdGVyUGlwZSwgTGlzdEl0ZW1EcmFnSGFuZGxlQ29tcG9uZW50IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBEYXRhcG9pbnRBY3Rpb24sXG4gIERhdGFwb2ludEF0dHJpYnV0ZXNGb3JtQ29uZmlnLFxuICBEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVCxcbiAgS1BJRGV0YWlscyxcbiAgTWFuYWdlZE9iamVjdEtQSVxufSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IEFkZEJ1dHRvblR5cGVzID0ge1xuICBub25lOiAnbm9uZScsXG4gIGFkZFJlbW92ZTogJ2FkZC1yZW1vdmUnLFxuICBzZWxlY3Q6ICdzZWxlY3QnXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWRkQnV0dG9uVHlwZSA9ICh0eXBlb2YgQWRkQnV0dG9uVHlwZXMpW2tleW9mIHR5cGVvZiBBZGRCdXR0b25UeXBlc107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhcG9pbnRTZWxlY3Rvckxpc3RJdGVtQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFwb2ludFNlbGVjdG9yTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRlZmF1bHRGb3JtT3B0aW9uczogUGFydGlhbDxEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZz4gPSB7fTtcbiAgQElucHV0KCkgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZEJ1dHRvblR5cGU6IEFkZEJ1dHRvblR5cGUgPSBBZGRCdXR0b25UeXBlcy5hZGRSZW1vdmU7XG4gIEBJbnB1dCgpIGVkaXRhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0FjdGl2ZVRvZ2dsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBhY3RpdmVUb2dnbGVEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93T3B0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRhcG9pbnRMaWJyYXJ5RW50cmllczogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPj47XG4gIEBJbnB1dCgpIGFjdGlvbnM6IERhdGFwb2ludEFjdGlvbltdID0gW107XG4gIEBJbnB1dCgpIG9wdGlvblRvUmVtb3ZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc1VubGlua1RlbXBsYXRlT3B0aW9uID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBhZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8S1BJRGV0YWlscz4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEtQSURldGFpbHM+KCk7XG4gIEBJbnB1dCgpIGNvbG9yUGlja2VyRGlzYWJsZWQgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlVHlwZWFoZWFkSWZTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWdobGlnaHRUZXh0OiBzdHJpbmc7XG4gIEBDb250ZW50Q2hpbGQoTGlzdEl0ZW1EcmFnSGFuZGxlQ29tcG9uZW50KSBkcmFnSGFuZGxlOiBMaXN0SXRlbURyYWdIYW5kbGVDb21wb25lbnQ7XG5cbiAgcGF0dGVybiA9ICcnO1xuICBmaWx0ZXJQaXBlOiBGb3JPZkZpbHRlclBpcGU8TWFuYWdlZE9iamVjdEtQST47XG4gIGlzVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQWRkQnV0dG9uVHlwZXMgPSBBZGRCdXR0b25UeXBlcztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBkZXRhaWxzOiBbXSxcbiAgICAgIGNvbG9yOiBbXSxcbiAgICAgIF9fYWN0aXZlOiBbXSxcbiAgICAgIF9fdGFyZ2V0OiBbXSxcbiAgICAgIGZyYWdtZW50OiBbXSxcbiAgICAgIHNlcmllczogW10sXG4gICAgICBfX3RlbXBsYXRlOiBbXVxuICAgIH0pO1xuICAgIHRoaXMuaXNWYWxpZCQgPSB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAoc3RhdHVzID0+IHN0YXR1cyA9PT0gJ1ZBTElEJyksXG4gICAgICBzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAudmFsaWQpXG4gICAgKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXA/LmludmFsaWQpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2xOYW1lID0+IHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcbiAgICAgICAgaWYgKGNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgICAgIGNvbnN0IGVycm9ycyA9IGNvbnRyb2wuZXJyb3JzO1xuICAgICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gT2JqZWN0LnZhbHVlcyhlcnJvcnMpWzBdLm1lc3NhZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwPy52YWxpZCA/IG51bGwgOiB7IGZvcm1JbnZhbGlkOiB7fSB9O1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyAuLi5vYmosIGRldGFpbHM6IG9iaiB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKG1hcCh0bXAgPT4gdGhpcy50cmFuc2Zvcm1Gb3JtVmFsdWUodG1wKSkpLnN1YnNjcmliZShmbik7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cD8uZGlzYWJsZWQgPT09IGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKSA6IHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICB9XG5cbiAgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICB9XG5cbiAgYWRkT3JSZW1vdmVJdGVtKCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2Zvcm1Gb3JtVmFsdWUodGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRlZC5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy50cmFuc2Zvcm1Gb3JtVmFsdWUodGhpcy5mb3JtR3JvdXAudmFsdWUpKTtcbiAgfVxuXG4gIHNldFBpcGUoZmlsdGVyU3RyOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdHRlcm4gPSBmaWx0ZXJTdHI7XG4gICAgdGhpcy5maWx0ZXJQaXBlID0gcGlwZShcbiAgICAgIG1hcCgoZGF0YTogTWFuYWdlZE9iamVjdEtQSVtdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckRhdGFwb2ludExhYmVsKGRhdGEsIGZpbHRlclN0cik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1bmxpbmtEYXRhcG9pbnRUZW1wbGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWUuZGV0YWlscyB8fCB7fTtcbiAgICB0aGlzLnJlc2V0VW51c2VkUHJvcGVydGllcyhkZXRhaWxzKTtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgX190ZW1wbGF0ZTogdW5kZWZpbmVkLCBkZXRhaWxzIH0pO1xuICB9XG5cbiAgZGF0YVBvaW50VGVtcGxhdGVTZWxlY3RlZCh0ZW1wbGF0ZTogTWFuYWdlZE9iamVjdEtQSSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXNUb0Fzc2lnbjogQXJyYXk8a2V5b2YgS1BJRGV0YWlscz4gPSBbXG4gICAgICAnY29sb3InLFxuICAgICAgJ2xhYmVsJyxcbiAgICAgICdtaW4nLFxuICAgICAgJ21heCcsXG4gICAgICAneWVsbG93UmFuZ2VNYXgnLFxuICAgICAgJ3llbGxvd1JhbmdlTWluJyxcbiAgICAgICdyZWRSYW5nZU1heCcsXG4gICAgICAncmVkUmFuZ2VNaW4nLFxuICAgICAgJ3RhcmdldCcsXG4gICAgICAnb3JpZW50YXRpb24nLFxuICAgICAgJ3VuaXQnXG4gICAgXTtcbiAgICBjb25zdCB7IGZyYWdtZW50LCBzZXJpZXMsIF9fdGFyZ2V0LCBfX2FjdGl2ZSB9ID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgY29uc3QgZGF0YVBvaW50OiBLUElEZXRhaWxzID0ge1xuICAgICAgZnJhZ21lbnQsXG4gICAgICBzZXJpZXMsXG4gICAgICBfX2FjdGl2ZSxcbiAgICAgIF9fdGFyZ2V0LFxuICAgICAgX190ZW1wbGF0ZTogdGVtcGxhdGUuaWRcbiAgICB9O1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXNUb0Fzc2lnbikge1xuICAgICAgY29uc3QgdmFsdWUgPSB0ZW1wbGF0ZVtEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF1bYXR0cmlidXRlXTtcbiAgICAgIGRhdGFQb2ludFthdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMud3JpdGVWYWx1ZShkYXRhUG9pbnQpO1xuICAgIHRoaXMuc2V0UGlwZSgnJyk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VW51c2VkUHJvcGVydGllcyhkZXRhaWxzOiBQYXJ0aWFsPEtQSURldGFpbHM+KTogdm9pZCB7XG4gICAgY29uc3QgeyBzaG93VGFyZ2V0LCBzaG93WWVsbG93UmFuZ2UsIHNob3dSZWRSYW5nZSB9ID0gdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnM7XG4gICAgZGV0YWlscy5fX3RlbXBsYXRlID0gdW5kZWZpbmVkO1xuICAgIGlmICghc2hvd1RhcmdldCkge1xuICAgICAgZGV0YWlscy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghc2hvd1llbGxvd1JhbmdlKSB7XG4gICAgICBkZXRhaWxzLnllbGxvd1JhbmdlTWluID0gdW5kZWZpbmVkO1xuICAgICAgZGV0YWlscy55ZWxsb3dSYW5nZU1heCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCFzaG93UmVkUmFuZ2UpIHtcbiAgICAgIGRldGFpbHMucmVkUmFuZ2VNaW4gPSB1bmRlZmluZWQ7XG4gICAgICBkZXRhaWxzLnJlZFJhbmdlTWF4ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyRGF0YXBvaW50TGFiZWwoa3BpczogTWFuYWdlZE9iamVjdEtQSVtdLCBmaWx0ZXJTdHI6IHN0cmluZyk6IE1hbmFnZWRPYmplY3RLUElbXSB7XG4gICAgcmV0dXJuIGtwaXMuZmlsdGVyKFxuICAgICAgKG1vOiBNYW5hZ2VkT2JqZWN0S1BJKSA9PlxuICAgICAgICBtb1tEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0gJiZcbiAgICAgICAgbW9bREFUQVBPSU5UX0xJQlJBUllfRlJBR01FTlRdLmxhYmVsICYmXG4gICAgICAgIHR5cGVvZiBtb1tEQVRBUE9JTlRfTElCUkFSWV9GUkFHTUVOVF0ubGFiZWwgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIG1vW0RBVEFQT0lOVF9MSUJSQVJZX0ZSQUdNRU5UXS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyU3RyLnRvTG93ZXJDYXNlKCkpID4gLTFcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Gb3JtVmFsdWUoZm9ybVZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBvYmogPSBPYmplY3QuYXNzaWduKHt9LCBmb3JtVmFsdWUuZGV0YWlscyB8fCB7fSwgZm9ybVZhbHVlKTtcbiAgICBkZWxldGUgb2JqLmRldGFpbHM7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuIiwiPGM4eS1saSBjbGFzcz1cImM4eS1saXN0X19pdGVtX19jb2xsYXBzZS0tY29udGFpbmVyLXNtYWxsXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAjbGk+XG4gIDxjOHktbGktZHJhZy1oYW5kbGU+PG5nLWNvbnRlbnQgc2VsZWN0PVwiYzh5LWxpLWRyYWctaGFuZGxlXCI+PC9uZy1jb250ZW50PjwvYzh5LWxpLWRyYWctaGFuZGxlPlxuICA8Yzh5LWxpLWNoZWNrYm94XG4gICAgY2xhc3M9XCJhLXMtY2VudGVyIHAtci0wXCJcbiAgICAqbmdJZj1cInNob3dBY3RpdmVUb2dnbGVcIlxuICAgIFtkaXNwbGF5QXNTd2l0Y2hdPVwidHJ1ZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiX19hY3RpdmVcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+PC9jOHktbGktY2hlY2tib3g+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sb3JwaWNrZXIgcC10LTAgcC1iLTAgcC1sLTRcIiBbdGl0bGVdPVwiJ0NoYW5nZSBjb2xvcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjOHktY29sb3JwaWNrZXJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb2xvcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4gW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZm9ybUdyb3VwLnZhbHVlLmNvbG9yXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4tY2xlYW4gZGF0YS1wb2ludC1sYWJlbCB0ZXh0LXRydW5jYXRlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhbGkuY29sbGFwc2VkXCJcbiAgICAgIChjbGljayk9XCJsaS5jb2xsYXBzZWQgPSAhbGkuY29sbGFwc2VkXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIiBbdGl0bGVdPVwiZm9ybUdyb3VwLnZhbHVlLmRldGFpbHM/LmxhYmVsXCI+XG4gICAgICAgIDxjOHktaGlnaGxpZ2h0XG4gICAgICAgICAgW3RleHRdPVwiZm9ybUdyb3VwLnZhbHVlLmRldGFpbHM/LmxhYmVsXCJcbiAgICAgICAgICBbcGF0dGVybl09XCJoaWdobGlnaHRUZXh0XCJcbiAgICAgICAgICBbc2hvdWxkVHJpbVBhdHRlcm5dPVwidHJ1ZVwiXG4gICAgICAgID48L2M4eS1oaWdobGlnaHQ+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIHRleHQtbXV0ZWQgaWNvbi1mbGV4XCIgKm5nSWY9XCJmb3JtR3JvdXAudmFsdWUuX190YXJnZXRcIj5cbiAgICAgICAgPGkgYzh5SWNvbj1cImV4Y2hhbmdlXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj57eyBmb3JtR3JvdXAudmFsdWUuX190YXJnZXQubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvc21hbGw+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBtLWwtYXV0b1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ludmFsaWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtwb3BvdmVyXT1cIlxuICAgICAgICBlcnJvck1lc3NhZ2VcbiAgICAgICAgICA/IGVycm9yTWVzc2FnZVxuICAgICAgICAgIDogKCdTb21lIGVudHJpZXMgYXJlIGludmFsaWQuIENoZWNrIHRoZSBpbnB1dCBmaWVsZHMgd2l0aCByZWQgYm9yZGVycy4nIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICpuZ0lmPVwiIShpc1ZhbGlkJCB8IGFzeW5jKVwiXG4gICAgPlxuICAgICAgPGkgYzh5SWNvbj1cIndhcm5pbmdcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cIm0tbC1hdXRvIGEtcy1jZW50ZXIgcC1yLTRcIiAqbmdJZj1cImFkZEJ1dHRvblR5cGUgPT09IEFkZEJ1dHRvblR5cGVzLmFkZFJlbW92ZVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ1JlbW92ZSBmcm9tIHNlbGVjdGVkIGRhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAoY2xpY2spPVwiYWRkT3JSZW1vdmVJdGVtKClcIlxuICAgICAgICAqbmdJZj1cImlzU2VsZWN0ZWRcIlxuICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidkYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLS1yZW1vdmUtZGF0YXBvaW50LWJ1dHRvbidcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImljb24tMjBcIiBjOHlJY29uPVwibWludXMtY2lyY2xlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kb3QgdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FkZCB0byBzZWxlY3RlZCBkYXRhIHBvaW50cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdG9vbHRpcF09XCInQWRkIHRvIHNlbGVjdGVkIGRhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIShpc1ZhbGlkJCB8IGFzeW5jKVwiXG4gICAgICAgIChjbGljayk9XCJhZGRPclJlbW92ZUl0ZW0oKVwiXG4gICAgICAgICpuZ0lmPVwiIWlzU2VsZWN0ZWRcIlxuICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidkYXRhcG9pbnQtc2VsZWN0b3ItbGlzdC1pdGVtLS1hZGQtZGF0YXBvaW50LWJ1dHRvbidcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cInRleHQtcHJpbWFyeSBpY29uLTIwXCIgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImFkZEJ1dHRvblR5cGUgPT09IEFkZEJ1dHRvblR5cGVzLnNlbGVjdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSBtLWwtYXV0b1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTZWxlY3QnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ1NlbGVjdCBkYXRhIHBvaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAoY2xpY2spPVwiYWRkT3JSZW1vdmVJdGVtKClcIlxuICAgICAgPnt7ICdTZWxlY3QnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxjOHktbGktYWN0aW9uXG4gICAgKm5nSWY9XCJvcHRpb25Ub1JlbW92ZVwiXG4gICAgW2ljb25dPVwiJ21pbnVzLWNpcmNsZSdcIlxuICAgIFtsYWJlbF09XCInUmVtb3ZlIGZyb20gbGlzdCcgfCB0cmFuc2xhdGVcIlxuICAgIChjbGljayk9XCJyZW1vdmUoKVwiXG4gID48L2M4eS1saS1hY3Rpb24+XG4gIDxjOHktbGktYWN0aW9uXG4gICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCJcbiAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXG4gICAgW2xhYmVsXT1cImFjdGlvbi5sYWJlbFwiXG4gICAgKGNsaWNrKT1cImFjdGlvbi5jYWxsYmFjayhmb3JtR3JvdXAudmFsdWUpXCJcbiAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPGM4eS1saS1jb2xsYXBzZSAqbmdJZj1cImVkaXRhYmxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGEtcG9pbnQtZGV0YWlsc1wiPlxuICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBzbWFsbCBtLWItMTZcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicC10LTQgcC1iLTQgZC1mbGV4IHNlcGFyYXRvci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgbS1iLTAgbS1yLTggYS1zLXN0YXJ0IHRleHQtbXV0ZWRcIiB0cmFuc2xhdGU+RnJhZ21lbnQ8L2xhYmVsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0XG4gICAgICAgICAgICAgIFt0ZXh0XT1cImZvcm1Hcm91cC52YWx1ZS5mcmFnbWVudFwiXG4gICAgICAgICAgICAgIFtwYXR0ZXJuXT1cImhpZ2hsaWdodFRleHRcIlxuICAgICAgICAgICAgICBbc2hvdWxkVHJpbVBhdHRlcm5dPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwicC10LTQgcC1iLTQgZC1mbGV4IHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzbWFsbCBtLWItMCBtLXItOCBhLXMtc3RhcnQgdGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5TZXJpZXM8L2xhYmVsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICAgIDxjOHktaGlnaGxpZ2h0XG4gICAgICAgICAgICAgIFt0ZXh0XT1cImZvcm1Hcm91cC52YWx1ZS5zZXJpZXNcIlxuICAgICAgICAgICAgICBbcGF0dGVybl09XCJoaWdobGlnaHRUZXh0XCJcbiAgICAgICAgICAgICAgW3Nob3VsZFRyaW1QYXR0ZXJuXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1zbVwiXG4gICAgICAgICpuZ0lmPVwiZGF0YXBvaW50TGlicmFyeUVudHJpZXMgJiYgZGF0YXBvaW50TGlicmFyeUVudHJpZXMgfCBhc3luYyBhcyBsaWJyYXJ5RW50cmllc1wiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbD5cbiAgICAgICAgICB7eyAnRGF0YSBwb2ludCB0ZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX0gXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4taGVscCBidG4taGVscC0tc21cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbcG9wb3Zlcl09XCJkYXRhcG9pbnRIaW50UG9wb3ZlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIFxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGF0YXBvaW50SGludFBvcG92ZXJUZW1wbGF0ZT5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ1VzaW5nIGEgZGF0YSBwb2ludCB0ZW1wbGF0ZSBzZXRzIGNvbG9yLCBsYWJlbCwgdW5pdCBhbmQgcmFuZ2VzLiBSZW1vdmluZyB0aGUgdGVtcGxhdGUgYWxsb3dzIHlvdSB0byBzZXQgdGhlIHZhbHVlcyBtYW51YWxseS4nXG4gICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNtXCI+XG4gICAgICAgICAgPGM4eS10eXBlYWhlYWRcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTm8gdGVtcGxhdGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZvcm1Hcm91cC52YWx1ZS5fX3RlbXBsYXRlID8gZm9ybUdyb3VwLnZhbHVlLmRldGFpbHMgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIChvblNlYXJjaCk9XCJzZXRQaXBlKCRldmVudClcIlxuICAgICAgICAgICAgW2Rpc3BsYXlQcm9wZXJ0eV09XCInbGFiZWwnXCJcbiAgICAgICAgICAgIFtoaWRlTmV3XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhcG9pbnRMaWJyYXJ5RW50cmllc1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTZWxlY3RlZCAmJiBkaXNhYmxlVHlwZWFoZWFkSWZTZWxlY3RlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGM4eS1saVxuICAgICAgICAgICAgICBjbGFzcz1cInAtbC04IHAtci04IGM4eS1saXN0X19pdGVtLS1saW5rIGludGVyYWN0XCJcbiAgICAgICAgICAgICAgKmM4eUZvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGRhdGFwb2ludExpYnJhcnlFbnRyaWVzO1xuICAgICAgICAgICAgICAgIGxvYWRNb3JlOiAnYXV0byc7XG4gICAgICAgICAgICAgICAgcGlwZTogZmlsdGVyUGlwZTtcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogbm90Rm91bmRUZW1wbGF0ZVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0YVBvaW50VGVtcGxhdGVTZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIFthY3RpdmVdPVwiZm9ybUdyb3VwLnZhbHVlLl9fdGVtcGxhdGUgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidtZW51aXRlbSdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Yzh5LWhpZ2hsaWdodCBbdGV4dF09XCJpdGVtLmM4eV9LcGk/LmxhYmVsXCIgW3BhdHRlcm5dPVwicGF0dGVyblwiPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgPGM4eS1saS1pY29uIGljb249XCJjaXJjbGVcIiBbc3R5bGUuY29sb3JdPVwiaXRlbS5jOHlfS3BpPy5jb2xvclwiPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGM4eS1saSBjbGFzcz1cImJnLWxldmVsLTIgcC04XCIgKm5nSWY9XCJwYXR0ZXJuLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5ObyBtYXRjaCBmb3VuZC48L3NwYW4+XG4gICAgICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2M4eS10eXBlYWhlYWQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidJbmZvJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyXT1cImRhdGFwb2ludE92ZXJ2aWV3UG9wb3ZlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtR3JvdXAudmFsdWUuX190ZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1pbmZvXCIgYzh5SWNvbj1cImluZm9cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnVW5saW5rIGRhdGEgcG9pbnQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVW5saW5rIGRhdGEgcG9pbnQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1Hcm91cC52YWx1ZS5fX3RlbXBsYXRlICYmIGhhc1VubGlua1RlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInVubGlua0RhdGFwb2ludFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwidW5saW5rXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI2RhdGFwb2ludE92ZXJ2aWV3UG9wb3ZlclRlbXBsYXRlPlxuICAgICAgICA8Yzh5LWRhdGFwb2ludC10ZW1wbGF0ZS1wb3BvdmVyXG4gICAgICAgICAgW2RhdGFwb2ludF09XCJmb3JtR3JvdXAudmFsdWUuZGV0YWlsc1wiXG4gICAgICAgID48L2M4eS1kYXRhcG9pbnQtdGVtcGxhdGUtcG9wb3Zlcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8Yzh5LWRhdGFwb2ludC1hdHRyaWJ1dGVzLWZvcm1cbiAgICAgICAgKm5nSWY9XCJkZWZhdWx0Rm9ybU9wdGlvbnNcIlxuICAgICAgICBbc2hvd1RhcmdldF09XCJkZWZhdWx0Rm9ybU9wdGlvbnMuc2hvd1RhcmdldFwiXG4gICAgICAgIFtzaG93UmFuZ2VdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dSYW5nZVwiXG4gICAgICAgIFtzaG93WWVsbG93UmFuZ2VdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dZZWxsb3dSYW5nZVwiXG4gICAgICAgIFtzaG93UmVkUmFuZ2VdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dSZWRSYW5nZVwiXG4gICAgICAgIFtzaG93Q2hhcnRdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNob3dDaGFydFwiXG4gICAgICAgIFtzaG93Rm9ybUlmVGVtcGxhdGVXYXNTZWxlY3RlZF09XCJkZWZhdWx0Rm9ybU9wdGlvbnMuc2hvd0Zvcm1JZlRlbXBsYXRlV2FzU2VsZWN0ZWRcIlxuICAgICAgICBbc2VsZWN0YWJsZUNoYXJ0UmVuZGVyVHlwZXNdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNlbGVjdGFibGVDaGFydFJlbmRlclR5cGVzXCJcbiAgICAgICAgW3NlbGVjdGFibGVDaGFydExpbmVUeXBlc109XCJkZWZhdWx0Rm9ybU9wdGlvbnMuc2VsZWN0YWJsZUNoYXJ0TGluZVR5cGVzXCJcbiAgICAgICAgW3NlbGVjdGFibGVBeGlzVHlwZXNdPVwiZGVmYXVsdEZvcm1PcHRpb25zLnNlbGVjdGFibGVBeGlzVHlwZXNcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXRhaWxzXCJcbiAgICAgID48L2M4eS1kYXRhcG9pbnQtYXR0cmlidXRlcy1mb3JtPlxuICAgIDwvZGl2PlxuICA8L2M4eS1saS1jb2xsYXBzZT5cbjwvYzh5LWxpPlxuIl19
|
package/esm2022/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.mjs
CHANGED
|
@@ -22,6 +22,8 @@ export class DatapointSelectorModalComponent {
|
|
|
22
22
|
this.defaultActiveState = true;
|
|
23
23
|
this.finishWithFirstSelection = false;
|
|
24
24
|
this.ignoreDatapointTemplates = false;
|
|
25
|
+
this.itemsEditable = true;
|
|
26
|
+
this.datapointTemplatesOnly = false;
|
|
25
27
|
this.assetSelectorConfig = {};
|
|
26
28
|
this.result = new Promise((resolve, reject) => {
|
|
27
29
|
this.save = resolve;
|
|
@@ -55,10 +57,10 @@ export class DatapointSelectorModalComponent {
|
|
|
55
57
|
modalContainer.style.zIndex = '1060';
|
|
56
58
|
}
|
|
57
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorModalComponent, deps: [{ token: i1.BsModalRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointSelectorModalComponent, selector: "c8y-datapoint-selector-modal", ngImport: i0, template: "<div class=\"modal-header separator\">\n <h4 id=\"modal-title\" class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\" id=\"modal-body\">\n <c8y-datapoint-selector\n [contextAsset]=\"contextAsset\"\n [guessDatapointUnit]=\"guessDatapointUnit\"\n [allowDatapointsFromMultipleAssets]=\"allowDatapointsFromMultipleAssets\"\n [allowChangingContext]=\"allowChangingContext\"\n [defaultActiveState]=\"defaultActiveState\"\n [allowSearch]=\"allowSearch\"\n [hideSelection]=\"finishWithFirstSelection\"\n [ignoreDatapointTemplates]=\"ignoreDatapointTemplates\"\n [ngModel]=\"selectedDatapoints\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-datapoint-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedDatapoints?.length\"\n (click)=\"saveChanges()\"\n *ngIf=\"!finishWithFirstSelection\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatapointSelectorComponent, selector: "c8y-datapoint-selector", inputs: ["contextAsset", "allowChangingContext", "allowDatapointsFromMultipleAssets", "defaultActiveState", "ignoreDatapointTemplates", "guessDatapointUnit", "allowSearch", "hideSelection"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointSelectorModalComponent, selector: "c8y-datapoint-selector-modal", ngImport: i0, template: "<div class=\"modal-header separator\">\n <h4 id=\"modal-title\" class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\" id=\"modal-body\">\n <c8y-datapoint-selector\n [contextAsset]=\"contextAsset\"\n [guessDatapointUnit]=\"guessDatapointUnit\"\n [allowDatapointsFromMultipleAssets]=\"allowDatapointsFromMultipleAssets\"\n [allowChangingContext]=\"allowChangingContext\"\n [defaultActiveState]=\"defaultActiveState\"\n [allowSearch]=\"allowSearch\"\n [hideSelection]=\"finishWithFirstSelection\"\n [ignoreDatapointTemplates]=\"ignoreDatapointTemplates\"\n [datapointTemplatesOnly]=\"datapointTemplatesOnly\"\n [itemsEditable]=\"itemsEditable\"\n [ngModel]=\"selectedDatapoints\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-datapoint-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedDatapoints?.length\"\n (click)=\"saveChanges()\"\n *ngIf=\"!finishWithFirstSelection\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatapointSelectorComponent, selector: "c8y-datapoint-selector", inputs: ["contextAsset", "allowChangingContext", "allowDatapointsFromMultipleAssets", "defaultActiveState", "ignoreDatapointTemplates", "datapointTemplatesOnly", "guessDatapointUnit", "allowSearch", "hideSelection", "itemsEditable"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
59
61
|
}
|
|
60
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorModalComponent, decorators: [{
|
|
61
63
|
type: Component,
|
|
62
|
-
args: [{ selector: 'c8y-datapoint-selector-modal', template: "<div class=\"modal-header separator\">\n <h4 id=\"modal-title\" class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\" id=\"modal-body\">\n <c8y-datapoint-selector\n [contextAsset]=\"contextAsset\"\n [guessDatapointUnit]=\"guessDatapointUnit\"\n [allowDatapointsFromMultipleAssets]=\"allowDatapointsFromMultipleAssets\"\n [allowChangingContext]=\"allowChangingContext\"\n [defaultActiveState]=\"defaultActiveState\"\n [allowSearch]=\"allowSearch\"\n [hideSelection]=\"finishWithFirstSelection\"\n [ignoreDatapointTemplates]=\"ignoreDatapointTemplates\"\n [ngModel]=\"selectedDatapoints\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-datapoint-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedDatapoints?.length\"\n (click)=\"saveChanges()\"\n *ngIf=\"!finishWithFirstSelection\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n" }]
|
|
64
|
+
args: [{ selector: 'c8y-datapoint-selector-modal', template: "<div class=\"modal-header separator\">\n <h4 id=\"modal-title\" class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\" id=\"modal-body\">\n <c8y-datapoint-selector\n [contextAsset]=\"contextAsset\"\n [guessDatapointUnit]=\"guessDatapointUnit\"\n [allowDatapointsFromMultipleAssets]=\"allowDatapointsFromMultipleAssets\"\n [allowChangingContext]=\"allowChangingContext\"\n [defaultActiveState]=\"defaultActiveState\"\n [allowSearch]=\"allowSearch\"\n [hideSelection]=\"finishWithFirstSelection\"\n [ignoreDatapointTemplates]=\"ignoreDatapointTemplates\"\n [datapointTemplatesOnly]=\"datapointTemplatesOnly\"\n [itemsEditable]=\"itemsEditable\"\n [ngModel]=\"selectedDatapoints\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-datapoint-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedDatapoints?.length\"\n (click)=\"saveChanges()\"\n *ngIf=\"!finishWithFirstSelection\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n" }]
|
|
63
65
|
}], ctorParameters: () => [{ type: i1.BsModalRef }, { type: i0.ElementRef }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbW9kYWwvZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0b3ItbW9kYWwvZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVVqRCxNQUFNLE9BQU8sK0JBQStCO0lBdUIxQyxZQUNVLE9BQW1CLEVBQ25CLFVBQXNCO1FBRHRCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXZCaEMseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLHNDQUFpQyxHQUFHLElBQUksQ0FBQztRQUN6Qyx1QkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQzdDLFVBQUssR0FBVyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQyxvQkFBZSxHQUFXLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUMxQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNqQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0Isd0JBQW1CLEdBQXdELEVBQUUsQ0FBQztRQUNyRSxXQUFNLEdBQTBCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBUUEsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsNERBQTRELEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBNEI7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyw0REFBNEQ7UUFDbEUsTUFBTSxjQUFjLEdBQWdCLEdBQUcsQ0FDckMsSUFBSSxDQUFDLFVBQVUsRUFDZix5REFBeUQsQ0FDMUQsQ0FBQztRQUNGLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QyxDQUFDOzhHQTVEVSwrQkFBK0I7a0dBQS9CLCtCQUErQixvRUNkNUMsazBDQXVDQTs7MkZEekJhLCtCQUErQjtrQkFKM0MsU0FBUzsrQkFDRSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50U2VsZWN0b3JNb2RhbEFzc2V0U2VsZWN0b3JPcHRpb25zLFxuICBLUElEZXRhaWxzXG59IGZyb20gJy4uL2RhdGFwb2ludC1zZWxlY3Rpb24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXBvaW50U2VsZWN0b3JNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnRleHRBc3NldDogSUlkZW50aWZpZWQ7XG4gIGFsbG93Q2hhbmdpbmdDb250ZXh0ID0gdHJ1ZTtcbiAgYWxsb3dTZWFyY2ggPSB0cnVlO1xuICBhbGxvd0RhdGFwb2ludHNGcm9tTXVsdGlwbGVBc3NldHMgPSB0cnVlO1xuICBzZWxlY3RlZERhdGFwb2ludHMgPSBuZXcgQXJyYXk8S1BJRGV0YWlscz4oKTtcbiAgdGl0bGU6IHN0cmluZyA9IGdldHRleHQoJ0RhdGEgcG9pbnQgc2VsZWN0b3InKTtcbiAgc2F2ZUJ1dHRvbkxhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdBZGQgZGF0YSBwb2ludHMnKTtcbiAgZ3Vlc3NEYXRhcG9pbnRVbml0ID0gdHJ1ZTtcbiAgZGVmYXVsdEFjdGl2ZVN0YXRlID0gdHJ1ZTtcbiAgZmluaXNoV2l0aEZpcnN0U2VsZWN0aW9uID0gZmFsc2U7XG4gIGlnbm9yZURhdGFwb2ludFRlbXBsYXRlcyA9IGZhbHNlO1xuICBpdGVtc0VkaXRhYmxlID0gdHJ1ZTtcbiAgZGF0YXBvaW50VGVtcGxhdGVzT25seSA9IGZhbHNlO1xuICBhc3NldFNlbGVjdG9yQ29uZmlnOiBQYXJ0aWFsPERhdGFwb2ludFNlbGVjdG9yTW9kYWxBc3NldFNlbGVjdG9yT3B0aW9ucz4gPSB7fTtcbiAgcmVhZG9ubHkgcmVzdWx0OiBQcm9taXNlPEtQSURldGFpbHNbXT4gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdGhpcy5zYXZlID0gcmVzb2x2ZTtcbiAgICB0aGlzLmNhbmNlbCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBzYXZlOiAodmFsdWU6IEtQSURldGFpbHNbXSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBjYW5jZWw6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBic01vZGFsOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseVdvcmthcm91bmRGb3JBbmd1bGFySlNNb2RhbHNUaGF0TWlnaHRCZU9wZW5lZEluUGFyYWxsZWwoKTtcbiAgfVxuXG4gIHNhdmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuYnNNb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5zYXZlKHRoaXMuc2VsZWN0ZWREYXRhcG9pbnRzKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuYnNNb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5jYW5jZWwoKTtcbiAgfVxuXG4gIHNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb246IEFycmF5PEtQSURldGFpbHM+KSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFwb2ludHMgPSBzZWxlY3Rpb247XG4gICAgaWYgKHRoaXMuZmluaXNoV2l0aEZpcnN0U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNhdmVDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZXMgdGhlIHotaW5kZXggb2YgdGhlIG1vZGFsLCB0byBtYWtlIHN1cmUgdGhpcyBtb2RhbCBpcyBvbiB0b3AuXG4gICAqIHJlcXVpcmVkIGFzIGFuZ3VsYXJKUyBtb2RhbHMgYXJlIHBsYWNpbmcgdGhlbSBzZWx2ZXMgb24gdG9wIHZpYSBhZGp1c3Rpbmcgei1pbmRleC5cbiAgICogd2hpbGUgYW5ndWxhciBtb2RhbHMgdXNlIHRoZSBvcmRlciB3aXRoaW4gdGhlIGRvbSBmb3IgdGhpcy4uXG4gICAqL1xuICBwcml2YXRlIGFwcGx5V29ya2Fyb3VuZEZvckFuZ3VsYXJKU01vZGFsc1RoYXRNaWdodEJlT3BlbmVkSW5QYXJhbGxlbCgpIHtcbiAgICBjb25zdCBtb2RhbENvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSBnZXQoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAnbmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudCdcbiAgICApO1xuICAgIG1vZGFsQ29udGFpbmVyLnN0eWxlLnpJbmRleCA9ICcxMDYwJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgPGg0IGlkPVwibW9kYWwtdGl0bGVcIiBjbGFzcz1cInRleHQtbWVkaXVtXCI+e3sgdGl0bGUgfCB0cmFuc2xhdGUgfX08L2g0PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtaW5uZXItc2Nyb2xsIG1vZGFsLWlubmVyLXNjcm9sbC0tZml4ZWRcIiBpZD1cIm1vZGFsLWJvZHlcIj5cbiAgPGM4eS1kYXRhcG9pbnQtc2VsZWN0b3JcbiAgICBbY29udGV4dEFzc2V0XT1cImNvbnRleHRBc3NldFwiXG4gICAgW2d1ZXNzRGF0YXBvaW50VW5pdF09XCJndWVzc0RhdGFwb2ludFVuaXRcIlxuICAgIFthbGxvd0RhdGFwb2ludHNGcm9tTXVsdGlwbGVBc3NldHNdPVwiYWxsb3dEYXRhcG9pbnRzRnJvbU11bHRpcGxlQXNzZXRzXCJcbiAgICBbYWxsb3dDaGFuZ2luZ0NvbnRleHRdPVwiYWxsb3dDaGFuZ2luZ0NvbnRleHRcIlxuICAgIFtkZWZhdWx0QWN0aXZlU3RhdGVdPVwiZGVmYXVsdEFjdGl2ZVN0YXRlXCJcbiAgICBbYWxsb3dTZWFyY2hdPVwiYWxsb3dTZWFyY2hcIlxuICAgIFtoaWRlU2VsZWN0aW9uXT1cImZpbmlzaFdpdGhGaXJzdFNlbGVjdGlvblwiXG4gICAgW2lnbm9yZURhdGFwb2ludFRlbXBsYXRlc109XCJpZ25vcmVEYXRhcG9pbnRUZW1wbGF0ZXNcIlxuICAgIFtkYXRhcG9pbnRUZW1wbGF0ZXNPbmx5XT1cImRhdGFwb2ludFRlbXBsYXRlc09ubHlcIlxuICAgIFtpdGVtc0VkaXRhYmxlXT1cIml0ZW1zRWRpdGFibGVcIlxuICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkRGF0YXBvaW50c1wiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICA+PC9jOHktZGF0YXBvaW50LXNlbGVjdG9yPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbdGl0bGVdPVwiJ0NhbmNlbCcgfCB0cmFuc2xhdGVcIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBDYW5jZWxcbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBbdGl0bGVdPVwic2F2ZUJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgW2Rpc2FibGVkXT1cIiF0aGlzLnNlbGVjdGVkRGF0YXBvaW50cz8ubGVuZ3RoXCJcbiAgICAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiXG4gICAgKm5nSWY9XCIhZmluaXNoV2l0aEZpcnN0U2VsZWN0aW9uXCJcbiAgPlxuICAgIHt7IHNhdmVCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|