devexpress-reporting-angular 23.2.5-build-2440-1343 → 23.2.5-build-2465-1730
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/dx-report-viewer/components/analytics/properties/collectioneditor/collectioneditor.component.d.ts +4 -2
- package/dx-report-viewer/components/reporting/parameterspanel/date-range/date-range.component.d.ts +4 -2
- package/dx-report-viewer/dx-report-viewer.component.d.ts +2 -0
- package/esm2020/dx-report-viewer/components/analytics/properties/collectioneditor/collectioneditor.component.mjs +9 -4
- package/esm2020/dx-report-viewer/components/reporting/parameterspanel/date-range/date-range.component.mjs +18 -9
- package/esm2020/dx-report-viewer/dx-report-viewer.component.mjs +10 -1
- package/fesm2015/devexpress-reporting-angular-dx-report-viewer.mjs +33 -11
- package/fesm2015/devexpress-reporting-angular-dx-report-viewer.mjs.map +1 -1
- package/fesm2020/devexpress-reporting-angular-dx-report-viewer.mjs +32 -11
- package/fesm2020/devexpress-reporting-angular-dx-report-viewer.mjs.map +1 -1
- package/package.json +3 -3
@@ -1,12 +1,14 @@
|
|
1
|
-
import { TemplateRef, OnInit, OnDestroy } from '@angular/core';
|
1
|
+
import { ChangeDetectorRef, TemplateRef, OnInit, OnDestroy } from '@angular/core';
|
2
2
|
import { ICollectionEditorOptions, ICollectionEditorViewModel } from '@devexpress/analytics-core/property-grid/widgets/collectioneditor/_editor';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class CollectionEditorComponent implements OnInit, OnDestroy {
|
5
|
+
private _changeDetectorRef;
|
5
6
|
options: ICollectionEditorOptions;
|
6
7
|
contentTemplate: TemplateRef<any>;
|
7
8
|
data: ICollectionEditorViewModel;
|
9
|
+
private _vmSubscription;
|
8
10
|
private _model;
|
9
|
-
constructor();
|
11
|
+
constructor(_changeDetectorRef: ChangeDetectorRef);
|
10
12
|
ngOnDestroy(): void;
|
11
13
|
ngOnInit(): void;
|
12
14
|
onScrollViewInitialized(args: any): void;
|
package/dx-report-viewer/components/reporting/parameterspanel/date-range/date-range.component.d.ts
CHANGED
@@ -1,18 +1,20 @@
|
|
1
|
-
import { ElementRef, OnInit, OnDestroy } from '@angular/core';
|
1
|
+
import { ChangeDetectorRef, ElementRef, OnInit, OnDestroy } from '@angular/core';
|
2
2
|
import { Properties } from 'devextreme/ui/button';
|
3
3
|
import { IDateRangeEditorOptions } from 'devexpress-reporting/viewer/widgets/dateRange/dateRangeEditor';
|
4
4
|
import { IDateRangeEditorViewModel } from 'devexpress-reporting/viewer/widgets/dateRange/dateRangeEditor.viewmodel';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare class DateRangeComponent implements OnInit, OnDestroy {
|
7
7
|
private _currentElement;
|
8
|
+
private _changeDetectorRef;
|
8
9
|
options: IDateRangeEditorOptions;
|
9
10
|
private _editor;
|
10
11
|
data: IDateRangeEditorViewModel;
|
12
|
+
private _vmSubscription;
|
11
13
|
showPopupOptions: Properties;
|
12
14
|
textBoxInputElement: HTMLElement;
|
13
15
|
subscribeToEvents: (event: any) => void;
|
14
16
|
unsubscribeFromEvents: () => void;
|
15
|
-
constructor(_currentElement: ElementRef<any
|
17
|
+
constructor(_currentElement: ElementRef<any>, _changeDetectorRef: ChangeDetectorRef);
|
16
18
|
ngOnDestroy(): void;
|
17
19
|
ngOnInit(): void;
|
18
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeComponent, never>;
|
@@ -21,6 +21,7 @@ export declare class DxReportViewerComponent extends DxReportingComponent {
|
|
21
21
|
private _accessibilitySettings;
|
22
22
|
private _reportUrl;
|
23
23
|
private _disposableCallback;
|
24
|
+
private _disposeViewModelChangedSubscription;
|
24
25
|
viewModel: IPreviewViewModel;
|
25
26
|
model: JSReportViewer;
|
26
27
|
protected _binding: JSReportViewerBinding;
|
@@ -40,6 +41,7 @@ export declare class DxReportViewerComponent extends DxReportingComponent {
|
|
40
41
|
GetPreviewModel(): PreviewDisposableModel;
|
41
42
|
ngAfterViewInit(): void;
|
42
43
|
ngOnDestroy(): void;
|
44
|
+
private _subscribeToViewModelChanged;
|
43
45
|
isMobile: boolean;
|
44
46
|
get accessibilityCompliant(): boolean;
|
45
47
|
set accessibilityCompliant(value: boolean);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
2
2
|
import { CollectionEditorViewModel } from '@devexpress/analytics-core/property-grid/widgets/collectioneditor/_editor';
|
3
|
+
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "@angular/common";
|
5
6
|
import * as i2 from "devextreme-angular";
|
@@ -8,29 +9,33 @@ import * as i4 from "../../directives/dx-action.directive";
|
|
8
9
|
import * as i5 from "../../directives/accordion.directive";
|
9
10
|
import * as i6 from "../../directives/dx-mutation-observer.directive";
|
10
11
|
export class CollectionEditorComponent {
|
11
|
-
constructor() {
|
12
|
+
constructor(_changeDetectorRef) {
|
13
|
+
this._changeDetectorRef = _changeDetectorRef;
|
12
14
|
}
|
13
15
|
ngOnDestroy() {
|
16
|
+
this._vmSubscription && this._vmSubscription();
|
14
17
|
this._model.dispose();
|
15
18
|
}
|
16
19
|
ngOnInit() {
|
17
20
|
this._model = new CollectionEditorViewModel(this.options);
|
18
21
|
this.data = this._model.getViewModel();
|
22
|
+
this._vmSubscription = this.data
|
23
|
+
._viewModelEvents.on(ViewModelChangedEvent, () => this._changeDetectorRef.markForCheck());
|
19
24
|
}
|
20
25
|
onScrollViewInitialized(args) {
|
21
26
|
args.component.option('useKeyboard', false);
|
22
27
|
}
|
23
28
|
}
|
24
|
-
CollectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
29
|
+
CollectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
25
30
|
CollectionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CollectionEditorComponent, selector: "dxa-collectioneditor", inputs: { options: ["data", "options"], contentTemplate: "contentTemplate" }, ngImport: i0, template: "<div class=\"dx-collectioneditor\">\n <div [dxaAccordion]=\"data\" [dxMutationObserver]=\"data.keyboardHelper\">\n <div class=\"dx-collectioneditor-header dx-accordion-header\">\n <div class=\"dx-editor-header\">\n <div role=\"treeitem\"\n class=\"dx-field dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger\"\n [attr.aria-expanded]=\"data.alwaysShow || !data.collapsed ? 'true' : 'false'\"\n [attr.aria-owns]=\"data.contentId\" [attr.id]=\"data.headerId\">\n <div *ngIf=\"data.showButtons\" class=\"dx-collectioneditor-actions-wrapper\">\n <dx-button *ngIf=\"data.buttons.up.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.up.action($event)\" [disabled]=\"data.buttons.up.disabled\"\n icon=\"dxrd-svg-operations-moveup\" iconClass=\"dx-image-moveup\"\n [template]=\"data.buttons.up.template\"\n [attr.title]=\"data.buttons.up.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.down.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.down.action($event)\" [disabled]=\"data.buttons.down.disabled\"\n icon=\"dxrd-svg-operations-movedown\" iconClass=\"dx-image-movedown\"\n [template]=\"data.buttons.down.template\"\n [attr.title]=\"data.buttons.down.text\"></dx-button>\n <div class=\"dx-collectioneditor-action-separator\"></div>\n <dx-button *ngIf=\"data.buttons.add.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.add.action($event)\" [disabled]=\"data.buttons.add.disabled\"\n [template]=\"data.buttons.add.template\"\n icon=\"dxrd-svg-operations-add\" iconClass=\"dx-image-add\"\n [attr.title]=\"data.buttons.add.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.delete.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.delete.action($event)\" [disabled]=\"data.buttons.delete.disabled\"\n [template]=\"data.buttons.delete.template\"\n icon=\"dxrd-svg-operations-remove\" iconClass=\"dx-image-remove\"\n [attr.title]=\"data.buttons.delete.text\"></dx-button>\n </div>\n <div *ngIf=\"!!data.displayName\" class=\"dx-collectioneditor-header-text dxd-text-primary\"\n [style.padding-left]=\"data.padding + 'px'\">\n <dxa-template class=\"dx-collapsing-image dxrd-display-inline-block\"\n template=\"dxrd-svg-collapsed\"\n [class.dx-image-expanded]=\"!data.collapsed \"></dxa-template>\n <div class=\"dx-group-header-font dxd-text-primary dxrd-display-inline-block\" [attr.title]=\"data.displayName\">\n {{data.displayName}}</div>\n </div>\n </div>\n </div>\n </div>\n <div role=\"group\" class=\"dx-accordion-content\"\n [attr.aria-hidden]=\"!data.alwaysShow && data.collapsed ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"data.headerId\" [attr.id]=\"data.contentId\">\n <dx-scroll-view [hidden]=\"data.disabled\" showScrollbar=\"onHover\" [disabled]=\"!data.showScroll\"\n [useNative]=\"false\" [scrollByThumb]=\"true\" (onInitialized)=\"onScrollViewInitialized($event)\">\n <div *ngIf=\"data.values.length === 0\"\n class=\"dx-collectioneditor-empty dxd-empty-area-placeholder-text-color dxd-text-info\">\n <span class=\"dx-collectioneditor-empty-text\">{{data.emptyAreaText}}</span>\n </div>\n <div *ngIf=\"data.values.length !== 0\" class=\"dx-collectioneditor-items\">\n <div *ngFor=\"let value of data.values\"\n class=\"dx-collectioneditor-item-container dxd-button-back-color dxd-state-normal dxd-back-highlighted dx-accessibility-list-item dx-accessibility-focus-border-accented\"\n [attr.aria-selected]=\"value.selected\" [dxActionModel]=\"value\" [dxAction]=\"value.select\"\n [class.dxd-state-selected]=\"value.selected\">\n <div class=\"dx-collection-item\">\n <ng-container *ngTemplateOutlet=\"contentTemplate, context: { data: value }\"></ng-container>\n </div>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i2.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { kind: "component", type: i3.TemplateComponent, selector: "dxa-template", inputs: ["data", "template"] }, { kind: "directive", type: i4.DxActionDirective, selector: "[dxAction]", inputs: ["dxActionModel", "dxAction"] }, { kind: "directive", type: i5.AccordionDirective, selector: "[dxaAccordion]", inputs: ["dxaAccordion"] }, { kind: "directive", type: i6.DxMutationObserverDirective, selector: "[dxMutationObserver]", inputs: ["dxMutationObserver"] }] });
|
26
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, decorators: [{
|
27
32
|
type: Component,
|
28
33
|
args: [{ selector: 'dxa-collectioneditor', template: "<div class=\"dx-collectioneditor\">\n <div [dxaAccordion]=\"data\" [dxMutationObserver]=\"data.keyboardHelper\">\n <div class=\"dx-collectioneditor-header dx-accordion-header\">\n <div class=\"dx-editor-header\">\n <div role=\"treeitem\"\n class=\"dx-field dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger\"\n [attr.aria-expanded]=\"data.alwaysShow || !data.collapsed ? 'true' : 'false'\"\n [attr.aria-owns]=\"data.contentId\" [attr.id]=\"data.headerId\">\n <div *ngIf=\"data.showButtons\" class=\"dx-collectioneditor-actions-wrapper\">\n <dx-button *ngIf=\"data.buttons.up.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.up.action($event)\" [disabled]=\"data.buttons.up.disabled\"\n icon=\"dxrd-svg-operations-moveup\" iconClass=\"dx-image-moveup\"\n [template]=\"data.buttons.up.template\"\n [attr.title]=\"data.buttons.up.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.down.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.down.action($event)\" [disabled]=\"data.buttons.down.disabled\"\n icon=\"dxrd-svg-operations-movedown\" iconClass=\"dx-image-movedown\"\n [template]=\"data.buttons.down.template\"\n [attr.title]=\"data.buttons.down.text\"></dx-button>\n <div class=\"dx-collectioneditor-action-separator\"></div>\n <dx-button *ngIf=\"data.buttons.add.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.add.action($event)\" [disabled]=\"data.buttons.add.disabled\"\n [template]=\"data.buttons.add.template\"\n icon=\"dxrd-svg-operations-add\" iconClass=\"dx-image-add\"\n [attr.title]=\"data.buttons.add.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.delete.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.delete.action($event)\" [disabled]=\"data.buttons.delete.disabled\"\n [template]=\"data.buttons.delete.template\"\n icon=\"dxrd-svg-operations-remove\" iconClass=\"dx-image-remove\"\n [attr.title]=\"data.buttons.delete.text\"></dx-button>\n </div>\n <div *ngIf=\"!!data.displayName\" class=\"dx-collectioneditor-header-text dxd-text-primary\"\n [style.padding-left]=\"data.padding + 'px'\">\n <dxa-template class=\"dx-collapsing-image dxrd-display-inline-block\"\n template=\"dxrd-svg-collapsed\"\n [class.dx-image-expanded]=\"!data.collapsed \"></dxa-template>\n <div class=\"dx-group-header-font dxd-text-primary dxrd-display-inline-block\" [attr.title]=\"data.displayName\">\n {{data.displayName}}</div>\n </div>\n </div>\n </div>\n </div>\n <div role=\"group\" class=\"dx-accordion-content\"\n [attr.aria-hidden]=\"!data.alwaysShow && data.collapsed ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"data.headerId\" [attr.id]=\"data.contentId\">\n <dx-scroll-view [hidden]=\"data.disabled\" showScrollbar=\"onHover\" [disabled]=\"!data.showScroll\"\n [useNative]=\"false\" [scrollByThumb]=\"true\" (onInitialized)=\"onScrollViewInitialized($event)\">\n <div *ngIf=\"data.values.length === 0\"\n class=\"dx-collectioneditor-empty dxd-empty-area-placeholder-text-color dxd-text-info\">\n <span class=\"dx-collectioneditor-empty-text\">{{data.emptyAreaText}}</span>\n </div>\n <div *ngIf=\"data.values.length !== 0\" class=\"dx-collectioneditor-items\">\n <div *ngFor=\"let value of data.values\"\n class=\"dx-collectioneditor-item-container dxd-button-back-color dxd-state-normal dxd-back-highlighted dx-accessibility-list-item dx-accessibility-focus-border-accented\"\n [attr.aria-selected]=\"value.selected\" [dxActionModel]=\"value\" [dxAction]=\"value.select\"\n [class.dxd-state-selected]=\"value.selected\">\n <div class=\"dx-collection-item\">\n <ng-container *ngTemplateOutlet=\"contentTemplate, context: { data: value }\"></ng-container>\n </div>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n </div>\n</div>" }]
|
29
|
-
}], ctorParameters: function () { return []; }, propDecorators: { options: [{
|
34
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { options: [{
|
30
35
|
type: Input,
|
31
36
|
args: ['data']
|
32
37
|
}], contentTemplate: [{
|
33
38
|
type: Input,
|
34
39
|
args: ['contentTemplate']
|
35
40
|
}] } });
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbmVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9keC1yZXBvcnQtdmlld2VyL2NvbXBvbmVudHMvYW5hbHl0aWNzL3Byb3BlcnRpZXMvY29sbGVjdGlvbmVkaXRvci9jb2xsZWN0aW9uZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2R4LXJlcG9ydC12aWV3ZXIvY29tcG9uZW50cy9hbmFseXRpY3MvcHJvcGVydGllcy9jb2xsZWN0aW9uZWRpdG9yL2NvbGxlY3Rpb25lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0QsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7QUFNNUssTUFBTSxPQUFPLHlCQUF5QjtJQU1sQztJQUNBLENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFJO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOzt1SEFsQlEseUJBQXlCOzJHQUF6Qix5QkFBeUIsMElDUHRDLHFyS0FvRU07NEZEN0RPLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDSSxzQkFBc0I7MEVBSWpCLE9BQU87c0JBQXJCLEtBQUs7dUJBQUMsTUFBTTtnQkFDYSxlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkVkaXRvclZpZXdNb2RlbCwgSUNvbGxlY3Rpb25FZGl0b3JPcHRpb25zLCBJQ29sbGVjdGlvbkVkaXRvclZpZXdNb2RlbCB9IGZyb20gJ0BkZXZleHByZXNzL2FuYWx5dGljcy1jb3JlL3Byb3BlcnR5LWdyaWQvd2lkZ2V0cy9jb2xsZWN0aW9uZWRpdG9yL19lZGl0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2R4YS1jb2xsZWN0aW9uZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbmVkaXRvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoJ2RhdGEnKSBvcHRpb25zITogSUNvbGxlY3Rpb25FZGl0b3JPcHRpb25zO1xuICAgIEBJbnB1dCgnY29udGVudFRlbXBsYXRlJykgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGF0YTogSUNvbGxlY3Rpb25FZGl0b3JWaWV3TW9kZWw7XG4gICAgcHJpdmF0ZSBfbW9kZWw6IENvbGxlY3Rpb25FZGl0b3JWaWV3TW9kZWw7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb2RlbC5kaXNwb3NlKCk7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IG5ldyBDb2xsZWN0aW9uRWRpdG9yVmlld01vZGVsKHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuX21vZGVsLmdldFZpZXdNb2RlbCgpO1xuICAgIH1cblxuICAgIG9uU2Nyb2xsVmlld0luaXRpYWxpemVkKGFyZ3MpOiB2b2lkIHtcbiAgICAgICAgYXJncy5jb21wb25lbnQub3B0aW9uKCd1c2VLZXlib2FyZCcsIGZhbHNlKTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yXCI+XG4gICAgPGRpdiBbZHhhQWNjb3JkaW9uXT1cImRhdGFcIiBbZHhNdXRhdGlvbk9ic2VydmVyXT1cImRhdGEua2V5Ym9hcmRIZWxwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItaGVhZGVyIGR4LWFjY29yZGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1lZGl0b3ItaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImR4LWZpZWxkIGR4LWFjY2Vzc2liaWxpdHktZm9jdXMtYm9yZGVyLWFjY2VudGVkIGR4cmQtYWNjZXNzaWJpbGl0eS1hY2NvcmRpb24tdHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZGF0YS5hbHdheXNTaG93IHx8ICFkYXRhLmNvbGxhcHNlZCA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLW93bnNdPVwiZGF0YS5jb250ZW50SWRcIiBbYXR0ci5pZF09XCJkYXRhLmhlYWRlcklkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnNob3dCdXR0b25zXCIgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWFjdGlvbnMtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiAqbmdJZj1cImRhdGEuYnV0dG9ucy51cC52aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItYWN0aW9uIGR4LWFjY2Vzc2liaWxpdHktZm9jdXMtYm9yZGVyLWFjY2VudGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkYXRhLmJ1dHRvbnMudXAuYWN0aW9uKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGF0YS5idXR0b25zLnVwLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZHhyZC1zdmctb3BlcmF0aW9ucy1tb3ZldXBcIiBpY29uQ2xhc3M9XCJkeC1pbWFnZS1tb3ZldXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJkYXRhLmJ1dHRvbnMudXAudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImRhdGEuYnV0dG9ucy51cC50ZXh0XCI+PC9keC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtYnV0dG9uICpuZ0lmPVwiZGF0YS5idXR0b25zLmRvd24udmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWFjdGlvbiBkeC1hY2Nlc3NpYmlsaXR5LWZvY3VzLWJvcmRlci1hY2NlbnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGF0YS5idXR0b25zLmRvd24uYWN0aW9uKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGF0YS5idXR0b25zLmRvd24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJkeHJkLXN2Zy1vcGVyYXRpb25zLW1vdmVkb3duXCIgaWNvbkNsYXNzPVwiZHgtaW1hZ2UtbW92ZWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJkYXRhLmJ1dHRvbnMuZG93bi50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZGF0YS5idXR0b25zLmRvd24udGV4dFwiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItYWN0aW9uLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiAqbmdJZj1cImRhdGEuYnV0dG9ucy5hZGQudmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWFjdGlvbiBkeC1hY2Nlc3NpYmlsaXR5LWZvY3VzLWJvcmRlci1hY2NlbnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGF0YS5idXR0b25zLmFkZC5hY3Rpb24oJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkYXRhLmJ1dHRvbnMuYWRkLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwiZGF0YS5idXR0b25zLmFkZC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImR4cmQtc3ZnLW9wZXJhdGlvbnMtYWRkXCIgaWNvbkNsYXNzPVwiZHgtaW1hZ2UtYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJkYXRhLmJ1dHRvbnMuYWRkLnRleHRcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gKm5nSWY9XCJkYXRhLmJ1dHRvbnMuZGVsZXRlLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1hY3Rpb24gZHgtYWNjZXNzaWJpbGl0eS1mb2N1cy1ib3JkZXItYWNjZW50ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImRhdGEuYnV0dG9ucy5kZWxldGUuYWN0aW9uKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGF0YS5idXR0b25zLmRlbGV0ZS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cImRhdGEuYnV0dG9ucy5kZWxldGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJkeHJkLXN2Zy1vcGVyYXRpb25zLXJlbW92ZVwiIGljb25DbGFzcz1cImR4LWltYWdlLXJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZGF0YS5idXR0b25zLmRlbGV0ZS50ZXh0XCI+PC9keC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISFkYXRhLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWhlYWRlci10ZXh0IGR4ZC10ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJkYXRhLnBhZGRpbmcgKyAncHgnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHhhLXRlbXBsYXRlIGNsYXNzPVwiZHgtY29sbGFwc2luZy1pbWFnZSBkeHJkLWRpc3BsYXktaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZT1cImR4cmQtc3ZnLWNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmR4LWltYWdlLWV4cGFuZGVkXT1cIiFkYXRhLmNvbGxhcHNlZCBcIj48L2R4YS10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1ncm91cC1oZWFkZXItZm9udCBkeGQtdGV4dC1wcmltYXJ5IGR4cmQtZGlzcGxheS1pbmxpbmUtYmxvY2tcIiBbYXR0ci50aXRsZV09XCJkYXRhLmRpc3BsYXlOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhLmRpc3BsYXlOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkeC1hY2NvcmRpb24tY29udGVudFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhZGF0YS5hbHdheXNTaG93ICYmIGRhdGEuY29sbGFwc2VkID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGF0YS5oZWFkZXJJZFwiIFthdHRyLmlkXT1cImRhdGEuY29udGVudElkXCI+XG4gICAgICAgICAgICA8ZHgtc2Nyb2xsLXZpZXcgW2hpZGRlbl09XCJkYXRhLmRpc2FibGVkXCIgc2hvd1Njcm9sbGJhcj1cIm9uSG92ZXJcIiBbZGlzYWJsZWRdPVwiIWRhdGEuc2hvd1Njcm9sbFwiXG4gICAgICAgICAgICAgICAgW3VzZU5hdGl2ZV09XCJmYWxzZVwiIFtzY3JvbGxCeVRodW1iXT1cInRydWVcIiAob25Jbml0aWFsaXplZCk9XCJvblNjcm9sbFZpZXdJbml0aWFsaXplZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEudmFsdWVzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1lbXB0eSBkeGQtZW1wdHktYXJlYS1wbGFjZWhvbGRlci10ZXh0LWNvbG9yIGR4ZC10ZXh0LWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWVtcHR5LXRleHRcIj57e2RhdGEuZW1wdHlBcmVhVGV4dH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnZhbHVlcy5sZW5ndGggIT09IDBcIiBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZGF0YS52YWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWl0ZW0tY29udGFpbmVyIGR4ZC1idXR0b24tYmFjay1jb2xvciBkeGQtc3RhdGUtbm9ybWFsIGR4ZC1iYWNrLWhpZ2hsaWdodGVkIGR4LWFjY2Vzc2liaWxpdHktbGlzdC1pdGVtIGR4LWFjY2Vzc2liaWxpdHktZm9jdXMtYm9yZGVyLWFjY2VudGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidmFsdWUuc2VsZWN0ZWRcIiBbZHhBY3Rpb25Nb2RlbF09XCJ2YWx1ZVwiIFtkeEFjdGlvbl09XCJ2YWx1ZS5zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmR4ZC1zdGF0ZS1zZWxlY3RlZF09XCJ2YWx1ZS5zZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWNvbGxlY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGUsIGNvbnRleHQ6IHsgZGF0YTogdmFsdWUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbmVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9keC1yZXBvcnQtdmlld2VyL2NvbXBvbmVudHMvYW5hbHl0aWNzL3Byb3BlcnRpZXMvY29sbGVjdGlvbmVkaXRvci9jb2xsZWN0aW9uZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2R4LXJlcG9ydC12aWV3ZXIvY29tcG9uZW50cy9hbmFseXRpY3MvcHJvcGVydGllcy9jb2xsZWN0aW9uZWRpdG9yL2NvbGxlY3Rpb25lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFrQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUseUJBQXlCLEVBQXdELE1BQU0sMkVBQTJFLENBQUM7QUFDNUssT0FBTyxFQUFzQixxQkFBcUIsRUFBRSxNQUFNLDRFQUE0RSxDQUFDOzs7Ozs7OztBQU12SSxNQUFNLE9BQU8seUJBQXlCO0lBT2xDLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBQ3pELENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUksSUFBSSxDQUFDLElBQXVEO2FBQy9FLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsSUFBSTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7dUhBdEJRLHlCQUF5QjsyR0FBekIseUJBQXlCLDBJQ1J0QyxxcktBb0VNOzRGRDVETyx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0ksc0JBQXNCO3dHQUlqQixPQUFPO3NCQUFyQixLQUFLO3VCQUFDLE1BQU07Z0JBQ2EsZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRWRpdG9yVmlld01vZGVsLCBJQ29sbGVjdGlvbkVkaXRvck9wdGlvbnMsIElDb2xsZWN0aW9uRWRpdG9yVmlld01vZGVsIH0gZnJvbSAnQGRldmV4cHJlc3MvYW5hbHl0aWNzLWNvcmUvcHJvcGVydHktZ3JpZC93aWRnZXRzL2NvbGxlY3Rpb25lZGl0b3IvX2VkaXRvcic7XG5pbXBvcnQgeyBFdmVudE1hbmFnZXJIb2xkZXIsIFZpZXdNb2RlbENoYW5nZWRFdmVudCB9IGZyb20gJ0BkZXZleHByZXNzL2FuYWx5dGljcy1jb3JlL3NlcmlhbGl6ZXIvbmF0aXZlL3ZpZXdNb2RlbHMvdmlld01vZGVsR2VuZXJhdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkeGEtY29sbGVjdGlvbmVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbGxlY3Rpb25lZGl0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdkYXRhJykgb3B0aW9ucyE6IElDb2xsZWN0aW9uRWRpdG9yT3B0aW9ucztcbiAgICBASW5wdXQoJ2NvbnRlbnRUZW1wbGF0ZScpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGRhdGE6IElDb2xsZWN0aW9uRWRpdG9yVmlld01vZGVsO1xuICAgIHByaXZhdGUgX3ZtU3Vic2NyaXB0aW9uOiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX21vZGVsOiBDb2xsZWN0aW9uRWRpdG9yVmlld01vZGVsO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdm1TdWJzY3JpcHRpb24gJiYgdGhpcy5fdm1TdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5fbW9kZWwuZGlzcG9zZSgpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBuZXcgQ29sbGVjdGlvbkVkaXRvclZpZXdNb2RlbCh0aGlzLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLl9tb2RlbC5nZXRWaWV3TW9kZWwoKTtcbiAgICAgICAgdGhpcy5fdm1TdWJzY3JpcHRpb24gPSAodGhpcy5kYXRhIGFzIEV2ZW50TWFuYWdlckhvbGRlcjxJQ29sbGVjdGlvbkVkaXRvclZpZXdNb2RlbD4pXG4gICAgICAgICAgICAuX3ZpZXdNb2RlbEV2ZW50cy5vbihWaWV3TW9kZWxDaGFuZ2VkRXZlbnQsICgpID0+IHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBvblNjcm9sbFZpZXdJbml0aWFsaXplZChhcmdzKTogdm9pZCB7XG4gICAgICAgIGFyZ3MuY29tcG9uZW50Lm9wdGlvbigndXNlS2V5Ym9hcmQnLCBmYWxzZSk7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvclwiPlxuICAgIDxkaXYgW2R4YUFjY29yZGlvbl09XCJkYXRhXCIgW2R4TXV0YXRpb25PYnNlcnZlcl09XCJkYXRhLmtleWJvYXJkSGVscGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWhlYWRlciBkeC1hY2NvcmRpb24taGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZWRpdG9yLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkeC1maWVsZCBkeC1hY2Nlc3NpYmlsaXR5LWZvY3VzLWJvcmRlci1hY2NlbnRlZCBkeHJkLWFjY2Vzc2liaWxpdHktYWNjb3JkaW9uLXRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImRhdGEuYWx3YXlzU2hvdyB8fCAhZGF0YS5jb2xsYXBzZWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImRhdGEuY29udGVudElkXCIgW2F0dHIuaWRdPVwiZGF0YS5oZWFkZXJJZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5zaG93QnV0dG9uc1wiIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1hY3Rpb25zLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gKm5nSWY9XCJkYXRhLmJ1dHRvbnMudXAudmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWFjdGlvbiBkeC1hY2Nlc3NpYmlsaXR5LWZvY3VzLWJvcmRlci1hY2NlbnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGF0YS5idXR0b25zLnVwLmFjdGlvbigkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRhdGEuYnV0dG9ucy51cC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImR4cmQtc3ZnLW9wZXJhdGlvbnMtbW92ZXVwXCIgaWNvbkNsYXNzPVwiZHgtaW1hZ2UtbW92ZXVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwiZGF0YS5idXR0b25zLnVwLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJkYXRhLmJ1dHRvbnMudXAudGV4dFwiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiAqbmdJZj1cImRhdGEuYnV0dG9ucy5kb3duLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1hY3Rpb24gZHgtYWNjZXNzaWJpbGl0eS1mb2N1cy1ib3JkZXItYWNjZW50ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImRhdGEuYnV0dG9ucy5kb3duLmFjdGlvbigkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRhdGEuYnV0dG9ucy5kb3duLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZHhyZC1zdmctb3BlcmF0aW9ucy1tb3ZlZG93blwiIGljb25DbGFzcz1cImR4LWltYWdlLW1vdmVkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwiZGF0YS5idXR0b25zLmRvd24udGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImRhdGEuYnV0dG9ucy5kb3duLnRleHRcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWFjdGlvbi1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gKm5nSWY9XCJkYXRhLmJ1dHRvbnMuYWRkLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1hY3Rpb24gZHgtYWNjZXNzaWJpbGl0eS1mb2N1cy1ib3JkZXItYWNjZW50ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImRhdGEuYnV0dG9ucy5hZGQuYWN0aW9uKCRldmVudClcIiBbZGlzYWJsZWRdPVwiZGF0YS5idXR0b25zLmFkZC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cImRhdGEuYnV0dG9ucy5hZGQudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJkeHJkLXN2Zy1vcGVyYXRpb25zLWFkZFwiIGljb25DbGFzcz1cImR4LWltYWdlLWFkZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZGF0YS5idXR0b25zLmFkZC50ZXh0XCI+PC9keC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtYnV0dG9uICpuZ0lmPVwiZGF0YS5idXR0b25zLmRlbGV0ZS52aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItYWN0aW9uIGR4LWFjY2Vzc2liaWxpdHktZm9jdXMtYm9yZGVyLWFjY2VudGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkYXRhLmJ1dHRvbnMuZGVsZXRlLmFjdGlvbigkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRhdGEuYnV0dG9ucy5kZWxldGUuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJkYXRhLmJ1dHRvbnMuZGVsZXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZHhyZC1zdmctb3BlcmF0aW9ucy1yZW1vdmVcIiBpY29uQ2xhc3M9XCJkeC1pbWFnZS1yZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImRhdGEuYnV0dG9ucy5kZWxldGUudGV4dFwiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiEhZGF0YS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1oZWFkZXItdGV4dCBkeGQtdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiZGF0YS5wYWRkaW5nICsgJ3B4J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4YS10ZW1wbGF0ZSBjbGFzcz1cImR4LWNvbGxhcHNpbmctaW1hZ2UgZHhyZC1kaXNwbGF5LWlubGluZS1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU9XCJkeHJkLXN2Zy1jb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5keC1pbWFnZS1leHBhbmRlZF09XCIhZGF0YS5jb2xsYXBzZWQgXCI+PC9keGEtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZ3JvdXAtaGVhZGVyLWZvbnQgZHhkLXRleHQtcHJpbWFyeSBkeHJkLWRpc3BsYXktaW5saW5lLWJsb2NrXCIgW2F0dHIudGl0bGVdPVwiZGF0YS5kaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YS5kaXNwbGF5TmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZHgtYWNjb3JkaW9uLWNvbnRlbnRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIWRhdGEuYWx3YXlzU2hvdyAmJiBkYXRhLmNvbGxhcHNlZCA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImRhdGEuaGVhZGVySWRcIiBbYXR0ci5pZF09XCJkYXRhLmNvbnRlbnRJZFwiPlxuICAgICAgICAgICAgPGR4LXNjcm9sbC12aWV3IFtoaWRkZW5dPVwiZGF0YS5kaXNhYmxlZFwiIHNob3dTY3JvbGxiYXI9XCJvbkhvdmVyXCIgW2Rpc2FibGVkXT1cIiFkYXRhLnNob3dTY3JvbGxcIlxuICAgICAgICAgICAgICAgIFt1c2VOYXRpdmVdPVwiZmFsc2VcIiBbc2Nyb2xsQnlUaHVtYl09XCJ0cnVlXCIgKG9uSW5pdGlhbGl6ZWQpPVwib25TY3JvbGxWaWV3SW5pdGlhbGl6ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnZhbHVlcy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImR4LWNvbGxlY3Rpb25lZGl0b3ItZW1wdHkgZHhkLWVtcHR5LWFyZWEtcGxhY2Vob2xkZXItdGV4dC1jb2xvciBkeGQtdGV4dC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1lbXB0eS10ZXh0XCI+e3tkYXRhLmVtcHR5QXJlYVRleHR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS52YWx1ZXMubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJkeC1jb2xsZWN0aW9uZWRpdG9yLWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGRhdGEudmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHgtY29sbGVjdGlvbmVkaXRvci1pdGVtLWNvbnRhaW5lciBkeGQtYnV0dG9uLWJhY2stY29sb3IgZHhkLXN0YXRlLW5vcm1hbCBkeGQtYmFjay1oaWdobGlnaHRlZCBkeC1hY2Nlc3NpYmlsaXR5LWxpc3QtaXRlbSBkeC1hY2Nlc3NpYmlsaXR5LWZvY3VzLWJvcmRlci1hY2NlbnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInZhbHVlLnNlbGVjdGVkXCIgW2R4QWN0aW9uTW9kZWxdPVwidmFsdWVcIiBbZHhBY3Rpb25dPVwidmFsdWUuc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5keGQtc3RhdGUtc2VsZWN0ZWRdPVwidmFsdWUuc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1jb2xsZWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlLCBjb250ZXh0OiB7IGRhdGE6IHZhbHVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
@@ -2,52 +2,61 @@ import { Component, Input } from '@angular/core';
|
|
2
2
|
import { createDateRangeEditor } from 'devexpress-reporting/viewer/widgets/dateRange/dateRangeEditor';
|
3
3
|
import { generateIconTemplate } from '@devexpress/analytics-core/core/widgets/_generateIconTemplate';
|
4
4
|
import { KeyboardEnum } from '@devexpress/analytics-core/property-grid/widgets/internal/_utils';
|
5
|
+
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
import * as i1 from "devextreme-angular/ui/nested";
|
7
8
|
import * as i2 from "devextreme-angular";
|
8
9
|
import * as i3 from "../../../analytics/template/template.component";
|
9
10
|
export class DateRangeComponent {
|
10
|
-
constructor(_currentElement) {
|
11
|
+
constructor(_currentElement, _changeDetectorRef) {
|
11
12
|
this._currentElement = _currentElement;
|
13
|
+
this._changeDetectorRef = _changeDetectorRef;
|
12
14
|
}
|
13
15
|
ngOnDestroy() {
|
16
|
+
this._vmSubscription && this._vmSubscription();
|
14
17
|
this._editor.dispose();
|
15
18
|
}
|
16
19
|
ngOnInit() {
|
17
20
|
this._editor = createDateRangeEditor(this.options, this._currentElement.nativeElement, this.options);
|
18
21
|
this.data = this._editor.getViewModel();
|
22
|
+
this._vmSubscription = this.data._viewModelEvents.on(ViewModelChangedEvent, () => {
|
23
|
+
this._changeDetectorRef.markForCheck();
|
24
|
+
});
|
19
25
|
this.data.cacheElement(this._currentElement.nativeElement);
|
26
|
+
const processClickEvent = () => {
|
27
|
+
this.data.showPopup();
|
28
|
+
this._changeDetectorRef.markForCheck();
|
29
|
+
};
|
20
30
|
const processKeyBoardEvent = (e) => {
|
21
31
|
if (e.key == KeyboardEnum.Enter || (e.key == KeyboardEnum.ArrowDown && e.altKey)) {
|
22
32
|
this.data.showPopup();
|
33
|
+
this._changeDetectorRef.markForCheck();
|
23
34
|
}
|
24
35
|
};
|
25
36
|
this.subscribeToEvents = (event) => {
|
26
37
|
this.textBoxInputElement = event.element.querySelector('.dx-texteditor-input');
|
27
|
-
this.textBoxInputElement?.addEventListener('click',
|
38
|
+
this.textBoxInputElement?.addEventListener('click', processClickEvent);
|
28
39
|
this.textBoxInputElement?.addEventListener('keydown', processKeyBoardEvent);
|
29
40
|
};
|
30
41
|
this.unsubscribeFromEvents = () => {
|
31
|
-
this.textBoxInputElement?.removeEventListener('click',
|
42
|
+
this.textBoxInputElement?.removeEventListener('click', processClickEvent);
|
32
43
|
this.textBoxInputElement?.removeEventListener('keydown', processKeyBoardEvent);
|
33
44
|
};
|
34
45
|
this.showPopupOptions = {
|
35
46
|
disabled: false,
|
36
|
-
onClick:
|
37
|
-
this.data.showPopup();
|
38
|
-
},
|
47
|
+
onClick: processClickEvent,
|
39
48
|
template: generateIconTemplate('dx-ellipsis-image'),
|
40
49
|
icon: 'dxrd-svg-ellipsis'
|
41
50
|
};
|
42
51
|
}
|
43
52
|
}
|
44
|
-
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
53
|
+
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
45
54
|
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateRangeComponent, selector: "dxv-date-range", inputs: { options: ["data", "options"] }, ngImport: i0, template: "<div class=\"dxrv-daterange-editor\">\n <dx-text-box \n [value]=\"data.displayValue\"\n [readOnly]=\"true\"\n (onContentReady)=\"subscribeToEvents($event)\" (onDisposing)=\"unsubscribeFromEvents()\"\n >\n <dxi-button\n name=\"showPopup\"\n location=\"after\"\n [options]=\"showPopupOptions\"\n ></dxi-button>\n </dx-text-box>\n <dxa-template [template]=\"data.popupTemplate\" [data]=\"data.popupModel\"></dxa-template>\n</div>", dependencies: [{ kind: "component", type: i1.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { kind: "component", type: i2.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i3.TemplateComponent, selector: "dxa-template", inputs: ["data", "template"] }] });
|
46
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, decorators: [{
|
47
56
|
type: Component,
|
48
57
|
args: [{ selector: 'dxv-date-range', template: "<div class=\"dxrv-daterange-editor\">\n <dx-text-box \n [value]=\"data.displayValue\"\n [readOnly]=\"true\"\n (onContentReady)=\"subscribeToEvents($event)\" (onDisposing)=\"unsubscribeFromEvents()\"\n >\n <dxi-button\n name=\"showPopup\"\n location=\"after\"\n [options]=\"showPopupOptions\"\n ></dxi-button>\n </dx-text-box>\n <dxa-template [template]=\"data.popupTemplate\" [data]=\"data.popupModel\"></dxa-template>\n</div>" }]
|
49
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
|
58
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { options: [{
|
50
59
|
type: Input,
|
51
60
|
args: ['data']
|
52
61
|
}] } });
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9keC1yZXBvcnQtdmlld2VyL2NvbXBvbmVudHMvcmVwb3J0aW5nL3BhcmFtZXRlcnNwYW5lbC9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZHgtcmVwb3J0LXZpZXdlci9jb21wb25lbnRzL3JlcG9ydGluZy9wYXJhbWV0ZXJzcGFuZWwvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFFLHFCQUFxQixFQUE0QyxNQUFNLCtEQUErRCxDQUFDO0FBRWhKLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUVoRyxPQUFPLEVBQXNCLHFCQUFxQixFQUFFLE1BQU0sNEVBQTRFLENBQUM7Ozs7O0FBTXZJLE1BQU0sT0FBTyxrQkFBa0I7SUFVM0IsWUFBb0IsZUFBZ0MsRUFBVSxrQkFBcUM7UUFBL0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFDdkcsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQTJCLENBQUMsQ0FBQztRQUN6SCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBSSxJQUFJLENBQUMsSUFBc0QsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1lBQ2hJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQWdCLEVBQUUsRUFBRTtZQUM5QyxJQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMxQztRQUNMLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRztZQUNwQixRQUFRLEVBQUUsS0FBSztZQUNmLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDO1lBQ25ELElBQUksRUFBRSxtQkFBbUI7U0FDckIsQ0FBQztJQUNiLENBQUM7O2dIQS9DUSxrQkFBa0I7b0dBQWxCLGtCQUFrQixnR0NiL0IsMGZBYU07NEZEQU8sa0JBQWtCO2tCQUo5QixTQUFTOytCQUNJLGdCQUFnQjtpSUFJWCxPQUFPO3NCQUFyQixLQUFLO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnRpZXMgfSBmcm9tICdkZXZleHRyZW1lL3VpL2J1dHRvbic7XG5pbXBvcnQgeyBjcmVhdGVEYXRlUmFuZ2VFZGl0b3IsIERhdGVSYW5nZUVkaXRvciwgSURhdGVSYW5nZUVkaXRvck9wdGlvbnMgfSBmcm9tICdkZXZleHByZXNzLXJlcG9ydGluZy92aWV3ZXIvd2lkZ2V0cy9kYXRlUmFuZ2UvZGF0ZVJhbmdlRWRpdG9yJztcbmltcG9ydCB7IElEYXRlUmFuZ2VFZGl0b3JWaWV3TW9kZWwgfSBmcm9tICdkZXZleHByZXNzLXJlcG9ydGluZy92aWV3ZXIvd2lkZ2V0cy9kYXRlUmFuZ2UvZGF0ZVJhbmdlRWRpdG9yLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBnZW5lcmF0ZUljb25UZW1wbGF0ZSB9IGZyb20gJ0BkZXZleHByZXNzL2FuYWx5dGljcy1jb3JlL2NvcmUvd2lkZ2V0cy9fZ2VuZXJhdGVJY29uVGVtcGxhdGUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFbnVtIH0gZnJvbSAnQGRldmV4cHJlc3MvYW5hbHl0aWNzLWNvcmUvcHJvcGVydHktZ3JpZC93aWRnZXRzL2ludGVybmFsL191dGlscyc7XG5pbXBvcnQgeyBJRWRpdG9yVmlld01vZGVsIH0gZnJvbSAnQGRldmV4cHJlc3MvYW5hbHl0aWNzLWNvcmUvYW5hbHl0aWNzLXdpZGdldHMtbmF0aXZlJztcbmltcG9ydCB7IEV2ZW50TWFuYWdlckhvbGRlciwgVmlld01vZGVsQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGRldmV4cHJlc3MvYW5hbHl0aWNzLWNvcmUvc2VyaWFsaXplci9uYXRpdmUvdmlld01vZGVscy92aWV3TW9kZWxHZW5lcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2R4di1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgnZGF0YScpIG9wdGlvbnM6IElEYXRlUmFuZ2VFZGl0b3JPcHRpb25zO1xuICAgIHByaXZhdGUgX2VkaXRvcjogRGF0ZVJhbmdlRWRpdG9yO1xuXG4gICAgZGF0YTogSURhdGVSYW5nZUVkaXRvclZpZXdNb2RlbDtcbiAgICBwcml2YXRlIF92bVN1YnNjcmlwdGlvbjogKCkgPT4gdm9pZDtcbiAgICBzaG93UG9wdXBPcHRpb25zOiBQcm9wZXJ0aWVzO1xuICAgIHRleHRCb3hJbnB1dEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHN1YnNjcmliZVRvRXZlbnRzOiAoZXZlbnQpID0+IHZvaWQ7XG4gICAgdW5zdWJzY3JpYmVGcm9tRXZlbnRzOiAoKSA9PiB2b2lkO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2N1cnJlbnRFbGVtZW50OiBFbGVtZW50UmVmPGFueT4sIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdm1TdWJzY3JpcHRpb24gJiYgdGhpcy5fdm1TdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkaXRvciA9IGNyZWF0ZURhdGVSYW5nZUVkaXRvcih0aGlzLm9wdGlvbnMsIHRoaXMuX2N1cnJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMub3B0aW9ucyBhcyBJRWRpdG9yVmlld01vZGVsKTtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZWRpdG9yLmdldFZpZXdNb2RlbCgpO1xuICAgICAgICB0aGlzLl92bVN1YnNjcmlwdGlvbiA9ICh0aGlzLmRhdGEgYXMgRXZlbnRNYW5hZ2VySG9sZGVyPElEYXRlUmFuZ2VFZGl0b3JWaWV3TW9kZWw+KS5fdmlld01vZGVsRXZlbnRzLm9uKFZpZXdNb2RlbENoYW5nZWRFdmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRhdGEuY2FjaGVFbGVtZW50KHRoaXMuX2N1cnJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBwcm9jZXNzQ2xpY2tFdmVudCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5zaG93UG9wdXAoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwcm9jZXNzS2V5Qm9hcmRFdmVudCA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZihlLmtleSA9PSBLZXlib2FyZEVudW0uRW50ZXIgfHwgKGUua2V5ID09IEtleWJvYXJkRW51bS5BcnJvd0Rvd24gJiYgZS5hbHRLZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLnNob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvRXZlbnRzID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRleHRCb3hJbnB1dEVsZW1lbnQgPSBldmVudC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5keC10ZXh0ZWRpdG9yLWlucHV0Jyk7XG4gICAgICAgICAgICB0aGlzLnRleHRCb3hJbnB1dEVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcHJvY2Vzc0NsaWNrRXZlbnQpO1xuICAgICAgICAgICAgdGhpcy50ZXh0Qm94SW5wdXRFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgcHJvY2Vzc0tleUJvYXJkRXZlbnQpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlRnJvbUV2ZW50cyA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGV4dEJveElucHV0RWxlbWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBwcm9jZXNzQ2xpY2tFdmVudCk7XG4gICAgICAgICAgICB0aGlzLnRleHRCb3hJbnB1dEVsZW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBwcm9jZXNzS2V5Qm9hcmRFdmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2hvd1BvcHVwT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IHByb2Nlc3NDbGlja0V2ZW50LFxuICAgICAgICAgICAgdGVtcGxhdGU6IGdlbmVyYXRlSWNvblRlbXBsYXRlKCdkeC1lbGxpcHNpcy1pbWFnZScpLFxuICAgICAgICAgICAgaWNvbjogJ2R4cmQtc3ZnLWVsbGlwc2lzJ1xuICAgICAgICB9IGFzIGFueTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHhydi1kYXRlcmFuZ2UtZWRpdG9yXCI+XG4gICAgPGR4LXRleHQtYm94IFxuICAgICAgICBbdmFsdWVdPVwiZGF0YS5kaXNwbGF5VmFsdWVcIlxuICAgICAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgICAgIChvbkNvbnRlbnRSZWFkeSk9XCJzdWJzY3JpYmVUb0V2ZW50cygkZXZlbnQpXCIgKG9uRGlzcG9zaW5nKT1cInVuc3Vic2NyaWJlRnJvbUV2ZW50cygpXCJcbiAgICAgICAgPlxuICAgICAgICA8ZHhpLWJ1dHRvblxuICAgICAgICAgIG5hbWU9XCJzaG93UG9wdXBcIlxuICAgICAgICAgIGxvY2F0aW9uPVwiYWZ0ZXJcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInNob3dQb3B1cE9wdGlvbnNcIlxuICAgICAgICA+PC9keGktYnV0dG9uPlxuICAgIDwvZHgtdGV4dC1ib3g+XG4gICAgPGR4YS10ZW1wbGF0ZSBbdGVtcGxhdGVdPVwiZGF0YS5wb3B1cFRlbXBsYXRlXCIgW2RhdGFdPVwiZGF0YS5wb3B1cE1vZGVsXCI+PC9keGEtdGVtcGxhdGU+XG48L2Rpdj4iXX0=
|
@@ -13,6 +13,7 @@ import '@devexpress/analytics-core/dx-analytics-core-svg-templates';
|
|
13
13
|
import 'devexpress-reporting/dx-reporting-svg-templates';
|
14
14
|
import { JSReportViewerBinding } from 'devexpress-reporting/viewer/binding/jsReportViewerBinding';
|
15
15
|
import { AccessibilitySettings } from './utils/accessibility-settings';
|
16
|
+
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
16
17
|
import * as i0 from "@angular/core";
|
17
18
|
import * as i1 from "./utils/accessibility-settings";
|
18
19
|
import * as i2 from "@angular/common";
|
@@ -58,18 +59,26 @@ export class DxReportViewerComponent extends DxReportingComponent {
|
|
58
59
|
super.ngAfterViewInit();
|
59
60
|
this.model = this._binding.sender;
|
60
61
|
this.viewModel = this.model.GetPreviewModel()?.getViewModel();
|
62
|
+
this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
|
61
63
|
this._disposableCallback = this.model.events.on('propertyChanged', (args) => {
|
62
64
|
if (args.propertyName === 'previewModel') {
|
63
65
|
this.viewModel = this.model.GetPreviewModel().getViewModel();
|
66
|
+
this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
|
67
|
+
this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
|
64
68
|
}
|
65
69
|
});
|
66
70
|
this._cd.detectChanges();
|
67
71
|
}
|
68
72
|
ngOnDestroy() {
|
69
73
|
this._disposableCallback && this._disposableCallback();
|
74
|
+
this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
|
70
75
|
this._binding.dispose();
|
71
76
|
super.ngOnDestroy();
|
72
77
|
}
|
78
|
+
_subscribeToViewModelChanged(viewModel) {
|
79
|
+
const eventHolder = viewModel;
|
80
|
+
return eventHolder?._viewModelEvents?.on(ViewModelChangedEvent, () => this._cd.markForCheck());
|
81
|
+
}
|
73
82
|
get accessibilityCompliant() {
|
74
83
|
return this._accessibilitySettings.accessibilityCompliant;
|
75
84
|
}
|
@@ -140,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
140
149
|
}], reportUrl: [{
|
141
150
|
type: Input
|
142
151
|
}] } });
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHgtcmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9keC1yZXBvcnQtdmlld2VyL2R4LXJlcG9ydC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZHgtcmVwb3J0LXZpZXdlci9keC1yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU3RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV6RixPQUFPLDREQUE0RCxDQUFDO0FBQ3BFLE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUF3QixxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBR3hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyx1QkFB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bkQsUUFBUTtzQkFGUCxLQUFLO2dCQU1GLHNCQUFzQjtzQkFGekIsS0FBSztnQkFXTiw2QkFBNkI7c0JBRjVCLEtBQUs7Z0JBS04sR0FBRztzQkFGRixLQUFLO2dCQUtGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IER4UmVwb3J0aW5nQ29tcG9uZW50LCBfYm9vbGVhbkNvbnZlcnRlciwgX2lucHV0Q29udmVydGVyIH0gZnJvbSAnZGV2ZXhwcmVzcy1yZXBvcnRpbmctYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRHhSZXBvcnRWaWV3ZXJDYWxsYmFja3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtY2FsbGJhY2tzJztcbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyUmVxdWVzdE9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtcmVxdWVzdC1vcHRpb25zJztcblxuaW1wb3J0IHsgRHhSZXBvcnRWaWV3ZXJFeHBvcnRTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vZHhydi1leHBvcnQtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyTW9iaWxlTW9kZVNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LW1vYmlsZS1tb2RlLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlclByb2dyZXNzQmFyU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtcHJvZ3Jlc3NiYXItc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyUmVtb3RlU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtcmVtb3RlLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlclRhYlBhbmVsU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtdGFicGFuZWwtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudCc7XG5cbmltcG9ydCAnQGRldmV4cHJlc3MvYW5hbHl0aWNzLWNvcmUvZHgtYW5hbHl0aWNzLWNvcmUtc3ZnLXRlbXBsYXRlcyc7XG5pbXBvcnQgJ2RldmV4cHJlc3MtcmVwb3J0aW5nL2R4LXJlcG9ydGluZy1zdmctdGVtcGxhdGVzJztcbmltcG9ydCB7IElSZXBvcnRWaWV3ZXJPcHRpb25zLCBKU1JlcG9ydFZpZXdlckJpbmRpbmcgfSBmcm9tICdkZXZleHByZXNzLXJlcG9ydGluZy92aWV3ZXIvYmluZGluZy9qc1JlcG9ydFZpZXdlckJpbmRpbmcnO1xuaW1wb3J0IHsgSVByZXZpZXdWaWV3TW9kZWwsIFByZXZpZXdEaXNwb3NhYmxlTW9kZWwgfSBmcm9tICdkZXZleHByZXNzLXJlcG9ydGluZy92aWV3ZXIvaW50ZXJuYWwvX3ByZXZpZXdNb2RlbCc7XG5pbXBvcnQgeyBKU1JlcG9ydFZpZXdlciB9IGZyb20gJ2RldmV4cHJlc3MtcmVwb3J0aW5nL3ZpZXdlci9iaW5kaW5nL2pzUmVwb3J0Vmlld2VyJztcbmltcG9ydCB7IEFjY2Vzc2liaWxpdHlTZXR0aW5ncyB9IGZyb20gJy4vdXRpbHMvYWNjZXNzaWJpbGl0eS1zZXR0aW5ncyc7XG5cbiBAQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdkeC1yZXBvcnQtdmlld2VyJyxcbiAgICAgdGVtcGxhdGVVcmw6ICcuL2R4LXJlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFtdLFxuICAgICBwcm92aWRlcnM6IFtBY2Nlc3NpYmlsaXR5U2V0dGluZ3NdXG4gfSlcbmV4cG9ydCBjbGFzcyBEeFJlcG9ydFZpZXdlckNvbXBvbmVudCBleHRlbmRzIER4UmVwb3J0aW5nQ29tcG9uZW50IHtcbiAgIHByaXZhdGUgX3JlcG9ydFVybDogc3RyaW5nID0gJyc7XG4gICBwcml2YXRlIF9kaXNwb3NhYmxlQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gICB2aWV3TW9kZWw6IElQcmV2aWV3Vmlld01vZGVsO1xuICAgbW9kZWw6IEpTUmVwb3J0Vmlld2VyO1xuICAgcHJvdGVjdGVkIF9iaW5kaW5nOiBKU1JlcG9ydFZpZXdlckJpbmRpbmc7XG4gICBiaW5kaW5nU2VuZGVyOiBKU1JlcG9ydFZpZXdlcjtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlclJlcXVlc3RPcHRpb25zQ29tcG9uZW50KVxuICAgcmVxdWVzdE9wdGlvbnNDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyUmVxdWVzdE9wdGlvbnNDb21wb25lbnQ7XG5cbiAgIEBDb250ZW50Q2hpbGQoRHhSZXBvcnRWaWV3ZXJDYWxsYmFja3NDb21wb25lbnQpXG4gICBjYWxsYmFja3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyQ2FsbGJhY2tzQ29tcG9uZW50O1xuXG4gICBAQ29udGVudENoaWxkKER4UmVwb3J0Vmlld2VyTW9iaWxlTW9kZVNldHRpbmdzQ29tcG9uZW50KVxuICAgbW9iaWxlTW9kZVNldHRpbmdzQ29tcG9uZW50OiBEeFJlcG9ydFZpZXdlck1vYmlsZU1vZGVTZXR0aW5nc0NvbXBvbmVudDtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlclJlbW90ZVNldHRpbmdzQ29tcG9uZW50KVxuICAgcmVtb3RlU2V0dGluZ3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyUmVtb3RlU2V0dGluZ3NDb21wb25lbnQ7XG5cbiAgIEBDb250ZW50Q2hpbGQoRHhSZXBvcnRWaWV3ZXJUYWJQYW5lbFNldHRpbmdzQ29tcG9uZW50KVxuICAgdGFiUGFuZWxTZXR0aW5nc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJUYWJQYW5lbFNldHRpbmdzQ29tcG9uZW50O1xuXG4gICBAQ29udGVudENoaWxkKER4UmVwb3J0Vmlld2VyUHJvZ3Jlc3NCYXJTZXR0aW5nc0NvbXBvbmVudClcbiAgIHByb2dyZXNzQmFyU2V0dGluZ3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyUHJvZ3Jlc3NCYXJTZXR0aW5nc0NvbXBvbmVudDtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlckV4cG9ydFNldHRpbmdzQ29tcG9uZW50KVxuICAgZXhwb3J0U2V0dGluZ3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyRXhwb3J0U2V0dGluZ3NDb21wb25lbnQ7XG5cbiAgIEBDb250ZW50Q2hpbGQoRHhSZXBvcnRWaWV3ZXJTZWFyY2hTZXR0aW5nc0NvbXBvbmVudClcbiAgIHNlYXJjaFNldHRpbmdzQ29tcG9uZW50OiBEeFJlcG9ydFZpZXdlclNlYXJjaFNldHRpbmdzQ29tcG9uZW50O1xuXG4gICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsIHByaXZhdGUgX3ZpZXdlcjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9hY2Nlc3NpYmlsaXR5U2V0dGluZ3M6IEFjY2Vzc2liaWxpdHlTZXR0aW5ncykge1xuICAgICAgIHN1cGVyKHJlbmRlcmVyLCBwbGF0Zm9ybUlkKTtcbiAgIH1cblxuICAgZ2V0S29CaW5kaW5nKG9wdGlvbnM6IElSZXBvcnRWaWV3ZXJPcHRpb25zKTogSlNSZXBvcnRWaWV3ZXJCaW5kaW5nIHtcbiAgICAgICByZXR1cm4gbmV3IEpTUmVwb3J0Vmlld2VyQmluZGluZyhvcHRpb25zLCB0aGlzLmdldEV2ZW50UmFpc2VyKCksIGZhbHNlKTtcbiAgIH1cbiAgIGdldENhbGxiYWNrcygpOiBEeFJlcG9ydFZpZXdlckNhbGxiYWNrc0NvbXBvbmVudCB7XG4gICAgICAgcmV0dXJuIHRoaXMuY2FsbGJhY2tzQ29tcG9uZW50O1xuICAgfVxuICAgZ2V0Q29udHJvbE9wdGlvbnMoKTogSVJlcG9ydFZpZXdlck9wdGlvbnMge1xuICAgICAgIHJldHVybiB7XG4gICAgICAgICAgIHJ0bDogdGhpcy5ydGwsXG4gICAgICAgICAgIGRldmVsb3BtZW50TW9kZTogdGhpcy5kZXZlbG9wbWVudE1vZGUsXG4gICAgICAgICAgIGlzTW9iaWxlOiB0aGlzLmlzTW9iaWxlLFxuICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Q29tcGxpYW50OiB0aGlzLmFjY2Vzc2liaWxpdHlDb21wbGlhbnQsXG4gICAgICAgICAgIHJlcG9ydFVybDogdGhpcy5fcmVwb3J0VXJsLFxuICAgICAgICAgICByZXF1ZXN0T3B0aW9uczogdGhpcy5yZXF1ZXN0T3B0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgICAgbW9iaWxlTW9kZVNldHRpbmdzOiB0aGlzLm1vYmlsZU1vZGVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgICAgcmVtb3RlU2V0dGluZ3M6IHRoaXMucmVtb3RlU2V0dGluZ3NDb21wb25lbnQsXG4gICAgICAgICAgIHRhYlBhbmVsU2V0dGluZ3M6IHRoaXMudGFiUGFuZWxTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgICAgcHJvZ3Jlc3NCYXJTZXR0aW5nczogdGhpcy5wcm9ncmVzc0JhclNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICAgICBleHBvcnRTZXR0aW5nczogdGhpcy5leHBvcnRTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgICAga2VlcFJlcG9ydE9uQ29tcG9uZW50RGlzcG9zYWw6IHRoaXMua2VlcFJlcG9ydE9uQ29tcG9uZW50RGlzcG9zYWwsXG4gICAgICAgICAgIHNlYXJjaFNldHRpbmdzOiB0aGlzLnNlYXJjaFNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICAgICBjYWxsYmFja3M6IHt9XG4gICAgICAgfTtcbiAgIH1cblxuICAgR2V0UHJldmlld01vZGVsKCk6IFByZXZpZXdEaXNwb3NhYmxlTW9kZWwge1xuICAgICAgIHJldHVybiB0aGlzLmJpbmRpbmdTZW5kZXIuR2V0UHJldmlld01vZGVsKCk7XG4gICB9XG5cbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5fYmluZGluZy5zZW5kZXI7XG4gICAgICAgdGhpcy52aWV3TW9kZWwgPSB0aGlzLm1vZGVsLkdldFByZXZpZXdNb2RlbCgpPy5nZXRWaWV3TW9kZWwoKSBhcyBJUHJldmlld1ZpZXdNb2RlbDtcbiAgICAgICB0aGlzLl9kaXNwb3NhYmxlQ2FsbGJhY2sgPSB0aGlzLm1vZGVsLmV2ZW50cy5vbigncHJvcGVydHlDaGFuZ2VkJywgKGFyZ3MpID0+IHtcbiAgICAgICAgICAgaWYoYXJncy5wcm9wZXJ0eU5hbWUgPT09ICdwcmV2aWV3TW9kZWwnKSB7XG4gICAgICAgICAgICAgICB0aGlzLnZpZXdNb2RlbCA9IHRoaXMubW9kZWwuR2V0UHJldmlld01vZGVsKCkuZ2V0Vmlld01vZGVsKCkgYXMgSVByZXZpZXdWaWV3TW9kZWw7XG4gICAgICAgICAgIH1cbiAgICAgICB9KTtcbiAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICB9XG5cbiAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgIHRoaXMuX2Rpc3Bvc2FibGVDYWxsYmFjayAmJiB0aGlzLl9kaXNwb3NhYmxlQ2FsbGJhY2soKTtcbiAgICAgICB0aGlzLl9iaW5kaW5nLmRpc3Bvc2UoKTtcbiAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgfVxuXG4gICBASW5wdXQoKVxuICAgQF9pbnB1dENvbnZlcnRlcihfYm9vbGVhbkNvbnZlcnRlcilcbiAgIGlzTW9iaWxlOiBib29sZWFuO1xuXG4gICBASW5wdXQoKVxuICAgQF9pbnB1dENvbnZlcnRlcihfYm9vbGVhbkNvbnZlcnRlcilcbiAgIGdldCBhY2Nlc3NpYmlsaXR5Q29tcGxpYW50KCk6IGJvb2xlYW4ge1xuICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYWNjZXNzaWJpbGl0eUNvbXBsaWFudDtcbiAgIH1cbiAgIHNldCBhY2Nlc3NpYmlsaXR5Q29tcGxpYW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgdGhpcy5fYWNjZXNzaWJpbGl0eVNldHRpbmdzLmFjY2Vzc2liaWxpdHlDb21wbGlhbnQgPSB2YWx1ZTtcbiAgIH1cblxuICAgQElucHV0KClcbiAgIEBfaW5wdXRDb252ZXJ0ZXIoX2Jvb2xlYW5Db252ZXJ0ZXIpXG4gICBrZWVwUmVwb3J0T25Db21wb25lbnREaXNwb3NhbDogYm9vbGVhbjtcbiAgIEBJbnB1dCgpXG4gICBAX2lucHV0Q29udmVydGVyKF9ib29sZWFuQ29udmVydGVyKVxuICAgcnRsOiBib29sZWFuO1xuXG4gICBASW5wdXQoKVxuICAgZ2V0IHJlcG9ydFVybCgpOiBzdHJpbmcge1xuICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRVcmw7XG4gICB9XG4gICBzZXQgcmVwb3J0VXJsKHJlcG9ydFVybDogc3RyaW5nKSB7XG4gICAgICAgdGhpcy5fcmVwb3J0VXJsID0gcmVwb3J0VXJsO1xuICAgICAgIGlmKHRoaXMuYmluZGluZ1NlbmRlcikgdGhpcy5iaW5kaW5nU2VuZGVyLk9wZW5SZXBvcnQocmVwb3J0VXJsKTtcbiAgIH1cbn1cbiIsIjxkaXYgI2NvbnRyb2wgW25nQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogd2lkdGgsICdoZWlnaHQnOiBoZWlnaHQgfVwiPlxuICA8ZHhhLXRlbXBsYXRlcz48L2R4YS10ZW1wbGF0ZXM+XG4gIDxkeHYtdGVtcGxhdGVzPjwvZHh2LXRlbXBsYXRlcz5cbiAgPGRpdiBjbGFzcz1cImR4LWRlc2lnbmVyXCI+XG4gICAgICA8ZHhhLXRlbXBsYXRlICpuZ0lmPVwiISF2aWV3TW9kZWxcIiB0ZW1wbGF0ZT1cImR4LWRlc2lnbmVyXCIgW2RhdGFdPVwidmlld01vZGVsXCI+PC9keGEtdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHgtcmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9keC1yZXBvcnQtdmlld2VyL2R4LXJlcG9ydC12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZHgtcmVwb3J0LXZpZXdlci9keC1yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU3RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV6RixPQUFPLDREQUE0RCxDQUFDO0FBQ3BFLE9BQU8saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUF3QixxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBR3hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBc0IscUJBQXFCLEVB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QztBQU9EO0lBREMsZUFBZSxDQUFDLGlCQUFpQixDQUFDOzhFQUNJO0FBR3ZDO0lBREMsZUFBZSxDQUFDLGlCQUFpQixDQUFDO29EQUN0Qjs0RkFoSEgsdUJBQXVCO2tCQU5sQyxTQUFTOytCQUNJLGtCQUFrQixhQUdqQixDQUFDLHFCQUFxQixDQUFDOzswQkFtQ0YsTUFBTTsyQkFBQyxXQUFXO3lJQXZCcEQsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFDQUFxQztnQkFJbkQsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLGdDQUFnQztnQkFJOUMsMkJBQTJCO3NCQUQxQixZQUFZO3VCQUFDLHlDQUF5QztnQkFJdkQsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFDQUFxQztnQkFJbkQseUJBQXlCO3NCQUR4QixZQUFZO3VCQUFDLHVDQUF1QztnQkFJckQsNEJBQTRCO3NCQUQzQixZQUFZO3VCQUFDLDBDQUEwQztnQkFJeEQsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFDQUFxQztnQkFJbkQsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFDQUFxQztnQkFrRW5ELFFBQVE7c0JBRlAsS0FBSztnQkFNRixzQkFBc0I7c0JBRnpCLEtBQUs7Z0JBV04sNkJBQTZCO3NCQUY1QixLQUFLO2dCQUtOLEdBQUc7c0JBRkYsS0FBSztnQkFLRixTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEeFJlcG9ydGluZ0NvbXBvbmVudCwgX2Jvb2xlYW5Db252ZXJ0ZXIsIF9pbnB1dENvbnZlcnRlciB9IGZyb20gJ2RldmV4cHJlc3MtcmVwb3J0aW5nLWFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyQ2FsbGJhY2tzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LWNhbGxiYWNrcyc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlclJlcXVlc3RPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LXJlcXVlc3Qtb3B0aW9ucyc7XG5cbmltcG9ydCB7IER4UmVwb3J0Vmlld2VyRXhwb3J0U2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2R4cnYtZXhwb3J0LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlck1vYmlsZU1vZGVTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vZHhydi1tb2JpbGUtbW9kZS1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHhSZXBvcnRWaWV3ZXJQcm9ncmVzc0JhclNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LXByb2dyZXNzYmFyLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlclJlbW90ZVNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LXJlbW90ZS1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHhSZXBvcnRWaWV3ZXJUYWJQYW5lbFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LXRhYnBhbmVsLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeFJlcG9ydFZpZXdlclNlYXJjaFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9keHJ2LXNlYXJjaC1zZXR0aW5ncy5jb21wb25lbnQnO1xuXG5pbXBvcnQgJ0BkZXZleHByZXNzL2FuYWx5dGljcy1jb3JlL2R4LWFuYWx5dGljcy1jb3JlLXN2Zy10ZW1wbGF0ZXMnO1xuaW1wb3J0ICdkZXZleHByZXNzLXJlcG9ydGluZy9keC1yZXBvcnRpbmctc3ZnLXRlbXBsYXRlcyc7XG5pbXBvcnQgeyBJUmVwb3J0Vmlld2VyT3B0aW9ucywgSlNSZXBvcnRWaWV3ZXJCaW5kaW5nIH0gZnJvbSAnZGV2ZXhwcmVzcy1yZXBvcnRpbmcvdmlld2VyL2JpbmRpbmcvanNSZXBvcnRWaWV3ZXJCaW5kaW5nJztcbmltcG9ydCB7IElQcmV2aWV3Vmlld01vZGVsLCBQcmV2aWV3RGlzcG9zYWJsZU1vZGVsIH0gZnJvbSAnZGV2ZXhwcmVzcy1yZXBvcnRpbmcvdmlld2VyL2ludGVybmFsL19wcmV2aWV3TW9kZWwnO1xuaW1wb3J0IHsgSlNSZXBvcnRWaWV3ZXIgfSBmcm9tICdkZXZleHByZXNzLXJlcG9ydGluZy92aWV3ZXIvYmluZGluZy9qc1JlcG9ydFZpZXdlcic7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5U2V0dGluZ3MgfSBmcm9tICcuL3V0aWxzL2FjY2Vzc2liaWxpdHktc2V0dGluZ3MnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VySG9sZGVyLCBWaWV3TW9kZWxDaGFuZ2VkRXZlbnQgfSBmcm9tICdAZGV2ZXhwcmVzcy9hbmFseXRpY3MtY29yZS9zZXJpYWxpemVyL25hdGl2ZS92aWV3TW9kZWxzL3ZpZXdNb2RlbEdlbmVyYXRvcic7XG5cbiBAQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdkeC1yZXBvcnQtdmlld2VyJyxcbiAgICAgdGVtcGxhdGVVcmw6ICcuL2R4LXJlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFtdLFxuICAgICBwcm92aWRlcnM6IFtBY2Nlc3NpYmlsaXR5U2V0dGluZ3NdXG4gfSlcbmV4cG9ydCBjbGFzcyBEeFJlcG9ydFZpZXdlckNvbXBvbmVudCBleHRlbmRzIER4UmVwb3J0aW5nQ29tcG9uZW50IHtcbiAgIHByaXZhdGUgX3JlcG9ydFVybDogc3RyaW5nID0gJyc7XG4gICBwcml2YXRlIF9kaXNwb3NhYmxlQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gICBwcml2YXRlIF9kaXNwb3NlVmlld01vZGVsQ2hhbmdlZFN1YnNjcmlwdGlvbjogKCkgPT4gdm9pZDtcbiAgIHZpZXdNb2RlbDogSVByZXZpZXdWaWV3TW9kZWw7XG4gICBtb2RlbDogSlNSZXBvcnRWaWV3ZXI7XG4gICBwcm90ZWN0ZWQgX2JpbmRpbmc6IEpTUmVwb3J0Vmlld2VyQmluZGluZztcbiAgIGJpbmRpbmdTZW5kZXI6IEpTUmVwb3J0Vmlld2VyO1xuXG4gICBAQ29udGVudENoaWxkKER4UmVwb3J0Vmlld2VyUmVxdWVzdE9wdGlvbnNDb21wb25lbnQpXG4gICByZXF1ZXN0T3B0aW9uc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJSZXF1ZXN0T3B0aW9uc0NvbXBvbmVudDtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlckNhbGxiYWNrc0NvbXBvbmVudClcbiAgIGNhbGxiYWNrc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJDYWxsYmFja3NDb21wb25lbnQ7XG5cbiAgIEBDb250ZW50Q2hpbGQoRHhSZXBvcnRWaWV3ZXJNb2JpbGVNb2RlU2V0dGluZ3NDb21wb25lbnQpXG4gICBtb2JpbGVNb2RlU2V0dGluZ3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyTW9iaWxlTW9kZVNldHRpbmdzQ29tcG9uZW50O1xuXG4gICBAQ29udGVudENoaWxkKER4UmVwb3J0Vmlld2VyUmVtb3RlU2V0dGluZ3NDb21wb25lbnQpXG4gICByZW1vdGVTZXR0aW5nc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJSZW1vdGVTZXR0aW5nc0NvbXBvbmVudDtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlclRhYlBhbmVsU2V0dGluZ3NDb21wb25lbnQpXG4gICB0YWJQYW5lbFNldHRpbmdzQ29tcG9uZW50OiBEeFJlcG9ydFZpZXdlclRhYlBhbmVsU2V0dGluZ3NDb21wb25lbnQ7XG5cbiAgIEBDb250ZW50Q2hpbGQoRHhSZXBvcnRWaWV3ZXJQcm9ncmVzc0JhclNldHRpbmdzQ29tcG9uZW50KVxuICAgcHJvZ3Jlc3NCYXJTZXR0aW5nc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJQcm9ncmVzc0JhclNldHRpbmdzQ29tcG9uZW50O1xuXG4gICBAQ29udGVudENoaWxkKER4UmVwb3J0Vmlld2VyRXhwb3J0U2V0dGluZ3NDb21wb25lbnQpXG4gICBleHBvcnRTZXR0aW5nc0NvbXBvbmVudDogRHhSZXBvcnRWaWV3ZXJFeHBvcnRTZXR0aW5nc0NvbXBvbmVudDtcblxuICAgQENvbnRlbnRDaGlsZChEeFJlcG9ydFZpZXdlclNlYXJjaFNldHRpbmdzQ29tcG9uZW50KVxuICAgc2VhcmNoU2V0dGluZ3NDb21wb25lbnQ6IER4UmVwb3J0Vmlld2VyU2VhcmNoU2V0dGluZ3NDb21wb25lbnQ7XG5cbiAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCwgcHJpdmF0ZSBfdmlld2VyOiBFbGVtZW50UmVmLCBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX2FjY2Vzc2liaWxpdHlTZXR0aW5nczogQWNjZXNzaWJpbGl0eVNldHRpbmdzKSB7XG4gICAgICAgc3VwZXIocmVuZGVyZXIsIHBsYXRmb3JtSWQpO1xuICAgfVxuXG4gICBnZXRLb0JpbmRpbmcob3B0aW9uczogSVJlcG9ydFZpZXdlck9wdGlvbnMpOiBKU1JlcG9ydFZpZXdlckJpbmRpbmcge1xuICAgICAgIHJldHVybiBuZXcgSlNSZXBvcnRWaWV3ZXJCaW5kaW5nKG9wdGlvbnMsIHRoaXMuZ2V0RXZlbnRSYWlzZXIoKSwgZmFsc2UpO1xuICAgfVxuICAgZ2V0Q2FsbGJhY2tzKCk6IER4UmVwb3J0Vmlld2VyQ2FsbGJhY2tzQ29tcG9uZW50IHtcbiAgICAgICByZXR1cm4gdGhpcy5jYWxsYmFja3NDb21wb25lbnQ7XG4gICB9XG4gICBnZXRDb250cm9sT3B0aW9ucygpOiBJUmVwb3J0Vmlld2VyT3B0aW9ucyB7XG4gICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgcnRsOiB0aGlzLnJ0bCxcbiAgICAgICAgICAgZGV2ZWxvcG1lbnRNb2RlOiB0aGlzLmRldmVsb3BtZW50TW9kZSxcbiAgICAgICAgICAgaXNNb2JpbGU6IHRoaXMuaXNNb2JpbGUsXG4gICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb21wbGlhbnQ6IHRoaXMuYWNjZXNzaWJpbGl0eUNvbXBsaWFudCxcbiAgICAgICAgICAgcmVwb3J0VXJsOiB0aGlzLl9yZXBvcnRVcmwsXG4gICAgICAgICAgIHJlcXVlc3RPcHRpb25zOiB0aGlzLnJlcXVlc3RPcHRpb25zQ29tcG9uZW50LFxuICAgICAgICAgICBtb2JpbGVNb2RlU2V0dGluZ3M6IHRoaXMubW9iaWxlTW9kZVNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICAgICByZW1vdGVTZXR0aW5nczogdGhpcy5yZW1vdGVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgICAgdGFiUGFuZWxTZXR0aW5nczogdGhpcy50YWJQYW5lbFNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICAgICBwcm9ncmVzc0JhclNldHRpbmdzOiB0aGlzLnByb2dyZXNzQmFyU2V0dGluZ3NDb21wb25lbnQsXG4gICAgICAgICAgIGV4cG9ydFNldHRpbmdzOiB0aGlzLmV4cG9ydFNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICAgICBrZWVwUmVwb3J0T25Db21wb25lbnREaXNwb3NhbDogdGhpcy5rZWVwUmVwb3J0T25Db21wb25lbnREaXNwb3NhbCxcbiAgICAgICAgICAgc2VhcmNoU2V0dGluZ3M6IHRoaXMuc2VhcmNoU2V0dGluZ3NDb21wb25lbnQsXG4gICAgICAgICAgIGNhbGxiYWNrczoge31cbiAgICAgICB9O1xuICAgfVxuXG4gICBHZXRQcmV2aWV3TW9kZWwoKTogUHJldmlld0Rpc3Bvc2FibGVNb2RlbCB7XG4gICAgICAgcmV0dXJuIHRoaXMuYmluZGluZ1NlbmRlci5HZXRQcmV2aWV3TW9kZWwoKTtcbiAgIH1cblxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgIHRoaXMubW9kZWwgPSB0aGlzLl9iaW5kaW5nLnNlbmRlcjtcbiAgICAgICB0aGlzLnZpZXdNb2RlbCA9IHRoaXMubW9kZWwuR2V0UHJldmlld01vZGVsKCk/LmdldFZpZXdNb2RlbCgpIGFzIElQcmV2aWV3Vmlld01vZGVsO1xuICAgICAgIHRoaXMuX2Rpc3Bvc2VWaWV3TW9kZWxDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5fc3Vic2NyaWJlVG9WaWV3TW9kZWxDaGFuZ2VkKHRoaXMudmlld01vZGVsKTtcblxuICAgICAgIHRoaXMuX2Rpc3Bvc2FibGVDYWxsYmFjayA9IHRoaXMubW9kZWwuZXZlbnRzLm9uKCdwcm9wZXJ0eUNoYW5nZWQnLCAoYXJncykgPT4ge1xuICAgICAgICAgICBpZihhcmdzLnByb3BlcnR5TmFtZSA9PT0gJ3ByZXZpZXdNb2RlbCcpIHtcbiAgICAgICAgICAgICAgIHRoaXMudmlld01vZGVsID0gdGhpcy5tb2RlbC5HZXRQcmV2aWV3TW9kZWwoKS5nZXRWaWV3TW9kZWwoKSBhcyBJUHJldmlld1ZpZXdNb2RlbDtcbiAgICAgICAgICAgICAgIHRoaXMuX2Rpc3Bvc2VWaWV3TW9kZWxDaGFuZ2VkU3Vic2NyaXB0aW9uICYmIHRoaXMuX2Rpc3Bvc2VWaWV3TW9kZWxDaGFuZ2VkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICB0aGlzLl9kaXNwb3NlVmlld01vZGVsQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmliZVRvVmlld01vZGVsQ2hhbmdlZCh0aGlzLnZpZXdNb2RlbCk7XG4gICAgICAgICAgIH1cbiAgICAgICB9KTtcbiAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICB9XG5cbiAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgIHRoaXMuX2Rpc3Bvc2FibGVDYWxsYmFjayAmJiB0aGlzLl9kaXNwb3NhYmxlQ2FsbGJhY2soKTtcbiAgICAgICB0aGlzLl9kaXNwb3NlVmlld01vZGVsQ2hhbmdlZFN1YnNjcmlwdGlvbiAmJiB0aGlzLl9kaXNwb3NlVmlld01vZGVsQ2hhbmdlZFN1YnNjcmlwdGlvbigpO1xuICAgICAgIHRoaXMuX2JpbmRpbmcuZGlzcG9zZSgpO1xuICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICB9XG5cbiAgIHByaXZhdGUgX3N1YnNjcmliZVRvVmlld01vZGVsQ2hhbmdlZCh2aWV3TW9kZWw6IElQcmV2aWV3Vmlld01vZGVsKSB7XG4gICAgICAgY29uc3QgZXZlbnRIb2xkZXIgPSA8RXZlbnRNYW5hZ2VySG9sZGVyPElQcmV2aWV3Vmlld01vZGVsPj4gdmlld01vZGVsO1xuICAgICAgIHJldHVybiBldmVudEhvbGRlcj8uX3ZpZXdNb2RlbEV2ZW50cz8ub24oVmlld01vZGVsQ2hhbmdlZEV2ZW50LCAoKSA9PiB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKSk7XG4gICB9XG5cbiAgIEBJbnB1dCgpXG4gICBAX2lucHV0Q29udmVydGVyKF9ib29sZWFuQ29udmVydGVyKVxuICAgaXNNb2JpbGU6IGJvb2xlYW47XG5cbiAgIEBJbnB1dCgpXG4gICBAX2lucHV0Q29udmVydGVyKF9ib29sZWFuQ29udmVydGVyKVxuICAgZ2V0IGFjY2Vzc2liaWxpdHlDb21wbGlhbnQoKTogYm9vbGVhbiB7XG4gICAgICAgcmV0dXJuIHRoaXMuX2FjY2Vzc2liaWxpdHlTZXR0aW5ncy5hY2Nlc3NpYmlsaXR5Q29tcGxpYW50O1xuICAgfVxuICAgc2V0IGFjY2Vzc2liaWxpdHlDb21wbGlhbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICB0aGlzLl9hY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYWNjZXNzaWJpbGl0eUNvbXBsaWFudCA9IHZhbHVlO1xuICAgfVxuXG4gICBASW5wdXQoKVxuICAgQF9pbnB1dENvbnZlcnRlcihfYm9vbGVhbkNvbnZlcnRlcilcbiAgIGtlZXBSZXBvcnRPbkNvbXBvbmVudERpc3Bvc2FsOiBib29sZWFuO1xuICAgQElucHV0KClcbiAgIEBfaW5wdXRDb252ZXJ0ZXIoX2Jvb2xlYW5Db252ZXJ0ZXIpXG4gICBydGw6IGJvb2xlYW47XG5cbiAgIEBJbnB1dCgpXG4gICBnZXQgcmVwb3J0VXJsKCk6IHN0cmluZyB7XG4gICAgICAgcmV0dXJuIHRoaXMuX3JlcG9ydFVybDtcbiAgIH1cbiAgIHNldCByZXBvcnRVcmwocmVwb3J0VXJsOiBzdHJpbmcpIHtcbiAgICAgICB0aGlzLl9yZXBvcnRVcmwgPSByZXBvcnRVcmw7XG4gICAgICAgaWYodGhpcy5iaW5kaW5nU2VuZGVyKSB0aGlzLmJpbmRpbmdTZW5kZXIuT3BlblJlcG9ydChyZXBvcnRVcmwpO1xuICAgfVxufVxuIiwiPGRpdiAjY29udHJvbCBbbmdDbGFzc109XCJjc3NDbGFzc1wiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOiB3aWR0aCwgJ2hlaWdodCc6IGhlaWdodCB9XCI+XG4gIDxkeGEtdGVtcGxhdGVzPjwvZHhhLXRlbXBsYXRlcz5cbiAgPGR4di10ZW1wbGF0ZXM+PC9keHYtdGVtcGxhdGVzPlxuICA8ZGl2IGNsYXNzPVwiZHgtZGVzaWduZXJcIj5cbiAgICAgIDxkeGEtdGVtcGxhdGUgKm5nSWY9XCIhIXZpZXdNb2RlbFwiIHRlbXBsYXRlPVwiZHgtZGVzaWduZXJcIiBbZGF0YV09XCJ2aWV3TW9kZWxcIj48L2R4YS10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
@@ -5,6 +5,7 @@ import { _inputConverter, _booleanConverter, DxReportingComponent } from 'devexp
|
|
5
5
|
import '@devexpress/analytics-core/dx-analytics-core-svg-templates';
|
6
6
|
import 'devexpress-reporting/dx-reporting-svg-templates';
|
7
7
|
import { JSReportViewerBinding } from 'devexpress-reporting/viewer/binding/jsReportViewerBinding';
|
8
|
+
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
8
9
|
import * as i1 from '@angular/common';
|
9
10
|
import { CommonModule } from '@angular/common';
|
10
11
|
import { SvgTemplatesEngine } from '@devexpress/analytics-core/property-grid/widgets/internal/_svgTemplateEngine';
|
@@ -738,25 +739,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
738
739
|
}] });
|
739
740
|
|
740
741
|
class CollectionEditorComponent {
|
741
|
-
constructor() {
|
742
|
+
constructor(_changeDetectorRef) {
|
743
|
+
this._changeDetectorRef = _changeDetectorRef;
|
742
744
|
}
|
743
745
|
ngOnDestroy() {
|
746
|
+
this._vmSubscription && this._vmSubscription();
|
744
747
|
this._model.dispose();
|
745
748
|
}
|
746
749
|
ngOnInit() {
|
747
750
|
this._model = new CollectionEditorViewModel(this.options);
|
748
751
|
this.data = this._model.getViewModel();
|
752
|
+
this._vmSubscription = this.data
|
753
|
+
._viewModelEvents.on(ViewModelChangedEvent, () => this._changeDetectorRef.markForCheck());
|
749
754
|
}
|
750
755
|
onScrollViewInitialized(args) {
|
751
756
|
args.component.option('useKeyboard', false);
|
752
757
|
}
|
753
758
|
}
|
754
|
-
CollectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
759
|
+
CollectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
755
760
|
CollectionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CollectionEditorComponent, selector: "dxa-collectioneditor", inputs: { options: ["data", "options"], contentTemplate: "contentTemplate" }, ngImport: i0, template: "<div class=\"dx-collectioneditor\">\n <div [dxaAccordion]=\"data\" [dxMutationObserver]=\"data.keyboardHelper\">\n <div class=\"dx-collectioneditor-header dx-accordion-header\">\n <div class=\"dx-editor-header\">\n <div role=\"treeitem\"\n class=\"dx-field dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger\"\n [attr.aria-expanded]=\"data.alwaysShow || !data.collapsed ? 'true' : 'false'\"\n [attr.aria-owns]=\"data.contentId\" [attr.id]=\"data.headerId\">\n <div *ngIf=\"data.showButtons\" class=\"dx-collectioneditor-actions-wrapper\">\n <dx-button *ngIf=\"data.buttons.up.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.up.action($event)\" [disabled]=\"data.buttons.up.disabled\"\n icon=\"dxrd-svg-operations-moveup\" iconClass=\"dx-image-moveup\"\n [template]=\"data.buttons.up.template\"\n [attr.title]=\"data.buttons.up.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.down.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.down.action($event)\" [disabled]=\"data.buttons.down.disabled\"\n icon=\"dxrd-svg-operations-movedown\" iconClass=\"dx-image-movedown\"\n [template]=\"data.buttons.down.template\"\n [attr.title]=\"data.buttons.down.text\"></dx-button>\n <div class=\"dx-collectioneditor-action-separator\"></div>\n <dx-button *ngIf=\"data.buttons.add.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.add.action($event)\" [disabled]=\"data.buttons.add.disabled\"\n [template]=\"data.buttons.add.template\"\n icon=\"dxrd-svg-operations-add\" iconClass=\"dx-image-add\"\n [attr.title]=\"data.buttons.add.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.delete.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.delete.action($event)\" [disabled]=\"data.buttons.delete.disabled\"\n [template]=\"data.buttons.delete.template\"\n icon=\"dxrd-svg-operations-remove\" iconClass=\"dx-image-remove\"\n [attr.title]=\"data.buttons.delete.text\"></dx-button>\n </div>\n <div *ngIf=\"!!data.displayName\" class=\"dx-collectioneditor-header-text dxd-text-primary\"\n [style.padding-left]=\"data.padding + 'px'\">\n <dxa-template class=\"dx-collapsing-image dxrd-display-inline-block\"\n template=\"dxrd-svg-collapsed\"\n [class.dx-image-expanded]=\"!data.collapsed \"></dxa-template>\n <div class=\"dx-group-header-font dxd-text-primary dxrd-display-inline-block\" [attr.title]=\"data.displayName\">\n {{data.displayName}}</div>\n </div>\n </div>\n </div>\n </div>\n <div role=\"group\" class=\"dx-accordion-content\"\n [attr.aria-hidden]=\"!data.alwaysShow && data.collapsed ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"data.headerId\" [attr.id]=\"data.contentId\">\n <dx-scroll-view [hidden]=\"data.disabled\" showScrollbar=\"onHover\" [disabled]=\"!data.showScroll\"\n [useNative]=\"false\" [scrollByThumb]=\"true\" (onInitialized)=\"onScrollViewInitialized($event)\">\n <div *ngIf=\"data.values.length === 0\"\n class=\"dx-collectioneditor-empty dxd-empty-area-placeholder-text-color dxd-text-info\">\n <span class=\"dx-collectioneditor-empty-text\">{{data.emptyAreaText}}</span>\n </div>\n <div *ngIf=\"data.values.length !== 0\" class=\"dx-collectioneditor-items\">\n <div *ngFor=\"let value of data.values\"\n class=\"dx-collectioneditor-item-container dxd-button-back-color dxd-state-normal dxd-back-highlighted dx-accessibility-list-item dx-accessibility-focus-border-accented\"\n [attr.aria-selected]=\"value.selected\" [dxActionModel]=\"value\" [dxAction]=\"value.select\"\n [class.dxd-state-selected]=\"value.selected\">\n <div class=\"dx-collection-item\">\n <ng-container *ngTemplateOutlet=\"contentTemplate, context: { data: value }\"></ng-container>\n </div>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i2.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { kind: "component", type: TemplateComponent, selector: "dxa-template", inputs: ["data", "template"] }, { kind: "directive", type: DxActionDirective, selector: "[dxAction]", inputs: ["dxActionModel", "dxAction"] }, { kind: "directive", type: AccordionDirective, selector: "[dxaAccordion]", inputs: ["dxaAccordion"] }, { kind: "directive", type: DxMutationObserverDirective, selector: "[dxMutationObserver]", inputs: ["dxMutationObserver"] }] });
|
756
761
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CollectionEditorComponent, decorators: [{
|
757
762
|
type: Component,
|
758
763
|
args: [{ selector: 'dxa-collectioneditor', template: "<div class=\"dx-collectioneditor\">\n <div [dxaAccordion]=\"data\" [dxMutationObserver]=\"data.keyboardHelper\">\n <div class=\"dx-collectioneditor-header dx-accordion-header\">\n <div class=\"dx-editor-header\">\n <div role=\"treeitem\"\n class=\"dx-field dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger\"\n [attr.aria-expanded]=\"data.alwaysShow || !data.collapsed ? 'true' : 'false'\"\n [attr.aria-owns]=\"data.contentId\" [attr.id]=\"data.headerId\">\n <div *ngIf=\"data.showButtons\" class=\"dx-collectioneditor-actions-wrapper\">\n <dx-button *ngIf=\"data.buttons.up.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.up.action($event)\" [disabled]=\"data.buttons.up.disabled\"\n icon=\"dxrd-svg-operations-moveup\" iconClass=\"dx-image-moveup\"\n [template]=\"data.buttons.up.template\"\n [attr.title]=\"data.buttons.up.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.down.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.down.action($event)\" [disabled]=\"data.buttons.down.disabled\"\n icon=\"dxrd-svg-operations-movedown\" iconClass=\"dx-image-movedown\"\n [template]=\"data.buttons.down.template\"\n [attr.title]=\"data.buttons.down.text\"></dx-button>\n <div class=\"dx-collectioneditor-action-separator\"></div>\n <dx-button *ngIf=\"data.buttons.add.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.add.action($event)\" [disabled]=\"data.buttons.add.disabled\"\n [template]=\"data.buttons.add.template\"\n icon=\"dxrd-svg-operations-add\" iconClass=\"dx-image-add\"\n [attr.title]=\"data.buttons.add.text\"></dx-button>\n <dx-button *ngIf=\"data.buttons.delete.visible\"\n class=\"dx-collectioneditor-action dx-accessibility-focus-border-accented\"\n (onClick)=\"data.buttons.delete.action($event)\" [disabled]=\"data.buttons.delete.disabled\"\n [template]=\"data.buttons.delete.template\"\n icon=\"dxrd-svg-operations-remove\" iconClass=\"dx-image-remove\"\n [attr.title]=\"data.buttons.delete.text\"></dx-button>\n </div>\n <div *ngIf=\"!!data.displayName\" class=\"dx-collectioneditor-header-text dxd-text-primary\"\n [style.padding-left]=\"data.padding + 'px'\">\n <dxa-template class=\"dx-collapsing-image dxrd-display-inline-block\"\n template=\"dxrd-svg-collapsed\"\n [class.dx-image-expanded]=\"!data.collapsed \"></dxa-template>\n <div class=\"dx-group-header-font dxd-text-primary dxrd-display-inline-block\" [attr.title]=\"data.displayName\">\n {{data.displayName}}</div>\n </div>\n </div>\n </div>\n </div>\n <div role=\"group\" class=\"dx-accordion-content\"\n [attr.aria-hidden]=\"!data.alwaysShow && data.collapsed ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"data.headerId\" [attr.id]=\"data.contentId\">\n <dx-scroll-view [hidden]=\"data.disabled\" showScrollbar=\"onHover\" [disabled]=\"!data.showScroll\"\n [useNative]=\"false\" [scrollByThumb]=\"true\" (onInitialized)=\"onScrollViewInitialized($event)\">\n <div *ngIf=\"data.values.length === 0\"\n class=\"dx-collectioneditor-empty dxd-empty-area-placeholder-text-color dxd-text-info\">\n <span class=\"dx-collectioneditor-empty-text\">{{data.emptyAreaText}}</span>\n </div>\n <div *ngIf=\"data.values.length !== 0\" class=\"dx-collectioneditor-items\">\n <div *ngFor=\"let value of data.values\"\n class=\"dx-collectioneditor-item-container dxd-button-back-color dxd-state-normal dxd-back-highlighted dx-accessibility-list-item dx-accessibility-focus-border-accented\"\n [attr.aria-selected]=\"value.selected\" [dxActionModel]=\"value\" [dxAction]=\"value.select\"\n [class.dxd-state-selected]=\"value.selected\">\n <div class=\"dx-collection-item\">\n <ng-container *ngTemplateOutlet=\"contentTemplate, context: { data: value }\"></ng-container>\n </div>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n </div>\n</div>" }]
|
759
|
-
}], ctorParameters: function () { return []; }, propDecorators: { options: [{
|
764
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { options: [{
|
760
765
|
type: Input,
|
761
766
|
args: ['data']
|
762
767
|
}], contentTemplate: [{
|
@@ -1322,48 +1327,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
1322
1327
|
}] } });
|
1323
1328
|
|
1324
1329
|
class DateRangeComponent {
|
1325
|
-
constructor(_currentElement) {
|
1330
|
+
constructor(_currentElement, _changeDetectorRef) {
|
1326
1331
|
this._currentElement = _currentElement;
|
1332
|
+
this._changeDetectorRef = _changeDetectorRef;
|
1327
1333
|
}
|
1328
1334
|
ngOnDestroy() {
|
1335
|
+
this._vmSubscription && this._vmSubscription();
|
1329
1336
|
this._editor.dispose();
|
1330
1337
|
}
|
1331
1338
|
ngOnInit() {
|
1332
1339
|
this._editor = createDateRangeEditor(this.options, this._currentElement.nativeElement, this.options);
|
1333
1340
|
this.data = this._editor.getViewModel();
|
1341
|
+
this._vmSubscription = this.data._viewModelEvents.on(ViewModelChangedEvent, () => {
|
1342
|
+
this._changeDetectorRef.markForCheck();
|
1343
|
+
});
|
1334
1344
|
this.data.cacheElement(this._currentElement.nativeElement);
|
1345
|
+
const processClickEvent = () => {
|
1346
|
+
this.data.showPopup();
|
1347
|
+
this._changeDetectorRef.markForCheck();
|
1348
|
+
};
|
1335
1349
|
const processKeyBoardEvent = (e) => {
|
1336
1350
|
if (e.key == KeyboardEnum.Enter || (e.key == KeyboardEnum.ArrowDown && e.altKey)) {
|
1337
1351
|
this.data.showPopup();
|
1352
|
+
this._changeDetectorRef.markForCheck();
|
1338
1353
|
}
|
1339
1354
|
};
|
1340
1355
|
this.subscribeToEvents = (event) => {
|
1341
1356
|
var _a, _b;
|
1342
1357
|
this.textBoxInputElement = event.element.querySelector('.dx-texteditor-input');
|
1343
|
-
(_a = this.textBoxInputElement) === null || _a === void 0 ? void 0 : _a.addEventListener('click',
|
1358
|
+
(_a = this.textBoxInputElement) === null || _a === void 0 ? void 0 : _a.addEventListener('click', processClickEvent);
|
1344
1359
|
(_b = this.textBoxInputElement) === null || _b === void 0 ? void 0 : _b.addEventListener('keydown', processKeyBoardEvent);
|
1345
1360
|
};
|
1346
1361
|
this.unsubscribeFromEvents = () => {
|
1347
1362
|
var _a, _b;
|
1348
|
-
(_a = this.textBoxInputElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('click',
|
1363
|
+
(_a = this.textBoxInputElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', processClickEvent);
|
1349
1364
|
(_b = this.textBoxInputElement) === null || _b === void 0 ? void 0 : _b.removeEventListener('keydown', processKeyBoardEvent);
|
1350
1365
|
};
|
1351
1366
|
this.showPopupOptions = {
|
1352
1367
|
disabled: false,
|
1353
|
-
onClick:
|
1354
|
-
this.data.showPopup();
|
1355
|
-
},
|
1368
|
+
onClick: processClickEvent,
|
1356
1369
|
template: generateIconTemplate('dx-ellipsis-image'),
|
1357
1370
|
icon: 'dxrd-svg-ellipsis'
|
1358
1371
|
};
|
1359
1372
|
}
|
1360
1373
|
}
|
1361
|
-
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
1374
|
+
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
1362
1375
|
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateRangeComponent, selector: "dxv-date-range", inputs: { options: ["data", "options"] }, ngImport: i0, template: "<div class=\"dxrv-daterange-editor\">\n <dx-text-box \n [value]=\"data.displayValue\"\n [readOnly]=\"true\"\n (onContentReady)=\"subscribeToEvents($event)\" (onDisposing)=\"unsubscribeFromEvents()\"\n >\n <dxi-button\n name=\"showPopup\"\n location=\"after\"\n [options]=\"showPopupOptions\"\n ></dxi-button>\n </dx-text-box>\n <dxa-template [template]=\"data.popupTemplate\" [data]=\"data.popupModel\"></dxa-template>\n</div>", dependencies: [{ kind: "component", type: i1$1.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { kind: "component", type: i2.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: TemplateComponent, selector: "dxa-template", inputs: ["data", "template"] }] });
|
1363
1376
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeComponent, decorators: [{
|
1364
1377
|
type: Component,
|
1365
1378
|
args: [{ selector: 'dxv-date-range', template: "<div class=\"dxrv-daterange-editor\">\n <dx-text-box \n [value]=\"data.displayValue\"\n [readOnly]=\"true\"\n (onContentReady)=\"subscribeToEvents($event)\" (onDisposing)=\"unsubscribeFromEvents()\"\n >\n <dxi-button\n name=\"showPopup\"\n location=\"after\"\n [options]=\"showPopupOptions\"\n ></dxi-button>\n </dx-text-box>\n <dxa-template [template]=\"data.popupTemplate\" [data]=\"data.popupModel\"></dxa-template>\n</div>" }]
|
1366
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
|
1379
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { options: [{
|
1367
1380
|
type: Input,
|
1368
1381
|
args: ['data']
|
1369
1382
|
}] } });
|
@@ -2679,18 +2692,27 @@ class DxReportViewerComponent extends DxReportingComponent {
|
|
2679
2692
|
super.ngAfterViewInit();
|
2680
2693
|
this.model = this._binding.sender;
|
2681
2694
|
this.viewModel = (_a = this.model.GetPreviewModel()) === null || _a === void 0 ? void 0 : _a.getViewModel();
|
2695
|
+
this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
|
2682
2696
|
this._disposableCallback = this.model.events.on('propertyChanged', (args) => {
|
2683
2697
|
if (args.propertyName === 'previewModel') {
|
2684
2698
|
this.viewModel = this.model.GetPreviewModel().getViewModel();
|
2699
|
+
this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
|
2700
|
+
this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
|
2685
2701
|
}
|
2686
2702
|
});
|
2687
2703
|
this._cd.detectChanges();
|
2688
2704
|
}
|
2689
2705
|
ngOnDestroy() {
|
2690
2706
|
this._disposableCallback && this._disposableCallback();
|
2707
|
+
this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
|
2691
2708
|
this._binding.dispose();
|
2692
2709
|
super.ngOnDestroy();
|
2693
2710
|
}
|
2711
|
+
_subscribeToViewModelChanged(viewModel) {
|
2712
|
+
var _a;
|
2713
|
+
const eventHolder = viewModel;
|
2714
|
+
return (_a = eventHolder === null || eventHolder === void 0 ? void 0 : eventHolder._viewModelEvents) === null || _a === void 0 ? void 0 : _a.on(ViewModelChangedEvent, () => this._cd.markForCheck());
|
2715
|
+
}
|
2694
2716
|
get accessibilityCompliant() {
|
2695
2717
|
return this._accessibilitySettings.accessibilityCompliant;
|
2696
2718
|
}
|