devexpress-reporting-angular 23.2.5-build-2437-2329 → 23.2.5-build-2447-1420

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.
@@ -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: [{
@@ -1324,46 +1329,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1324
1329
  }] } });
1325
1330
 
1326
1331
  class DateRangeComponent {
1327
- constructor(_currentElement) {
1332
+ constructor(_currentElement, _changeDetectorRef) {
1328
1333
  this._currentElement = _currentElement;
1334
+ this._changeDetectorRef = _changeDetectorRef;
1329
1335
  }
1330
1336
  ngOnDestroy() {
1337
+ this._vmSubscription && this._vmSubscription();
1331
1338
  this._editor.dispose();
1332
1339
  }
1333
1340
  ngOnInit() {
1334
1341
  this._editor = createDateRangeEditor(this.options, this._currentElement.nativeElement, this.options);
1335
1342
  this.data = this._editor.getViewModel();
1343
+ this._vmSubscription = this.data._viewModelEvents.on(ViewModelChangedEvent, () => {
1344
+ this._changeDetectorRef.markForCheck();
1345
+ });
1336
1346
  this.data.cacheElement(this._currentElement.nativeElement);
1347
+ const processClickEvent = () => {
1348
+ this.data.showPopup();
1349
+ this._changeDetectorRef.markForCheck();
1350
+ };
1337
1351
  const processKeyBoardEvent = (e) => {
1338
1352
  if (e.key == KeyboardEnum.Enter || (e.key == KeyboardEnum.ArrowDown && e.altKey)) {
1339
1353
  this.data.showPopup();
1354
+ this._changeDetectorRef.markForCheck();
1340
1355
  }
1341
1356
  };
1342
1357
  this.subscribeToEvents = (event) => {
1343
1358
  this.textBoxInputElement = event.element.querySelector('.dx-texteditor-input');
1344
- this.textBoxInputElement?.addEventListener('click', this.data.showPopup);
1359
+ this.textBoxInputElement?.addEventListener('click', processClickEvent);
1345
1360
  this.textBoxInputElement?.addEventListener('keydown', processKeyBoardEvent);
1346
1361
  };
1347
1362
  this.unsubscribeFromEvents = () => {
1348
- this.textBoxInputElement?.removeEventListener('click', this.data.showPopup);
1363
+ this.textBoxInputElement?.removeEventListener('click', processClickEvent);
1349
1364
  this.textBoxInputElement?.removeEventListener('keydown', processKeyBoardEvent);
1350
1365
  };
1351
1366
  this.showPopupOptions = {
1352
1367
  disabled: false,
1353
- onClick: (e) => {
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
  }] } });
@@ -2676,18 +2689,26 @@ class DxReportViewerComponent extends DxReportingComponent {
2676
2689
  super.ngAfterViewInit();
2677
2690
  this.model = this._binding.sender;
2678
2691
  this.viewModel = this.model.GetPreviewModel()?.getViewModel();
2692
+ this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
2679
2693
  this._disposableCallback = this.model.events.on('propertyChanged', (args) => {
2680
2694
  if (args.propertyName === 'previewModel') {
2681
2695
  this.viewModel = this.model.GetPreviewModel().getViewModel();
2696
+ this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
2697
+ this._disposeViewModelChangedSubscription = this._subscribeToViewModelChanged(this.viewModel);
2682
2698
  }
2683
2699
  });
2684
2700
  this._cd.detectChanges();
2685
2701
  }
2686
2702
  ngOnDestroy() {
2687
2703
  this._disposableCallback && this._disposableCallback();
2704
+ this._disposeViewModelChangedSubscription && this._disposeViewModelChangedSubscription();
2688
2705
  this._binding.dispose();
2689
2706
  super.ngOnDestroy();
2690
2707
  }
2708
+ _subscribeToViewModelChanged(viewModel) {
2709
+ const eventHolder = viewModel;
2710
+ return eventHolder?._viewModelEvents?.on(ViewModelChangedEvent, () => this._cd.markForCheck());
2711
+ }
2691
2712
  get accessibilityCompliant() {
2692
2713
  return this._accessibilitySettings.accessibilityCompliant;
2693
2714
  }