@acorex/platform 18.0.11 → 18.0.12
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/auth/lib/session.service.d.ts +2 -2
- package/core/utils/countdown-timer.d.ts +4 -2
- package/esm2022/auth/lib/session.service.mjs +23 -38
- package/esm2022/core/utils/countdown-timer.mjs +10 -3
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +3 -2
- package/esm2022/layout/designer/lib/board/board.component.mjs +72 -13
- package/esm2022/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.mjs +16 -16
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +18 -41
- package/esm2022/layout/designer/lib/designer.service.mjs +37 -51
- package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +24 -0
- package/esm2022/layout/designer/lib/history/history.component.mjs +21 -0
- package/esm2022/layout/designer/lib/history-manager.service.mjs +117 -0
- package/esm2022/layout/designer/lib/outline/outline.component.mjs +4 -5
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +7 -6
- package/esm2022/widgets/lib/properties/editors.props.mjs +40 -5
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget-view.component.mjs +19 -4
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +2 -1
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.mjs +7 -13
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.mjs +5 -5
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.mjs +2 -2
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.mjs +31 -21
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget.config.mjs +11 -4
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget.config.mjs +2 -1
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.mjs +4 -4
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget.config.mjs +3 -2
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget.config.mjs +2 -1
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.mjs +14 -4
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget.config.mjs +3 -2
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget.config.mjs +2 -1
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.mjs +2 -2
- package/fesm2022/acorex-platform-auth.mjs +22 -37
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +9 -2
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +2 -1
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +319 -156
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs → acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs} +7 -5
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +2 -2
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DYb6bilD.mjs → acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs} +14 -4
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +332 -267
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +2 -2
- package/layout/designer/lib/board/board.component.d.ts +7 -1
- package/layout/designer/lib/designer/designer.component.d.ts +1 -10
- package/layout/designer/lib/designer.service.d.ts +20 -16
- package/layout/designer/lib/header-menu/header-menu.component.d.ts +7 -0
- package/layout/designer/lib/history/history.component.d.ts +7 -0
- package/layout/designer/lib/history-manager.service.d.ts +31 -0
- package/package.json +7 -7
- package/widgets/lib/properties/editors.props.d.ts +1 -0
- package/widgets/lib/widgets/actions/button-widget/button-widget-view.component.d.ts +1 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.d.ts +2 -4
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.d.ts +2 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DYb6bilD.mjs.map +0 -1
package/esm2022/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { AXPDesignerService } from '../../designer.service';
|
|
3
|
-
import { AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
4
1
|
import { AXButtonModule } from '@acorex/components/button';
|
|
5
2
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
|
+
import { AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
5
|
+
import { AXPDesignerService } from '../../designer.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@acorex/components/button";
|
|
8
8
|
import * as i2 from "@acorex/components/decorators";
|
|
@@ -17,21 +17,21 @@ export class AXPDesignerAddWidgetButtonComponent {
|
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
19
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerAddWidgetButtonComponent, isStandalone: true, selector: "axp-designer-add-widget-button", ngImport: i0, template: `
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
<div class="ax-container ax-mx-auto">
|
|
21
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
22
|
+
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
23
|
+
</ax-button>
|
|
24
|
+
</div>
|
|
25
|
+
`, isInline: true, styles: ["axp-designer-add-widget-button .ax-container{display:flex;justify-content:center;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{ selector: 'axp-designer-add-widget-button', template: `
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
<div class="ax-container ax-mx-auto">
|
|
31
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
32
|
+
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
33
|
+
</ax-button>
|
|
34
|
+
</div>
|
|
35
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule], encapsulation: ViewEncapsulation.None, styles: ["axp-designer-add-widget-button .ax-container{display:flex;justify-content:center;padding:.5rem}\n"] }]
|
|
36
36
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9idXR0b25zL2FkZC13aWRnZXQtYnV0dG9uL2FkZC13aWRnZXQtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFpQjVELE1BQU0sT0FBTyxtQ0FBbUM7SUFmaEQ7UUFnQlUsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxXQUFNLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7S0FNdEQ7SUFKQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQWU7UUFDL0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FQVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQywwRkFacEM7Ozs7OztHQU1ULDBLQUdTLGNBQWMsdVpBQUUsaUJBQWlCOzsyRkFHaEMsbUNBQW1DO2tCQWYvQyxTQUFTOytCQUNFLGdDQUFnQyxZQUVoQzs7Ozs7O0dBTVQsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsaUJBQzdCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUENvbnRhaW5lcldpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWJ1dHRvbicsXG4gIHN0eWxlVXJsczogWycuL2FkZC13aWRnZXQtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnRhaW5lciBheC1teC1hdXRvXCI+XG4gICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidBZGQgTmV3IEVsZW1lbnQnXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiIFtsb29rXT1cIid0d290b25lJ1wiPlxuICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtcGx1c1wiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQnV0dG9uTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVyQWRkV2lkZ2V0QnV0dG9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkZXNpZ25lclNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXJlbnQgPSBpbmplY3QoQVhQQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50KTtcblxuICBhc3luYyBoYW5kbGVDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcbiAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGF3YWl0IHRoaXMuZGVzaWduZXJTZXJ2aWNlLnNob3dQaWNrZXIodGhpcy5wYXJlbnQubm9kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,59 +1,35 @@
|
|
|
1
1
|
import { AXButtonModule } from '@acorex/components/button';
|
|
2
|
+
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
2
3
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
4
|
import { AXDrawerModule } from '@acorex/components/drawer';
|
|
5
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
6
|
+
import { AXMenuModule } from '@acorex/components/menu';
|
|
4
7
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
5
8
|
import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
6
9
|
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { Component, computed,
|
|
10
|
+
import { Component, computed, inject, ViewEncapsulation } from '@angular/core';
|
|
8
11
|
import { get } from 'lodash-es';
|
|
9
12
|
import { AXPDesignerBoardComponent } from '../board/board.component';
|
|
10
13
|
import { AXPDesignerBreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';
|
|
11
14
|
import { AXPDesignerService } from '../designer.service';
|
|
12
|
-
import {
|
|
15
|
+
import { AXPDesignerHeaderMenuComponent } from '../header-menu/header-menu.component';
|
|
13
16
|
import { AXPDesignerOutlineComponent } from '../outline/outline.component';
|
|
14
|
-
import {
|
|
17
|
+
import { AXPWidgetPropertyViewerComponent } from '../property-viewer/widget-property-viewer.component';
|
|
18
|
+
import { AXPDesignerHistoryComponent } from '../history/history.component';
|
|
15
19
|
import * as i0 from "@angular/core";
|
|
16
20
|
import * as i1 from "@angular/common";
|
|
17
21
|
import * as i2 from "@acorex/components/button";
|
|
18
22
|
import * as i3 from "@acorex/components/drawer";
|
|
19
23
|
import * as i4 from "@acorex/components/decorators";
|
|
20
|
-
import * as i5 from "@acorex/components/
|
|
24
|
+
import * as i5 from "@acorex/components/button-group";
|
|
25
|
+
import * as i6 from "@acorex/components/dropdown";
|
|
21
26
|
export class AXPLayoutDesignerComponent {
|
|
22
27
|
constructor() {
|
|
23
|
-
this.currentTabIndex = signal(0);
|
|
24
28
|
this.service = inject(AXPDesignerService);
|
|
25
|
-
this.tabs = [
|
|
26
|
-
{
|
|
27
|
-
mode: 'designer',
|
|
28
|
-
title: 'Designer',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
mode: 'edit',
|
|
32
|
-
title: 'Edit',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
mode: 'view',
|
|
36
|
-
title: 'View',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
mode: 'print',
|
|
40
|
-
title: 'Print',
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
29
|
this.nodeConfig = computed(() => this.service.selectedNode() ? get(this.service.selectedNode(), '__meta__.config') : null);
|
|
44
30
|
}
|
|
45
|
-
handleTabChange(event) {
|
|
46
|
-
const index = event.index;
|
|
47
|
-
if (this.currentTabIndex() != index) {
|
|
48
|
-
this.currentTabIndex.set(index);
|
|
49
|
-
this.service.setMode(this.tabs[this.currentTabIndex()].mode);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
get __class() {
|
|
53
|
-
return 'ax-h-full';
|
|
54
|
-
}
|
|
55
31
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLayoutDesignerComponent, isStandalone: true, selector: "axp-layout-designer", host: { properties: { "class": "this.__class" } }, providers: [AXPDesignerService], ngImport: i0, template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center ax-dark\">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-plus ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-dark ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <ax-menu [openOn]=\"'hover'\">\n <ax-menu-item text=\"Home\">\n <ax-menu-item text=\"New\"></ax-menu-item>\n <ax-menu-item text=\"Export\">\n <ax-menu-item text=\"Download JSON\" (onClick)=\"service.download()\">\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Edit\">\n <ax-menu-item text=\"Undo\" [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Redo\" [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item text=\"Cut\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Copy\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Paste\" [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Help\">\n <ax-menu-item text=\"About\"></ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button color=\"success\" look=\"twotone\" text=\"Preview\">\n <ax-icon class=\"fa-solid fa-eye \"> </ax-icon>\n </ax-button>\n <!-- <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"service.undo()\" [disabled]=\"!service.canUndo()\">\n <ax-icon class=\"fa-solid fa-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"service.redo()\" [disabled]=\"!service.canRedo()\">\n <ax-icon class=\"fa-solid fa-rotate-right ax-text-sm\"> </ax-icon>\n </ax-button> -->\n </div>\n </div>\n\n <!-- Board -->\n <div class=\"ax-h-full\">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <ax-drawer #bd location=\"start\" mode=\"push\" class=\"ax-dark\">\n <ax-content>\n <div class=\"ax-min-w-80 ax-h-full ax-overflow-auto ax-border-e\">\n </div>\n </ax-content>\n </ax-drawer>\n <ax-drawer #outline location=\"start\" mode=\"push\" class=\"ax-dark\">\n <ax-content>\n <div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Outline</span>\n </div>\n <ax-close-button></ax-close-button>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n <axp-designer-outline></axp-designer-outline>\n </div>\n </div>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content>\n <div class=\"ax-bg-white ax-h-full ax-block\">\n <axp-designer-board class=\"ax-w-full ax-border-default ax-border ax-flex-1 ax-overflow-auto ax-p-3\">\n </axp-designer-board>\n </div>\n </ax-content>\n </ax-drawer-container>\n </div>\n\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-dark ax-flex ax-items-center\">\n @if(currentTabIndex()==0) {\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n }\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s ax-dark \" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{nodeConfig()?.title}}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values,mode:$event.mode})\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1);position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1)}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:9999;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: AXPDesignerBoardComponent, selector: "axp-designer-board" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }, { kind: "component", type: AXPDesignerBreadcrumbsComponent, selector: "axp-designer-breadcrumbs" }, { kind: "component", type: AXPDesignerOutlineComponent, selector: "axp-designer-outline" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i5.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["disabled", "text", "active"], outputs: ["activeChange", "onClick"] }, { kind: "component", type: i5.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLayoutDesignerComponent, isStandalone: true, selector: "axp-layout-designer", providers: [AXPDesignerService], ngImport: i0, template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden ax-dark\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center \">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-plus ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\" title=\"Outline\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"history.toggle()\" title=\"History\">\n <ax-icon class=\"fa-solid fa-clock-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" title=\"Timeline\">\n <ax-icon class=\"fa-solid fa-diagram-sankey ax-text-sm\"> </ax-icon>\n </ax-button>\n </div>\n </div>\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <axp-designer-header-menu></axp-designer-header-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button-group color=\"ghost\" look=\"twotone\" [selection]=\"'single'\">\n <ax-button-item [selected]=\"service.size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"service.size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"service.size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"service.size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile\"></ax-icon>\n </ax-button-item>\n </ax-button-group>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button text=\"Design\" look=\"outline\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-suffix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Print\" name=\"print\"> </ax-button-item>\n <ax-button-item text=\"View\" name=\"view\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-button color=\"success\" look=\"outline\" text=\"Preview\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-play\"></ax-icon>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n <!-- Board -->\n <div class=\"ax-h-full \">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <ax-drawer #bd location=\"start\" mode=\"push\">\n <ax-content>\n <div class=\"ax-min-w-80 ax-h-full ax-overflow-auto ax-border-e\"></div>\n </ax-content>\n </ax-drawer>\n <!-- Outline Pnael -->\n <ax-drawer #outline location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-outline></axp-designer-outline>\n </ax-content>\n </ax-drawer>\n <!-- History Pnael -->\n <ax-drawer #history location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-history></axp-designer-history>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content class=\"ax-light\">\n <axp-designer-board class=\"ax-h-full ax-bg-on-surface ax-flex ax-justify-center\"> </axp-designer-board>\n </ax-content>\n </ax-drawer-container>\n </div>\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-flex ax-items-center\">\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s\" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{ nodeConfig()?.title }}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values, mode: $event.mode })\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity));padding:.75rem}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1);position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1)}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:10;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: AXPDesignerBoardComponent, selector: "axp-designer-board" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }, { kind: "component", type: AXPDesignerBreadcrumbsComponent, selector: "axp-designer-breadcrumbs" }, { kind: "component", type: AXPDesignerOutlineComponent, selector: "axp-designer-outline" }, { kind: "component", type: AXPDesignerHeaderMenuComponent, selector: "axp-designer-header-menu" }, { kind: "component", type: AXPDesignerHistoryComponent, selector: "axp-designer-history" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXMenuModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i5.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "selectionChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
57
33
|
}
|
|
58
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{
|
|
59
35
|
type: Component,
|
|
@@ -64,14 +40,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
64
40
|
AXPWidgetPropertyViewerComponent,
|
|
65
41
|
AXPDesignerBreadcrumbsComponent,
|
|
66
42
|
AXPDesignerOutlineComponent,
|
|
43
|
+
AXPDesignerHeaderMenuComponent,
|
|
44
|
+
AXPDesignerHistoryComponent,
|
|
67
45
|
AXTabsModule,
|
|
68
46
|
AXButtonModule,
|
|
69
47
|
AXDrawerModule,
|
|
70
48
|
AXDecoratorModule,
|
|
71
|
-
AXMenuModule
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXdDLE1BQU0saUNBQWlDLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTs7Ozs7OztBQXVCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQXJCdkM7UUFzQlksb0JBQWUsR0FBMkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBELFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVyQyxTQUFJLEdBQW1EO1lBQy9EO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUUsVUFBVTthQUNsQjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxNQUFNO2FBQ2Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTTthQUNkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsS0FBSyxFQUFFLE9BQU87YUFDZjtTQUNGLENBQUM7UUFnQlEsZUFBVSxHQUFHLFFBQVEsQ0FBeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLENBQTJCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25MO0lBZlcsZUFBZSxDQUFDLEtBQTZCO1FBQ3JELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzhHQW5DVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixxSEFGMUIsQ0FBQyxrQkFBa0IsQ0FBQywwQkNsQ2pDLCtwUEFnTHNCLDQxQkQxSmxCLFlBQVksNEhBQ1osc0JBQXNCLCtCQUN0Qix5QkFBeUIsK0RBQ3pCLGdDQUFnQyxtSEFDaEMsK0JBQStCLHFFQUMvQiwyQkFBMkIsZ0VBQzNCLFlBQVksOEJBQ1osY0FBYyx1WkFDZCxjQUFjLDhUQUNkLGlCQUFpQix1Y0FDakIsWUFBWTs7MkZBSUgsMEJBQTBCO2tCQXJCdEMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLGdDQUFnQzt3QkFDaEMsK0JBQStCO3dCQUMvQiwyQkFBMkI7d0JBQzNCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsWUFBWTtxQkFDYixhQUNVLENBQUMsa0JBQWtCLENBQUM7OEJBbUNuQixPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRSZW5kZXJNb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgSG9zdEJpbmRpbmcsIGluamVjdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vYm9hcmQvYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyQnJlYWRjcnVtYnNDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1icy9icmVhZGNydW1icy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LXZpZXdlci93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lck91dGxpbmVDb21wb25lbnQgfSBmcm9tICcuLi9vdXRsaW5lL291dGxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWRlc2lnbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVzaWduZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYUERlc2lnbmVyQm9hcmRDb21wb25lbnQsXG4gICAgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJCcmVhZGNydW1ic0NvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lck91dGxpbmVDb21wb25lbnQsXG4gICAgQVhUYWJzTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRHJhd2VyTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTWVudU1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtBWFBEZXNpZ25lclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXREZXNpZ25lckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjdXJyZW50VGFiSW5kZXg6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG5cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdGFiczogeyBtb2RlOiBBWFBXaWRnZXRSZW5kZXJNb2RlOyB0aXRsZTogc3RyaW5nIH1bXSA9IFtcbiAgICB7XG4gICAgICBtb2RlOiAnZGVzaWduZXInLFxuICAgICAgdGl0bGU6ICdEZXNpZ25lcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBtb2RlOiAnZWRpdCcsXG4gICAgICB0aXRsZTogJ0VkaXQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbW9kZTogJ3ZpZXcnLFxuICAgICAgdGl0bGU6ICdWaWV3JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG1vZGU6ICdwcmludCcsXG4gICAgICB0aXRsZTogJ1ByaW50JyxcbiAgICB9LFxuICBdO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVUYWJDaGFuZ2UoZXZlbnQ6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IGV2ZW50LmluZGV4O1xuICAgIGlmICh0aGlzLmN1cnJlbnRUYWJJbmRleCgpICE9IGluZGV4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJJbmRleC5zZXQoaW5kZXgpO1xuICAgICAgdGhpcy5zZXJ2aWNlLnNldE1vZGUodGhpcy50YWJzW3RoaXMuY3VycmVudFRhYkluZGV4KCldLm1vZGUpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2NsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdheC1oLWZ1bGwnO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgbm9kZUNvbmZpZyA9IGNvbXB1dGVkPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KCgpID0+IHRoaXMuc2VydmljZS5zZWxlY3RlZE5vZGUoKSA/IGdldCh0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlKCksICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnIDogbnVsbCk7XG59XG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cImF4LWgtZnVsbCBheC13LWZ1bGwgYXgtZmxleCBheC1yZWxhdGl2ZSBjaGlsZDpheC1oLWZ1bGwgYXgtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxheC1jb250ZW50IGNsYXNzPVwiYXgtY29udGVudHNcIj5cbiAgICA8IS0tIFRvb2xiYXIgU2lkZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtbWluLXctMTAgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItZSBheC14cyBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1kYXJrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWluLXctMTAgYXgtaC0xMCBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1ib3JkZXItYlwiPlxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9sb2dvcy9sb2dvLnBuZ1wiIGNsYXNzPVwiYXgtdy02XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTFcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yXCI+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wdXp6bGUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwidHdvdG9uZVwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcGx1cyBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1kYXRhYmFzZSBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCIgKG9uQ2xpY2spPVwib3V0bGluZS50b2dnbGUoKVwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtbGlzdC10cmVlIGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBNYWluIFNpZGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEwIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZmxleC0xXCI+XG4gICAgICA8IS0tIEhlYWRlciBUb29sYmFyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1pbi1oLTEwIGF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyLWIgYXgtZGFyayBheC1mbGV4IGF4LWZsZXgtZ3JvdyBheC1qdXN0aWZ5LWJldHdlZW4gYXgtcHgtMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtdGV4dC13aGl0ZVwiPlxuICAgICAgICAgIDxheC1tZW51IFtvcGVuT25dPVwiJ2hvdmVyJ1wiPlxuICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiSG9tZVwiPlxuICAgICAgICAgICAgICA8YXgtbWVudS1pdGVtIHRleHQ9XCJOZXdcIj48L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiRXhwb3J0XCI+XG4gICAgICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiRG93bmxvYWQgSlNPTlwiIChvbkNsaWNrKT1cInNlcnZpY2UuZG93bmxvYWQoKVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiRWRpdFwiPlxuICAgICAgICAgICAgICA8YXgtbWVudS1pdGVtIHRleHQ9XCJVbmRvXCIgW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblVuZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UudW5kbygpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJvdGF0ZS1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgQ3RybCtaXG4gICAgICAgICAgICAgICAgICA8L2F4LXRleHQ+XG4gICAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICAgICAgICA8YXgtbWVudS1pdGVtIHRleHQ9XCJSZWRvXCIgW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblJlZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucmVkbygpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJvdGF0ZS1yaWdodFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIEN0cmwrWVxuICAgICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICA8YXgtbWVudS1pdGVtIHRleHQ9XCJDdXRcIiBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuQ3V0Q29weSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5jdXQoKVwiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jdXRcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC10ZXh0PlxuICAgICAgICAgICAgICAgICAgICBDdHJsK1hcbiAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dD5cbiAgICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgIDxheC1tZW51LWl0ZW0gdGV4dD1cIkNvcHlcIiBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuQ3V0Q29weSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5jb3B5KClcIj5cbiAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY29weVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIEN0cmwrQ1xuICAgICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiUGFzdGVcIiBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuUGFzdGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucGFzdGUoKVwiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1wYXN0ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIEN0cmwrVlxuICAgICAgICAgICAgICAgICAgPC9heC10ZXh0PlxuICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSB0ZXh0PVwiSGVscFwiPlxuICAgICAgICAgICAgICA8YXgtbWVudS1pdGVtIHRleHQ9XCJBYm91dFwiPjwvYXgtbWVudS1pdGVtPlxuICAgICAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgICAgPC9heC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgteHMgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cInN1Y2Nlc3NcIiBsb29rPVwidHdvdG9uZVwiIHRleHQ9XCJQcmV2aWV3XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWV5ZSBcIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiAob25DbGljayk9XCJzZXJ2aWNlLnVuZG8oKVwiIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5VbmRvKClcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLWxlZnQgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiAob25DbGljayk9XCJzZXJ2aWNlLnJlZG8oKVwiIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5SZWRvKClcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0IGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBCb2FyZCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1oLWZ1bGxcIj5cbiAgICAgICAgPGF4LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJheC13LWZ1bGwgYXgtaC1mdWxsXCI+XG4gICAgICAgICAgPGF4LWRyYXdlciAjYmQgbG9jYXRpb249XCJzdGFydFwiIG1vZGU9XCJwdXNoXCIgY2xhc3M9XCJheC1kYXJrXCI+XG4gICAgICAgICAgICA8YXgtY29udGVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1pbi13LTgwIGF4LWgtZnVsbCBheC1vdmVyZmxvdy1hdXRvIGF4LWJvcmRlci1lXCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICAgIDwvYXgtZHJhd2VyPlxuICAgICAgICAgIDxheC1kcmF3ZXIgI291dGxpbmUgbG9jYXRpb249XCJzdGFydFwiIG1vZGU9XCJwdXNoXCIgY2xhc3M9XCJheC1kYXJrXCI+XG4gICAgICAgICAgICA8YXgtY29udGVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtYm9yZGVyLWUgYXgtdy03MlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LXctZnVsbCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtdGV4dC13aGl0ZSBheC1wLTIgYXgtYm9yZGVyLWJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5PdXRsaW5lPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YXgtY2xvc2UtYnV0dG9uPjwvYXgtY2xvc2UtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LTEgYXgtaC1mdWxsIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgIDxheHAtZGVzaWduZXItb3V0bGluZT48L2F4cC1kZXNpZ25lci1vdXRsaW5lPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgICA8IS0tIENvbnRlbnQgb2YgYm9hcmQgLS0+XG4gICAgICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtYmctd2hpdGUgYXgtaC1mdWxsIGF4LWJsb2NrXCI+XG4gICAgICAgICAgICAgIDxheHAtZGVzaWduZXItYm9hcmQgY2xhc3M9XCJheC13LWZ1bGwgYXgtYm9yZGVyLWRlZmF1bHQgYXgtYm9yZGVyIGF4LWZsZXgtMSBheC1vdmVyZmxvdy1hdXRvIGF4LXAtM1wiPlxuICAgICAgICAgICAgICA8L2F4cC1kZXNpZ25lci1ib2FyZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgPC9heC1kcmF3ZXItY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1pbi1oLTEwIGF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyLXQgYXgtZGFyayBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAaWYoY3VycmVudFRhYkluZGV4KCk9PTApIHtcbiAgICAgICAgPGF4cC1kZXNpZ25lci1icmVhZGNydW1icyBjbGFzcz1cImF4LWJvcmRlci1kZWZhdWx0IGF4LWJvcmRlci10IGF4LXAtMiBheC1mb250LW5vcm1hbFwiPlxuICAgICAgICA8L2F4cC1kZXNpZ25lci1icmVhZGNydW1icz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXgtY29udGVudD5cbiAgPCEtLSBQcm9wZXJ0eSBTaWRlIC0tPlxuICA8YXgtZHJhd2VyIGNsYXNzPVwiYXgtdy04MCBheC1ib3JkZXItcyBheC1kYXJrIFwiIGxvY2F0aW9uPVwiZW5kXCIgbW9kZT1cInB1c2hcIiBbY29sbGFwc2VkXT1cImZhbHNlXCIgI3BkPlxuICAgIDxheC1jb250ZW50PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC13LWZ1bGwgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXRleHQtd2hpdGUgYXgtcHktMiBheC1weC00IGF4LWJvcmRlci1iXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIm5vZGVDb25maWcoKT8uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57e25vZGVDb25maWcoKT8udGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxheHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlciBbd2lkZ2V0XT1cInNlcnZpY2Uuc2VsZWN0ZWROb2RlKCkhXCJcbiAgICAgICAgKG9uQ2hhbmdlZCk9XCJzZXJ2aWNlLnVwZGF0ZSh7IHZhbHVlczogJGV2ZW50LnZhbHVlcyxtb2RlOiRldmVudC5tb2RlfSlcIiBjbGFzcz1cImF4LXctMS80XCI+XG4gICAgICA8L2F4cC13aWRnZXQtcHJvcGVydHktdmlld2VyPlxuICAgIDwvYXgtY29udGVudD5cbiAgPC9heC1kcmF3ZXI+XG48L2F4LWRyYXdlci1jb250YWluZXI+Il19
|
|
49
|
+
AXMenuModule,
|
|
50
|
+
AXButtonGroupModule,
|
|
51
|
+
AXDropdownModule,
|
|
52
|
+
], providers: [AXPDesignerService], template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden ax-dark\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center \">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-plus ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\" title=\"Outline\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"history.toggle()\" title=\"History\">\n <ax-icon class=\"fa-solid fa-clock-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" title=\"Timeline\">\n <ax-icon class=\"fa-solid fa-diagram-sankey ax-text-sm\"> </ax-icon>\n </ax-button>\n </div>\n </div>\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <axp-designer-header-menu></axp-designer-header-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button-group color=\"ghost\" look=\"twotone\" [selection]=\"'single'\">\n <ax-button-item [selected]=\"service.size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"service.size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"service.size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"service.size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile\"></ax-icon>\n </ax-button-item>\n </ax-button-group>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button text=\"Design\" look=\"outline\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-suffix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Print\" name=\"print\"> </ax-button-item>\n <ax-button-item text=\"View\" name=\"view\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-button color=\"success\" look=\"outline\" text=\"Preview\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-play\"></ax-icon>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n <!-- Board -->\n <div class=\"ax-h-full \">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <ax-drawer #bd location=\"start\" mode=\"push\">\n <ax-content>\n <div class=\"ax-min-w-80 ax-h-full ax-overflow-auto ax-border-e\"></div>\n </ax-content>\n </ax-drawer>\n <!-- Outline Pnael -->\n <ax-drawer #outline location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-outline></axp-designer-outline>\n </ax-content>\n </ax-drawer>\n <!-- History Pnael -->\n <ax-drawer #history location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-history></axp-designer-history>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content class=\"ax-light\">\n <axp-designer-board class=\"ax-h-full ax-bg-on-surface ax-flex ax-justify-center\"> </axp-designer-board>\n </ax-content>\n </ax-drawer-container>\n </div>\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-flex ax-items-center\">\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s\" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{ nodeConfig()?.title }}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values, mode: $event.mode })\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity));padding:.75rem}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1);position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1)}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:10;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}\n"] }]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFlLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQTJCM0UsTUFBTSxPQUFPLDBCQUEwQjtJQXpCdkM7UUEyQlksWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJDLGVBQVUsR0FBRyxRQUFRLENBQXlCLEdBQUcsRUFBRSxDQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxpQkFBaUIsQ0FBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNySCxDQUFDO0tBRUg7OEdBUlksMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsa0JBQWtCLENBQUMsMEJDMUNqQyxrdExBbUhzQixxK0JEekZsQixZQUFZLDRIQUNaLHNCQUFzQiwrQkFDdEIseUJBQXlCLCtEQUN6QixnQ0FBZ0MsbUhBQ2hDLCtCQUErQixxRUFDL0IsMkJBQTJCLGlFQUMzQiw4QkFBOEIscUVBQzlCLDJCQUEyQixnRUFDM0IsWUFBWSw4QkFDWixjQUFjLDh2QkFDZCxjQUFjLDhUQUNkLGlCQUFpQix1VkFDakIsWUFBWSw4QkFDWixtQkFBbUIseVFBQ25CLGdCQUFnQjs7MkZBSVAsMEJBQTBCO2tCQXpCdEMsU0FBUzsrQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLGdDQUFnQzt3QkFDaEMsK0JBQStCO3dCQUMvQiwyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsMkJBQTJCO3dCQUMzQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCLGFBQ1UsQ0FBQyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkdyb3VwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJCb2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2JvYXJkL2JvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckJyZWFkY3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uL2Rlc2lnbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJIZWFkZXJNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVyLW1lbnUvaGVhZGVyLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCB9IGZyb20gJy4uL291dGxpbmUvb3V0bGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS12aWV3ZXIvd2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtZGVzaWduZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZXNpZ25lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhQRGVzaWduZXJCb2FyZENvbXBvbmVudCxcbiAgICBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckhlYWRlck1lbnVDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50LFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERyYXdlck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWE1lbnVNb2R1bGUsXG4gICAgQVhCdXR0b25Hcm91cE1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtBWFBEZXNpZ25lclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXREZXNpZ25lckNvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbm9kZUNvbmZpZyA9IGNvbXB1dGVkPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KCgpID0+XG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkTm9kZSgpID8gKGdldCh0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlKCksICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnKSA6IG51bGxcbiAgKTtcblxufVxuIiwiPGF4LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJheC1oLWZ1bGwgYXgtdy1mdWxsIGF4LWZsZXggYXgtcmVsYXRpdmUgY2hpbGQ6YXgtaC1mdWxsIGF4LW92ZXJmbG93LWhpZGRlbiBheC1kYXJrXCI+XG4gIDxheC1jb250ZW50IGNsYXNzPVwiYXgtY29udGVudHNcIj5cbiAgICA8IS0tIFRvb2xiYXIgU2lkZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtbWluLXctMTAgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItZSBheC14cyBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1taW4tdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LWJvcmRlci1iXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2xvZ29zL2xvZ28ucG5nXCIgY2xhc3M9XCJheC13LTZcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcHktMVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTJcIj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXB1enpsZSBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wbHVzIGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWRhdGFiYXNlIGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiAob25DbGljayk9XCJvdXRsaW5lLnRvZ2dsZSgpXCIgdGl0bGU9XCJPdXRsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1saXN0LXRyZWUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwidHdvdG9uZVwiIChvbkNsaWNrKT1cImhpc3RvcnkudG9nZ2xlKClcIiB0aXRsZT1cIkhpc3RvcnlcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb2NrLXJvdGF0ZS1sZWZ0IGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiB0aXRsZT1cIlRpbWVsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1kaWFncmFtLXNhbmtleSBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIE1haW4gU2lkZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29sLXNwYW4tMTAgYXgtZmxleCBheC1mbGV4LWNvbCBheC1mbGV4LTFcIj5cbiAgICAgIDwhLS0gSGVhZGVyIFRvb2xiYXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWluLWgtMTAgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItYiAgYXgtZmxleCBheC1mbGV4LWdyb3cgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXB4LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXRleHQtd2hpdGVcIj5cbiAgICAgICAgICA8YXhwLWRlc2lnbmVyLWhlYWRlci1tZW51PjwvYXhwLWRlc2lnbmVyLWhlYWRlci1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgteHMgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGF4LWJ1dHRvbi1ncm91cCBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiBbc2VsZWN0aW9uXT1cIidzaW5nbGUnXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW3NlbGVjdGVkXT1cInNlcnZpY2Uuc2l6ZSgpID09ICd4bCdcIiBbZGF0YV09XCIneGwnXCIgKG9uQ2xpY2spPVwic2VydmljZS5zaXplLnNldCgneGwnKVwiPlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWRlc2t0b3BcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIFtzZWxlY3RlZF09XCJzZXJ2aWNlLnNpemUoKSA9PSAnbGcnXCIgW2RhdGFdPVwiJ2xnJ1wiIChvbkNsaWNrKT1cInNlcnZpY2Uuc2l6ZS5zZXQoJ2xnJylcIj5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS10YWJsZXRcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIFtzZWxlY3RlZF09XCJzZXJ2aWNlLnNpemUoKSA9PSAnc20nXCIgW2RhdGFdPVwiJ3NtJ1wiIChvbkNsaWNrKT1cInNlcnZpY2Uuc2l6ZS5zZXQoJ3NtJylcIj5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1tb2JpbGVcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIDwvYXgtYnV0dG9uLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgteHMgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiRGVzaWduXCIgbG9vaz1cIm91dGxpbmVcIiBjbGFzcz1cImF4LXhzXCI+XG4gICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWNoZXZyb24tZG93blwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gdGV4dD1cIlByaW50XCIgbmFtZT1cInByaW50XCI+IDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJWaWV3XCIgbmFtZT1cInZpZXdcIj4gPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwic3VjY2Vzc1wiIGxvb2s9XCJvdXRsaW5lXCIgdGV4dD1cIlByZXZpZXdcIiBjbGFzcz1cImF4LXhzXCI+XG4gICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBsYXlcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQm9hcmQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtaC1mdWxsIFwiPlxuICAgICAgICA8YXgtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cImF4LXctZnVsbCBheC1oLWZ1bGxcIj5cbiAgICAgICAgICA8YXgtZHJhd2VyICNiZCBsb2NhdGlvbj1cInN0YXJ0XCIgbW9kZT1cInB1c2hcIj5cbiAgICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWluLXctODAgYXgtaC1mdWxsIGF4LW92ZXJmbG93LWF1dG8gYXgtYm9yZGVyLWVcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgICA8IS0tIE91dGxpbmUgUG5hZWwgLS0+XG4gICAgICAgICAgPGF4LWRyYXdlciAjb3V0bGluZSBsb2NhdGlvbj1cInN0YXJ0XCIgbW9kZT1cInB1c2hcIj5cbiAgICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgICA8YXhwLWRlc2lnbmVyLW91dGxpbmU+PC9heHAtZGVzaWduZXItb3V0bGluZT5cbiAgICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgICA8IS0tIEhpc3RvcnkgUG5hZWwgLS0+XG4gICAgICAgICAgPGF4LWRyYXdlciAjaGlzdG9yeSBsb2NhdGlvbj1cInN0YXJ0XCIgbW9kZT1cInB1c2hcIj5cbiAgICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgICA8YXhwLWRlc2lnbmVyLWhpc3Rvcnk+PC9heHAtZGVzaWduZXItaGlzdG9yeT5cbiAgICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgICA8IS0tIENvbnRlbnQgb2YgYm9hcmQgLS0+XG4gICAgICAgICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC1saWdodFwiPlxuICAgICAgICAgICAgPGF4cC1kZXNpZ25lci1ib2FyZCBjbGFzcz1cImF4LWgtZnVsbCBheC1iZy1vbi1zdXJmYWNlIGF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXJcIj4gPC9heHAtZGVzaWduZXItYm9hcmQ+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlci1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1pbi1oLTEwIGF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyLXQgIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxheHAtZGVzaWduZXItYnJlYWRjcnVtYnMgY2xhc3M9XCJheC1ib3JkZXItZGVmYXVsdCBheC1ib3JkZXItdCBheC1wLTIgYXgtZm9udC1ub3JtYWxcIj5cbiAgICAgICAgPC9heHAtZGVzaWduZXItYnJlYWRjcnVtYnM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9heC1jb250ZW50PlxuICA8IS0tIFByb3BlcnR5IFNpZGUgLS0+XG4gIDxheC1kcmF3ZXIgY2xhc3M9XCJheC13LTgwIGF4LWJvcmRlci1zXCIgbG9jYXRpb249XCJlbmRcIiBtb2RlPVwicHVzaFwiIFtjb2xsYXBzZWRdPVwiZmFsc2VcIiAjcGQ+XG4gICAgPGF4LWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC13LWZ1bGwgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXRleHQtd2hpdGUgYXgtcHktMiBheC1weC00IGF4LWJvcmRlci1iXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIm5vZGVDb25maWcoKT8uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyBub2RlQ29uZmlnKCk/LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGF4cC13aWRnZXQtcHJvcGVydHktdmlld2VyIFt3aWRnZXRdPVwic2VydmljZS5zZWxlY3RlZE5vZGUoKSFcIlxuICAgICAgICAob25DaGFuZ2VkKT1cInNlcnZpY2UudXBkYXRlKHsgdmFsdWVzOiAkZXZlbnQudmFsdWVzLCBtb2RlOiAkZXZlbnQubW9kZSB9KVwiIGNsYXNzPVwiYXgtdy0xLzRcIj5cbiAgICAgIDwvYXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXI+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LWRyYXdlcj5cbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj4iXX0=
|