@acorex/layout 16.18.50 → 16.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-layout.mjs +31 -31
- package/fesm2022/acorex-layout.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/acorex-layout.mjs +0 -5
- package/esm2022/index.mjs +0 -7
- package/esm2022/lib/widget-board/editors/widget-size-editor/widget-size.editor.mjs +0 -49
- package/esm2022/lib/widget-board/editors/widget-size-editor/widget-size.module.mjs +0 -22
- package/esm2022/lib/widget-board/widget-board.component.mjs +0 -452
- package/esm2022/lib/widget-board/widget-board.module.mjs +0 -118
- package/esm2022/lib/widget-board/widget-config.component.mjs +0 -85
- package/esm2022/lib/widget-board/widget-host.component.mjs +0 -311
- package/esm2022/lib/widget-board/widget-save.component.mjs +0 -79
- package/esm2022/lib/widget-board/widget.class.mjs +0 -130
@@ -1,79 +0,0 @@
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';
|
2
|
-
import { AXHtmlUtil, AXObjectUtil, AXTranslator } from '@acorex/core';
|
3
|
-
import { AXBasePopupPageComponent } from '@acorex/components';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/common";
|
6
|
-
import * as i2 from "@acorex/components";
|
7
|
-
import * as i3 from "@acorex/core";
|
8
|
-
export class AXWidgetSaveComponent extends AXBasePopupPageComponent {
|
9
|
-
config;
|
10
|
-
props = [];
|
11
|
-
displayProps;
|
12
|
-
data;
|
13
|
-
getFooterButtons() {
|
14
|
-
return [
|
15
|
-
{
|
16
|
-
name: 'okay',
|
17
|
-
submitBehavior: true,
|
18
|
-
text: AXTranslator.get('common.confirm'),
|
19
|
-
style: 'ax success'
|
20
|
-
},
|
21
|
-
{
|
22
|
-
name: 'cancel',
|
23
|
-
cancelBehavior: true,
|
24
|
-
text: AXTranslator.get('common.cancel'),
|
25
|
-
style: 'ax light'
|
26
|
-
}
|
27
|
-
];
|
28
|
-
}
|
29
|
-
ngOnInit() {
|
30
|
-
const titleProp = this.props.find(c => c.property.name === 'title' || c.property.name === 'name');
|
31
|
-
const title = titleProp?.value || this.config.title;
|
32
|
-
const pp = {};
|
33
|
-
this.props?.forEach(c => {
|
34
|
-
pp[c.property.name] = c.property;
|
35
|
-
});
|
36
|
-
this.data = {
|
37
|
-
component: this.config.component,
|
38
|
-
title,
|
39
|
-
uniqueName: `${this.config.uniqueName}-${AXHtmlUtil.getUID()}`,
|
40
|
-
options: AXObjectUtil.deepJSONClone(this.config.options),
|
41
|
-
props: AXObjectUtil.deepJSONClone(pp)
|
42
|
-
};
|
43
|
-
this.displayProps = this.props
|
44
|
-
.filter(c => c.property.visible !== false)
|
45
|
-
.sort((a, b) => a.property.order - b.property.order)
|
46
|
-
.map(c => ({
|
47
|
-
name: c.property.name,
|
48
|
-
title: c.property.title,
|
49
|
-
allow: true
|
50
|
-
}));
|
51
|
-
}
|
52
|
-
onFooterButtonClick(e) {
|
53
|
-
if (e.name === 'cancel') {
|
54
|
-
this.close();
|
55
|
-
}
|
56
|
-
if (e.name === 'okay') {
|
57
|
-
this.props.forEach(p => {
|
58
|
-
const pp = this.displayProps.find(c => c.name === p.property.name);
|
59
|
-
if (pp == null || !pp.allow) {
|
60
|
-
let ppp = this.data.props[p.property.name];
|
61
|
-
if (ppp) {
|
62
|
-
ppp.visible = false;
|
63
|
-
}
|
64
|
-
else {
|
65
|
-
ppp = { visible: false };
|
66
|
-
}
|
67
|
-
}
|
68
|
-
});
|
69
|
-
this.close(this.data);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetSaveComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-page>\n <ax-page-content>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.title' | trans}}</ax-label>\n <ax-text-box [(value)]=\"data.title\"></ax-text-box>\n </ax-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.description' | trans}}</ax-label>\n <ax-text-area [(value)]=\"data.description\"></ax-text-area>\n </ax-form-group>\n </div>\n </div>\n <!-- <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\n <ax-text-box></ax-text-box>\n </ax-form-group>\n </div>\n </div> -->\n <div class=\"row\" style=\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\">\n <div class=\"col-12\">\n <ax-fieldset caption=\"{{'widget-board.configurable-props' | trans}}\">\n <div class=\"row\" *ngFor=\"let prop of displayProps\">\n <div class=\"col-12\" style=\"margin-block-end: var(--ax-size-sm)\">\n <ax-check-box [(value)]=\"prop.allow\" label=\"{{ prop.title | trans }}\">\n\n </ax-check-box>\n </div>\n </div>\n </ax-fieldset>\n </div>\n </div>\n </div>\n </ax-page-content>\n</ax-page>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.AXPageContentComponent, selector: "ax-page-content" }, { kind: "component", type: i2.AXPageComponent, selector: "ax-page" }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["size"], outputs: ["clickLabel"] }, { kind: "component", type: i2.AXTextAreaComponent, selector: "ax-text-area", inputs: ["rows", "cols", "maxLength"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i2.AXFieldsetComponent, selector: "ax-fieldset", inputs: ["size", "caption", "allowCollapse"] }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i2.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size", "labelMode"], outputs: ["labelModeChange"] }, { kind: "component", type: i2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
74
|
-
}
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, decorators: [{
|
76
|
-
type: Component,
|
77
|
-
args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-page>\n <ax-page-content>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.title' | trans}}</ax-label>\n <ax-text-box [(value)]=\"data.title\"></ax-text-box>\n </ax-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.description' | trans}}</ax-label>\n <ax-text-area [(value)]=\"data.description\"></ax-text-area>\n </ax-form-group>\n </div>\n </div>\n <!-- <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\n <ax-text-box></ax-text-box>\n </ax-form-group>\n </div>\n </div> -->\n <div class=\"row\" style=\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\">\n <div class=\"col-12\">\n <ax-fieldset caption=\"{{'widget-board.configurable-props' | trans}}\">\n <div class=\"row\" *ngFor=\"let prop of displayProps\">\n <div class=\"col-12\" style=\"margin-block-end: var(--ax-size-sm)\">\n <ax-check-box [(value)]=\"prop.allow\" label=\"{{ prop.title | trans }}\">\n\n </ax-check-box>\n </div>\n </div>\n </ax-fieldset>\n </div>\n </div>\n </div>\n </ax-page-content>\n</ax-page>" }]
|
78
|
-
}] });
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNhdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUEwQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVN0RyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBQy9ELE1BQU0sQ0FBaUI7SUFDdkIsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFDL0IsWUFBWSxDQUFvRDtJQUVoRSxJQUFJLENBQXFCO0lBRXpCLGdCQUFnQjtRQUNaLE9BQU87WUFDSDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxZQUFZO2FBQ3RCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLFVBQVU7YUFDcEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFD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LHFCQUFxQjtrQkFMakMsU0FBUztvQ0FFUyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFdpZGdldENvbmZpZywgQVhXaWRnZXRTYXZlQXNEYXRhIH0gZnJvbSAnLi93aWRnZXQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCdXR0b25JdGVtLCBBWEh0bWxVdGlsLCBBWE9iamVjdFV0aWwsIEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWFByb3BlcnR5Q29uZmlnLCBBWE1lbnVJdGVtQ2xpY2tFdmVudCwgQVhCYXNlUG9wdXBQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcblxuXG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vd2lkZ2V0LXNhdmUuY29tcG9uZW50Lmh0bWxcIixcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFdpZGdldFNhdmVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xuICAgIGNvbmZpZzogQVhXaWRnZXRDb25maWc7XG4gICAgcHJvcHM6IEFYUHJvcGVydHlDb25maWdbXSA9IFtdO1xuICAgIGRpc3BsYXlQcm9wczogeyBuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGFsbG93OiBib29sZWFuIH1bXTtcblxuICAgIGRhdGE6IEFYV2lkZ2V0U2F2ZUFzRGF0YTtcblxuICAgIGdldEZvb3RlckJ1dHRvbnMoKTogQVhCdXR0b25JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdva2F5JyxcbiAgICAgICAgICAgICAgICBzdWJtaXRCZWhhdmlvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlybScpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggc3VjY2VzcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgY2FuY2VsQmVoYXZpb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNhbmNlbCcpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggbGlnaHQnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHRpdGxlUHJvcCA9IHRoaXMucHJvcHMuZmluZChjID0+IGMucHJvcGVydHkubmFtZSA9PT0gJ3RpdGxlJyB8fCBjLnByb3BlcnR5Lm5hbWUgPT09ICduYW1lJyk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGl0bGVQcm9wPy52YWx1ZSB8fCB0aGlzLmNvbmZpZy50aXRsZTtcbiAgICAgICAgY29uc3QgcHA6IGFueSA9IHt9O1xuICAgICAgICB0aGlzLnByb3BzPy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgcHBbYy5wcm9wZXJ0eS5uYW1lXSA9IGMucHJvcGVydHk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRhdGEgPSB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29uZmlnLmNvbXBvbmVudCxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgdW5pcXVlTmFtZTogYCR7dGhpcy5jb25maWcudW5pcXVlTmFtZX0tJHtBWEh0bWxVdGlsLmdldFVJRCgpfWAsXG4gICAgICAgICAgICBvcHRpb25zOiBBWE9iamVjdFV0aWwuZGVlcEpTT05DbG9uZSh0aGlzLmNvbmZpZy5vcHRpb25zKSxcbiAgICAgICAgICAgIHByb3BzOiBBWE9iamVjdFV0aWwuZGVlcEpTT05DbG9uZShwcClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcHMgPSB0aGlzLnByb3BzXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5wcm9wZXJ0eS52aXNpYmxlICE9PSBmYWxzZSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnByb3BlcnR5Lm9yZGVyIC0gYi5wcm9wZXJ0eS5vcmRlcilcbiAgICAgICAgICAgIC5tYXAoYyA9PiAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGMucHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgICAgICB0aXRsZTogYy5wcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgICAgICAgICBhbGxvdzogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuXG5cbiAgICBvbkZvb3RlckJ1dHRvbkNsaWNrKGU6IEFYTWVudUl0ZW1DbGlja0V2ZW50KSB7XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ29rYXknKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHAgPSB0aGlzLmRpc3BsYXlQcm9wcy5maW5kKGMgPT4gYy5uYW1lID09PSBwLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChwcCA9PSBudWxsIHx8ICFwcC5hbGxvdykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHBwID0gdGhpcy5kYXRhLnByb3BzW3AucHJvcGVydHkubmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBwcC52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcHAgPSB7IHZpc2libGU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCI8YXgtcGFnZT5cbiAgICA8YXgtcGFnZS1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eydjb21tb24udGl0bGUnIHwgdHJhbnN9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggWyh2YWx1ZSldPVwiZGF0YS50aXRsZVwiPjwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3snY29tbW9uLmRlc2NyaXB0aW9uJyB8IHRyYW5zfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYXJlYSBbKHZhbHVlKV09XCJkYXRhLmRlc2NyaXB0aW9uXCI+PC9heC10ZXh0LWFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eydjb21tb24udW5pcXVlbmFtZScgfCB0cmFuc319PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveD48L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1heC1zaXplLW1kKTttYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLWF4LXNpemUtbWQpO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZpZWxkc2V0IGNhcHRpb249XCJ7eyd3aWRnZXQtYm9hcmQuY29uZmlndXJhYmxlLXByb3BzJyB8IHRyYW5zfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgcHJvcCBvZiBkaXNwbGF5UHJvcHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgc3R5bGU9XCJtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1heC1zaXplLXNtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IFsodmFsdWUpXT1cInByb3AuYWxsb3dcIiBsYWJlbD1cInt7IHByb3AudGl0bGUgfCB0cmFucyB9fVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9heC1wYWdlLWNvbnRlbnQ+XG48L2F4LXBhZ2U+Il19
|
@@ -1,130 +0,0 @@
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
2
|
-
import { EventEmitter, Injectable } from '@angular/core';
|
3
|
-
import { propertyEditor } from '@acorex/components';
|
4
|
-
import { AXHtmlUtil, AXTranslator } from '@acorex/core';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
// @dynamic
|
7
|
-
// TODO: Add Angular decorator.
|
8
|
-
export class AXWidgetComponent {
|
9
|
-
uid = AXHtmlUtil.getUID();
|
10
|
-
provideValue;
|
11
|
-
onBusyChanged = new EventEmitter();
|
12
|
-
_isBusy = true;
|
13
|
-
get isBusy() {
|
14
|
-
return this._isBusy;
|
15
|
-
}
|
16
|
-
set isBusy(v) {
|
17
|
-
if (v !== this._isBusy) {
|
18
|
-
const eventData = {
|
19
|
-
component: this,
|
20
|
-
oldValue: this._isBusy,
|
21
|
-
value: v
|
22
|
-
};
|
23
|
-
this._isBusy = v;
|
24
|
-
this.onBusyChanged.emit(eventData);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
widgetSize;
|
28
|
-
refreshRate = [{
|
29
|
-
id: 60000 * 5,
|
30
|
-
text: AXTranslator.get('dateTime.duration.format_minute').replace('{0}', '5')
|
31
|
-
}];
|
32
|
-
// ???
|
33
|
-
getRefreshRate() {
|
34
|
-
return Array.isArray(this.refreshRate) && this.refreshRate.length ? this.refreshRate[0].id : this.refreshRate;
|
35
|
-
}
|
36
|
-
intervalId;
|
37
|
-
constructor() {
|
38
|
-
this.onConfiguredChanged.subscribe(() => {
|
39
|
-
if (this.isConfigured === true && this.getRefreshRate()) {
|
40
|
-
this.restartRefreshTimer();
|
41
|
-
}
|
42
|
-
else {
|
43
|
-
this.stopRefreshTimer();
|
44
|
-
}
|
45
|
-
});
|
46
|
-
}
|
47
|
-
startRefreshTimer() {
|
48
|
-
this.intervalId = window.setInterval(this.refresh.bind(this), this.getRefreshRate());
|
49
|
-
}
|
50
|
-
stopRefreshTimer() {
|
51
|
-
window.clearInterval(this.intervalId);
|
52
|
-
}
|
53
|
-
restartRefreshTimer() {
|
54
|
-
this.stopRefreshTimer();
|
55
|
-
this.startRefreshTimer();
|
56
|
-
}
|
57
|
-
ngOnDestroy() {
|
58
|
-
this.stopRefreshTimer();
|
59
|
-
}
|
60
|
-
redraw() {
|
61
|
-
}
|
62
|
-
refresh() {
|
63
|
-
this.restartRefreshTimer();
|
64
|
-
}
|
65
|
-
onConfiguredChanged = new EventEmitter();
|
66
|
-
get isConfigured() {
|
67
|
-
return true;
|
68
|
-
}
|
69
|
-
setValue(name, value) {
|
70
|
-
this[name] = value;
|
71
|
-
this.onConfiguredChanged.emit();
|
72
|
-
}
|
73
|
-
getValue(name) {
|
74
|
-
const val = this[name];
|
75
|
-
const config = this['__meta__'].config;
|
76
|
-
const runtime = config.props[name]?.runtime;
|
77
|
-
if (runtime && this.provideValue) {
|
78
|
-
const res = this.provideValue({
|
79
|
-
name,
|
80
|
-
value: val,
|
81
|
-
uniqueName: config.uniqueName,
|
82
|
-
options: config.options,
|
83
|
-
});
|
84
|
-
if (this.provideValue instanceof Promise) {
|
85
|
-
return res;
|
86
|
-
}
|
87
|
-
else {
|
88
|
-
return Promise.resolve(res);
|
89
|
-
}
|
90
|
-
}
|
91
|
-
return Promise.resolve(val);
|
92
|
-
}
|
93
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
94
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetComponent });
|
95
|
-
}
|
96
|
-
__decorate([
|
97
|
-
propertyEditor({
|
98
|
-
editorClass: 'ax/editors/widget-size',
|
99
|
-
title: 'common.size',
|
100
|
-
visible: false,
|
101
|
-
order: -99,
|
102
|
-
}),
|
103
|
-
__metadata("design:type", Array)
|
104
|
-
], AXWidgetComponent.prototype, "widgetSize", void 0);
|
105
|
-
__decorate([
|
106
|
-
propertyEditor({
|
107
|
-
editorClass: 'ax/editors/select',
|
108
|
-
title: 'common.refresh-rate',
|
109
|
-
visible: true,
|
110
|
-
order: -98,
|
111
|
-
editorOptions: {
|
112
|
-
items: () => {
|
113
|
-
return ['بدون مقدار', 1, 2, 3, 5, 10, 20, 30, 60].map(c => ({
|
114
|
-
id: typeof (c) === 'number' ? 60000 * c : 0,
|
115
|
-
text: typeof (c) === 'number' ? AXTranslator.get('dateTime.duration.format_minute').replace('{0}', c.toString()) : c
|
116
|
-
}));
|
117
|
-
},
|
118
|
-
allowNull: false,
|
119
|
-
allowSearch: false,
|
120
|
-
selectionDataMode: 'value',
|
121
|
-
selectionMode: 'single',
|
122
|
-
valueField: 'id',
|
123
|
-
}
|
124
|
-
}),
|
125
|
-
__metadata("design:type", Object)
|
126
|
-
], AXWidgetComponent.prototype, "refreshRate", void 0);
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetComponent, decorators: [{
|
128
|
-
type: Injectable
|
129
|
-
}], ctorParameters: () => [], propDecorators: { widgetSize: [], refreshRate: [] } });
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQTZCLGNBQWMsRUFBZSxNQUFNLG9CQUFvQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQTBDeEQsV0FBVztBQUNYLCtCQUErQjtBQUUvQixNQUFNLE9BQWdCLGlCQUFpQjtJQUUxQixHQUFHLEdBQVcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLFlBQVksQ0FBa0I7SUFFOUIsYUFBYSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUV2RixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ2hDLElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQTBCO2dCQUNyQyxTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3RCLEtBQUssRUFBRSxDQUFDO2FBQ1gsQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBUUQsVUFBVSxDQUFXO0lBcUJyQixXQUFXLEdBQVEsQ0FBQztZQUNoQixFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUM7WUFDYixJQUFJLEVBQUUs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O3dEQThCUCxVQUFVLE1BcUJWLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCwgQVhCYXNlRXZlbnQsIHByb3BlcnR5RWRpdG9yLCBBWERhdGFFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYV2lkZ2V0Q29uZmlnIHtcbiAgICB1bmlxdWVOYW1lOiBzdHJpbmc7XG4gICAgY29tcG9uZW50OiBhbnk7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzaXplWDogbnVtYmVyO1xuICAgIHNpemVZOiBudW1iZXI7XG4gICAgY29sPzogbnVtYmVyO1xuICAgIHJvdz86IG51bWJlcjtcbiAgICBvcHRpb25zPzogYW55O1xuICAgIHByb3BzPzogYW55O1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFdpZGdldENvbmZpZ0NoYW5nZWQgZXh0ZW5kcyBBWEJhc2VFdmVudCB7XG4gICAgY29uZmlnOiBBWFdpZGdldENvbmZpZztcbn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhXaWRnZXRCb2FyZENvbmZpZ0NoYW5nZWQgZXh0ZW5kcyBBWEJhc2VFdmVudCB7XG4gICAgbW9kZTogJ2NsZWFyJyB8ICdhZGQnIHwgJ3JlbW92ZScgfCAnbG9hZCcgfCAnY29uZmlnJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnQgZXh0ZW5kcyBBWERhdGFFdmVudDxBWFdpZGdldFNhdmVBc0RhdGE+IHtcblxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhXaWRnZXRTYXZlQXNEYXRhIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGdyb3VwPzogc3RyaW5nO1xuICAgIC8vXG4gICAgdW5pcXVlTmFtZTogc3RyaW5nO1xuICAgIGNvbXBvbmVudDogYW55O1xuICAgIG9wdGlvbnM/OiBhbnk7XG4gICAgcHJvcHM/OiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG4vLyBUT0RPOiBBZGQgQW5ndWxhciBkZWNvcmF0b3IuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhXaWRnZXRDb21wb25lbnQge1xuXG4gICAgcmVhZG9ubHkgdWlkOiBzdHJpbmcgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xuICAgIHByb3ZpZGVWYWx1ZTogKGU6IGFueSkgPT4gYW55O1xuXG4gICAgb25CdXN5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4oKTtcblxuICAgIHByaXZhdGUgX2lzQnVzeTogYm9vbGVhbiA9IHRydWU7XG4gICAgcHVibGljIGdldCBpc0J1c3koKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0J1c3k7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNCdXN5KHY6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuX2lzQnVzeSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhOiBBWFZhbHVlRXZlbnQ8Ym9vbGVhbj4gPSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiB0aGlzLl9pc0J1c3ksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9pc0J1c3kgPSB2O1xuICAgICAgICAgICAgdGhpcy5vbkJ1c3lDaGFuZ2VkLmVtaXQoZXZlbnREYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBwcm9wZXJ0eUVkaXRvcih7XG4gICAgICAgIGVkaXRvckNsYXNzOiAnYXgvZWRpdG9ycy93aWRnZXQtc2l6ZScsXG4gICAgICAgIHRpdGxlOiAnY29tbW9uLnNpemUnLFxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgb3JkZXI6IC05OSxcbiAgICB9KVxuICAgIHdpZGdldFNpemU6IG51bWJlcltdO1xuXG4gICAgQHByb3BlcnR5RWRpdG9yKHtcbiAgICAgICAgZWRpdG9yQ2xhc3M6ICdheC9lZGl0b3JzL3NlbGVjdCcsXG4gICAgICAgIHRpdGxlOiAnY29tbW9uLnJlZnJlc2gtcmF0ZScsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIG9yZGVyOiAtOTgsXG4gICAgICAgIGVkaXRvck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGl0ZW1zOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsn2KjYr9mI2YYg2YXZgtiv2KfYsScsIDEsIDIsIDMsIDUsIDEwLCAyMCwgMzAsIDYwXS5tYXAoYyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpZDogdHlwZW9mKGMpID09PSAnbnVtYmVyJyA/IDYwMDAwICogYyA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHR5cGVvZihjKSA9PT0gJ251bWJlcicgPyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kdXJhdGlvbi5mb3JtYXRfbWludXRlJykucmVwbGFjZSgnezB9JywgYy50b1N0cmluZygpKSA6IGNcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWxsb3dOdWxsOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93U2VhcmNoOiBmYWxzZSxcbiAgICAgICAgICAgIHNlbGVjdGlvbkRhdGFNb2RlOiAndmFsdWUnLFxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScsXG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxuICAgICAgICB9XG4gICAgfSlcbiAgICByZWZyZXNoUmF0ZTogYW55ID0gW3tcbiAgICAgICAgaWQ6IDYwMDAwICogNSxcbiAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZHVyYXRpb24uZm9ybWF0X21pbnV0ZScpLnJlcGxhY2UoJ3swfScsICc1JylcbiAgICB9XTtcblxuICAgIC8vID8/P1xuICAgIGdldFJlZnJlc2hSYXRlKCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnJlZnJlc2hSYXRlKSAmJiB0aGlzLnJlZnJlc2hSYXRlLmxlbmd0aCA/IHRoaXMucmVmcmVzaFJhdGVbMF0uaWQgOiB0aGlzLnJlZnJlc2hSYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW50ZXJ2YWxJZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub25Db25maWd1cmVkQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25maWd1cmVkID09PSB0cnVlICYmIHRoaXMuZ2V0UmVmcmVzaFJhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdGFydFJlZnJlc2hUaW1lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUmVmcmVzaFRpbWVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzdGFydFJlZnJlc2hUaW1lcigpIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKHRoaXMucmVmcmVzaC5iaW5kKHRoaXMpLCB0aGlzLmdldFJlZnJlc2hSYXRlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcFJlZnJlc2hUaW1lcigpIHtcbiAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3RhcnRSZWZyZXNoVGltZXIoKSB7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hUaW1lcigpO1xuICAgICAgICB0aGlzLnN0YXJ0UmVmcmVzaFRpbWVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hUaW1lcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWRyYXcoKSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5yZXN0YXJ0UmVmcmVzaFRpbWVyKCk7XG4gICAgfVxuXG4gICAgb25Db25maWd1cmVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgZ2V0IGlzQ29uZmlndXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgdGhpc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ29uZmlndXJlZENoYW5nZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzW25hbWVdO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzWydfX21ldGFfXyddLmNvbmZpZztcbiAgICAgICAgY29uc3QgcnVudGltZSA9IGNvbmZpZy5wcm9wc1tuYW1lXT8ucnVudGltZTtcbiAgICAgICAgaWYgKHJ1bnRpbWUgJiYgdGhpcy5wcm92aWRlVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMucHJvdmlkZVZhbHVlKHtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgdW5pcXVlTmFtZTogY29uZmlnLnVuaXF1ZU5hbWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3ZpZGVWYWx1ZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodmFsKTtcbiAgICB9XG5cbn0iXX0=
|