{"version":3,"sources":["webpack:///./src/views/ReportPage.vue","webpack:///./src/components/report/WebDocumentViewer.vue","webpack:///./node_modules/@devexpress/analytics-core/serializer/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_ajaxSetup.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/ajaxSetup.js","webpack:///./node_modules/@devexpress/analytics-core/serializer/utils.js","webpack:///./node_modules/@devexpress/analytics-core/serializer/_internal.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_internal.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/localization/_localization.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/localization/localization_utils.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/editorsInfo.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/common/pathRequest.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_internal.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/value.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/parameter.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/property.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/unary.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/aggregate.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaEnumeration.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaOperatorStateMachine.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/internal/_valueEditorHelper.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/analytics-version.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/dx-versions.js","webpack:///./node_modules/devextreme/esm/ui/toast/ui.toast.js","webpack:///./node_modules/devextreme/esm/ui/toast.js","webpack:///./node_modules/devextreme/esm/ui/notify.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_surfaceHelpers.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/_debug.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/_infoMessageHelpers.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_processError.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_getNameHelpers.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_svgTemplateEngine.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_controlElementBase.js","webpack:///./node_modules/@devexpress/analytics-core/core/tools/_keyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/_arrayutils.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_keyboardHelperBase.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_rightPanelKeyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/core/tools/tabPanel.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/_propertiesAccessibilityProvider.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/editorValidator.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_validation.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/_units.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/editor.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/internal/_addon.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/propertygrid.js","webpack:///./node_modules/@devexpress/analytics-core/core/tools/_tabInfoWithPropertyGrid.js","webpack:///./node_modules/@devexpress/analytics-core/serializer/serializer.js","webpack:///./node_modules/@devexpress/analytics-core/core/utils/parsers.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_bindingsCache.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/templateUtils.js","webpack:///./node_modules/@devexpress/analytics-core/undo-engine/_utils.js","webpack:///./node_modules/@devexpress/analytics-core/undo-engine/undoengine.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_accordionKeyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_controlElementWithParentHighlight.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_keyboardHelperWithArrowButtonBase.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_listKeyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_toolbarKeyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/accessibility/_treeListKeyboardHelper.js","webpack:///./node_modules/@devexpress/analytics-core/core/binding/_requestHelper.js","webpack:///./node_modules/@devexpress/analytics-core/core/binding/_jsDesignerBindingCommon.js","webpack:///./node_modules/@devexpress/analytics-core/core/_metadata.js","webpack:///./node_modules/@devexpress/analytics-core/core/elements/size.js","webpack:///./node_modules/@devexpress/analytics-core/core/dragDrop/_dragDropHandler.js","webpack:///./node_modules/@devexpress/analytics-core/core/elements/paddingModelMetaData.js","webpack:///./node_modules/@devexpress/analytics-core/core/elements/paddingModel.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_cssCalculator.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_editorTypeMapper.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_globalize.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_inlineTextEdit.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_resizable.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_draggable.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/selectable.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_resizableBinding.js","webpack:///./node_modules/@devexpress/analytics-core/core/internal/_stores.js","webpack:///./node_modules/@devexpress/analytics-core/core/snapLines/_snapLinesCollector.js","webpack:///./node_modules/@devexpress/analytics-core/core/snapLines/_snapLineSurface.js","webpack:///./node_modules/@devexpress/analytics-core/core/snapLines/_snapLinesHelper.js","webpack:///./node_modules/@devexpress/analytics-core/core/elements/point.js","webpack:///./node_modules/@devexpress/analytics-core/core/tools/_actionList.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/internal/_popupService.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/_fonts.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/bordereditor/_bordereditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/bordereditor/_binding.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/_buttonInlineEditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/_bindings.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/internal/_codeResolver.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/localization/_localizationStringIds.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_functions.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/_expressioneditor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_operatorNames.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/common/_codeCompletor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/between.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/in.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/utils/operatorTokens.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/binary.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/function.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/constant.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_serializer.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/common/_displayNameProvider.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/_searchHighlighting.js","webpack:///./node_modules/devexpress-reporting/common/imageSource.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/localization/localization.js","webpack:///./node_modules/@devexpress/analytics-core/core/elements/margins.js","webpack:///./node_modules/devexpress-reporting/common/metadata.js","webpack:///./node_modules/devexpress-reporting/common/binding/exportOptionsEventArgs.js","webpack:///./node_modules/devexpress-reporting/common/binding/eventGenerator.js","webpack:///./node_modules/devexpress-reporting/dx-reporting-version.js","webpack:///./node_modules/devexpress-reporting/common/versions.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/textAlignmentEditor/_textAlignmentEditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/textAlignmentEditor/_binding.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/_dataMemberEditor.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_box.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/_fieldlistpicker.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/_popupEditorBase.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/_requiredNullableEditor.js","webpack:///./node_modules/@devexpress/analytics-core/dx-analytics-core-bindings.js","webpack:///./node_modules/@devexpress/analytics-core/dx-analytics-core-svg-bindings.js","webpack:///./node_modules/@devexpress/analytics-core/dx-analytics-core-svg-templates.js","webpack:///./node_modules/@devexpress/analytics-core/dx-analytics-core-templates.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/collectioneditor/_editor.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/collectioneditor/_bindings.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/ellipsiseditor/_editor.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/fileimageeditor/_editor.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/_model.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_extendedSvgTemplates.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_validator.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/ace/_ace-available.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_tools.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/treelist/_treelistController.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_treeListControllers.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_addon.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/criteriaOperatorSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/unaryOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/aggregateOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/betweenOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/binaryOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_helper.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandSurfaceBase.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/functionOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/groupOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/inOperandSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandParameterSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandPropertySurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandValueSurface.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_treelistController.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/helper.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_codeCompletor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/formatstring/_patterns.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/internal/_popupComponentBase.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/internal/_popupwithautoheight.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/internal/_resizeHelper.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/treelist/options.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/pictureEditMode.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorTypes.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/treelist/_treelistItem.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/treelist/_treeListSearchViewModel.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/treelist/_binding.js","webpack:///./node_modules/devexpress-reporting/common/utils/editingFieldExtensions.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/bindings.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/guideditor.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/metadata.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/editor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/expressioneditor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/bindings.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/expressioneditor/bindings.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/filtereditor/filtereditor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/formatstring/formatstringeditor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/formatstring/binding.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/colorPickerEditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/fieldListEditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/dataMemberEditor.js","webpack:///./node_modules/@devexpress/analytics-core/core/widgets/registerDesignerEditors.js","webpack:///./node_modules/@devexpress/analytics-core/property-grid/widgets/registerBaseEdtior.js","webpack:///./node_modules/@devexpress/analytics-core/analytics-widgets.js","webpack:///./node_modules/devexpress-reporting/common/utils/_utils.js","webpack:///./node_modules/devexpress-reporting/common/widgets/_editorTemplates.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/metadata.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/csvMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/csvExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/options/docxExportDocumentOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/rtfMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/docxMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/docxExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/emailExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/emailMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/htmlMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/htmlExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/imageMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/imageExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/mhtMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/mhtExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/options/pdfExportDocumentOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/options/pdfPermissionsOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/options/pdfPasswordSecurityOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/pdfMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/pdfExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/printPreviewMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/printPreviewOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/rtfExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/textMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/textExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/xlsMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/xlsExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/xlsxMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/xlsxExportOptions.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/exportOptionsMetaData.js","webpack:///./node_modules/devexpress-reporting/common/exportOptions/exportOptions.js","webpack:///./node_modules/devexpress-reporting/common/utils/_locker.js","webpack:///./node_modules/devexpress-reporting/viewer/constants.js","webpack:///./node_modules/devexpress-reporting/viewer/accessibility/_previewBricksKeyboardHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/settings.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/models/checkEditingField.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/models/textEditingField.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/models/characterCombEditingField.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_previewSelection.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/models/imageEditingField.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/models/popupImageEditingField.js","webpack:///./node_modules/devexpress-reporting/viewer/editing/editingField.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/csvExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/metadata.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/htmlExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/imageExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/mhtExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/rtfExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/xlsExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/xlsxExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/docxExportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/exportOptionsPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_previewRequestWrapper.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_utils.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_exportHandler.js","webpack:///./node_modules/devexpress-reporting/viewer/accessibility/_previewEditingFieldsKeyboardHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_brickUtils.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_page.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_previewHandlersHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_progressViewModel.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_sortingProcessor.js","webpack:///./node_modules/devexpress-reporting/viewer/reportPreview.js","webpack:///./node_modules/devexpress-reporting/viewer/binding/jsReportViewer.js","webpack:///./node_modules/devexpress-reporting/viewer/documentMap/_documentMapItemsProvider.js","webpack:///./node_modules/devexpress-reporting/viewer/documentMap/_documentMapTreeListController.js","webpack:///./node_modules/devexpress-reporting/viewer/documentMap/_documentMapModel.js","webpack:///./node_modules/devexpress-reporting/viewer/exportOptions/exportOptionsModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePage.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/mobilePreview.js","webpack:///./node_modules/devexpress-reporting/viewer/accessibility/_searchKeyboardHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/search/_searchResultNavigator.js","webpack:///./node_modules/devexpress-reporting/viewer/search/_searchViewModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_mobileSearch.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/gallery/_galleryModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_paginator.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/_groupEditor.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/editorTemplates.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/parameterHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/multiValuesHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/previewParameterHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/previewParameter.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/parameterPanelItemBase.js","webpack:///./node_modules/devexpress-reporting/viewer/parameters/previewParametersViewModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_sizeUtils.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_editorTemplates.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePreviewParameterHelper.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/utils/_mobileActionList.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_previewModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePreviewModel.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_parametersPopup.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/constants.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_sizeUtils.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_progressBarUtils.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/utils/_mobileInitializer.js","webpack:///./node_modules/devexpress-reporting/viewer/search/_utils.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_actions.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_initializer.js","webpack:///./node_modules/devexpress-reporting/viewer/binding/jsReportViewerBinding.js","webpack:///./node_modules/devexpress-reporting/viewer/accessibility/_dateRangeKeyboardHelper.js","webpack:///./node_modules/devexpress-reporting/dx-reporting-svg-bindings.js","webpack:///./node_modules/devexpress-reporting/dx-reporting-svg-templates.js","webpack:///./node_modules/devexpress-reporting/dx-viewer-bindings.js","webpack:///./node_modules/devexpress-reporting/dx-viewer-templates.js","webpack:///./node_modules/devexpress-reporting/viewer/internal/_bindings.js","webpack:///./node_modules/devexpress-reporting/viewer/search/_dxSearchEditor.js","webpack:///./node_modules/devextreme/esm/ui/gallery.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_eventProcessor.js","webpack:///./node_modules/devextreme/esm/events/transform.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/_mobileBindings.js","webpack:///./node_modules/devexpress-reporting/viewer/mobile/internal/gallery/_galleryComponent.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/dateRange/dateRangeEditor.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_imagePainter.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_signaturePainter.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_painter.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorToolbarItem.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorActionProvider.js","webpack:///./node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorModel.js","webpack:///./node_modules/devextreme/esm/viz/palette.js","webpack:///./node_modules/devextreme/esm/viz/core/base_theme_manager.js","webpack:///./node_modules/devextreme/esm/viz/core/errors_warnings.js","webpack:///./node_modules/devextreme/esm/viz/core/base_widget.utils.js","webpack:///./node_modules/devextreme/esm/viz/core/helpers.js","webpack:///./node_modules/devextreme/esm/viz/core/layout.js","webpack:///./node_modules/devextreme/esm/core/utils/svg.js","webpack:///./node_modules/devextreme/esm/viz/core/renderers/animation.js","webpack:///./node_modules/devextreme/esm/viz/core/renderers/renderer.js","webpack:///./node_modules/devextreme/esm/viz/utils.js","webpack:///./node_modules/devextreme/esm/__internal/viz/core/m_base_widget.js","webpack:///./node_modules/devextreme/esm/integration/knockout/utils.js","webpack:///./node_modules/devextreme/esm/integration/knockout/template.js","webpack:///./node_modules/devextreme/esm/core/utils/locker.js","webpack:///./node_modules/devextreme/esm/integration/knockout/component_registrator.js","webpack:///./node_modules/devextreme/esm/integration/knockout/event_registrator.js","webpack:///./node_modules/devextreme/esm/integration/knockout/components.js","webpack:///./node_modules/devextreme/esm/integration/knockout/validation.js","webpack:///./node_modules/devextreme/esm/integration/knockout/variable_wrapper_utils.js","webpack:///./node_modules/devextreme/esm/integration/knockout/clean_node.js","webpack:///./node_modules/devextreme/esm/integration/knockout/clean_node_old.js","webpack:///./node_modules/devextreme/esm/integration/knockout.js","webpack:///./node_modules/devextreme/esm/ui/popover/ui.popover.full.js","webpack:///./node_modules/devextreme/esm/ui/popover.js","webpack:///./node_modules/devextreme/esm/ui/track_bar.js","webpack:///./node_modules/devextreme/esm/ui/tooltip/tooltip.js","webpack:///./node_modules/devextreme/esm/ui/tooltip.js","webpack:///./node_modules/devextreme/esm/ui/slider/slider_tooltip_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/slider/ui.slider_tooltip.js","webpack:///./node_modules/devextreme/esm/ui/slider/ui.slider_handle.js","webpack:///./node_modules/devextreme/esm/ui/slider/ui.slider.js","webpack:///./node_modules/devextreme/esm/ui/tag_box.js","webpack:///src/components/report/WebDocumentViewer.vue","webpack:///./src/components/report/WebDocumentViewer.vue?5e32","webpack:///./src/components/report/WebDocumentViewer.vue?0a3c","webpack:///src/views/ReportPage.vue","webpack:///./src/views/ReportPage.vue?dd51","webpack:///./src/views/ReportPage.vue?b15d","webpack:///./node_modules/ace-builds/src-noconflict/ace.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/group.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/unary.js","webpack:///./node_modules/knockout/build/output/knockout-latest.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/binary.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/group.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaOperatorPreprocessor.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/join.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/parser/criteriaparser.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/function.js","webpack:///./node_modules/@devexpress/analytics-core/widgets/criteria/operators/criteriaOperator.js"],"names":["render","_vm","this","_c","_self","attrs","$route","params","report","staticRenderFns","staticClass","staticStyle","isWindow","obj","window","class2type","hasOwn","hasOwnProperty","toString","call","isPlainObject","nodeType","constructor","prototype","isEmptyObject","Object","keys","length","isFunction","extend","target","object1","objectN","arguments","options","name","src","copy","copyIsArray","clone","i","deep","Array","isArray","undefined","forEach","toLowerCase","ajaxSettings","settings","ajaxSetup","Disposable","_disposables","isDisposing","array","item","dispose","splice","disposables","push","map","x","reverse","propertyName","toStringWithDelimiter","values","delimiter","value","str","join","serializeDate","date","dateDelimiter","datePart","getMonth","getDate","getFullYear","timePart","getHours","getMinutes","getSeconds","datePartString","deserializeDate","dateTime","dateTimeParts","split","dateArgs","timeArgs","parseInt","Date","addDisposeCallback","element","callback","disposeCallback","domNodeDisposal","removeDisposeCallback","createGlobalModuleVariableFunc","defaultVal","currentValue","newVal","accessibilityFontSizeZoomFactor","calculateWithZoomFactor","loadMessages","_messages","_processLocalization","id","_removeWinSymbols","removeWinSymbols","text","localize","indexOf","replace","_getLocalization","getLocalization","_localizedText","isCustomizedWithUpdateLocalizationMethod","Globalize","custom_localization_values","selectPlaceholder","noDataText","searchPlaceholder","resolveFromPromises","promises","createModel","deferred","done","messages","always","resolve","val","formatDate","parseDate","useDefault","format","addCultureInfo","json","_removeWinSymblols","updateLocalization","object","_useDeferredRegistration","_editorTemplates","editorInfo","_deferred","Error","editors","register","SearchMode","editorTemplates","_getFileContent","content","readMode","_uploadFile","filesHolder","files","file","type","imageType","match","fr","FileReader","pop","onload","result","e","reject","readAsText","readAsDataURL","fileUploaderId","createFileUploaderElement","input","document","createElement","style","width","height","display","body","appendChild","KeyboardEnum","KeyboardCodesEnum","uploadFile","getElementById","accept","onchange","click","promise","compareEditorInfo","editor1","editor2","header","editorType","findMatchesInString","stringWhereSearch","searchPattern","searchExpr","escapeToRegExp","RegExp","canUseRegex","searchMode","startWith","exprRule","caseSensitive","globalMatch","stringRemove","start","count","slice","stringReplace","newChar","temp","stringInsert","pos","subStr","substring","formatUnicorn","args","key","t","argsFinal","PathRequest","fullPath","pathParts","path","pathComponents","ref","propertiesGridEditorsPaddingLeft","defaultFontSerialization","RegexGuid","guid","test","validateGuid","validateNullableGuid","guidValidationMessage","guidValidationRules","validationCallback","guidRequiredValidationRules","requiredValidationRule","requiredValidationRules","super","isGuid","specifics","_processStringValue","String","visitor","visitOperandValue","parameterName","visitOperandParameter","startColumn","startLine","originalPropertyLength","circumflex","startPosition","column","line","visitOperandProperty","process","operatorType","operand","criteriaOperator","Not","assignFrom","leftPart","visitUnaryOperator","operator","property","aggregatedExpression","aggregateType","condition","change","operationType","changeByType","enumType","assignLeftPart","operation","And","operands","visitAggregateOperand","criteriaForEach","children","left","right","Equal","MachineState","tokenName","alphabet","startTerm","endTerm","tokenLength","isActiveState","tokens","term","token","end","_isSubline","_getToken","stringCriteria","machineStates","_inputStringCriteria","saveOriginalStringLength","replaceCommentsToChar","getCriteria","step","state","anotherMachines","filter","a","processTransitionFunction","resultTokens","concat","newTokenChar","tempCriteria","sort","lines","char","_replaceTokenToAnotherToken","_tokenize","ctrlKey","el","normalizedValue","range","textInputRange","len","endRange","selectionStart","selectionEnd","createRange","parentElement","createTextRange","moveToBookmark","getBookmark","collapse","compareEndPoints","moveStart","moveEnd","minValue","maxValue","negative","valModulo","valMantissa","valExp","boundMantissa","boundExp","valIntPart","valFracPart","boundIntPart","boundFracPart","boundModulo","valOrder","boundOrder","validate","component","option","extendOptions","editorOptions","getValueEditorOptions","regExpEditing","_validate","onFocusIn","validateWidgetValue","_invokeStandardHandler","onKeyDown","_getCharFromKeyCode","event","$input","find","eq","caretPosition","_getCaretPosition","get","preventDefault","onPaste","clipboardData","originalEvent","pastedData","getData","onValueChanged","previousValue","integerValueConverter","defaultValue","stringValue","isValid","floatValueConverter","setCursorInFunctionParameter","paramCount","editor","insertValue","cursorPosition","getCursorPosition","lastIndexOpeningBracket","lastIndexOf","charAt","gotoLine","row","data","isList","getParentContainer","container","closest","isNullOrEmptyString","dxversions","analytics","devextreme","ready","add","TOAST_CLASS","TOAST_CLASS_PREFIX","TOAST_WRAPPER_CLASS","TOAST_CONTENT_CLASS","TOAST_MESSAGE_CLASS","TOAST_ICON_CLASS","WIDGET_NAME","toastTypes","TOAST_STACK","FIRST_Z_INDEX_OFFSET","POSITION_ALIASES","top","my","at","of","offset","bottom","center","DEFAULT_BOUNDARY_OFFSET","h","v","subscribeGlobal","getDocument","pointer","down","_proxiedDocumentDownHandler","Toast","inherit","_getDefaultOptions","callBase","message","displayTime","position","animation","show","duration","from","to","hide","shading","hideTopOverlayHandler","closeOnSwipe","closeOnClick","_defaultOptionsRules","device","platform","hideOnOutsideClick","_device","isPhone","deviceType","isAndroid","_device2","minWidth","maxWidth","_init","_posStringToObject","_renderContentImpl","_message","addClass","appendTo","$content","setAria","includes","prepend","_render","$element","$wrapper","_toggleCloseEvents","_renderScrollTerminator","dxEvent","off","on","bind","verticalPosition","horizontalPosition","boundaryOffset","_show","apply","clearTimeout","_hideTimeout","setTimeout","_overlayStack","_zIndexInitValue","_dispose","_optionChanged","removeClass","$notify","$containers","notify","typeOrStack","stack","onHidden","userOnHidden","direction","getDefaultDirection","containerKey","onShowing","userOnShowing","$container","getStackContainer","setContainerClasses","setContainerStyles","remove","createStackContainer","containerClasses","removeAttr","offsetWidth","toastWidth","offsetHeight","toastHeight","first","dimensions","windowHeight","innerHeight","windowWidth","innerWidth","coordinates","getCoordinatesByAlias","styles","getPositionStylesByCoordinates","css","alias","_ref","Math","round","_coordinates$bottom","_coordinates$left","_coordinates$right","_coordinates$top","_coordinates$left2","_coordinates$right2","_coordinates$right3","_coordinates$top2","_coordinates$bottom2","_coordinates$left3","_coordinates$top3","_coordinates$bottom3","findSurface","viewModel","getControlNewAbsolutePositionOnResize","snapHelper","absolutePosition","ui","delta","newAbsolutePosition","y","originalSize","snapPosition","size","num","getControlRect","control","surface","curleft","curtop","rtl","posLeft","pageWidth","margins","bounds","getBoundingClientRect","minHeightWithoutScroll","min","scrollHeight","clientHeight","offsetTop","chooseBetterPositionOf","html","designer","DEBUG","NotifyType","info","warning","error","success","wrappedConsole","console","getWrappedMethod","methodName","warn","NotifyAboutWarning","msg","showForUser","ShowMessage","jqXHR","responseJSON","_showMessage","debugInfo","contentTemplate","containerElement","clientWidth","boundary","collision","documentElement","_addErrorPrefix","_processError","errorThrown","textStatus","processErrorCallback","_errorProcessor","handlers","processErrorEvent","func","_removeErrorEvent","getTypeNameFromFullName","controlType","trim","getShortTypeName","fullTypeName","typeNameParts","getUniqueName","names","prefix","inculdeFirst","SvgTemplateSource","template","_data","_templates","templateName","_hasTemplate","findEverywhere","_instance","Instance","templateMarkup","templates","makeTemplateSource","doc","getExistingTemplate","convertToCssPixelUnits","convertFromCssPixelUnits","parseFloat","_wrapModelInObservable","model","cssTransform","getSizeFactor","staticContext","_static","_defaultStaticContext","appendStaticContextToRootViewModel","root","dx","className","assign","getPopupContainer","surfaceClass","_ajax","uri","action","arg","ignoreError","customOptions","isError","getErrorMessage","requestData","actionKey","JSON","stringify","sendRequest","url","fail","getRequestDetails","_ajaxWithOptions","ajax","parseZoom","_value","getResizableOptions","panelOffset","disabled","disabledOption","minWidthOption","starting","handles","stopped","stop","resize","startResizePosition","dataset","originalLeftMousePosition","originalWidth","sizeDiff","newWidth","max","zoom","minimumWidth","maximumWidth","createPasswordSerializationInfo","isNew","getEditor","mode","inputAttr","autocomplete","_eventListeners","removeEventListener","eventType","listener","handler","addEventListener","index","setAttribute","focus","method","keyCode","_processShortcut","shortcutMap","childrenShortcutMap","targetElement","_handlers","_targetElement","eventName","_activeHandler","_handler","_removeHandler","findFirstItemMatchesCondition","predicate","binaryIndexOf","ar","compare","m","n","k","cmp","compareArrays","array1","array2","childrenInitialized","accessibilityCompliantEnabled","focusFirstFocusableDescendant","controlElements","setTabIndexes","button","setTabIndex","liveRegion","liveRegionId","_liveRegion","changeText","timeout","textContent","Esc","handleEscKey","Tab","shiftKey","handleShiftTabKey","handleTabKey","Enter","handleEnterKey","Space","handleSpaceKey","End","handleEndKey","Home","handleHomeKey","Up","handleUpArrowKey","Down","handleDownArrowKey","Left","handleLeftArrowKey","Right","handleRightArrowKey","itemHandleShiftTabKey","itemHandleTabKey","itemHandleEnterKey","itemHandleSpaceKey","itemHandleEndKey","itemHandleHomeKey","itemHandleUpArrowKey","itemHandleDownArrowKey","itemHandleLeftArrowKey","itemHandleRightArrowKey","itemHandleEscKey","disposeArray","_disposeItems","_elementContainer","htmlElements","querySelectorAll","controlElementClassName","newItem","createControlElement","addListener","clickHandler","htmlElement","roundTrip","elCount","setFocus","elementContainer","handlersManager","initialize","classList","processChildrenShortcut","getIndexByElement","processShortcut","stopPropagation","bindHandler","_prevActiveElement","changeFocus","currentIndex","prevActiveElement","activeElement","startIndex","focusable","_tabPanel","tabs","tab","visible","rateLimit","setFocusToNext","setFocusToPrevious","collapsed","Position","toggleCollapsedText","actionString","cssClasses","isEmpty","autoSelectTab","zoomFactor","every","visibleTabs","active","peek","disabledTabs","nextSelectedTab","selectTab","subscribe","toggleTabVisibility","selectedTab","activeTab","_width","read","write","headerWidth","_resizableOptions","isCollapsed","toggleCollapsedImage","postfix","class","keyboardHelper","tabName","imageBaseName","imageClassName","_text","_localizationId","localizationId","imageTemplateName","computedVisible","computedDisabled","visibility","getElementsByClassName","_model","isPropertyVisible","_calculateAccessibilityByPropertyInfo","isPropertyDisabled","propertyInfo","defaultAccessibilityProvider","_editor","_lastValidatorOptions","_lastModelOverridableRules","_onValidatedHandler","onValidatedHandler","validatorInstance","validationRules","newValue","rule","validator","displayName","_validatorInstance","getValidatorOptions","resultRules","templateValidatorOptions","modelOverridableRules","_getEditorValidationRules","areRulesChanged","extendedValidationRules","_concatValidationRules","validatorOptions","extendedValidatorOptions","extendedOptions","_wrapValidatorEvents","overridableRuleSet","newRule","some","onInitializedHandler","onInitialized","_this","_onValidatorInitialized","wrapOnValidatorInitialized","assignValueFunc","getValidationRules","assignValueFirst","validationResult","_isValid","brokenRule","replaceInvalidSymbols","roundingXDecimals","useFloor","floor","pow","unitsToPixel","measureUnit","modelPropertyInfo","level","parentDisabled","textToSearch","_parent","isSearchedProperty","isParentSearched","rtlEnabled","_accessibilityProvider","_validator","_cachedValue","isEditorSelected","isRequired","isRendered","padding","_setPadding","_editorOptions","_values","valueStore","valuesArray","displayValue","isPropertyModified","isPropertyHighlighted","_shouldSkipHighlighting","controlModel","isComplexEditor","modelValue","properties","unitProperties","editorTemplate","contentTemplateName","hasValueInModel","_roundTwoDesemialsForUnitProperties","assignWithValidation","_assignValue","custom","modelInfo","_getInfoFromModel","isSameEditorType","templateOptions","accessibilityProvider","parent","preffix","actions","actionProviders","provider","additionalActions","getActions","popupService","_popupService","_actions","getPopupServiceActions","actionFilter","hint","acc","_getTitles","editorMenuButtonCss","editorModel","title","weight","_wrapVisibleItems","visibleItem","currentItemPath","items","nextPath","resultTitle","editorName","modelAction","_wrapActionClick","innerTemplate","itemTemplate","_","_updateActions","editorsInfo","recreateEditors","_viewModelSubscription","_infoSubscription","_getInfoComputed","createEditorAddOn","editorAddOn","_editors","_parentDisabled","_textToSearch","_update","update","disposeObservableArray","resetObservableArray","cleanSubscriptions","_cleanEditorsSubscriptions","serializationInfo","assingParent","registerAccessibilityProvider","findEditorByInfo","createEditor","newEditors","createEditors","currentEditors","existEditorIndex","cleanEditors","newInfo","_recreateEditors","_createEditors","editorCreated","viewmodel","createObjectProperties","assignParent","subscription","visibleByName","visibleByEditors","_a","_b","getInfo","PropertyGridEditorFlat","propertyGrid","someRendered","getEditors","_refTable","_linkTable","_options","useRefs","propertyPath","currentModel","internalModel","refVal","_restoreLinks","_getModel","setRef","_refs","_collectLinksAndEnumRefs","_collectLinks","_enumRefs","linkObjects","refs","linkObjTable","refValue","objects","propName","modelName","deserializePropertyValue","strict","link","deserialize","ctorResult","serializationsInfo","_serializationsInfo","proto","getPrototypeOf","deserializeProperty","descriptor","getOwnPropertyDescriptor","set","currentArray","defineProperty","enumerable","configurable","_serialize","resultValue","beforeSerialize","alwaysSerialize","item_","_isSerializableValue","toJsonObject","asRef","isInitial","serializeProperty","setLinks","floatFromModel","fromEnum","shotEnumValueKey","valuesArrayItem","parseBool","colorFromString","color","alpha","shift","colorToString","createBaseFunction","controlName","optionsName","$context","$index","$data","registerBaseBinding","bindingName","addToBindingsCache","getFromCache","currentParseBindingsString","parseBindingsString","bindingsString","bindingContext","node","instance","ex","optionsParser","getTemplate","substr","querySelector","innerHTML","optionsString","propertiesVisitor","visited","skip","realPropertyName","checkModelReady","isModelReady","c","r","random","_LatestChangeSet","changes","changeSet","activeEngines","_ignoredProperties","_getInfoMethodName","_alwaysSubscribeProperties","_groupObservers","_groupPosition","_observers","_subscriptions","_visited","_position","_lockedPosition","_inUndoRedo","_currentEngineName","_disposeUndoEngineSubscriptionsName","redoEnabled","undoEnabled","isIngroup","isDirty","_targetSubscription","subscribeProperty","_createDisposeFunction","innerSubscriptions","prevVal","newTargetValue","_removePropertiesSubscriptions","properyChanged","observable","propertyChanged","oldVal","_cleanSubscribtions","undo","record","arrayChanges","status","removedItems","disposeRemovedRecords","disposalFunction","_disposeRemovedRecord","_disposeObserver","undoRecord","currentPosition","_disposeObservers","subscribtions","alwaysSubscribeProperty","validatePropertyName","addedIndex","valueHasMutated","_callDisposeFunction","subscriptions","objectInfo","inc","_disposeChilds","subscribtionArray","subscribeChilds","_modelReady","addedItems","visitProperties","subscribeProperties","removeTargetSubscription","reset","undoAll","clearHistory","removeNode","undoChangeSet","redoChangeSet","getContainer","_getElementsCount","_defferedInit","_collapseItem","_parentElement","_borderCssClassName","toolbarItemHandleFocus","toolbarItemHandleBlur","resetTabIndexes","nextIndex","_buttonModels","buttonModels","actionExecute","_toolbarElement","_toolbarItemModel","_selectBox","getInstance","_menu","_complexItem","getAttribute","clickAction","parentItems","indexOfParent","getChildCount","_offset","hasItems","toggleCollapsed","_getItemModel","toggleSelected","_toggleCollapsed","_setFocusToParentNode","_toggleSelected","RequestHelper","host","_customEventRaiser","_templateHtml","sender","removeProperties","callbacks","publicName","privateName","availableEvents","callbackName","_warnForIncorrectCallbackName","generateUri","eventsArray","events","convertCallbackArrayToDictionary","requestOptions","getLocalizationAction","actionUrl","_getServerActionUrl","localization","callbackArray","sizeFake","locationFake","components","selection","undoEngine","dragHelperContent","_snapDisabled","_size","alwaysAlt","stopDrag","draggable","doStopDrag","deactivateSnapLines","relatedTarget","uiElement","leftPosition","topPosition","dropTargetSurface","targetWidth","underCursor","getControlModel","addChild","controlSurface","rect","dpi","updateSnapLines","dropTarget","metaData","locked","canDrop","draggableModel","needToActivateSnapLines","altKey","getMetaData","isContainer","isLocked","_getAbsoluteSurfacePosition","snapDelta","activateSnapLines","ghostContainer","started","paddingSerializationsInfo","isUpdating","oldValue","all","applyFromString","_toString","inner","patchPositionByRTL","_rtlLayout","_control","borderCss","borderWidth","_getBorderWidth","borderDefault","borderColor","borders","borderStyle","createBorders","backGroundCss","backgroundColor","foreColorCss","fontCss","createFont","wordWrapCss","createWordWrap","paddingsCss","controlPaddings","paddings","paddingLeft","_getPixelValueFromUnit","paddingTop","paddingRight","paddingBottom","textAlignmentCss","align","createVerticalAlignment","createHorizontalAlignment","stroke","strokeWidth","lineWidth","strokeWidthWithWidth","strokeDashArray","dashArray","createStrokeDashArray","strokeDashArrayWithWidth","crossBandBorder","createBorder","angle","createAngle","cellBorder","createControlBorder","zipCodeFontCss","fontSize","createZipCodeFont","zipCodeAlignment","dashStyle","positions","dash","defaultColor","border","_patchPosition","DEFAULT_BORDER","fontStyles","fontString","alignment","wordwrap","multiline","controlSurfaceWidth","controlSurfaceHeight","editorTypeMapper","getEditorType","typeString","initGlobalize","globalize","cldrSupplemental","load","cldrData","currentCulture","locale","processTextEditorHotKeys","delegates","_element","handleClass","handleClassSelector","resizableElementClass","_defaultMinSize","_bodyEvents","move","up","_resizeDirection","_resizeHandles","_startResizeMousePosition","pageX","pageY","getResizeDirection","_addClassToElement","$el","originalLeftPosition","originalTopPosition","originalHeight","originalTopMousePosition","_mouseMove","_mouseUp","leftButtonPressed","which","boundsDiff","_getBoundsDiff","inProcess","_removeClassFromElement","_initResize","handleResizeEvent","handleDiv","zIndex","append","diffWidth","diffHeight","leftDiff","topDiff","updateHeightFunc","resizeFromTop","minHeight","resizeDistance","newHeightIsLessThanMinHeight","respectedDiff","updateWidthFunc","resizeFromLeft","newWidthIsLessThanMinWidth","updateHeight","updateWidth","mousedown","_mouseDown","addElementHandles","elementResizeHandles","handle","_initResizeHandle","newHandles","oldElementHandles","elementHandles","currentClassList","_windowEvents","_originalDragStartCoordinates","_originalElementPosition","_dragInitialized","_scrollableContainer","_draggableElementClass","_minDragDistance","_canDrag","containment","contains","_startRect","_initScrollContainer","dragDeltaLeft","dragDeltaTop","scrollLeft","scrollTop","shouldStartDrag","helper","_ghostContainer","startDragWithOffset","startLeftPosition","startTopPosition","_calculateElementPosition","drag","abs","_initDrag","rectIntersection","r1","r2","isSelected","currentRect","selecting","unselecting","_elements","_minSelectDistance","mousemove","mouseup","_$window","_clearElements","elements","_$selectionContent","updateSelection","_updateSelectionContent","shouldStartSelect","_initStartRect","_collectElements","getOriginalPositionNum","getOriginalSizeNum","getResizedBounds","originalPosition","boundsAreEqual","bounds1","bounds2","init","valueAccessor","allBindings","$parent","currentDirection","$selectedNodes","resizableDirections","calculateSizes","ghost","each","context","$root","newRect","north","west","east","south","canSetRect","elementOffset","ghostContainerOffset","dw","dh","dy","forceResize","mainSelectionOriginalSize","mainSelectionOriginalPosition","newHeight","elementSizeInfo","resizedBounds","snapBounds","resizableElement","allBindingsAccessor","minHeightOption","minimumHeight","getElementHandles","child","handleClassName","sortPropertyName","b","propA","propB","diff","isNaN","_sortItems","take","byKey","_createOptions","_verticalSnapLines","_horizontalSnapLines","_snapTargetToIgnore","limitInf","limitSup","snapLines","limSup","parentAbsoluteProsition","_enumerateCollection","itemAbsoluteRect","_appendSnapLine","_collectSnaplines","collection","_getCollection","itemRect","snapTargetToIgnore","vertical","horizontal","_blankPosition","updatePosition","snapTolerance","snapLinesCollector","snapLineSurfaces","verticalSnapLines","horizontalSnapLines","_surfaceContext","_snapTolerance","_snapLinesCollector","snapLineCandidate","snapLine","distance","delta1","Number","MAX_VALUE","delta2","position1","position2","line1","_findClosestSnapLine","line2","collectSnaplines","_getActiveSnapLines","enabled","toolbarItems","hotKey","is","attr","availableFonts","updateModel","updateValue","_setAllValues","templateHtml","controlsDescendantBindings","editor_template","$icon","iconClass","icon","$span","patchedOptions","optionsToExtend","templateData","_getElementOffset","containmentElement","_getContainment","unwrapObservable","selectionElement","_event","cancel","expectClick","applySelection","selectable","updateTop","scaleY","prev","outerHeight","$viewport","$ghostContainerOffset","$containmentOffset","initialScroll","attachDelta","startDrag","parentOffset","prependTo","setDragOffsetMode","inlineTextEdit","trackCursorClass","recalculateBounds","docElem","overHandler","resizeHandler","isNotDropTarget","enterHandler","isOver","leaveHandler","pageYOffset","pageXOffset","clientTop","clientLeft","$templateHtml","actionLists","accessibilityCompliant","keyPressHandler","dxdnum","_queue","_queueObj","_done","_doneOnce","doOnceCallback","time","$deferred","_executeNext","force","doNext","$promise","globalResolver","StringId","MasterDetailRelationsEditor","DataAccessBtnOK","DataAccessBtnCancel","DataSourceWizardTitle","WizardPageConfigureQuery","defaultFunctionDisplay","category","Avg","descriptionStringId","Count","Exists","Max","Min","Single","Sum","LocalDateTimeThisYear","LocalDateTimeThisMonth","LocalDateTimeLastMonth","LocalDateTimeLastWeek","LocalDateTimeLastYear","LocalDateTimeThisWeek","LocalDateTimeYesterday","LocalDateTimeToday","LocalDateTimeNow","LocalDateTimeTomorrow","LocalDateTimeDayAfterTomorrow","LocalDateTimeNextWeek","LocalDateTimeTwoMonthsAway","LocalDateTimeTwoYearsAway","LocalDateTimeTwoWeeksAway","LocalDateTimeNextMonth","LocalDateTimeNextYear","LocalDateTimeYearBeforeToday","InDateRange","IsOutlookIntervalBeyondThisYear","IsOutlookIntervalNextWeek","IsOutlookIntervalTomorrow","IsOutlookIntervalToday","IsOutlookIntervalYesterday","IsOutlookIntervalLastWeek","IsOutlookIntervalPriorThisYear","IsLastMonth","IsLastYear","IsNextMonth","IsNextYear","IsThisWeek","IsThisMonth","IsThisYear","IsJanuary","IsFebruary","IsMarch","IsApril","IsMay","IsJune","IsJuly","IsAugust","IsSeptember","IsOctober","IsNovember","IsDecember","IsSameDay","IsYearToDate","DateDiffTick","DateDiffSecond","DateDiffMilliSecond","DateDiffMinute","DateDiffHour","DateDiffDay","DateDiffMonth","DateDiffYear","GetDate","GetMilliSecond","GetSecond","GetMinute","GetHour","GetDay","GetMonth","GetYear","GetDayOfWeek","GetDayOfYear","GetTimeOfDay","Now","UtcNow","Today","AddTimeSpan","AddTicks","AddMilliSeconds","AddSeconds","AddMinutes","AddHours","AddDays","AddMonths","AddYears","Iif","InRange","IsNull","IsNullOrEmpty","Abs","Sqr","Cos","Sin","Atn","Exp","Log","Rnd","Tan","Power","Sign","Round","Ceiling","Floor","Acos","Asin","Atn2","BigMul","Cosh","Log10","Sinh","Tanh","ToInt","ToLong","ToFloat","ToDouble","ToDecimal","Trim","Len","Substring","Upper","Lower","Concat","Infinity","Ascii","Char","ToStr","Replace","Reverse","Insert","CharIndex","Remove","PadLeft","PadRight","StartsWith","EndsWith","Contains","Join","functionDisplay","RangeSpecific","createExpressionEditorCollectionToolOptions","collectionItems","toolName","displayToolName","showDescription","selectedItem","wrapExpressionValue","converter","_displayValue","toDisplayExpression","valueSubscription","pathSubscription","newPath","toRealExpression","operatorNames","image","hasSeparator","_contextPath","_isInContext","_getPath","_path","identifierRegexps","_fieldListProvider","fieldListProvider","_functions","functions","_rootItems","rootItems","needPrefix","session","getLine","parentPrefix","getTokenAt","endColumn","fieldName","insert","fields","getToken","field","generateFieldDisplayName","caption","snippet","meta","score","completer","insertMatch","beforeInsertMatch","getRealExpression","rootItem","rootPath","dotIndex","closeIndex","pathArray","completions","ignorePrefix","_getParentPrefix","_getRealPath","_combinePath","$fields","getItems","_convertDataMemberInfoToCompletions","_cleanupFields","$deferreds","rootPathRequests","_processFields","needCleanup","pushToCompletions","subFields","functionsWithoutAggregates","fnDisplay","fnKey","createFunctionCompletion","aggregates","getFunctionsCompletions","getAggregateCompletions","getOperatorCompletions","$parametersPromises","paramPath","_addFunctions","_getFields","exceptionInfo","parse","exception","hash","trimmedText","lastNonSpaceSymbol","_addParameterOperators","_getOperands","_addOperators","blocks","openedContextIndexes","contextItems","tokenIndex","openedAggregatesIndexes","currentToken","currentCursorPosition","aggregateIndex","openBrace","closeBrace","isClosedAggregate","j","openedAggregatePositions","_findOpenedAggregates","openedContextPositions","_findOpenedStartContext","contextPath","startContextToken","_findStartContextTokenPosition","member","trimBrackets","getTokens","currentTokenIndex","_getContextPath","defaultProcess","previousToken","_addAggregates","_getOperandsOrOperators","aceEditor","_getCompletions","tooltip","docHTML","fnInfo","_insertValue","description","filterText","ranges","getAllRanges","getTextRange","begin","assignRightPart","rightPart","visitBetweenOperator","visitInOperator","op","leftOperand","rightOperand","visitBinaryOperator","displayType","visitFunctionOperator","visitConstantValue","operatorTokens","groupOperator","serialize","aggregateOperand","operatorTypeSuffix","propertyResult","conditionResult","aggregateSuffix","operandProperty","operandValue","operandParameter","betweenOperator","inOperator","binaryOperator","Like","separator","unaryOperator","functionOperator","serializeAggregateOperand","serializeBetweenOperator","serializeBinaryOperator","serializeOperandValue","serializeFunctionOperator","serializeGroupOperand","serializeInOperator","serializeOperandParameter","serializeOperandProperty","serializeUnaryOperator","deserializeOperand","displayNameProvider","expression","getDisplayExpression","def","expressionCriteria","requests","serializer","innerPath","isContainsParentRelationshipTraversalOperator","request","getDisplayNameByPath","getRealName","convertedName","processedRequestsCount","onAlways","deltaName","_replaceNames","cloneHtmlBinding","isInitialized","disposeWhenNodeIsRemoved","_$spanProtect","_$spanSearch","newText","newFind","_getHighlightContent","searchOptions","newResult","curIndex","subString","itemIndex","textBeforeMath","outerHTML","sourceType","encodeURI","previewBackColor","previewSides","previewBorderColor","previewBorderStyle","previewBorderDashStyle","previewBorderWidth","previewForeColor","previewFont","previewPadding","previewTextAlignment","brickStyleSerializationsInfo","defaultCulture","availableCultures","panelVisible","exportOptions","paths","patchPropName","p","addPredicate","oldPredicate","fireEvent","localizationCallbacks","LoadMessages","then","SetAvailableCultures","customCultures","newCultures","WidgetLocalization","customizeActionsEvent","reportTabClosingEvent","reportTabClosedEvent","customizeParameterEditorsEvent","customizeParameterLookUpSourceEvent","exitDesignerEvent","reportSavingEvent","reportSavedEvent","reportOpeningEvent","reportOpenedEvent","tabChangedEvent","onServerErrorEvent","customizePartsEvent","componentAddedEvent","customizeSaveDialogEvent","customizeSaveAsDialogEvent","customizeOpenDialogEvent","customizeToolboxEvent","customizeLocalizationEvent","customizeFieldListActionsEvent","onInitializingEvent","beforeRenderEvent","customizeWizardEvent","generateCustomizeLocalizationCallback","Actions","GetById","actionId","designerModel","parameter","dataSource","Url","Report","Cancel","Model","Parent","parts","Elements","popup","Popup","Customize","customize","controlsFactory","ControlsFactory","Item","wizard","Type","Wizard","deffered","ReadyToClose","Handled","generateBrickMethods","brick","GetBrickText","GetBrickValue","contentValue","Key","Value","previewClickEvent","documentReadyEvent","editingFieldChangedEvent","parametersSubmittedEvent","parametersInitializedEvent","parametersResetEvent","customizeExportOptionsEvent","onExportEvent","templateId","pageIndex","defaultHandler","PageIndex","Brick","DefaultHandler","parameters","ParametersViewModel","Parameters","submit","shouldRequestParameters","ParametersModel","ActualParametersInfo","Submit","ShouldRequestParameters","Field","OldValue","NewValue","documentId","reportId","pageCount","ReportId","DocumentId","PageCount","middle","justify","horizontalString","verticalString","_resetHorizontalValues","_resetVerticalValues","DataMemberTreeListController","suppressActions","canSelect","getActiveElement","DROP_DOWN_BOX_CLASS","ANONYMOUS_TEMPLATE_NAME","realDevice","devices","real","DropDownBox","_supportedKeys","$tabbableElements","_getTabbableElements","$focusableElement","last","trigger","_getElements","acceptCustomValue","openOnFieldClick","displayValueFormatter","useHiddenSubmitElement","_getAnonymousTemplateName","_initTemplates","_initMarkup","_initDataExpressions","_setSubmitValue","submitValue","_shouldUseDisplayValue","_displayGetter","_getSubmitElement","orderedKeys","sortedValues","itemKey","itemDisplayValue","_renderInputValue","_rejectValueLoading","_dataSource","_getCurrentValue","itemLoadDeferreds","_loadItem","orderedValues","_sortValuesByKeysOrder","that","_isValueEquals","_valueGetter","_loadValue","shouldSkipCallback","_popupElementTabHandler","$firstTabbable","$lastTabbable","$target","moveBackward","moveForward","close","_input","_renderPopup","_renderPopupContent","_getTemplateByOption","$popupContent","_popup","_fieldRenderData","empty","_canShowVirtualKeyboard","mac","_isNestedElementActive","_shouldHideOnParentScroll","_popupHiddenHandler","_popupPosition","_popupPositionedHandler","_getDefaultPopupPosition","isRtlEnabled","_popupConfig","focusStateEnabled","tabIndex","dragEnabled","hideOnParentScroll","onKeyboardHandled","opts","_ignoreFunctionValueDeprecation","maxHeight","_this$_popupPosition","popupLocation","location","_popupShownHandler","$firstElement","_setCollectionWidgetOption","_dataExpressionOptionChanged","_renderValue","_invalidate","include","showClearButton","_parentViewport","_itemsProvider","_hasDisplayNameOption","_defaultPosition","_$element","parents","_setTitle","popupPosition","_getMaxHeight","repaint","_renderPosition","ignoreContainerClicks","dxPolymorphWidget","popuConfig","_template","_renderDisplayText","selectedPath","scroll","scrollByThumb","self","$scrollContent","treeListController","itemsProvider","onItemsVisibilityChanged","childContext","createChildContext","popupVisible","buttonItems","_createMainPopupButtons","_disableSaveButton","canSave","toolbar","widget","saveLocalization","stylingMode","onClick","save","cancelLocalization","createNumericEditor","dotNetTypeFullName","DynamicNumberEditor","getOptions","getNumberEditorOptions","setNone","setAll","setValue","dataBindingsProvider","$displayName","dataBindingsGroupProvider","customPatterns","ko","transform","designMode","rootStyle","isLoading","addOns","togglePopoverVisible","unwrap","_e","selector","popoverVisible","displayText","controls","customData","toggleAppMenu","appMenuVisible","getMenuPopupContainer","getMenuPopupTarget","buttonClassName","parentClassList","parentNode","menuItems","actionsGroupTitle","editableObject","group","popularVisible","contextActions","popularProperties","groupActions","isSearching","switchSearchBox","searchBox","controlsStore","focusedItem","displayExpr","isSortingByGroups","editorsCreated","allEditorsCreated","submenu","_overlay","contextGroupActions","groups","editorsRendered","dxTemplate","tabPanel","s","toogle","selected","contentData","toolboxDragHandler","toolboxItems","groupedToolboxItems","zoomLevels","onCustomItemCreating","showPopup","alwaysShow","isDisabledButton","getDisplayTextButton","showScroll","getDisplayTextEmptyArray","createCollectionItemWrapper","$parents","selectedIndex","select","showButtons","isVisibleButton","generateValue","getIdByDisplayName","bold","italic","underline","strikeout","_z","queriesGrid","_queriesPopupHelper","popupItems","textAreaValue","resizeHelper","resizable","editorContainer","theme","aceOptions","additionalOptions","modelValueValid","modelValueWarning","onContentReady","onHiding","onShown","resizeAceEditor","aceAvailable","tools","toolBox","updateContent","allItems","nodeImageClass","dblclick","availableItems","advancedMode","textVisible","advancedModeText","plainContentHeightPerc","textContentHeightPerc","treeContentHeightPerc","onInput","cacheElement","textFocused","aceTheme","invalidMessage","operandSurface","isSurfaceValid","modelDisplayValue","modelValueIsValid","canRemove","addValue","canChange","isEditable","getStringEditorOptions","getBoolEditorOptions","getDateEditorOptions","getListEditOptions","isDefaultDisplay","focusText","filterString","isFiltered","hidden","selectedItems","removeItem","getDisplayText","addCustomFormat","canAddCustomFormat","formatResult","updateInputText","formatPrefix","formatSuffix","patternList","setFormat","removeCustomFormat","selectedFormats","isGeneralType","previewString","types","setType","selectedTypes","hasContent","treeListEditAction","renderNext","isHovered","dblClickHandler","mouseenter","mouseleave","getCssRules","isMultiSelected","dragDropHandler","searchEnabled","accordionItem","headerItem","contenttemplate","actionsTemplate","actionsContainer","isDraggable","headerItemContent","itemTextContent","visibleItems","resolver","addTemplates","displayNameField","buttonMap","addHandler","removeHandler","hideButtons","_textEmptyArray","textEmptyArray","displayPropertyName","_isDisabled","_timeoutItemRendered","listKeyboardHelper","_setSelectedIndex","_move","valuesCount","old_index","new_index","grandfather","wrapper","gridViewModel","itemTemplateName","itemTemplateHtml","editor_prefix","EDITOR_CLASS","EDITOR_BUTTON_CLASS","EDITOR_BUTTON_ICON_CLASS","EDITOR_BUTTON_ICON_TEMPLATE","EDITOR_WARNING_STATE_CLASS","_koContext","_renderButton","_updateWarningState","_attachInputEvents","_$button","_attachButtonEvents","_$buttonIcon","buttonsContainer","subscribeElements","_$input","buttonAction","ArrowDown","EDITOR_INPUT_WRAPPER_CLASS","placeholder","knownPlaceholders","placeholderId","inputContainer","$inputContainer","_handleResult","_getDisplayValue","availableUnits","family","unit","isUpdateModel","modificators","extendedTemplates","CriteriaSurfaceValidatorState","createGlobalAceVariableFunc","parametersOptions","fieldListOptions","_categories","_defaultClick","_initDescription","functionGroups","funtionGroup","_createFunctionsCategoryItem","createDefaultCategories","_createFieldsCategory","_createConstantCategory","_createFunctionsCategory","_createOperatorsCategory","selectedContent","resetCategoriesSelection","firstItem","updateCategories","newOptions","_disposeCategories","defaultCategories","customizeCategories","_generateTab","contentItem","_localizedExpressionEditorItem","expressionEditorItem","functionItem","_createFunctionsCategoryContent","TreeListController","putSelectionHandler","selectionHandler","customFilter","criteria","_filterPlaceHolder","popupContentTemplate","_action","toLocaleLowerCase","isUpdated","operatorClass","assignType","createChildSurface","filterEditorOperators","reduce","_getFilterEditorOperator","dataType","mapper","_common","getDisplayType","onChange","_createLeftPartProperty","_allFilterEditorOperators","childPath","newModel","initDisplayText","changeValueType","getRealParent","getRealProperty","propertyLocation","getPropertyName","searchProperty","destinationSpecifics","sourceSpecifics","canChoiceProperty","canChoiceParameters","getConvertableParameters","canCreateParameters","createItems","operators","create","changeParameter","_displayName","valueType","changeProperty","fieldsOptions","generateTreelistOptions","realName","_updateDisplayName","_updateSpecifics","getDisplayPropertyName","notListProperties","_scroll","_updateDate","setHours","changeValue","_getBaseOptions","onFocusOut","scrollTo","valueExpr","dropDownOptions","closeOnValueChange","isCustomValue","useItemTextAsTitle","store","paginate","pageSize","Minus","getDefaultValue","getValues","_defaultValue","scrollElement","scrollToElement","customValidate","_checkRightPart","rigthPart","checkLeftPart","validateModel","checkRightPart","Unary","aggregateIsValid","groupIsValid","unaryIsValid","commonOperandValid","canSelectLists","criteriaTreeValidator","_type","insertVal","NotEqual","Greater","GreaterOrEqual","Less","LessOrEqual","string","integer","float","list","bool","onEditorFocusOut","onSave","onClosing","aggregate","between","binary","function","in","unary","default","emptyRightPart","Or","_initDisplayText","specific","targetEnum","opreatorType","maxNumber","newOperator","treeListOptions","groupName","filterEditorAvailable","funcItem","formatStringStandardPatterns","now","patterns","_component","getComponent","$","fn","has","_resize","deltaWidth","deltaHeight","oldDelta","resultSize","onResize","PictureEditMode","PictureEditorActionId","LoadChildItemsForCollapsedNodes","maxSearchLevel","DefaultTreeListItemFactory","_availableItemsCount","_rtl","_isVisible","_pageSize","_walkCallback","_isLoaded","_actionsSubscription","_visibleItemsCount","_iconName","_nodeIsLocked","_loadChildItemsForCollapsedNodes","loadChildItemsForCollapsedNodes","_factory","factory","_treeListController","_templateName","_onItemsVisibilityChanged","_onItemsChangedCallback","onItemsChanged","_visible","itemsFilter","_loadItems","_initPaginate","metaKey","canMultiSelect","multiSelect","_getLoadChildItemsForCollapsedNodes","_getNodeImageClassName","_updataParentItemsVisibilityCount","obj1","obj2","ignore","showIcon","loadInnerItems","_loader","dataObj","_createItemsObj","isMutated","splicedItems","tempItems","itemsObj","resorted","showIconsForChildItems","showIconTemplate","visibleItemsCount","d","currentItem","_equal","createItem","_applyPadding","_getImageClassName","_getImageTemplateName","curItem","_onItemsChanged","item2Select","_selectItem","itemPath","selectItemDelegate","_find","childItem","maxItemsCount","_getTemplateName","noDragable","setVisible","_resolver","_selectedPathSubscription","clear","walkCallBack","_visitNextNode","doneOnce","walkCallback","_item","processItemsFunc","autoLoadItems","_getItemsWithLock","execute","expandRootItems","searchTimeout","searchBoxTemplate","_processedNodes","_currentProcess","_roots","valueChanged","controllers","modelType","controller","newRoot","addController","clearProcess","walkOnTree","regexResult","_collapseTreeBranch","treeListViewModel","updateScrollBar","scrollViewElt","scrollView","updateTreeList","fieldDragHandler","createRootItem","treeListTemplate","createController","Categories","Image","Numeric","DateTime","Letters","_registerStandartEditors","getLocalizedString","registerRegExpEditor","dateEditorOptions","onPreRender","onHideEditor","editValue","_editorValue","registerEditor","registerImageEditor","drawingEnabled","imageLoadEnabled","registrationOptions","shadingEnabled","imageRegistrationOptions","images","editMode","ImageAndSignature","Signature","customizeActions","imagePickerAction","actionsProvider","createImagePickerAction","base64","painter","refresh","sizeOptionsEnabled","alignmentAction","Alignment","openFile","OpenFile","clearEnabled","clearAction","Clear","initValue","onKeyUp","esc","blur","ctrlEnter","editorID","mask","regExpFinal","excludeCategories","categories","allowedBindings","parsedBindings","isResolved","innerBindings","isDisposed","tasks","innerBindingKey","innerBindingParameters","innerBinding","$accordionContent","scrollUpdateCallback","$scroll","accordionButton","slideToggle","accordionContentHTML","lazyContentRendering","slideUp","slideDown","prevDisplayExpr","itemData","itemElement","useLocalizedTextAsValue","styleName","styleValue","findService","serviceName","service","entity","isNullable","fontName","fontSizeUnit","fontInfo","getNotValidRange","errorMessage","errorText","errorLength","createExpressionEditorFieldListProvider","originalProvider","unwrappedFieldName","_displayNameProvider","_updateTextAreaValue","textArea","_getTextArea","newAddedText","setSelectionRange","posisition","_updateAceValue","col","insertion","getSession","getValue","_updateValue","patchFieldName","_parametersPutSelectionHandler","selectedItemPath","newAddedString","_fieldsPutSelectionHandler","koOptions","proposedFieldName","displayExpressionConverter","languageHelper","getLanguageMode","createCompleters","completor","showLineNumbers","showPrintMargin","enableBasicAutocompletion","enableLiveAutocompletion","showFoldWidgets","highlightActiveLine","clearAnnotations","setAnnotations","warningMessage","pathFunc","initDisplayValue","fieldsTreeListOptions","_createToolsOptions","parametersTreeListController","_parametersCustomFilter","parametersTreeListOptions","editorTemplateName","optionSubscription","_advancedMode","showGutter","onValueChange","changeTimeout","onFocus","onBlur","animationTimeout","_validateValue","_generateOperand","_generateSurface","createAddButton","createChangeType","createChangeProperty","createChangeParameter","createChangeValueType","updateCriteria","focusFn","renderer","updateText","computedFunctions","_contentMargins","_topOffset","_defaultActiveTextContentHeightPerc","_defaultActiveTreeContentHeightPerc","_currentActiveTextContentHeightPerc","_currentActiveTreeContentHeightPerc","currentHeight","diffPerc","createViewModel","componentInfo","defaultPatterns","popupContainer","_timeout","currentType","localizationIdMap","_standardPatternSource","_customPatternSource","_convertArray","_updateFormatList","_updateCanAddCustomFormat","_updatePreview","_initEditor","updatePreview","_updateSelection","_scrollToBottom","saveCustomPattern","currentSelection","removedItemIndex","removeCustomPattern","_getGeneralPreview","_wrapFormat","okAction","$scrollView","scrollViewInstance","currentTypeInfo","selectedItemIndex","currectFormat","setDisabled","updatedPreviewPromise","_lastUpdatePreviewPromise","previewResult","Result","_setPreviewString","_setErrorMessage","IsError","pattern","newFormat","formatStringValue","isFormatPatternFind","closingBracketIndex","formatPattern","selectTypePatternPair","componentInstance","formatEditor","div","registerDesignerEditors","registerEditors","textAlignment","objecteditorCustom","dataMember","filterEditor","expressionEditor","customColorEditor","sbyte","decimal","int64","int32","int16","single","double","byte","uint16","uint32","uint64","registerBaseEditors","cultureInfo","generateGuid","getNewQuartet","commonBlur","HTMLElement","fullscreenEventsList","createFullscreenComputed","_fullscreen","isFullscreen","fullscreen","toggleFullscreen","addFullscreenListener","removeFullscreenListener","processZoomFactor","defaultFontSize","getComputedStyle","getPropertyValue","showFullscreen","requestFullscreen","exitFullscreen","isIOS","ios","navigator","maxTouchPoints","android","isMobile","transformNewLineCharacters","csvSeparator","pageBorderColor","pageBorderWidth","pageRange","expotOptionsTitle","htmlTableLayout","docxTableLayout","allowURLsWithJSContent","rasterizationResolution","rasterizeImages","useHRefHyperlinks","exportWatermarks","inlineCss","removeSecondarySymbols","characterSet","getExportModeValues","preview","merged","singleFile","singleFilePageByPage","differentFiles","exportPageBreaks","rtfExportMode","docxExportMode","htmlExportMode","embedImagesInHTML","imageExportMode","xlsExportMode","xlsxExportMode","getTextExportModeValues","textExportMode","xlsTextExportMode","csvTextSeparator","useCustomSeparator","textEncodingType","xlsExportHyperlinks","xlsRawDataMode","xlsShowGridLines","xlsExportOptionsSheetName","csvExportOptionsSerializationInfo","defaultSeparatorValue","separatorValue","docxExportDocumentOptionsSerializationInfo","rtfExportOptionsSerializationInfoBase","emptyFirstPageHeaderFooter","keepRowHeight","rtfExportOptionsSerializationInfo","docxDocumentOptions","toJson","docxExportOptionsSerializationInfo","exportMode","tableLayout","additionalRecipientSerializationsInfo","createNew","nativeFormatOptionsSerializationInfo","additionalRecipients","emailOptionsSerializationInfo","htmlExportOptionsSerializationInfoBase","htmlExportOptionsSerializationInfo","imageExportOptionsSerializationInfoBase","imageExportOptionsSerializationInfo","mhtExportOptionsSerializationInfoBase","mhtExportOptionsSerializationInfo","pdfExportDocumentOptionsSerializationInfo","author","application","subject","pdfExportPermissionsOptionsSerializationInfo","pdfExportPasswordSecurityOptionsSerializationInfo","permissionsPassword","pdfEncryptionLevel","openPassword","pdfACompatibilityValues","None","PdfA1b","PdfA2b","PdfA3b","pdfACompatibility","pdfUACompatibilityValues","PdfUA1","pdfUACompatibility","pdfExportOptionsSerializationInfo","_pdfACompatibility","_pdfUACompatibility","pdfPasswordSecurityOptions","hasSensitiveData","printPreviewOptionsSerializationInfo","textExportOptionsSerializationInfo","documentOptionsSerializationsInfo","documentOptions","encryptionOptionsSerializationsInfo","encryptionOptions","xlsExportOptionsSerializationInfoCommon","xlsExportOptionsSerializationInfoBase","xlsExportOptionsSerializationInfo","password","xlsxExportOptionsSerializationInfo","exportOptionsSerializationInfo","Locker","lock","isUpdate","Design","FirstPage","PrevPage","Pagination","NextPage","LastPage","MultipageToggle","HighlightEditingFields","ZoomOut","ZoomSelector","ZoomIn","Print","PrintPage","ExportTo","Search","FullScreen","ExportFormatID","PDF","textId","XLS","XLSX","RTF","MHT","HTML","Text","CSV","DOCX","PreviewElements","Toolbar","Surface","RightPanel","ExportTool","ZoomAutoBy","WholePage","PageWidth","_needFocusNext","_firstSelectedBrickIndex","_lastSelectedBrickIndex","_resetBricksIndexes","_resetBricks","_currentPage","selectBrick","delayedInit","_initTimeout","_getSelectedContent","getSelectedContent","_pages","pages","_goToPage","goToPage","_usePageKeyboardNavigation","showMultipagePreview","currentPage","newPage","_activeBricksSubscription","_afterInitializeCallback","_bricks","bricks","lastFocusItem","activeBricks","_liveRegionTimeout","navigation","efIndex","editField","editingFields","efItems","efItem","activateEditor","currentTarget","_getNonEmptyBrick","accessibleDescription","newIndex","page","lastBrick","_pageChangeHandle","_actionExecute","_activatePage","_keyboardHelper","_focusHandler","GlyphStyle","CheckState","EditablePreviewEnabled","SearchAvailable","ReportServerInvokeUri","ReportServerExportUri","AsyncExportApproach","MessageHandler","processError","processMessage","processWarning","HandlerUri","previewDefaultResolution","ReportServerDownloadUri","PollingDelay","TimeOut","hideEditor","pageHeight","htmlValue","wordWrap","brickStyle","brickOptions","cssCalculator","rtlLayout","verticalPadding","breakOffsetStyle","textStyle","shouldCommit","keypressAction","isCustomEditor","containerStyle","cursor","readOnly","elementFocused","onEditorShown","focusTextElement","cellVerticalPadding","borderCellStyle","cellStyle","characterCombBounds","cells","rowTops","rowsCount","colsCount","setText","textRowsCount","ceil","textLastRowColCount","startRow","lastRowStartCol","createCustomGlyphStyleCss","imageSource","backgroundResult","urlContent","getDataUrl","background","getCheckBoxTemplate","customGlyph","editingFieldsProvider","focused","_editingFieldsProvider","checkBounds","checkBoxBounds","checkStyle","customGlyphStyleCss","imageSourceData","checkBoxGlyphOptions","customGlyphs","checkStateStyleIcon","glyphStyle","Checked","Unchecked","toggleCheckState","groupID","checked","_toggleCheckState","_page","_click","clientX","clientY","_getBodyScrollLeft","_getBodyScrollTop","leftP","topP","widthP","heightP","_$selectionContainer","unwrappedValues","popupTarget","popupOptions","sizeMode","onDraw","getImage","getImageType","imageMode","getCurrentOptions","__DefaultImageType","currentVal","isNotEqual","parentPopupClass","_popupInitializedClass","_getPopupContainer","_getPainterModel","$painter","_getPictureEditorModel","$popupEditing","_resetPictureEditor","pictureEditorModel","painterData","_resetPainter","imagePainter","imageFormatByType","hasClass","canDraw","_showContent","popupData","paintData","isVisible","isPopupActive","getPositionTarget","showContent","_$popupContent","signaturePainter","resetLastPosition","registerKeyHandler","renderedHandler","_parentPopup","ImageAlignment","ImageSizeMode","DefaultImageEditingFieldViewModel","sizing","imageAlignment","htmlProvider","_needToUseHtml","_index","_readOnly","editingFieldChanged","_refreshHtmlValue","_htmlProvider","getEditingFieldHtml","formatString","rtfExportModeMergedPreview","docxExportModeMergedPreview","excludeModesForMergedDocuments","excludeDifferentFilesMode","htmlExportModePreviewBase","htmlExportModePreview","htmlExportModeMergedPreview","xlsExportModePreviewBase","xlsExportModePreview","xlsExportModeMergedPreview","imageExportModePreviewBase","imageExportModePreview","imageExportModeMergedPreview","xlsxExportModePreviewBase","xlsxExportModePreview","xlsxExportModeMergedPreview","htmlExportOptionsSerializationInfoPreview","variableInfo","_getVariableInfo","imageExportOptionsSerializationInfoPreview","mhtExportOptionsSerializationInfoPreview","rtfExportOptionsSerializationInfoPreview","xlsExportOptionsSerializationInfoPreview","xlsxExportOptionsSerializationInfoPreview","docxExportOptionsSerializationInfoPreview","exportType","_generateFromFunction","xls","xlsx","pdf","_generateInfo","ColumnSortOrder","_callbacks","reportPreview","defaultErrorMessage","showMessage","statusCodeText","statusText","stringFormat","messageWithStatusCode","getProcessErrorCallback","parametersModel","searchModel","_reportPreview","_parametersModel","_searchModel","encodeURIComponent","matchCase","wholeWord","matchWholeWord","searchUp","shouldIgnoreError","serializeParameters","parametersSubmitted","reportUrl","drillDownKeys","sortingState","timeZoneOffset","getTimezoneOffset","faultMessage","timeOut","_getErrorMessage","serializedExportOptions","editindFields","hideMessageFromUser","editingFieldValues","reportName","operationId","editingFieldIndex","getCurrentResolution","getImageBase64","crossOrigin","canvas","getContext","drawImage","toDataURL","getEnumValues","safelyRunWindowOpen","newWindow","open","opener","ExportResultRequestData","RequestUrl","FormData","QueryParameters","exportSetting","exportActionUri","exportFormData","reportDisplayName","popupWidth","popupHeight","exportingFrameName","popupButtons","printingLinkCallback","printingTextPrefix","printingTextPostfix","getPopupTitle","_exportResultRequestData","_showPrintNotificationDialog","_useSameTabExport","_useAsynchronousExport","_workerTicker","_workerFunctionBlobUrl","_xhr","_workerTickerFunction","interval","onmessage","setInterval","postMessage","clearInterval","_window","_timeouts","useAsynchronousExport","useSameTab","showPrintNotificationDialog","URL","_terminateWorker","blob","Blob","_url","_getUrlObject","createObjectURL","Worker","terminate","revokeObjectURL","browserVersion","browser","version","chrome","worker","_createWorker","checkOnTick","contentType","print","onerror","_isNewBrowser","iframe","exportingFrame","contentWindow","printingTextParts","_clearExportingFrame","_requestData","_formTarget","postingForm","formData","_exportWindow","printable","shouldChangePrintJobName","onExportCustomEvent","_initPrintingWindow","formTarget","_formSubmit","_replaceLocation","_printUsingBlob","innerText","margin","useSameTabLocal","inlineResult","_setPrintingLinkCallback","_startExportAsync","onunload","progressBar","_initExportWindow","cancelText","exportOperationIdDeferred","startExportOperationId","wasCancelRequested","startProgress","requestWrapper","cancelExportRequest","getStartExportOperation","response","previewHandlersHelper","doneStartExportHandler","errorStartExportHandler","_showAsyncExportError","actionUri","_editingFields","exportOptionsModel","_doExportSync","isNewChrome","mozilla","_method","_addQueryParamsToUri","_executeXhr","_handleXhrReady","_prepareXhr","send","_exportUrl","XMLHttpRequest","onreadystatechange","responseType","_xmlHttpRequest","readyState","blobUrl","_callPrint","_exportUri","_queryParameters","tic","progress","complete","getExportStatusRequest","doneExportStatusHandler","errorExportStatusHandler","inlineDisposition","exportHandler","exportFrame","_processFocus","_isClick","_activateHandler","_blur","convertToPercent","childSize","parentSize","getBrickValueForKey","brickTextProperty","brickText","updateBricksPosition","childBrick","initializeBrick","processClick","editingFieldBricks","loading","isClientVisible","loadingText","realZoom","actualResolution","currentScaleFactor","imageHeight","imageWidth","imageSrc","displayImageSrc","brickLoading","getBricksFlatList","clickableBricks","maxZoom","disableResolutionReduction","_lastZoom","_selectedBrickPath","_currentDocumentId","_lastGetPageDeferred","currentGetPageDeferred","_currentScaleFactor","base64string","_onPageLoaded","_onPageLoadFailed","_closeDocumentRequests","getPage","unifier","_unifier","pageLoading","_pageHeight","_pageWidth","_zoom","_getPixelRatio","_setPageImgSrc","_pageBackColor","resetBrickRecusive","currentBrick","pathElements","editingFieldsKeyboardHelper","previewEditngFields","oldEditFields","allEditingFields","pageFieldViewModels","editingField","absoluteBounds","previewEditingFields","_isDisposed","brickColumnWidthArray","columnWidthArray","editignFieldBricks","_initializeEditingFields","newResolution","updateSize","imageResolution","resolution","includeBricks","xPerc","scrollX","yPerc","scrollY","innerBricksLength","_preview","exportOperationId","doGetExportStatus","getExportStatus","requestAgain","updateExportStatus","doStatusRequest","completed","_cancelExportRequests","getExportResult","_startBuildOperationId","startBuildOperationId","doucmentIdDeferred","removeAllEmptyPages","removeAll","removeEmptyPages","stopBuildRequest","_stopBuildRequests","closeDocumentRequest","closeDocument","stopBuild","doGetBuildStatus","getDoGetBuildStatusFunc","stopProcessingPredicate","wereNoPagesAndNewOnesExist","createNewPage","createPage","createBrickClickProcessor","_raiseOnSizeChanged","processPages","enableKeyboardSupport","_forceInvisible","inProgress","cancelVisible","isCancelling","visibleState","progressBarAccessibility","completeOperationId","_startOperationId","_lastOperationDeferred","rejectLastOperationIdDeferred","_lastOperationIdDeferred","startOperationId","onStop","operationIdPromise","rejectLastOperationDeferred","newOperationDeferred","newOperationIdDeferred","finalizeId","_getSortingStage","sortData","_detachSorting","_appendSorting","_applySorting","sortingStage","_changeSortOrder","unshift","sortOrder","skipProcessing","f","fieldInfo","Ascending","Descending","handlerUri","previewRequestWrapper","exportSettings","predefinedZoomLevels","_currentReportId","_currentReportUrl","_closeReportRequests","_editingValuesSubscriptions","_drillDownState","_sortingState","_sortingProcessor","_getBuildStatusDeferreds","_deferreds","punctuationMark","getActiveBricks","resultArray","genlIndex","innerBrick","sortedActiveBricks","extendWithSpaces","spaceCount","firstUsedColumn","lastUsedColumn","activeBrick","rowText","rtlReport","originalParametersInfo","documentMap","documentBuilding","reportOpening","isAutoFit","autoFitBy","exportDisabled","_currentPageText","ofText","onSizeChanged","previewSize","previewVisible","editingFieldsHighlighted","canSwitchToDesigner","zoomStep","_progressFirstTime","emptyDocumentCaption","parametersInfo","parametersExist","Visible","newCaption","exportOptionsTabVisible","rtlViewer","customProcessBrickClick","previewClick","customizeExportOptions","onExport","_onGetBuildStatus","_onGetDocumentDetails","clearBricks","documentReady","notifySubscribers","pagesArray","previewBrickKeyboardHelper","drillDownKey","_clear","_startBuildRequest","doSorting","idx","tempPage","_cleanTabInfo","closeReport","cyclePageIndex","brickNavigation","_doDrillDown","_doSorting","targetPage","indexes","brickClickDocumentMapHandler","validateUrl","isUrlString","_clearReportInfo","_openReportOperationDeferred","openReport","closeCurrentReport","drillThrough","reportParameterInfo","knownEnums","LookUpValues","TypeName","initializeDataPromise","_initialize","_initializeDeferred","previewInitialize","pageSettings","readerMode","deserializedExportOptions","_deserializeExportOptions","documentData","canPerformContinuousExport","customizeExportOptionsArgs","_sortCustomParametersLookUpValues","documentIdPromise","doGetBuildStatusFunc","exportOptionsString","isMerged","jsonModel","customDocumentOperation","succeeded","_getToastMessageContainer","docuemntIdDeferred","_initializeStartBuild","currentReportId","startBuildRequest","doneStartBuildHandler","errorStartBuildHandler","sessionDeferred","ignorePredicate","getBuildStatusRequest","doneGetBuildStatusHandler","errorGetBuildStatusHandler","getBuildStatus","getDocumentData","ignoreErrorPredicate","documentDataDeferred","createEditingField","export","_documentId","sendCloseRequest","forcePageChanging","throttle","_goToPageTimer","updateActivePage","activePageIndex","serverError","_previewModel","previewModel","previewExists","GetParametersModel","PerformCustomDocumentOperation","OpenReport","GetCurrentPageIndex","GoToPage","Close","ResetParameters","StartBuild","updateSurfaceSize","bookmark","bookmarkDict","pathRequest","nodes","_selectNode","_getRootNode","currentNode","fillNode","_selectedPath","_setSelectedPathByNavigationNode","documentMapTabVisible","tabInfo","documentMapOptions","tabPanelVisible","actionExportTo","_exportDocumentByFormat","eventHandlers","ExportOptionsEventHandlers","exportItems","_getExportFormatItems","rtf","docx","mht","textExportOptions","csv","exportDocumentTo","_menuButton","_attachHoverEvents","mobileSettings","animationEnabled","availablePages","visiblePages","topOffset","previewWrapperSize","searchPanelVisible","actionsVisible","scrollReachedLeft","scrollReachedRight","scrollReachedTop","scrollReachedBottom","zoomUpdating","mobileZoom","currentZoom","globalAnimationEnabled","animationSettings","zoomEnabled","swipeEnabled","interactionDisabled","_clickHandler","supscription","pageEditFields","searchVisible","_hasActiveEditingFields","forcePage","onUpdated","setScrollReached","pushBackValue","bounceEnabled","reachedLeft","reachedRight","reachedTop","reachedBottom","searchResult","searchText","noResultText","inputValue","currentResult","goToMatchedResult","foundResult","getFirstMatchFromPage","thisPageOnly","firstMatch","sortOutResult","_setCurrentResult","highlight","resultId","goToResult","newPageIndex","next","prevPageIndex","pageIndexToSearchFrom","firstResult","currentId","_searchIgnoreObs","itemClickAction","focusRequested","_renderedSearchResult","resetSearchResult","_resultNavigator","createResultNavigator","clean","findUp","findNext","findDown","newSearch","_searchTimeout","mCase","cache","_cachedWholeWordWithCaseRequests","_cachedWholeWordRequests","_cachedCaseSensitiveRequests","_cachedRequests","findTextRequest","findTextRequestDone","searchResultDataSource","matches","seacrhModel","gallery","_galleryCurrentItemBlocksSubscription","_gallerySelectedIndexSubscription","currentBlocksSubscribe","_killSubscription","newBlocks","updatePagesInBlocks","currentIndexSubscribe","newSelectedIndex","newItems","block","_updateBricks","editorVisible","stopSearching","previewSearch","searchEditor","results","$searchText","searchBarModel","_spacing","_animationTimeout","repaintTimeout","isAnimated","currentBlockText","selectedIndexReal","oldIndex","contentSize","_calcHorizontalVertical","_containerSize","updateGalleryContent","currentGalleryItem","updateBlocks","realIndex","changePage","swipeLeftEnable","swipeRightEnable","previewPage","classSet","someActive","pagesCount","itemsCount","isCurrentBlock","galleryItem","currentBlockPages","firstPage","_createBlock","lastPage","useAnimation","updateStartBlocks","updateLastBlocks","updateBlockPositions","updatePagesVisible","updateCurrentBlock","pageText","timeoutId","hideAnimationTimeoutId","isGroupLabel","expanded","titleVisible","hideEditorHeader","hideCollapsingImage","showExpandButton","hideBorder","borderVisible","showHorizontally","orientation","viewerEditorTemplates","multiValue","onMultiTagPreparing","selectedItemsLength","totalCount","groupEditor","rangeEditor","multiValueEditable","selectBox","separatorEditor","_customizeParameterEditors","getUnspecifiedDisplayText","_knownEnums","knownEnumType","dateConverter","itemValue","customizeParameterEditors","customizeParameterLookUpSource","parameterDescriptor","getParameterDescriptor","isEnumType","allowNull","assignValueStore","isMultiValue","getEnumCollection","getItemsSource","multiValueInfo","fromArray","convertSingleValue","getValueConverter","createMultiValue","_isKnownEnumType","createDefaultDataSource","currentKnownEnumInfo","valueInfo","createInfo","addShowCleanButton","selectAllValues","allValues","maxDisplayedTags","isSelectedAll","selectAll","lookUpValues","lookUpValue","Description","fixPropertyName","getPrivatePropertyName","allowClearing","isRange","getRangeEditor","isTypesCurrentType","intTypes","floatTypes","isMultiValueWithLookUp","displayCustomValue","_helper","needSorting","isFilteredLookUpSettings","valueStoreCache","itemsSource","dateString","parameterInfo","parameterHelper","hasVerticalLabel","tag","Tag","Start","Path","Enabled","IsFilteredLookUpSettings","hasBindedExpressions","EnabledExpression","VisibleExpression","hasVisibleExpression","_originalLookUpValues","mapLookUpValues","MultiValue","SelectAllValues","AllowNull","_originalValue","ValueInfo","Name","hasLookUpValues","getParameterInfo","value1","value2","_compareValues","isEqual","safeAssignObservable","arrayItem","multiValuesHelper","createMultiValueArray","layoutInfo","_parameters","_separatorNames","_groupLayoutItems","previewParameters","layoutItems","itemInfo","groupItemInfo","_fixGroupPropertyName","parameterLayoutInfo","previewParameter","_add","generatedName","labelOrientation","parameterPropertyName","parseValue","expandValue","usedParameter","parameterPanelLayout","_proceedLayoutInfo","_needToUpdateParameter","_getParametersStateRequest","argsObject","_getDoneGetParametersStateHandler","changedParameter","parametersViewModel","parametersInfoCollection","matchedParameter","_shouldProcessParameter","_setLookUpValues","parametersLoading","_getFailGetParametersStateHandler","jqXHRError","restore","parametersReset","processInvisibleParameters","prevParametersStateRequest","validateAndSubmit","validationGroup","startBuild","notEmpty","popupVisibleSwitch","popupInfo","_updateParametersTimeOut","param","localDate","UTC","needToUpdateParameter","updateParameters","_parameterValuesContainedInLookUps","_getParameterValuesContainedInLookups","parameterLookUpValues","_filterParameterValuesContainsInLookups","parameterType","layout","_visibleParameters","actualParametersInfo","subscribeParameter","parametersInitialized","parameterPath","convertItem","_convertLocalDateToUTC","getSerializationValue","requiredParameterPaths","getPathsAfterPath","changedParameterIndex","updateTopChangedParameter","_topChangedParameter","changedParameterPath","updatePreviewContentSizeMobile","outerWidth","getPreviewActionsMobile","exportToModel","allFormats","exportModel","availableFormats","exportTypes","notUsedFormats","focusEditor","printDocument","deactivate","PreviewModel","documentMapModel","slideOptions","paginator","brickEventsDisabled","scrollAvailable","formModel","_submit","_reset","_cancel","showIcons","cancelDisabled","actionButtons","actionIcons","_parametersButtonContaner","initVisibilityIcons","nodeTop","_popupVisible","startDate","_oldStart","endDate","_oldEnd","applyValue","getStringDate","calendarHeight","defaultButtonSettings","activeStateEnabled","startButton","endButton","submitAction","textRangeValue","_displayText","applyDate","MobilePreviewElements","Pages","MobileActions","stringToPosition","lowerCased","getDockedElementCallback","$targetElement","$viewer","$window","viewer","elementTop","viewerTop","viewerHeight","windowContentHeight","previewWrapper","clientRect","translateY","_getRightAreaWidth","rightAreaWidth","updatePreviewContentSize","_cashedSizeFactorClass","tabPanelPosition","$_root","$viewPort","sizeFactor","surfaceWidth","cssStyleData","updatePreviewZoomWithAutoFit","$previewWrapper","$preview","topAreaHeight","designerHeight","surfaceHeight","heightZoom","widthZoom","getUpdateProgressBarCallback","progressBarSettings","rootElement","keepProgressBarVisible","keepOnVisibleArea","setPosition","$progress","updateProgressBarPosition","_addDisposable","wrappedUpdateProgressPosition","createMobilePreview","bindingSettings","bindingModel","bindingElement","mobileModeSettings","updatePreviewContentSize_","mobileActions","designerModelOptions","searchPanel","galleryIsAnimated","parametersPopup","customizeParts","$actions","updateProgressPosition","updateMobilePreviewActionsPosition_","updateSizesCallback","resizeCallback","onScroll","applyBindings","beforeRender","formatSearchResult","designAction","globalActionProviders","globalActions","actionProvider","shouldIgnoreProcessing","printDisabled","wrapDisposable","paginationSelectBoxViewModel","pageItems","deferEvaluation","focusOut","_isPageChanged","keyUp","opened","zoomLevel","customItem","zoomItems","available","viewerVisible","createDesktopPreview","fullscreenEnabled","previewActions","designPreviewActions","timers","tabPanelSettings","_createPreview","disposableCallback","onServerError","remoteSettings","authToken","serverUri","headers","createPreview","customizeLocalization","createPreviewModel","viewerModel","cultureInfoList","initPreviewModel","unwrappedUrl","customEventRaiser","_closeReportOnDisposing","keepReportOnComponentDisposal","_eventSenderCreated","_initializeCallbacks","onInitializing","previewEvents","generatePreviewEvents","_fireEvent","_checkCallbackName","availablePreviewEvents","_generateCallbackDictionary","_applyBindings","applyModel","invokeAction","_createModel","_getLocalizationRequest","dxReportViewerBindingName","_hide","predefinedDateRangesKeyboardHelper","owner","popupModel","_createTemplateData","clickToBrick","rightP","startSearch","cacheElementContent","showActions","onSlide","getScrollViewOptions","getPictureEditorOptions","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","order","currentPageAriaLabelImgAlt","getPainter","getPopupData","onItemRendered","_showPopup","dialogKeyboardHelper","_isSelected","inRange","popupTemplate","showDropDownButton","scale","brushWidthText","brushColorText","colors","sizeModeText","sizeModeValues","iconTemplate","attrTitle","alignmentText","alignmentValues","contentWidth","filterEnabled","$previewPage","pageActive","pageTop","loadVisibleImages","visibleArea","previewPageModel","updateCallback","subscribtion","scrollLoad","keyDownHandler","getSelection","$clipboardContainer","keyUpHandler","updateZoom","skipIfInvisible","newZoom","rightPanelWidth","EDITOR_BUTTON_SELECTOR","EDITOR_BUTTON_ICON_UP_TEMPLATE","EDITOR_BUTTON_ICON_DOWN_TEMPLATE","_activeStateUnit","_focusRequestRaised","_$buttons","$button","GALLERY_CLASS","GALLERY_WRAPPER_CLASS","GALLERY_LOOP_CLASS","GALLERY_ITEM_CONTAINER_CLASS","GALLERY_ACTIVE_CLASS","GALLERY_ITEM_CLASS","GALLERY_INVISIBLE_ITEM_CLASS","GALLERY_LOOP_ITEM_CLASS","GALLERY_ITEM_SELECTOR","GALLERY_ITEM_SELECTED_CLASS","GALLERY_INDICATOR_CLASS","GALLERY_INDICATOR_ITEM_CLASS","GALLERY_INDICATOR_ITEM_SELECTOR","GALLERY_INDICATOR_ITEM_SELECTED_CLASS","GALLERY_IMAGE_CLASS","GALLERY_ITEM_DATA_KEY","MAX_CALC_ERROR","GalleryNavButton","pageUp","pageDown","hoverStateEnabled","NAME","_createActionByOption","Gallery","_wasAnyItemTemplateRendered","animationDuration","loop","indicatorEnabled","showIndicator","slideshowDelay","showNavButtons","wrapAround","initialItemWidth","stretchImages","_itemAttributes","role","loopItemFocus","selectOnFocus","selectionMode","selectionRequired","selectionByClick","isSimulator","_templateManager","addDefaultTemplates","$img","_prepareDefaultItemTemplate","alt","imageAlt","_dataSourceOptions","_itemContainer","_$container","_itemClass","_itemDataKey","_actualItemWidth","isWrapAround","itemPerPage","_itemsPerPage","_itemPercentWidth","percentWidth","elementWidth","itemsPerPage","_itemsCount","_pagesCount","_offsetDirection","_renderWrapper","_renderItemsContainer","toggleClass","label","_renderDragHandler","_renderContainerPosition","_renderItemSizes","_renderItemPositions","_renderNavButtons","_renderIndicator","_renderSelectedItem","_renderItemVisibility","_renderUserInteraction","_setupSlideShow","_reviseDimensions","_dimensionChanged","_stopItemAnimations","_clearCacheWidth","_cloneDuplicateItems","_calculateIndexOffset","_$wrapper","_renderItems","_loadNextPageIfNeeded","lastItemIndex","_getLoopedItems","duplicateCount","$items","_getRealItems","_cloneItemForDuplicate","_emptyMessageContainer","_itemElements","itemWidth","loopItemsCount","lastItemDuplicateIndex","offsetRatio","freeSpace","_itemFreeSpace","isGapBetweenImages","side","isLoopItem","itemPosition","_relocateItems","hideItems","animate","_releaseInvisibleItems","positionReady","targetIndex","targetPosition","_animationOverride","_startSwipe","_animate","_endSwipe","_elementWidth","resolveWith","_deferredAnimate","extraConfig","animationComplete","fx","_needMoveContainerForward","_needMoveContainerBack","_maxContainerOffset","expectedPosition","actualPosition","_maxItemWidth","$firstItem","_cleanIndicators","indicator","_$indicator","isIndicatorEnabled","$indicatorItem","_attachIndicatorClickHandler","_renderSelectedPageIndicator","_indicatorSelectHandler","_detachIndicatorClickHandler","_toggleIndicatorInteraction","clickEnabled","_this$_$indicator","$indicatorItems","lastIndex","_createComponent","onStart","_swipeStartHandler","_swipeUpdateHandler","onEnd","_swipeEndHandler","itemSizeFunc","indicatorIndex","_fitPaginatedIndex","_needLongMove","_prevNavButton","_prevPage","_nextNavButton","_nextPage","_renderNavButtonsVisibility","_cleanNavButtons","visiblePageSize","goToItem","_shouldLoadNextPage","_isDataSourceLoading","_isLastPage","_loadNextPage","_allowDynamicItemsAppend","restItemsCount","_goToGhostItem","nextHidden","prevHidden","_slideshowTimer","_userInteraction","nextItem","_cacheElementWidth","startOffset","endOffset","maxLeftOffset","maxRightOffset","wrapAroundRatio","targetOffset","_fitIndex","paginatedIndex","_setFocusOnSelect","itemElements","_flipIndex","_clean","addedSelection","removedSelection","prevIndex","withoutAnimation","indexOffset","_focusInHandler","isAnimating","_focusOutHandler","_selectFocusedItem","_moveFocus","_visibilityChanged","_isItemOnFirstPage","_isItemOnLastPage","prevItem","slowdownDisctanceFactor","minScale","setTransform","_direction","scrollDown","isLeftMove","isRightMove","$body","$gallery","$galleryblocks","firstMobilePageOffset","_getFirstPageOffset","applySearchAnimation","dif","perc","differenceY","_startingPositionY","distanceY","distanceX","_startingPositionX","tg","latestX","latestY","getDirection","difference","touches","galleryInstance","DX_PREFIX","TRANSFORM","TRANSLATE","PINCH","ROTATE","START_POSTFIX","UPDATE_POSTFIX","END_POSTFIX","eventAliases","addAlias","eventArgs","deltaScale","rotation","deltaRotation","translation","deltaTranslation","getVector","second","centerX","centerY","getEventVector","pointers","getDistance","vector","sqrt","getScale","firstVector","secondVector","getRotation","scalarProduct","distanceProduct","sign","math","acos","getTranslation","TransformEmitter","validatePointers","_accept","startVector","_startVector","_prevVector","_fireEventAliases","currentVector","_getEventArgs","eventPostfix","iterator","eventAlias","eventNames","emitter","exportNames","transformstart","transformend","translatestart","translate","translateend","zoomstart","zoomend","pinchstart","pinch","pinchend","rotatestart","rotate","rotateend","slideOptionsValue","isStarted","processor","_animationClassName","currentBlockItem","nextBlockItem","initializeBlockItems","blockItems","diffperc","newLeft","loopTest","currentBlockIndex","_getNextIndex","nextBlockIndex","_getItem","_setSwipeAnimation","_addAnimation","_restoreDefault","CSDateTime","_date","getDay","months","setMonth","today","month","days","newDate","setDate","hours","years","setFullYear","createRangeItem","predefinedDateRanges","addDays","day","year","addMonths","addYears","_locker","_hidePopup","_accessibilityDialogItems","_getStringValue","_end","getTime","_start","updateEndDate","_toParameterValue","bindings","imageBase64","_getImageSize","_getImageCoordinate","StretchImage","Cover","ZoomImage","Squeeze","ratio","imageSize","MiddleCenter","MiddleLeft","MiddleRight","BottomLeft","BottomCenter","BottomRight","TopCenter","TopRight","_drawImage","_points","hasPoints","lastX","lastY","beginPath","strokeStyle","lineJoin","moveTo","lineTo","closePath","fillStyle","arc","PI","fill","point","isStart","_drawCircle","_drawPath","_lastX","_lastY","resetPoints","_drawAllPoints","_pointerDownHandler","_getContextPoint","drawCircle","_context","lineColor","_pointerMoveHandler","pointerType","drawPath","_pointerLeaveHandler","imageSizeMode","Normal","TopLeft","_setCanvasSize","initialSize","hasSignature","_addEvents","_removeEvents","nodeName","offsetX","offsetY","clearRect","_cleanCanvas","initialImage","initialAlignment","initialSizeMode","initialImageType","$child","initSize","initCanvas","PictureEditorToolbarItem","topElement","popupsOffset","$arrow","_editorModel","_popupOptions","openFileActionOptions","_initPopupOptions","PickImage","alignmentActive","_getValues","brushItemActive","_getColorValues","Brush","elem","mod","brushIcon","clearItemOptions","Reset","GESTURE_COVER_CLASS","ACTIVE_POPUP_CLASS","_getPopupContent","popupInstance","_initialImageType","_initialImage","_initialAlignment","_initialSizeMode","painterOptions","_initActions","oldAction","changeActiveButton","customizeActionsCallback","createOpenFileAction","_loadImage","createSizingAction","createBrushAction","createResetItem","createClearItem","_wrapButtonAction","_takeFocus","_pointerCancelHandler","_releaseFocus","_pointerUpHandler","isUnderCursor","componentContent","isEditorContainer","imageParts","currentPaletteName","_floor","_ceil","_isArray","HIGHLIGHTING_STEP","DEFAULT_PALETTE","officePalette","simpleSet","indicatingSet","gradientSet","accentColor","palettes","office","pastel","bright","soft","ocean","vintage","violet","carmine","currentPalette","getPalette","palette","themeDefault","getAccentColor","RingBuf","buf","ind","res","getAlternateColorsStrategy","stepHighlight","useHighlight","paletteSteps","getAlteredPalette","getColor","generateColors","getExtrapolateColorsStrategy","paletteCount","cycles","cycleIndex","cycleCount","hsl","l","diapason","minL","maxL","cycleMiddle","cycleDiff","fromHSL","toHex","getColorMixer","extendedPalette","distributeColors","colorsCount","distribution","middleIndex","groupSize","extraItems","getColorAndDistance","arr","extendPalette","colorInGroups","currentColorIndex","cleanColorIndices","keepLastColorInEnd","paletteWithEmptyColors","paletteLength","color1","c2","color2","blend","repeat","createPalette","themeDefaultPalette","paletteObj","_extensionStrategy","_currentColor","extensionMode","originalPalette","ii","getNewColor","currentColor","newColor","alter","lightness","getLightness","g","getDiscretePalette","source","createDiscreteColors","colorCount","sourceCount","gradient","addColor","kl","kr","getGradientPalette","_getTheme","_addCacheItem","_removeCacheItem","_extend","_each","getThemePart","_theme","pathItem","BaseThemeManager","ctor","_themeSection","themeSection","_fontFields","fontFields","_callback","_font","setCallback","setTheme","_current","current","_themeName","_defaultPalette","defaultPalette","font","_initializeTheme","themeName","createDiscretePalette","createGradientPalette","_initializeFont","errors","ERROR_MESSAGES","E2001","E2002","E2003","E2004","E2005","E2006","E2007","E2008","E2009","E2101","E2102","E2103","E2104","E2105","E2202","E2203","W2002","W2003","W2101","W2102","W2103","W2104","W2105","W2106","W2107","W2108","W2301","createEventTrigger","eventsMap","callbackGetter","triggers","createEvent","triggerEvent","eventInfo","applyChanges","newName","actionSettings","createIncidentOccurred","widgetName","eventTrigger","getResizeManager","observe","unsubscribe","createDeferredHandler","createResizeHandler","contentElement","redrawOnResize","disposeHandler","resizeManager","unobserve","isServerSide","Flags","combineMaps","baseMap","thisMap","combineLists","baseList","thisList","buildTotalChanges","_totalChangesOrder","_optionChangesOrder","_layoutChangesOrder","_customChangesOrder","addChange","code","isThemeDependent","_themeDependentChanges","_optionChangesMap","isOptionChange","createChainExecutor","executeChain","_chain","executor","expander","addPlugin","plugin","_plugins","members","extenders","codes","flags","_flags","replaceInherit","_inherit","plugins","_eventsMap","initialChanges","_initialChanges","themeDependentChanges","optionChangesMap","partialOptionChangesMap","_partialOptionChangesMap","partialOptionChangesPath","_partialOptionChangesPath","optionChangesOrder","layoutChangesOrder","customChangesOrder","_min","_max","_round","ALIGN_START","ALIGN_MIDDLE","ALIGN_END","horizontalAlignmentMap","verticalAlignmentMap","sideMap","slicersMap","BBOX_CEIL_CORRECTION","pickValue","normalizeLayoutOptions","horizontalAlignment","verticalAlignment","primary","bringToEdge","secondary","weak","priority","getConjugateSide","getSlice","getShrink","processForward","minSize","measure","minSide","processRectBackward","alignmentRect","primarySide","secondarySide","processBackward","fitRect","targetRect","itemFitRect","Layout","_targets","createTargets","targets","layoutOptions","processWeakItems","weakItem","makeHeader","processBackwardHeaderRect","rectCopy","weakElement","targetSize","weakSize","headerSize","weakRect","headerFitReact","headerRect","forward","_cache","backward","backwardRect","targetSide","getMarkup","cloneNode","fixNamespaces","markup","decodeHtmlEntities","getSvgMarkup","noop","easingFunctions","easeOutCubic","linear","animationSvgStep","segments","easing","currentParams","curSeg","seg","base","attributeName","currentSettings","attrName","animateStep","_animateStep","_progress","_calcProgress","anim","_easing","_currentParams","delayTick","_startTime","delay","tick","Animation","partitionDuration","AnimationController","_animationCount","_timerId","_animations","disableComplete","_loop","an","animations","activeAnimation","endAnimation","_endAnimation","_endAnimationTimer","addAnimation","_startDelay","animateElement","onEndAnimation","unstoppable","hasUnstoppableInAnimations","sin","cos","PI_DIV_180","SHARPING_CORRECTION","ARC_COORD_PREC","pxAddingExceptions","opacity","orphans","widows","KEY_TEXT","KEY_STROKE","KEY_STROKE_WIDTH","KEY_STROKE_OPACITY","KEY_FONT_SIZE","KEY_FONT_STYLE","KEY_FONT_WEIGHT","KEY_TEXT_DECORATION","KEY_TEXTS_ALIGNMENT","NONE","DEFAULT_FONT_SIZE","ELLIPSIS","objectCreate","F","DEFAULTS","scaleX","getBackup","backupContainer","backupCounter","backupRoot","getBody","restoreRoot","removeChild","getNextDefsSvgId","numDefsSvgElements","isObjectArgument","tagName","createElementNS","getFuncIri","pathModified","href","roundValue","exp","preserveAspectRatioMap","full","lefttop","leftcenter","leftbottom","centertop","centerbottom","righttop","rightcenter","rightbottom","processHatchingAttrs","hatching","_hatching","lockHatching","releaseHatching","normalizeArcParams","innerR","outerR","startAngle","endAngle","isCircle","noArc","angleDiff","buildArcPath","startAngleCos","startAngleSin","endAngleCos","endAngleSin","longFlag","toFixed","buildPathSegments","points","buildLineSegments","buildCurveSegments","buildSegments","buildSimpleLineSegment","buildSimpleCurveSegment","buildSimpleSegment","_points$","k0","combinePathParam","segment","jj","compensateSegments","oldSegments","newSegments","originalNewSegments","oldLength","newLength","makeEqualSegments","makeEqualAreaSegments","makeEqualLineSegments","prepareConstSegment","constSeg","short","long","head","constsSeg1","constsSeg2","shortLength","longLength","baseCss","elemStyles","_styles","fixFuncIri","attribute","removeAttribute","baseAttr","hasTransformations","recalculateDashStyle","sw","_settings","attributes","_addFixIRICallback","_originalSW","_applyTransformation","pathAttr","arcAttr","innerRadius","outerRadius","rectAttr","maxSW","newSW","_originalX","_originalY","_originalWidth","_originalHeight","sharp","textAttr","isResetRequired","wasStroked","alignTextNodes","isStroked","createTextNodes","_hasEllipsis","locateTextNodes","strokeTextNodes","textCss","orderHtmlTree","parentStyle","parentClassName","realStyle","wholeText","isElementNode","fontStyle","fontWeight","textDecoration","childNodes","adjustLineHeights","maxLengthFontSize","inherits","NaN","removeExtraAttrs","findStyleAndClassAttrs","allTagAttrs","p1","p2","p3","parseHTML","parseMultiline","texts","createTspans","createTextNode","restoreText","applyEllipsis","lineParts","hasEllipsis","ellipsis","ellipsisWidth","getBBox","_getElementBBox","prepareLines","_texts","commonLength","endIndex","setNewText","startBox","removeTextSpan","cloneAndRemoveAttrs","detachTitleElements","titleElements","detachAndStoreTitleElements","setMaxSize","textChanged","textIsEmpty","ellipsisMaxWidth","restoreTitleElement","applyOverflowRules","setMaxHeight","_getLineHeight","tspan","rowCount","getIndexForEllipsis","endBox","kk","getSubStringLength","getTextWidth","getSpaceBreakIndex","initialIndices","spaceIndices","indices","spaceIndex","getWordBreakIndex","getEllipsisString","hideOverflowEllipsis","setEllipsis","lastStepBreakIndex","breakIndex","restText","restLines","isFinite","newTextOffset","restString","restTspan","textOverflow","calculateLineHeight","lineHeight","getItemLineHeight","_ref2","commonHeight","prevLine","textValue","_ref3","lineNumber","wordWrapLines","insertString","parsedHtml","encodeHtml","setTextNodeAttribute","maxTextWidth","textWidth","fontSize1","fontSize2","parsedHeight1","parsedHeight2","height1","height2","strokeOpacity","baseAnimate","animationParams","defaults","translateX","rotateX","rotateY","_animation","pathAnimate","endSegments","curSegments","arcAnimate","arcParams","buildLink","after","virtual","SvgElement","removeFuncIriCallback","fixFuncIriCallbacks","_getJQElement","_fixFuncIri","_clearChildrenFuncIri","clearChildren","enableLinks","_links","virtualLink","linkItem","_link","linkAfter","_linkAfter","linkOn","linkOff","unlinkItem","linkAppend","_insert","insertBefore","linkRemove","toBackground","firstChild","toForeground","smartAttr","sharpDirection","tr","transformations","sharpMode","trDirection","strokeOdd","correctionX","correctionY","scaleXDefined","scaleYDefined","animOptions","bBox","transformation","getOffset","stopAnimation","setTitle","titleElem","PathSvgElement","ArcSvgElement","RectSvgElement","TextSvgElement","updateIndexes","Renderer","_createElement","xmlns","cssClass","overflow","_backed","getHatchingHash","_defs","_animationController","setOptions","updateAnimationOptions","unlock","removeByRenderer","stopAllAnimations","svg","getRootOffset","simpleRect","circle","cx","cy","w","preserveAspectRatio","setAttributeNS","linearGradient","stops","_id","stepTo2","stepBy15","patternUnits","_getPointsWithYOffset","clipShape","methodArgs","clipPath","shape","radius","shadowFilter","gaussianBlur","stdDeviation","flood","composite","in2","finalComposite","filterAttrs","offsetAttrs","floodAttrs","brightFilter","slope","componentTransferElement","getGrayScaleFilter","_grayScaleFilter","initHatching","storage","_hatchingStorage","byHash","baseId","refToHash","nextId","storageItem","fire","areCanvasesDifferent","canvas1","canvas2","sizeLessThreshold","canvasCoordsIsEqual","floorCanvasDimensions","log","OPTION_RTL_ENABLED","SIZED_ELEMENT_CLASS","baseOptionMethod","getTrue","getFalse","defaultOnIncidentOccurred","_eventsStrategy","hasEvent","pickPositiveValue","getEmptyComponent","emptyComponentConfig","sizedElement","_getDefaultSize","setStyle","setClass","insertElement","EmptyComponent","originalInherit","config","callForEach","sizeIsValid","baseWidget","onIncidentOccurred","excludeValidators","onDrawn","_useLinks","_changesLocker","_optionChangedLocker","_asyncFirstDrawing","_changes","_suspendChanges","_themeManager","_createThemeManager","_requestChange","_renderElementAttributes","_initRenderer","useLinks","_renderer","_renderVisibilityChange","_attachVisibilityChangeHandlers","_toggleParentsScrollSubscription","_initEventTrigger","_incidentOccurred","_eventTrigger","_layout","_initPlugins","_initCore","_change","_getThemeManagerOptions","_applyingChanges","_applyChanges","_changesApplied","_optionsQueue","_applyQueuedOptions","resolveItemsDeferred","_legend","_notify","_resolveDeferred","_getTemplatesItems","_collectTemplatesFromItems","getTemplatesDef","getTemplatesGroups","_getExtraTemplatesItems","launchRequest","doneRequest","_setGroupsVisibility","_changesApplying","syncRendering","queue","beginUpdate","endUpdate","_resumeChanges","changesOrderLength","_setThemeAndRtl","_setRendererOptions","_setupResizeHandler","_updateSize","_setContentSize","_initDisabledState","rawCanvas","_calculateRawCanvas","_canvas","_rootClassPrefix","_rootClass","_getAnimationOptions","_stopCurrentHandling","_proxiedTargetParentsScrollHandler","_$prevRootParents","_disposed","_removeResizeHandler","_disposeCore","_disposePlugins","_disposeRenderer","defaultCanvas","getSizeOfSide","getter","elementSize","elementHeight","__forceRender","_recreateSizeDependentObjects","_getMinSize","_getAlignmentRect","nextRect","_applySize","isScalar","_getOption","_disposeResizeHandler","_onBeginUpdate","_initialized","_isUpdateAllowed","_getActionForUpdating","partialChanges","getPartialChangeOptionsName","pc","elementAttr","changedOption","fullName","sections","partialChangeOptionsName","_addOptionsNameForPartialUpdate","_checkOptionsForPartialUpdate","optionObject","optionKeys","_getRendererOptions","isReady","_dataIsReady","getClosestNodeWithContext","contextFor","getClosestNodeWithKoCreation","hasFlag","dxKoCreation","getParentContext","applyBindingsToNode","parentContext","cleanNode","KoTemplate","_registerKoTemplate","templateSources","anonymousTemplate","containerContext","dataFor","_prepareDataForContainer","$result","$placeholder","renderTemplate","afterRender","currentCount","lockName","obtain","release","LOCKS_DATA_KEY","CREATED_WITH_KO_DATA_KEY","editorsBindingHandlers","registerComponentKoBinding","componentName","componentClass","isEditor","bindingHandlers","domNode","isBindingPropertyPredicate","optionChangedCallbacks","optionsByReference","knockoutConfig","knockout","isBindingPropertyPredicateName","ctorOptions","_getOptionsByReference","computed","_model$onInitializing","unwrapModel","modelByElement","nestedComponentOptions","_optionChangedCallbacks","integrationOptions","watchMethod","skipCallback","skipImmediate","watcher","utils","createTemplate","optionNameToModelMap","applyModelValueToOption","optionName","locks","optionValue","isWriteableObservable","ignoreDependencies","handleOptionChanged","unwrapModelValue","unwrappedPropertyValue","propertyValue","subclassOf","dxValidator","koBindingEventName","unwrappedValue","eventSource","dxControlsDescendantBindings","dxIcon","iconElement","virtualElements","emptyNode","VALIDATION_STATUS_VALID","VALIDATION_STATUS_PENDING","koDxValidator","validationError","validationErrors","validationStatus","_validationInfo","prop","_applyValidationResult","pendingRules","_updateValidationResult","brokenRules","eventHandler","registerModelForValidation","isObservable","registerValidatorInGroup","unregisterModelForValidation","removeRegisteredValidator","validateGroup","inject","isWrapped","isWritableWrapped","isWritableObservable","wrap","variable","originalKOCleanExternalData","cleanExternalData","patchCleanData","cleanedByJquery","cleanedByKo","restoreOriginCleanData","strategy","isJQuery","jquery","jQuery","cleanKoData","andSelf","originalEmpty","originalRemove","keepData","originalHtml","originalReplaceWith","replaceWith","defaultOptions","TRACKBAR_CLASS","TRACKBAR_CONTAINER_CLASS","TRACKBAR_RANGE_CLASS","TRACKBAR_WRAPPER_CLASS","TrackBar","_renderContainer","_renderRange","_setRangeStyles","_rangeStylesConfig","_$bar","_$range","_currentRatio","_needPreventAnimation","valuemin","valuemax","valuenow","TOOLTIP_CLASS","TOOLTIP_WRAPPER_CLASS","Tooltip","showCloseButton","showTitle","titleTemplate","onTitleRendered","bottomTemplate","propagateOutsideClick","_renderContent","_contentId","$overlayContent","_toggleAriaDescription","showing","SLIDER_TOOLTIP_POSITION_ALIASES","SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET","SLIDER_CLASS","positionProp","$sliderHandle","_props","sliderClass","$slider","defaultPositionConfig","resultPosition","_positionToObject","_positionSide","_getDisplaySide","_renderContentInitialPosition","_fitIntoSlider","collisionSide","oversize","calculate","_$content","_visualPosition","isLeftSide","_updateVisualPositionValue","SLIDER_TOOLTIP_VISIBILITY_CLASS","SliderTooltip","arrowPosition","templatesRenderAsynchronously","_fixWrapperPosition","useResizeObserver","showMode","_attachToMarkup","_toggleShowModeClass","_renderContentText","formattedText","number","isHoverMode","_positionController","_getPositionControllerConfig","detach","SLIDER_HANDLE_CLASS","SliderHandle","_renderTooltip","$sliderTooltip","_sliderTooltip","_this$_sliderTooltip","tooltipOptions","getOptionsFromContainer","_setWidgetOption","_this$_sliderTooltip2","_updateTooltipOptions","updateTooltipPosition","_this$_sliderTooltip3","_this$_sliderTooltip4","SLIDER_WRAPPER_CLASS","SLIDER_HANDLE_SELECTOR","SLIDER_BAR_CLASS","SLIDER_RANGE_CLASS","SLIDER_RANGE_VISIBLE_CLASS","SLIDER_LABEL_CLASS","SLIDER_LABEL_POSITION_CLASS_PREFIX","SLIDER_TOOLTIP_POSITION_CLASS_PREFIX","INVALID_MESSAGE_VISIBLE_CLASS","SLIDER_VALIDATION_NAMESPACE","Slider","isRTL","roundedValue","isLeftDirection","_valueStep","remainder","_getValueExponentLength","_roundToExponentLength","moveHandleRight","moveHandleLeft","leftArrow","_processKeyboardEvent","rightArrow","home","_saveValueChangeEvent","showRange","keyStep","useInkRipple","validationMessageOffset","valueChangeMode","_toggleValidationMessage","_renderSubmitElement","_renderInkRipple","_renderLabels","_renderStartHandler","_renderAriaMinAndMax","_attachFocusEvents","namespace","focusInEvent","focusOutEvent","$focusTarget","_focusTarget","_detachFocusEvents","_repaintHandle","_$submitElement","_inkRipple","waveSizeCoefficient","isCentered","wavesNumber","useHoldAnimation","_renderInkWave","doRender","waveIndex","wave","showWave","hideWave","elastic","immediate","immediateTimeout","_itemWidthFunc","_renderHandle","_renderRangeVisibility","Boolean","_$handle","_renderHandleImpl","$handle","_toggleActiveState","_toggleFocusClass","isFocused","labelFormat","_$minLabel","_$maxLabel","pointerDownEventName","clickEventName","startAction","_createAction","_startHandler","_activeHandle","_getActualValue","_actualValue","_itemWidthRatio","_feedbackDeferred","_startOffset","_swipePixelRatio","_isSingleValuePossible","offsetDirection","_changeValueOnSwipe","_updateHandlePosition","newRatio","fitTooltipPosition","valueExponentLength","newChange","_setValueOnSwipe","stepCount","_this$_actualValue","_callHandlerMethod","_fitTooltip","_refresh","_toggleRTLDirection","_renderDimensions","TAGBOX_TAG_DATA_KEY","TAGBOX_CLASS","TAGBOX_TAG_CONTAINER_CLASS","TAGBOX_TAG_CLASS","TAGBOX_MULTI_TAG_CLASS","TAGBOX_CUSTOM_TAG_CLASS","TAGBOX_TAG_REMOVE_BUTTON_CLASS","TAGBOX_ONLY_SELECT_CLASS","TAGBOX_SINGLE_LINE_CLASS","TAGBOX_POPUP_WRAPPER_CLASS","TAGBOX_TAG_CONTENT_CLASS","TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS","TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER","TagBox","sendToList","_list","_keyboardHandler","backspace","_isCaretAtTheStart","_isTagRemoved","$tagToDelete","_$focusedTag","_tagElements","_moveTagFocus","_preserveFocusedTag","_removeTagElement","upArrow","downArrow","del","enter","isListItemFocused","isCustomItem","_searchValue","_customItemAddedHandler","space","isOpened","isInputActive","_shouldRenderSearchEvent","_isEmpty","_isEditable","_scrollContainer","_getValue","_updateTagsContainer","_$tagsContainer","_allowSelectItemByTab","clearOnBoundary","tagElements","$nextFocusedTag","_replaceFocusedTag","_clearTagFocus","_focusClassTarget","_getLabelContainer","scrollPosition","_getScrollPosition","_getBorderPosition","_getFocusedTagPosition","isScrollLeft","scrollSign","scrollWidth","scrollOffset","_setNextValue","maxFilterQueryLength","tagTemplate","selectAllText","hideSelectedItems","selectAllMode","onSelectAllValueChanged","showMultiTagOnly","useSubmitBehavior","_selectedItems","_initSelectAllValueChangedAction","_initMultiTagPreparingAction","_multiTagPreparingAction","beforeExecute","_multiTagPreparingHandler","selectedCount","getFormatter","_initDynamicTemplates","_data$text","$tagContent","_toggleSubmitElement","$options","useDisplayText","_tagElementsCache","isSingleLineMode","_initTagTemplate","_renderTagRemoveAction","_renderSingleLineScroll","_tagTemplate","_renderField","isDefaultFieldTemplate","tagRemoveAction","_removeTagHandler","mouseWheelEvent","isMultiline","_tagContainerMouseWheelHandler","_renderEvents","keyName","_isControlKey","_popupWrapperClass","_renderInput","_renderPreventBlurOnInputClick","_inputWrapper","_isFocused","_renderInputValueImpl","_renderMultiSelect","_loadInputValue","_clearTextValue","_toggleEmptinessEventHandler","_preventNestedFocusEvent","_restoreInputText","saveEditingValue","_getFirstPopupElement","_selectAllValueChangeAction","_renderList","_setListDataSourceFilter","_popupElementEscHandler","_canListHaveFocus","_listConfig","maxFilterLengthInRequest","onFocusedItemChanged","_$textEditorInputContainer","_renderInputSize","_renderTags","refreshPosition","_listItemClickHandler","_shouldClearFilter","shouldClearFilter","showSelectionControls","isEmptyInput","canTypeText","$calculationElement","includePaddings","insertAfter","_renderInputSubstitution","_updateWidgetHeight","_multiTagRequired","_renderMultiTag","$tag","multiTagElement","_getFilter","creator","dataSourceFilter","_dataController","filterExpr","getCombinedFilter","filterQueryLength","_getFilteredItems","_this$_loadFilteredIt","_this$_list","_loadFilteredItemsPromise","listSelectedItems","isListItemsLoaded","isLoaded","clientFilterFunction","getLocalFilter","filteredItems","selectedItemsAlreadyLoaded","dataController","_isDataSourceChanged","customQueryParams","expand","loadOptions","loadFromStore","extra","mappedItems","applyMapFunction","_createTagsData","isValueExprSpecified","_valueGetterExpr","filteredValues","filteredItem","filteredItemValue","loadItemPromises","_createTagData","_isGroupedData","_getItemsByValues","resultItems","_getItemFromPlain","_getFilteredGroupedItems","_filteredGroupedItemsLoadPromise","_loadTagsData","tagData","filteredItemsPromise","isPlainDataUsed","_shouldGetItemsFromPlain","_valuesToUpdate","_getItemsFromPlain","_renderTagsImpl","_renderTagsCore","_renderEmptyState","_getPlainItems","_getSelectedItemsFromList","needFilterPlainItems","plainItems","_filterSelectedItems","_this$_list2","dataItem","_integrateInput","_isInputReady","tagsContainer","_this$_isInputReady","_cleanTags","_renderTagsElements","$multiTag","_renderTag","_refreshTagElements","$tags","_toggleEmptiness","_applyTagTemplate","_getTag","itemModel","_createTag","tagsLength","_removeTagWithUpdate","_updateField","_removeTag","_lastValue","_selectionChangeHandler","removedItem","addedItem","_addTag","listSelectionChangeEvent","_getSelectionChangeEvent","_saveSelectionChangeEvent","_valueIndex","_completeSelection","_setValue","useButtons","valueIndex","_isSelectedValue","indexByValues","selectedValue","lastValue","_searchHandler","_refreshSelected","_this$_list3","getDataSource","_resetListDataSourceFilter","_userFilter","reload","valueGetterExpr","_dataSourceFilterExpr","_dataSourceFilterFunction","_dataSourceChangedHandler","_applyButtonHandler","_getSortedListValues","_cancelSearchIfNeed","listValues","_getListValues","existedItems","_setListDataSource","_renderOpenedState","_defaultTagTemplate","previousItems","previousItemsValuesMap","_setListOption","_refreshEvents","_selectionChangedAction","_getSelectedItemsDifference","_getActualSearchValue","_popupHidingHandler","_clearFilter","props","mounted","beforeDestroy","$refs","methods","updateToken","Authorization","$store","AccessToken","urlParams","entries","$watch","rep","viewerOptions","CustomizeLocalization","ruDxReporting","CustomizeParameterEditors","showTime","ShowTime","WebDocumentViewer","pObject","_this$$route$query$ob","_this$$route","_this$$route$params$o","_this$$route2","query","objectName","objectId","created","ACE_NAMESPACE","global","requirejs","define","module","deps","payload","modules","payloads","original","trace","_require","parentId","lookup","dep","require","packagedModule","normalizeModule","moduleName","chunks","previous","exports","packaged","req","returnValue","exportAce","ns","ace","defineProp","writable","startsWith","searchString","endsWith","subjectString","TypeError","output","o","thisArg","kValue","findIndex","O","relativeStart","relativeEnd","final","deepCopy","stringReverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","timer","schedule","isPending","delayedCall","defaultTimeout","supportsLookbehind","skipEmptyMatch","supportsUnicodeFlag","codePointAt","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","os","exec","ua","userAgent","appName","isWin","isIE","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isSafari","isEdge","isAIR","isChromeOS","strictCSP","useragent","XHTML_NS","buildDom","txt","els","ch","childIndex","cssText","getDocumentHead","getElementsByTagName","removeChildren","ownerDocument","createFragment","createDocumentFragment","hasCssClass","classes","addCssClass","removeCssClass","toggleCssClass","setCssClass","hasCssString","sheets","removeElementById","cssCache","insertPendingStyles","importCssString","getRootNode","useStrictCSP","importCssStylsheet","rel","scrollbarWidth","outer","noScrollbar","withScrollbar","computedStyle","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","animationName","tx","ty","dom","xhr","responseText","loadScript","isAbort","qualifyURL","superCtor","super_","mixin","implement","EventEmitter","propagationStopped","defaultPrevented","_emit","_dispatchEvent","_eventRegistry","_defaultHandlers","listeners","_signal","once","newCallback","Promise","setDefaultHandler","_disabled_","old","removeDefaultHandler","capturing","removeListener","removeAllListeners","reportError","defaultEnglishMessages","nlsPlaceholders","oop","optionsProvider","optList","setOption","optionNames","getOption","opt","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","setMessages","placeholders","nls","defaultString","$id","translated","dollarMatch","curlyBracketMatch","isDark","lang","net","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","$modes","moduleUrl","sep","re","setModuleUrl","subst","customLoader","loader","cb","setLoader","dynamicModules","$loading","$loaded","loadModule","moduleId","onLoad","loadedModule","moduleType","afterLoad","err","reportErrorIfPathIsNotConfigured","$require","setModuleLoader","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","deHyphenate","m1","toUpperCase","Range","endRow","compareRange","comparePoint","containsRange","intersects","isEnd","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","Keys","MODIFIER_KEYS","16","17","18","224","91","92","93","KEY_MODS","FUNCTION_KEYS","8","9","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","144","145","PRINTABLE_KEYS","59","61","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","codeToKeyCode","Command","Backspace","Return","Pause","Escape","PageUp","PageDown","Delete","ArrowLeft","ArrowUp","ArrowRight","Backquote","BracketLeft","Backslash","BracketRight","Semicolon","Quote","Comma","Period","Slash","NumpadAdd","NumpadDecimal","NumpadSubtract","NumpadDivide","NumpadMultiply","chr","fromCharCode","modifiers","Shift","Control","Alt","Meta","$codeToKeyCode","escape","mods","keyCodeToString","keyString","activeListenerOptions","pressedKeys","ts","detectListenerOptionsSupport","createComment","passive","getListenerOptions","EventListener","destroy","destroyer","$toDestroy","getModifierHash","normalizeCommandKeys","hashId","getModifierState","altGr","timeStamp","dt","resetPressedKeys","stopEvent","getButton","capture","releaseCaptureHandler","onMouseUp","addMouseWheelListener","factor","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","linePixels","DOM_DELTA_PAGE","pagePixels","addMultiMouseDownListener","timeouts","startX","startY","clicks","2","3","4","onMousedown","detail","isNewClick","_clicks","getModifierString","addCommandKeyListener","lastDefaultPrevented","postMessageId","nextTick","win","messageName","$idleBlocked","onIdle","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","$cancelT","lineMode","pasteCancelled","TextInput","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","copied","pasted","inComposition","sendingText","tempStyle","commandMode","ignoreFocusEvents","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","setNumberOfExtraLines","setAriaLabel","ariaLabel","$textInputAriaLabel","setAriaOptions","activeDescendant","inline","setLabel","hasFocus","resetSelection","$focusScroll","enableKeyboardAccessibility","preventScroll","isTransformed","ancestors","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","afterContextMenu","getRange","nextLine","isAllSelected","onSelect","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","extendLeft","extendRight","inserted","restoreStart","restoreEnd","shouldReset","onTextInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","useTextareaForIME","cancelComposition","getSelectionRange","markerRange","msGetInputContext","getInputContext","compositionStartOffset","closeTimeout","syncComposition","onKeyup","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","getElement","setCommandMode","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","borderTopWidth","borderLeftWidth","maxTop","textInput","addIosSelectionHandler","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","commands","findKeyCommand","scroller","$setUserAgentForTests","_isMobile","_isIOS","DRAG_OFFSET","SCROLL_COOLDOWN_T","DefaultHandlers","mouseHandler","$clickSelection","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","extendSelectionBy","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","selectionEmpty","moveToPosition","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","calcDistance","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","ax","ay","bx","by","selectEnd","selectAllEnd","selectByWordsEnd","preventParentScroll","contentOverflows","__extends","extendStatics","setPrototypeOf","__proto__","__","__values","Symbol","CLASSNAME","isOpen","$parentNode","$init","setHtml","setClassName","getHeight","getWidth","PopupManager","popups","addPopup","updatePopups","removePopup","e_1","e_2","visiblepopups","_d","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","popupManager","HoverTooltip","_super","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","pointerEvents","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","startingEvent","MARGIN","$registerCloseEvents","addMarker","textToScreenCoordinates","labelHeight","labelWidth","spaceBelow","isAbove","marker","$markerSession","removeMarker","$removeCloseEvents","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","GutterTooltip","showTooltip","maxRow","getLength","screenRow","$pos","documentToScreenRow","hideTooltip","$tooltipFollowsMouse","moveTooltip","gutterRow","getGutterRow","gutterCell","$lines","gutterElement","gutterRegion","getRegion","selectTo","srcElement","$gutter","visibleTooltipRow","singular","plural","security","annotation","annotationsInRow","$annotations","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationTypeInFold","annotationsInFold","severityRank","annotationType","summaryFoldedAnnotations","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","lineElement","annotationLabels","tooltipElement","annotations","summary","annotationTypes","annotationTypes_1","annotationTypes_1_1","MouseEvent","$inSelection","documentRow","screenTopRow","AUTOSCROLL_DELAY","SCROLL_CURSOR_DELAY","SCROLL_CURSOR_HYSTERESIS","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","prevCursor","vMovement","hMovement","moveCursorToPosition","autoScroll","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","onDragInterval","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","copyAllowed","moveAllowed","copyModifierState","dragWait","getDragDelay","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","clickCount","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","animationSteps","vX","vY","createContextMenu","updateMenu","hasUndo","getUndoManager","replaceChild","canExecuteCommand","cmd","canExecute","handleClick","readText","writeText","ontouchstart","ontouchend","onclick","showContextMenu","pagePos","leftOffset","hideContextMenu","handleLongTap","selectWord","switchToSelectionMode","setRange","oldScrollTop","getScrollTop","textarea","touchObj","cursorPos","getPixelPosition","anchorPos","offsetLeft","weightedDistance","diff1","diff2","DefaultGutterHandler","MouseHandler","$dragDelay","$mouseMoved","windowBlurred","onMouseEvent","scrollBarV","scrollBarH","gutterEl","character","$scrollSpeed","mouseMoveHandler","releaseMouse","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","LTR","RTL","L","R","EN","AN","ON","B","S","AL","WS","CS","ES","ET","NSM","LRE","RLE","LRO","RLO","BN","UnicodeTBL00","UnicodeTBL20","_computeLevels","chars","levels","charTypes","impTab","prevState","newClass","newLevel","newState","cond","condPos","ix","_getCharacterType","_getCharClass","_invertLevel","lev","_array","lo","hi","tmp","wType","nType","cType","rtlCandidate","uc","charCodeAt","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","ret","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","isLastRow","endOfLine","$useWrapMode","splits","$wrapData","indent","isFullWidth","getScreenTabSize","$main","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","lineWidgets","rowsAbove","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","toJSON","rangeCount","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","rules","splitRegex","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","caseInsensitive","unicode","regex","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","digit","removeCapturingGroups","createSplitterRegexp","$setMaxTokenCount","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","getCurrentTokenPosition","getCurrentTokenRange","CstyleBehaviour","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","getWrapBehavioursEnabled","excludeTokens","recordAutoInsert","isSaneInsertion","braces","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","shouldPairQuotes","charBefore","closeDocComment","nextToken","cursorPosInToken","closeDocPos","openDocPos","$matchTokenType","iterator2","bracket","wordChars","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","delegations","_loop_1","scope","functionName","$delegator","this_1","language","transformAction","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","LineWidgets","widgetManager","getRowLength","$getWidgetScreenLength","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","screenRows","_inDocument","removed","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","screenWidth","coverLine","getRowLineCount","lineWidgetWidth","gutterWidth","fullWidth","scrollBar","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","$getTransformedPoint","$insertRight","noClip","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","Document","textOrLines","insertMergedLines","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$keepRedoStack","$maxRev","$fromUndo","$undoDepth","addSession","allowMerge","$lastDelta","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","getRevision","getDeltas","getChangedRanges","getChangedLines","dontSelect","rearrangeUndoStack","$redoStackBaseRev","deltaSet","undoSelectionRange","undoChanges","$syncRev","redo","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","mark","canUndo","canRedo","isAtBookmark","$prettyPrint","stringifyDelta","swapped","swapGroups","hasRedo","isClean","markClean","cloneDelta","stringifyRange","swap","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","rest","moveDeltasByOne","redoStack","xformed","deltaSets","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumeRange","afterStart","firstConsumed","consumedFolds","restoreRange","consumePoint","restorePoint","Folding","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","initState","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","closingBracket","valueLength","getMatchingTags","$findTagName","prevToken","$findClosingTag","$findOpeningTag","found","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","prevOp","$uid","bgTokenizer","onChangeFold","$onSelectionChange","onSelectionChange","setMode","destroyed","$initOperationListeners","$lastSel","$operationResetTimer","commandEvent","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","undoManager","history","editSession","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","getAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","getMode","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","lineWidgetsWidth","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","getWrapIndent","indentation","SPACE","TAB","TAB_SPACE","addSplit","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","foldStartRow","wrapRow","screenRowOffset","getScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","getPrecedingCharacter","$wrap","firstLineNumber","useSoftTabs","foldStyle","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","$supportsUnicodeFlag","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","wordBoundary","firstChar","wordRegExp","needleArray","lastChar","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","$type","multiSelectAction","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","passEvent","cutLine","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedText","insertLine","curLine","newRanges","exitMultiSelectMode","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","cell","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$search","$historyTracker","_$emitInputEvent","setSession","onStartOperation","previousCommand","onEndOperation","scrollSelectionIntoView","animateScrolling","$mergeUndoDeltas","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onStartOperation","$onEndOperation","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","oldEditor","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","prevLineState","currIndent","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","reg","wordPairs","$toggleWordPairs","negate","firstCondition","secondCondition","findLinkAt","columnPosition","previousPosition","wordParts_1","wordParts_1_1","sel","endPoint","moved","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","alignCursor","getCursorPositionScreen","tokenCount","matchType","bracketType","brackets","tagsRanges","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","blurCommand","focusOnEnterKeyup","textInputAriaLabel","enableMobileMenu","$enableMobileMenu","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","displayIndentGuides","highlightIndentGuides","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","lineTop","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","displayAnnoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","borderRightWidth","Marker","setPadding","setMarkers","elt","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","getBorderClass","range1","drawBidiSingleLineMarker","radiusClass","extraLength","tl","br","bl","textTokens","Set","isTextToken","tokenType","$updateEolChar","unixMode","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","getLineHeight","$fontMetrics","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","bracketHighlight","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","activeIndentGuides","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","$isSmoothBlinking","blink","onScreen","cursorLeft","cursorTop","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","skipEvent","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","onScrollInterval","scrollTopFromThumbTop","thumbHeight","viewHeight","slideHeight","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","$recursionLimit","_flush","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","$measureSizes","boldSize","charSizes","allowBoldFonts","$observer","setPolling","disconnect","$getZoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","mul","solve","l1","l2","det","sub","m2","ut","u","Decorator","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","dark","light","$updateDecorators","allLineHeight","ctx","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","hideScrollbars","$gutterWidth","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","_rows","$viewMargin","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","$calcSteps","fromValue","toValue","STEPS","steps","x_min","oldSteps","$timer","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textChunks","$calculateWrappedTextChunks","$ghostText","widgetDiv","lastLineDiv","hiddenTokens","hideTokensAfterPosition","chunkDiv","chunkSpan","wrapped","$ghostTextWidget","pixelPosition","ghostTextHeight","fitsY","textLines","displayTokens","wrapSplits","textSlice","newToken","hasPassedCursor","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","$workerBlob","workerUrl","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","webkitURL","blobURL","WorkerClient","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","$doc","emit","attachToDocument","q","UIWorkerClient","main","emitSync","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undoStackDepth","setup","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","ctrl","accel","isMultiSelect","mouseX","mouseY","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","additive","screenLead","toRemove","tmp_1","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","alignRight","unAlign","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","binarySearch","comparator","findAnnotations","matched","oldWidget","gutterAnno","arrow","annoTextLine","onmousedown","edit","env","oldNode","createEditSession","GroupOperator","isGroup","incorrectSpecificsForAggregate","combinedOperands","visitGroupOperator","UnaryOperatorType","A","eval","H","T","K","W","X","Y","Z","gb","qc","aa","ba","qd","ra","Qb","mb","I","J","da","$c","Ja","gd","deferUpdates","useOnlyNativeEvents","foreachHidesDestroyed","D","Na","MouseEvents","propertychange","Jc","Lb","Pa","wc","Mb","jb","Nb","bc","Ba","Ab","P","Ga","Tb","Yb","la","oa","Ca","va","Xc","Ua","nextSibling","Zc","Db","Ud","vd","compareDocumentPosition","Sb","kd","Ac","onError","Gc","attachEvent","za","detachEvent","Fb","dispatchEvent","initEvent","Eb","baseVal","Bb","Ad","Yc","mergeAttributes","wd","Pd","Da","Zd","$d","Lc","Nd","Function","hc","Od","includeFields","submitter","Ub","1","yb","G","cleanData","thead","tbody","tfoot","td","th","optgroup","parentWindow","innerShiv","Md","fc","Uc","nodeValue","ud","Kd","Xb","bd","cd","na","MutationObserver","toggle","scheduler","zb","resetForTesting","Sd","Ta","throttleEvaluation","Hb","ub","equalityComparer","ic","lc","mc","Ib","fb","Jb","qb","U","hb","Qa","Gb","Wa","ed","xc","ob","Dd","nc","sb","rc","Bd","Qc","cc","od","pd","qa","Va","Ya","Yd","ta","ya","xa","Ma","Za","Nc","Ha","trackArrayChanges","_destroy","destroyAll","sorted","reversed","zc","Pc","Pb","Ob","sparse","Kc","nb","ka","Xa","ha","sa","rb","jc","wb","Wc","Sa","disposeWhen","Rb","V","Ic","C","pure","ea","ja","Ka","Vb","La","Ia","Jd","Rd","Hc","zd","yd","N","Oc","Fd","xb","ad","Wd","ma","M","__ko__hasDomDataOptionValue__","$b","getAttributeNode","specified","unknown","Ra","wa","ac","vb","getBindingHandler","preprocess","valueAccessors","bindingParams","Id","eb","ul","ol","Ea","Vc","Wb","Cd","Vd","Sc","ga","nd","nodeHasBindings","getComponentNameForNode","getBindings","getBindingsString","tc","getBindingAccessors","z","Tc","yc","Kb","preprocessNode","bindingContextForDescendants","ca","Mc","hd","Zb","Ec","pa","Cb","shouldBindDescendants","fa","$rawData","dataDependency","exportDependencies","as","noChildContext","$parentContext","sd","Cc","Fa","notifyImmediately","Td","ib","ld","Oa","vc","Dc","synchronous","definition","Gd","loaders","suppressLoaderExceptions","Bc","oc","DocumentFragment","Xd","tb","unregister","Fc","getConfig","loadComponent","loadTemplate","loadViewModel","dd","$raw","templateNodes","$component","$componentTemplateNodes","koDescendantsComplete","lookupNamespaceURI","removeAttributeNS","uniqueName","checkedValue","__ko__cssValue","disable","cancelBubble","foreach","Rc","includeDestroyed","afterAdd","beforeRemove","beforeMove","afterMove","templateEngine","hasfocus","__ko_hasfocusUpdating","__ko_hasfocusLastValue","let","Q","multiple","selectedOptions","setProperty","textinput","rd","using","form","renderTemplateSource","createJavaScriptEvaluatorBlock","ia","isTemplateRewritten","allowTemplateRewriting","rewriteTemplate","kc","xd","Ld","md","ab","lb","jd","bb","previousSibling","gc","dc","Qd","ifnot","dontLimitMoves","Aa","pb","_countWaitingForRemove","E","Ed","$a","Hd","tmpl","koBindingContext","fragments","addTemplate","ko_code","ko_with","BinaryOperatorType","GroupOperatorType","noGlobal","getProto","flat","fnToString","ObjectFunctionString","support","preservedScriptAttributes","nonce","noModule","DOMEval","toType","rhtmlSuffix","isArrayLike","toArray","pushStack","elems","prevObject","even","grep","_elem","odd","expando","Ctor","globalEval","makeArray","inArray","isXMLDoc","namespaceURI","invert","callbackInverse","callbackExpect","_i","whitespace","rtrimCSS","bup","rcssescape","fcssescape","asCodePoint","escapeSelector","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","booleans","identifier","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","nonHex","high","unloadHandler","inDisabledFieldset","addCombinator","safeActiveElement","seed","nid","newSelector","newContext","testContext","tokenize","toSelector","qsaError","cacheLength","markFunction","assert","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","getById","getElementsByName","disconnectedMatch","cssHas","attrId","sortDetached","expr","matchesSelector","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","check","what","_argument","simple","ofType","xml","outerCache","nodeIndex","useCache","pseudo","setFilters","not","matcher","compile","unmatched","elemLang","_matchIndexes","lt","gt","nth","radio","checkbox","parseOnly","soFar","preFilters","cached","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","compiled","filters","unique","isXML","selectors","until","truncate","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","rparentsprev","guaranteedUnique","contents","sibling","cur","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","createOptions","Identity","Thrower","adoptValue","noValue","Callbacks","firing","memory","fired","firingIndex","stopOnFalse","fireWith","Deferred","tuples","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","maxDepth","special","mightThrow","notifyWith","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","readyException","readyList","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","maxIterations","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","wrapMap","_default","getAll","setGlobalEval","refElements","colgroup","rhtml","buildFragment","ignored","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","one","origFn","leverageNative","isSetup","saved","isTrigger","delegateType","stopImmediatePropagation","isImmediatePropagationStopped","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","triggered","dispatch","bindType","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","noBubble","beforeunload","isDefaultPrevented","isSimulated","bubbles","cancelable","changedTouches","eventPhase","view","charCode","buttons","pointerId","screenX","screenY","targetTouches","toElement","focusMappedHandler","documentMode","simulate","attaches","dataHolder","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","rnumnonpx","rcustomProp","getStyles","rboxStyle","curCSS","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","cssProps","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","computedVal","marginDelta","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","origName","scrollboxSizeBuggy","propHooks","run","percent","eased","swing","fxNow","rfxtypes","rrun","createFxNow","genFx","includeWidth","createTween","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","propFilter","specialEasing","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","tweener","prefilter","speeds","fadeTo","optall","doAnimation","finish","stopQueue","cssFn","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classNames","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","conv","responseFields","dataFilter","throws","lastModified","etag","isLocal","protocol","processData","async","accepts","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","ifModified","beforeSend","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","offsetParent","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","CriteriaOperatorPreprocessor","_func","_changeTypeFactory","changeType","changeOperator","criteriaCreator","JoinOperand","joinTypeName","aggregated","collectionProperty","visitJoinOperand","FunctionOperatorType","criteriaparser","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","parser","yy","symbols_","terminals_","5","10","11","12","14","15","20","21","22","23","24","25","26","28","29","30","31","41","42","48","49","50","51","52","53","54","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","$0","Multiply","Divide","Plus","Modulo","BitwiseOr","BitwiseAnd","BitwiseXor","BitwiseNot","combine","joinOrAggregate","last_column","first_column","first_line","6","7","43","55","47","defaultActions","parseError","recoverable","vstack","lstack","recovering","TERROR","lexer","sharedState","setInput","yylloc","yyloc","symbol","preErrorSymbol","expected","lex","yyval","errStr","showPosition","loc","last_line","_more","_backtrack","conditionStack","unput","oldLines","more","backtrack_lexer","less","pastInput","past","upcomingInput","pre","test_match","indexed_rule","backup","tempMatch","_currentRules","flex","conditions","topState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","CriteriaOperator","needAssignRightPart"],"mappings":"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,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,GAAI,EAAG,GAAI,KAAM,IAAK,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG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,CAAC,EAAE,GAAGC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,GAAGC,EAAI,CAAC,EAAE,GAAGC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI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","file":"js/chunk-6861db04.d909ad51.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WebDocumentViewer',{attrs:{\"report\":_vm.$route.params.report,\"params\":_vm.params}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"ml-1\",staticStyle:{\"position\":\"relative\"},attrs:{\"height\":\"calc(100vh - 110px)\"}},[_c('div',{ref:\"viewer\",staticStyle:{\"position\":\"absolute\",\"left\":\"0\",\"right\":\"0\",\"top\":\"0\",\"bottom\":\"0\"},attrs:{\"data-bind\":\"dxReportViewer: $data\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n* DevExpress Analytics (serializer\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport function knockoutArrayWrapper(items, ...onChange) {\n var array = ko.observableArray(items);\n var notifySubscribers = array.notifySubscribers;\n array.notifySubscribers = (valueToNotify, event) => {\n if (onChange) {\n for (var i = 0, len = onChange.length; i < len; i++) {\n onChange[i](valueToNotify, event);\n }\n }\n return notifySubscribers.call(array, valueToNotify, event);\n };\n return array;\n}\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nvar class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\n['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Object', 'Error'].forEach(name => class2type['[object ' + name + ']'] = name.toLowerCase());\nfunction type(obj) {\n if (obj == null) {\n return obj + '';\n }\n return typeof obj === 'object' || typeof obj === 'function' ?\n class2type[class2type.toString.call(obj)] || 'object' :\n typeof obj;\n}\nfunction isNumeric(obj) {\n return !Array.isArray(obj) && (obj - parseFloat(obj) + 1) >= 0;\n}\nexport function isPlainObject(obj) {\n if (type(obj) !== 'object' || obj.nodeType || isWindow(obj)) {\n return false;\n }\n return !(obj.constructor && !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'));\n}\nexport function isEmptyObject(obj) {\n if ((typeof obj) === 'string') {\n return false;\n }\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\nexport function isFunction(obj) {\n return type(obj) === 'function';\n}\nexport function extend(target, object1, ...objectN) {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n if (typeof target !== 'object' && !isFunction(target)) {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n }\n else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = extend(deep, clone, copy);\n }\n else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}\nexport function assignObj(obj, objectProps) {\n return Object.assign(Object.create(Object.getPrototypeOf(obj)), objectProps || obj);\n}\n","/**\n* DevExpress Analytics (core\\internal\\_ajaxSetup.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { extend } from '../../serializer/_utils';\nexport class AjaxSetup {\n constructor() {\n this.ajaxSettings = {};\n }\n sendRequest(settings) {\n return $.ajax(extend({}, this.ajaxSettings, settings));\n }\n}\n","/**\n* DevExpress Analytics (core\\internal\\ajaxSetup.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AjaxSetup } from './_ajaxSetup';\nexport var ajaxSetup = new AjaxSetup();\n","/**\n* DevExpress Analytics (serializer\\utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class Disposable {\n constructor() {\n this._disposables = [];\n this.isDisposing = false;\n }\n disposeObservableArray(array) {\n if (array) {\n array().forEach((item) => { item.dispose && item.dispose(); });\n }\n }\n resetObservableArray(array) {\n if (array)\n array([]);\n }\n disposeArray(array) {\n if (array) {\n array.forEach((item) => { item.dispose && item.dispose(); });\n array.splice(0, array.length);\n }\n }\n addDisposable(...disposables) {\n this._disposables.push(...disposables.map(x => {\n if (!x)\n return x;\n if ('dispose' in x)\n return x;\n else {\n return { dispose: x };\n }\n }));\n }\n dispose() {\n if (!this.isDisposing) {\n this.isDisposing = true;\n (this._disposables || []).reverse().forEach(x => x && x.dispose && x.dispose());\n this._disposables = [];\n }\n }\n removeProperties() {\n Object.keys(this).forEach((propertyName) => {\n delete this[propertyName];\n });\n }\n}\nexport function deserializeArray(model, creator) {\n var result = Object.keys(model || {}).map(propertyName => creator(model[propertyName]));\n return ko.observableArray(result);\n}\nfunction toStringWithDelimiter(values, delimiter) {\n return (values || []).map(value => {\n var str = value !== undefined && value !== null ? value.toString() : '00';\n if (str.length === 1) {\n str = '0' + str;\n }\n return str;\n }).join(delimiter);\n}\nexport function serializeDate(date, dateDelimiter) {\n var datePart = [date.getMonth() + 1, date.getDate(), date.getFullYear()];\n var timePart = toStringWithDelimiter([date.getHours(), date.getMinutes(), date.getSeconds()], ':');\n if (dateDelimiter === '-' || timePart === '00:00:00') {\n var datePartString = toStringWithDelimiter([datePart[2], datePart[0], datePart[1]], '-');\n return timePart === '00:00:00' ? datePartString : datePartString + ' ' + timePart;\n }\n return timePart === '00:00:00' ? toStringWithDelimiter([datePart[2], datePart[0], datePart[1]], '-')\n : toStringWithDelimiter(datePart, '/') + ' ' + timePart;\n}\nexport function deserializeDate(dateTime) {\n var dateTimeParts = dateTime.split(' ');\n var dateArgs = dateTimeParts[0].split('-');\n var timeArgs = [0, 0, 0];\n if (dateTimeParts.length > 1) {\n if (dateArgs.length !== 3) {\n dateArgs = dateTimeParts[0].split('/');\n dateArgs.splice(0, 0, dateArgs.splice(2, 1)[0]);\n }\n timeArgs = dateTimeParts[1].split(':').map(x => parseInt(x));\n if (timeArgs.length !== 3)\n return null;\n }\n if (dateArgs.length !== 3)\n return null;\n dateArgs = dateArgs.map(x => parseInt(x));\n return new Date(dateArgs[0], dateArgs[1] - 1, dateArgs[2], timeArgs[0], timeArgs[1], timeArgs[2]);\n}\n","/**\n* DevExpress Analytics (serializer\\_internal.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport function _defineProperty(legacyObject, realObject, propertyName, newPropertyName) {\n delete legacyObject[propertyName];\n newPropertyName = newPropertyName || propertyName;\n Object.defineProperty(legacyObject, propertyName, {\n get: () => { return realObject[newPropertyName]; },\n set: (newVal) => { realObject[newPropertyName] = newVal; },\n configurable: true\n });\n}\nexport function _definePropertyByString(rootObject, ...objectPathes) {\n var getAndCreateObject = (path, createNew = true) => {\n var pathParts = path.split('.');\n var foundedObject = rootObject;\n for (var i = 0; i < pathParts.length - 1; i++) {\n if (!foundedObject[pathParts[i]] && createNew) {\n foundedObject[pathParts[i]] = {};\n }\n foundedObject = foundedObject[pathParts[i]];\n }\n return {\n object: foundedObject,\n propertyName: pathParts[pathParts.length - 1]\n };\n };\n var realObjectPath = objectPathes[objectPathes.length - 1];\n var realObject = getAndCreateObject(objectPathes[objectPathes.length - 1]);\n for (var i = 0; i < objectPathes.length - 1; i++) {\n ((legacyObjectPath, legacyObject) => {\n Object.defineProperty(legacyObject.object, legacyObject.propertyName, {\n get: () => {\n console.warn('DevExpress.' + legacyObjectPath + ' is now deprecated and will be removed in future versions. Use DevExpress.' + realObjectPath + ' instead.');\n return realObject.object[realObject.propertyName];\n },\n set: (newVal) => {\n console.warn('DevExpress.' + legacyObjectPath + ' is now deprecated and will be removed in future versions. Use DevExpress.' + realObjectPath + ' instead.');\n realObject.object[realObject.propertyName] = newVal;\n },\n configurable: true\n });\n })(objectPathes[i], getAndCreateObject(objectPathes[i]));\n }\n}\nexport function addDisposeCallback(element, callback) {\n var disposeCallback = () => {\n ko.utils.domNodeDisposal.removeDisposeCallback(element, disposeCallback);\n callback && callback();\n disposeCallback = null;\n callback = null;\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, disposeCallback);\n}\nexport function createGlobalModuleVariableFunc(defaultVal) {\n var currentValue = defaultVal;\n return (newVal) => {\n if (newVal !== undefined)\n currentValue = newVal;\n return currentValue;\n };\n}\n","/**\n* DevExpress Analytics (accessibility\\_internal.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createGlobalModuleVariableFunc } from '../serializer/_internal';\nexport var accessibilityFontSizeZoomFactor = createGlobalModuleVariableFunc(1);\nexport var calculateWithZoomFactor = function (value) {\n return value * accessibilityFontSizeZoomFactor();\n};\n","/**\n* DevExpress Analytics (property-grid\\localization\\_localization.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as localization from 'devextreme/localization';\nimport * as $ from 'jquery';\nimport { deserializeDate } from '../../serializer/utils';\nimport { extend } from '../../serializer/_utils';\nexport function loadMessages(_messages) {\n extend(messages, _messages);\n}\nfunction _processLocalization(id, _removeWinSymbols = removeWinSymbols) {\n var text = localize(id);\n if (text && _removeWinSymbols) {\n if (text.indexOf('&') !== -1 ||\n text.indexOf('') !== -1 ||\n text.indexOf('') !== -1) {\n var obj = {};\n obj[id] = text.replace('&', '').replace('', '').replace('', '');\n loadMessages(obj);\n return obj[id];\n }\n }\n}\nfunction _getLocalization(text) {\n return localize(text) || text;\n}\nexport function getLocalization(text, id = null, _removeWinSymbols = removeWinSymbols) {\n var _localizedText = id && localize(id) || _getLocalization(text);\n _localizedText = id && _processLocalization(id, _removeWinSymbols) || _localizedText;\n if (isCustomizedWithUpdateLocalizationMethod(_localizedText)) {\n text = _localizedText;\n }\n if (!isCustomizedWithUpdateLocalizationMethod(text)) {\n return _localizedText;\n }\n return _getLocalization(text);\n}\nexport var removeWinSymbols = true;\nexport var Globalize = Globalize || window['Globalize'];\nexport var messages = {};\nexport var custom_localization_values = {};\nexport function selectPlaceholder() {\n return getLocalization('Select...', 'AnalyticsCoreStringId.PropertyGrid_Editor_EmptyText');\n}\nexport function noDataText() {\n return getLocalization('No data to display', 'AnalyticsCoreStringId.DataPreview_Empty');\n}\nexport function searchPlaceholder() {\n return getLocalization('Enter text to search...', 'AnalyticsCoreStringId.QueryBuilder_SearchBox_EmptyText');\n}\nexport function resolveFromPromises(promises, createModel) {\n var deferred = $.Deferred();\n if (promises.length > 0) {\n $.when(...promises).done((...messages) => {\n messages.forEach(x => loadMessages(x[0]));\n }).always(() => deferred.resolve(createModel()));\n }\n else {\n deferred.resolve(createModel());\n }\n return deferred;\n}\nexport function isCustomizedWithUpdateLocalizationMethod(text) {\n return !!custom_localization_values[text];\n}\nexport function localizeWithUpdateLocalizationMethod(oldText) {\n return isCustomizedWithUpdateLocalizationMethod(oldText) ? getLocalization(oldText) : false;\n}\nexport function localize(val) {\n return messages[val];\n}\nexport function formatDate(val) {\n return localization.formatDate(val, 'shortDate');\n}\nexport function parseDate(val, useDefault = true, format) {\n if (!useDefault)\n return format ? localization.parseDate(val, format) : localization.parseDate(val, undefined);\n if (val) {\n if (val instanceof Date)\n return val;\n return deserializeDate(val);\n }\n return null;\n}\n","/**\n* DevExpress Analytics (property-grid\\localization\\localization_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend } from '../../serializer/_utils';\nimport { custom_localization_values, getLocalization as _getLocalization, messages, removeWinSymbols } from './_localization';\nexport function addCultureInfo(json) {\n extend(messages, json.messages);\n}\nexport function getLocalization(text, id, _removeWinSymblols) {\n return _getLocalization(text, id, removeWinSymbols);\n}\nexport function _stringEndsWith(value, searchString) {\n return value.indexOf(searchString, value.length - searchString.length) !== -1;\n}\nexport function updateLocalization(object) {\n extend(custom_localization_values, object);\n var messages = {};\n Object.keys(object).forEach(name => {\n messages[name] = object[name];\n });\n addCultureInfo({\n messages: messages\n });\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\editorsInfo.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend } from '../../serializer/_utils';\nexport class EditorTemplates {\n constructor(_useDeferredRegistration = true) {\n this._useDeferredRegistration = _useDeferredRegistration;\n this._editorTemplates = {};\n }\n register(name, editorInfo) {\n if (!!this._editorTemplates[name] && !this._editorTemplates[name]._deferred) {\n throw Error(`Editor with name ${name} is already exists`);\n }\n else if (!this._editorTemplates[name]) {\n this._editorTemplates[name] = editorInfo;\n }\n else {\n delete this._editorTemplates[name]._deferred;\n extend(this._editorTemplates[name], editorInfo);\n }\n }\n unregister(name) {\n delete this._editorTemplates[name];\n }\n registerEditors(editors) {\n for (var name in editors)\n this.register(name, editors[name]);\n }\n getEditor(name) {\n if (!this._editorTemplates[name] && this._useDeferredRegistration) {\n this._editorTemplates[name] = { _deferred: true };\n }\n return this._editorTemplates[name];\n }\n}\nexport var editorTemplates = new EditorTemplates();\n","/**\n* DevExpress Analytics (property-grid\\widgets\\internal\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nexport var SearchMode;\n(function (SearchMode) {\n SearchMode[SearchMode[\"contains\"] = 0] = \"contains\";\n SearchMode[SearchMode[\"startWith\"] = 1] = \"startWith\";\n})(SearchMode || (SearchMode = {}));\nexport function _getFileContent(content, readMode) {\n return readMode !== 'text' ? (content).replace(/(^data:[^,]+,)|(^data:)/, '') : content;\n}\nfunction _uploadFile(filesHolder, deferred, options) {\n try {\n var files = filesHolder.files;\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n if (options.type === 'img') {\n var imageType = /image.*/;\n if (!file.type.match(imageType)) {\n continue;\n }\n }\n var fr = new FileReader();\n var format = file.name.split('.').pop();\n fr.onload = () => {\n try {\n deferred.resolve({\n format: format,\n content: _getFileContent(fr.result, options.readMode)\n });\n }\n catch (e) {\n deferred.reject();\n }\n };\n options.readMode === 'text' || format === 'html' || format === 'htm' ? fr.readAsText(file) : fr.readAsDataURL(file);\n }\n }\n catch (e) {\n deferred.reject();\n }\n}\nvar fileUploaderId = 'dxd-fileuploader-input';\nfunction createFileUploaderElement() {\n var input = document.createElement('input');\n input.type = 'file';\n input.id = fileUploaderId;\n input.style.width = '0px';\n input.style.height = '0px';\n input.style.display = 'none';\n document.body.appendChild(input);\n return input;\n}\nexport var uploadFile = (options) => {\n var deferred = $.Deferred();\n var element = document.getElementById(fileUploaderId);\n if (!element) {\n element = createFileUploaderElement();\n }\n element.accept = options.accept;\n element.onchange = () => {\n _uploadFile(element, deferred, options);\n element.value = '';\n };\n element.click();\n return deferred.promise();\n};\nexport var _replaceUploadFile = (newFunc) => uploadFile = newFunc;\nexport function setUploadFile(newFunc) {\n uploadFile = newFunc;\n}\nexport function compareEditorInfo(editor1, editor2) {\n return !!editor1 && !!editor2 &&\n editor1.header === editor2.header\n && editor1.content === editor2.content\n && editor1.editorType === editor2.editorType;\n}\nexport function findMatchesInString(stringWhereSearch, searchPattern, options) {\n if (!options) {\n var searchExpr = escapeToRegExp(searchPattern);\n return !!stringWhereSearch && stringWhereSearch.match(new RegExp(searchExpr, 'gi'));\n }\n var searchExpr = !options.canUseRegex ? escapeToRegExp(searchPattern) : searchPattern;\n if (options.searchMode == SearchMode.startWith && !options.canUseRegex)\n searchExpr = '^' + searchExpr;\n var exprRule = '';\n if (!options.caseSensitive)\n exprRule = exprRule + 'i';\n if (options.globalMatch)\n exprRule = exprRule + 'g';\n return !!stringWhereSearch && stringWhereSearch.match(new RegExp(searchExpr, exprRule));\n}\nexport function escapeToRegExp(value) {\n return value.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\nexport function stringRemove(value, start, count) {\n count = count ? count : value.length - start;\n return value.slice(0, start) + value.slice(start + count, value.length);\n}\nexport function stringReplace(value, start, count, newChar = '') {\n var temp = value;\n temp = stringRemove(temp, start, count);\n temp = stringInsert(temp, start, Array(count + 1).join(newChar));\n return temp;\n}\nexport function stringInsert(value, pos, subStr) {\n return value.substring(0, pos) + subStr + value.substring(pos);\n}\nexport function formatUnicorn(text, ...args) {\n var str = text.toString();\n if (args.length) {\n var t = typeof args[0];\n var key;\n var argsFinal = ('string' === t || 'number' === t) ?\n Array.prototype.slice.call(args)\n : args[0];\n for (key in argsFinal) {\n str = str.replace(new RegExp('\\\\{' + key + '\\\\}', 'gi'), argsFinal[key]);\n }\n }\n return str;\n}\nexport var KeyboardEnum;\n(function (KeyboardEnum) {\n KeyboardEnum[\"Plus\"] = \"+\";\n KeyboardEnum[\"Minus\"] = \"-\";\n KeyboardEnum[\"Equal\"] = \"=\";\n KeyboardEnum[\"Tab\"] = \"Tab\";\n KeyboardEnum[\"Delete\"] = \"Delete\";\n KeyboardEnum[\"Enter\"] = \"Enter\";\n KeyboardEnum[\"Esc\"] = \"Escape\";\n KeyboardEnum[\"Space\"] = \" \";\n KeyboardEnum[\"End\"] = \"End\";\n KeyboardEnum[\"Home\"] = \"Home\";\n KeyboardEnum[\"PageUp\"] = \"PageUp\";\n KeyboardEnum[\"PageDown\"] = \"PageDown\";\n KeyboardEnum[\"ArrowLeft\"] = \"ArrowLeft\";\n KeyboardEnum[\"ArrowUp\"] = \"ArrowUp\";\n KeyboardEnum[\"ArrowRight\"] = \"ArrowRight\";\n KeyboardEnum[\"ArrowDown\"] = \"ArrowDown\";\n})(KeyboardEnum || (KeyboardEnum = {}));\nexport var KeyboardCodesEnum;\n(function (KeyboardCodesEnum) {\n KeyboardCodesEnum[KeyboardCodesEnum[\"Tab\"] = 9] = \"Tab\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Enter\"] = 13] = \"Enter\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Esc\"] = 27] = \"Esc\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Space\"] = 32] = \"Space\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"End\"] = 35] = \"End\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Home\"] = 36] = \"Home\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Left\"] = 37] = \"Left\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Up\"] = 38] = \"Up\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Right\"] = 39] = \"Right\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Down\"] = 40] = \"Down\";\n})(KeyboardCodesEnum || (KeyboardCodesEnum = {}));\n","/**\n* DevExpress Analytics (widgets\\common\\pathRequest.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport class PathRequest {\n constructor(fullPath, pathParts = []) {\n this.pathParts = pathParts;\n this.path = '';\n this.fullPath = fullPath;\n if (fullPath) {\n if (fullPath.indexOf('.') !== -1) {\n var pathComponents = fullPath.split('.');\n this.id = this.ref = pathComponents[0];\n pathComponents.splice(0, 1);\n this.path = pathComponents.join('.');\n }\n else {\n this.id = this.ref = fullPath;\n }\n }\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\internal\\_internal.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nimport { getLocalization } from '../../localization/localization_utils';\nexport var propertiesGridEditorsPaddingLeft = createGlobalModuleVariableFunc(19);\nexport var defaultFontSerialization = createGlobalModuleVariableFunc('Times New Roman, 9.75pt');\nfunction RegexGuid(guid) {\n return (/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(guid)\n || /^\\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\}$/.test(guid)\n || /^\\([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\)$/.test(guid)\n || /^[0-9a-fA-F]{32}$/.test(guid));\n}\nexport function validateGuid(guid) {\n return guid && RegexGuid(guid);\n}\nexport function validateNullableGuid(guid) {\n return !guid || RegexGuid(guid);\n}\nvar guidValidationMessage = () => getLocalization('Guid is required and should have a valid format.', 'AnalyticsCoreStringId.GuidIsRequired_Error');\nexport var guidValidationRules = [{\n type: 'custom',\n validationCallback: (options) => { return validateNullableGuid(options.value); },\n get message() {\n return guidValidationMessage();\n }\n }];\nexport var guidRequiredValidationRules = [{\n type: 'required',\n get message() {\n return guidValidationMessage();\n }\n }];\nvar requiredValidationRule = {\n type: 'required',\n get message() {\n return getLocalization('The value cannot be empty', 'AnalyticsCoreStringId.ParametersPanel_DateTimeValueValidationError');\n }\n};\nexport var requiredValidationRules = [requiredValidationRule];\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\value.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { validateGuid } from '../../../property-grid/widgets/internal/_internal';\nimport { parseDate } from '../../../property-grid/localization/_localization';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandValue extends CriteriaOperator {\n constructor(value) {\n super();\n this.type = 'value';\n var result = value !== null && value !== undefined ? value : '';\n var isGuid = validateGuid(value);\n if (value && value['length'] && ((value[0] === \"'\" && value[value.length - 1] === \"'\") || isGuid)) {\n this.specifics = 'string';\n if (isGuid && value[0] === '{' && value[value.length - 1] === '}')\n this.specifics = 'guid';\n result = this._processStringValue(value);\n }\n else if (value && value['length'] && value[0] === '#' && value[value.length - 1] === '#') {\n result = value.slice(1, value.length - 1);\n result = parseDate(result);\n if (!result) {\n result = parseDate(value.slice(1, value.length - 1));\n }\n }\n else if (String(value).toLowerCase() === 'true' || String(value).toLowerCase() === 'false') {\n result = String(value).toLowerCase() === 'true' ? 'True' : 'False';\n }\n this.value = result;\n }\n _processStringValue(value) {\n var result = value.slice(1, value.length - 1);\n result = result.replace(/''/g, \"'\");\n return result;\n }\n get displayType() {\n return this.value || '?';\n }\n accept(visitor) {\n return visitor.visitOperandValue ? visitor.visitOperandValue(this) : this;\n }\n}\ncriteriaCreator.register('value', (options) => {\n return new OperandValue(options.value);\n});\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\parameter.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { OperandValue } from './value';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandParameter extends OperandValue {\n constructor(parameterName, value) {\n super(value);\n this.type = 'parameter';\n this.parameterName = parameterName || '';\n }\n get displayType() {\n return '?' + this.parameterName;\n }\n accept(visitor) {\n return visitor.visitOperandParameter\n ? visitor.visitOperandParameter(this)\n : new OperandParameter(this.parameterName, this.value);\n }\n}\ncriteriaCreator.register('parameter', (options) => {\n return new OperandParameter(options.parameterName, options.value);\n});\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\property.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandProperty extends CriteriaOperator {\n constructor(propertyName = '', startColumn = -1, startLine = -1, originalPropertyLength = 0, circumflex = false) {\n super();\n this.type = 'property';\n this.propertyName = propertyName;\n this.originalPropertyLength = originalPropertyLength;\n this.startPosition = { column: startColumn, line: startLine };\n this.circumflex = circumflex;\n }\n get displayType() {\n return '[' + this.propertyName + ']';\n }\n accept(visitor) {\n return visitor.visitOperandProperty\n ? visitor.visitOperandProperty(this)\n : criteriaCreator.process('property', { propertyName: this.propertyName });\n }\n}\ncriteriaCreator.register('property', (options) => {\n return new OperandProperty(options.propertyName, options.startColumn, options.startLine, options.originalPropertyLength, options.circumflex);\n});\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\unary.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { UnaryOperatorType } from './options/unary';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class UnaryOperator extends CriteriaOperator {\n constructor(operatorType, operand) {\n super();\n this.type = 'unary';\n this.operand = operand || criteriaCreator.process('default');\n this.operatorType = operatorType;\n }\n get leftPart() {\n return this.operand;\n }\n assignFrom(criteriaOperator) {\n if (this.operatorType === UnaryOperatorType.Not) {\n if (criteriaOperator instanceof UnaryOperator) {\n this.operand.assignFrom(criteriaOperator.operand);\n }\n else {\n this.operand.assignFrom(criteriaOperator);\n }\n }\n else {\n if (criteriaOperator instanceof UnaryOperator) {\n this.operand = criteriaOperator.operand.leftPart;\n }\n else {\n this.operand = (criteriaOperator.leftPart || criteriaOperator);\n }\n }\n }\n get displayType() {\n return UnaryOperatorType[this.operatorType];\n }\n get enumType() {\n return UnaryOperatorType;\n }\n accept(visitor) {\n return visitor.visitUnaryOperator\n ? visitor.visitUnaryOperator(this)\n : new UnaryOperator(this.operatorType, this.operand && this.operand.accept(visitor));\n }\n}\ncriteriaCreator.register('unary', (options) => {\n return new UnaryOperator(options.operatorType, options.operator);\n}, (operatorType) => criteriaCreator.process('unary', {\n operatorType: operatorType.value,\n operator: criteriaCreator.process('property')\n}));\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\aggregate.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { UnaryOperator } from './unary';\nimport { BinaryOperatorType } from './options/binary';\nimport { UnaryOperatorType } from './options/unary';\nimport { GroupOperatorType } from './options/group';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class AggregateOperand extends CriteriaOperator {\n constructor(property, aggregatedExpression, aggregateType, condition) {\n super();\n this.change = (operationType, item) => {\n var operator = null;\n if (operationType.type === GroupOperatorType) {\n operator = criteriaCreator.changeByType(operationType);\n if (operationType.type !== operator.enumType) {\n operator.leftPart.assignFrom(item);\n }\n else {\n operator.assignFrom(item);\n }\n this.condition = operator;\n }\n return operator;\n };\n this.assignLeftPart = (criteriaOperator) => {\n if (criteriaOperator.leftPart instanceof AggregateOperand) {\n this.assignFrom(criteriaOperator.leftPart);\n }\n else {\n if (criteriaOperator instanceof AggregateOperand) {\n this.property = criteriaOperator.property;\n if (this.aggregatedExpression && criteriaOperator.aggregatedExpression) {\n this.aggregatedExpression = criteriaOperator.aggregatedExpression;\n }\n this.condition = criteriaOperator.condition;\n }\n else {\n this.property = criteriaOperator.leftPart;\n }\n }\n };\n this.type = 'aggregate';\n this.property = property;\n if (!!condition && condition.type === 'group') {\n this.condition = condition;\n }\n else {\n if (condition instanceof UnaryOperator && condition.operatorType === UnaryOperatorType.Not) {\n if (condition.operand.type === 'group') {\n this.condition = criteriaCreator.process('unary', { operator: condition.operand, operatorType: UnaryOperatorType.Not });\n }\n else {\n this.condition = criteriaCreator.process('unary', {\n operator: criteriaCreator.process('group', {\n operation: GroupOperatorType.And,\n operands: condition.operand ? [condition.operand] : []\n }),\n operatorType: UnaryOperatorType.Not\n });\n }\n }\n else {\n this.condition = criteriaCreator.process('group', {\n operation: GroupOperatorType.And,\n operands: condition ? [condition] : []\n });\n }\n }\n this.operatorType = aggregateType;\n this.aggregatedExpression = aggregatedExpression;\n }\n get displayType() {\n return this.operatorType;\n }\n get enumType() {\n return AggregateOperand;\n }\n get leftPart() {\n return this.property;\n }\n children() {\n var operands = [];\n this.condition && operands.push(this.condition);\n this.aggregatedExpression && operands.push(this.aggregatedExpression);\n return operands;\n }\n accept(visitor) {\n return visitor.visitAggregateOperand\n ? visitor.visitAggregateOperand(this)\n : criteriaCreator.process('aggregate', {\n aggregateType: this.operatorType,\n aggregatedExpression: this.aggregatedExpression && this.aggregatedExpression.accept(visitor),\n condition: this.condition && this.condition.accept(visitor),\n property: this.property && this.property.accept(visitor)\n });\n }\n}\ncriteriaCreator.register('aggregate', (options) => {\n return new AggregateOperand(options.property, options.aggregatedExpression, options.aggregateType, options.condition);\n}, (operatorType) => {\n var options = {\n property: criteriaCreator.process('property'),\n aggregateType: operatorType.value,\n aggregatedExpression: null,\n condition: criteriaCreator.process('group', { operation: GroupOperatorType.And, operands: [] })\n };\n if (operatorType.value === 'Exists') {\n return criteriaCreator.process('aggregate', options);\n }\n else {\n if (operatorType.value !== 'Count') {\n options.aggregatedExpression = criteriaCreator.process('property');\n }\n return criteriaCreator.process('binary', {\n left: criteriaCreator.process('aggregate', options),\n right: criteriaCreator.process('value', { value: undefined }),\n operatorType: BinaryOperatorType.Equal\n });\n }\n});\n","/**\n* DevExpress Analytics (widgets\\criteria\\utils\\criteriaEnumeration.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AggregateOperand } from '../operators/aggregate';\nexport function criteriaForEach(operator, callback, path = '') {\n callback(operator, path);\n if (operator instanceof AggregateOperand) {\n operator.leftPart && criteriaForEach(operator.leftPart, callback, path);\n if (operator.leftPart && operator.leftPart['propertyName']) {\n path = path ? [path, operator.leftPart['propertyName']].join('.') : operator.leftPart['propertyName'];\n }\n }\n operator.children().forEach(item => criteriaForEach(item, callback, path));\n}\n","/**\n* DevExpress Analytics (widgets\\criteria\\utils\\criteriaOperatorStateMachine.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { stringReplace } from '../../../property-grid/widgets/internal/_utils';\nimport { parse } from '../parser/criteriaparser';\nexport class MachineState {\n constructor(tokenName, alphabet, startTerm, endTerm) {\n this.tokenName = tokenName;\n this.alphabet = alphabet;\n this.startTerm = startTerm;\n this.endTerm = endTerm;\n this.tokenLength = 0;\n this.isActiveState = false;\n this.tokens = [];\n }\n _isSubline(pos, term) {\n var result = (pos + term.length - 1 < this.alphabet.length);\n for (var i = pos; i < (pos + term.length) && result; i++)\n result = this.alphabet[i] == term[i - pos];\n return result;\n }\n _getToken(pos) {\n var token = {\n type: this.tokenName, start: pos - this.tokenLength + 1, end: pos + this.endTerm.length\n };\n token.val = this.alphabet.substring(token.start, token.end);\n return token;\n }\n processTransitionFunction(pos) {\n if (this.isActiveState) {\n this.tokenLength++;\n }\n if (this._isSubline(pos, this.startTerm) && !this.isActiveState) {\n this.isActiveState = true;\n this.tokenLength += this.startTerm.length;\n return this.startTerm.length - 1;\n }\n else if (this.isActiveState && this._isSubline(pos, this.endTerm)) {\n this.isActiveState = false;\n this.tokens.push(this._getToken(pos));\n this.tokenLength = 0;\n return this.endTerm.length - 1;\n }\n return 0;\n }\n}\nexport class CriteriaOperatorStateMachine {\n constructor(stringCriteria) {\n this.stringCriteria = stringCriteria;\n this.machineStates = [];\n this.machineStates.push(new MachineState('field', stringCriteria, '[', ']'));\n this.machineStates.push(new MachineState('value', stringCriteria, \"'\", \"'\"));\n this.machineStates.push(new MachineState('comment', stringCriteria, '/*', '*/'));\n this._inputStringCriteria = stringCriteria;\n }\n static parse(stringCriteria, saveOriginalStringLength = false) {\n if (stringCriteria && stringCriteria !== '') {\n if (saveOriginalStringLength)\n return new CriteriaOperatorStateMachine(stringCriteria).replaceCommentsToChar(' ').getCriteria();\n return new CriteriaOperatorStateMachine(stringCriteria).replaceCommentsToChar().getCriteria();\n }\n return null;\n }\n _tokenize() {\n for (var i = 0; i < this.stringCriteria.length; i++) {\n var step = 0;\n this.machineStates.forEach(state => {\n if (step)\n return;\n var anotherMachines = this.machineStates.filter(a => a != state && a.isActiveState);\n if (!anotherMachines.length)\n step = state.processTransitionFunction(i);\n });\n i += step;\n }\n var resultTokens = [];\n this.machineStates.forEach((state) => {\n resultTokens = resultTokens.concat(state.tokens);\n state.tokens = [];\n });\n return resultTokens;\n }\n _replaceTokenToAnotherToken(tokens, newTokenChar, tokenName) {\n var tempCriteria = this.stringCriteria;\n tokens = tokens.filter(a => a.type == tokenName).sort(a => a.start).reverse();\n tokens.forEach(token => {\n var lines = token.val.split('\\n');\n var start = token.start;\n var end = token.end;\n lines.forEach(line => {\n if (line.length + start !== token.end) {\n end = start + line.length;\n }\n else {\n end = token.end;\n }\n tempCriteria = stringReplace(tempCriteria, start, end - start, newTokenChar);\n start = (line.length * newTokenChar.length) + 1;\n });\n });\n return tempCriteria;\n }\n replaceCommentsToChar(char = '') {\n this._inputStringCriteria = this._replaceTokenToAnotherToken(this._tokenize(), char, 'comment');\n return this;\n }\n getCriteria() {\n return parse(this._inputStringCriteria);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\internal\\_valueEditorHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { extend } from '../../serializer/_utils';\nexport class ValueEditorHelper {\n static _getCharFromKeyCode(e) {\n if (e.ctrlKey === false && e.key.length === 1)\n return e.key;\n return null;\n }\n static _getCaretPosition(el) {\n var start = -1, end = -1, normalizedValue, range, textInputRange, len, endRange;\n try {\n if (typeof el.selectionStart == 'number' && typeof el.selectionEnd == 'number') {\n start = el.selectionStart;\n end = el.selectionEnd;\n }\n else if (document['selection']) {\n range = document['selection'].createRange();\n if (range && range.parentElement() == el) {\n len = el.value.length;\n normalizedValue = el.value.replace(/\\r\\n/g, '\\n');\n textInputRange = el.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n endRange = el.createTextRange();\n endRange.collapse(false);\n if (textInputRange.compareEndPoints('StartToEnd', endRange) > -1) {\n start = end = len;\n }\n else {\n start = -textInputRange.moveStart('character', -len);\n start += normalizedValue.slice(0, start).split('\\n').length - 1;\n if (textInputRange.compareEndPoints('EndToEnd', endRange) > -1) {\n end = len;\n }\n else {\n end = -textInputRange.moveEnd('character', -len);\n end += normalizedValue.slice(0, end).split('\\n').length - 1;\n }\n }\n }\n }\n }\n catch (e) {\n }\n return {\n start: start,\n end: end\n };\n }\n static _validate(value, minValue, maxValue) {\n if (!/^(0|(-?(([1-9]\\d*)|(0\\.\\d+)|([1-9]\\d*\\.\\d+)|(\\d*\\.\\d+[eE][+\\-]?\\d+))))$/.test(value))\n return false;\n if (!maxValue)\n return true;\n var negative = value[0] === '-';\n var valModulo = negative ? value.substring(1) : value;\n if (negative && !minValue)\n return false;\n var boundModulo = negative ? minValue.substring(1) : maxValue;\n var valMantissa, valExp, boundMantissa, boundExp;\n [valMantissa, valExp] = valModulo.toLowerCase().split('e');\n [boundMantissa, boundExp] = boundModulo.toLowerCase().split('e');\n var valIntPart, valFracPart, boundIntPart, boundFracPart;\n [valIntPart, valFracPart] = valMantissa.split('.');\n [boundIntPart, boundFracPart] = boundMantissa.split('.');\n valIntPart = (valIntPart || '').replace(/^0+/, '');\n boundIntPart = (boundIntPart || '').replace(/^0+/, '');\n var valOrder = valIntPart.length;\n if (valExp)\n valOrder += parseInt(valExp);\n var boundOrder = boundIntPart.length;\n if (boundExp)\n boundOrder += parseInt(boundExp);\n if (valOrder < boundOrder)\n return true;\n if (valOrder > boundOrder)\n return false;\n valFracPart = valFracPart || '0';\n boundFracPart = boundFracPart || '0';\n if (valIntPart + valFracPart > boundIntPart + boundFracPart)\n return false;\n return true;\n }\n static validateWidgetValue(e, validate, defaultVal) {\n var currentValue = e.component.option('value');\n if (!validate(currentValue)) {\n e.component.option('value', defaultVal);\n }\n }\n static getNumberEditorOptions(id, specifics, extendOptions = {}) {\n var editorOptions = ValueEditorHelper.editors[id] || ValueEditorHelper.editors[specifics];\n return editorOptions ? ValueEditorHelper.getValueEditorOptions(editorOptions.regExpEditing, (value) => {\n return ValueEditorHelper._validate(value, editorOptions.minValue, editorOptions.maxValue);\n }, '', extendOptions) : extendOptions;\n }\n static getValueEditorOptions(regExpEditing, validate, defaultVal, extendOptions = {}) {\n var options = {\n onFocusIn: e => {\n ValueEditorHelper.validateWidgetValue(e, validate, defaultVal);\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onFocusIn', e);\n },\n onKeyDown: e => {\n var char = ValueEditorHelper._getCharFromKeyCode(e.event);\n if (!char)\n return;\n var $input = $.fn.constructor(e.element).find('input').eq(0);\n var caretPosition = ValueEditorHelper._getCaretPosition($input.get(0));\n var currentValue = $input.val();\n if (caretPosition.start < 0) {\n caretPosition = currentValue ? currentValue.length : 0;\n }\n var result = [currentValue.slice(0, caretPosition.start), char, currentValue.slice(caretPosition.end)].join('');\n if (!regExpEditing.test(result))\n e.event.preventDefault();\n $input = null;\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onKeyDown', e);\n },\n onPaste: e => {\n var clipboardData = e.event.originalEvent.clipboardData || window['clipboardData'] || {};\n var pastedData = clipboardData.getData && clipboardData.getData('Text');\n if (typeof pastedData !== 'string')\n return;\n var $input = $.fn.constructor(e.element).find('input').eq(0);\n var caretPosition = ValueEditorHelper._getCaretPosition($input.get(0));\n var currentValue = $input.val();\n if (caretPosition.start < 0) {\n caretPosition.end = caretPosition.start = currentValue ? currentValue.length : 0;\n }\n var result = [\n currentValue.slice(0, caretPosition.start), pastedData, currentValue.slice(caretPosition.end)\n ].join('');\n if (!regExpEditing.test(result))\n e.event.preventDefault();\n $input = null;\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onPaste', e);\n },\n onValueChanged: e => {\n if (e.value !== defaultVal)\n this.validateWidgetValue(e, validate, e.previousValue);\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onValueChanged', e);\n }\n };\n return extend({}, extendOptions, options);\n }\n static isValid(id, specifics, value) {\n var editorOptions = ValueEditorHelper.editors[id] || ValueEditorHelper.editors[specifics];\n return editorOptions.regExpEditing.test(value) && ValueEditorHelper._validate(value, editorOptions.minValue, editorOptions.maxValue);\n }\n static _invokeStandardHandler(extendOptions, name, e) {\n if ($.isFunction(extendOptions[name]))\n extendOptions[name](e);\n }\n}\nValueEditorHelper.editors = {\n 'integer': {\n regExpEditing: /^-?\\d*$/\n },\n 'float': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d+)?$/\n },\n 'System.Byte': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '255'\n },\n 'System.SByte': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-128',\n maxValue: '127'\n },\n 'System.Int16': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-32768',\n maxValue: '32767'\n },\n 'System.UInt16': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '65535'\n },\n 'System.Int32': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-2147483648',\n maxValue: '2147483647'\n },\n 'System.UInt32': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '4294967295'\n },\n 'System.Int64': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-9223372036854775808',\n maxValue: '9223372036854775807'\n },\n 'System.UInt64': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '18446744073709551615'\n },\n 'System.Single': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-3.40282347e+38',\n maxValue: '3.40282347e+38'\n },\n 'System.Double': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-1.7976931348623157e+308',\n maxValue: '1.7976931348623157e+308'\n },\n 'System.Decimal': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-79228162514264337593543950335',\n maxValue: '79228162514264337593543950335'\n }\n};\n","/**\n* DevExpress Analytics (widgets\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport themes from 'devextreme/ui/themes';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../property-grid/localization/localization_utils';\nimport { formatUnicorn } from '../property-grid/widgets/internal/_utils';\nimport { PathRequest } from './common/pathRequest';\nimport { OperandParameter } from './criteria/operators/parameter';\nimport { OperandProperty } from './criteria/operators/property';\nimport { criteriaForEach } from './criteria/utils/criteriaEnumeration';\nimport { CriteriaOperatorStateMachine } from './criteria/utils/criteriaOperatorStateMachine';\nimport { ValueEditorHelper } from './internal/_valueEditorHelper';\nexport function integerValueConverter(val, defaultValue, type) {\n var stringValue = '' + val;\n return ValueEditorHelper.isValid(type, 'integer', stringValue) ? stringValue : defaultValue;\n}\nexport function enumValueConverter(val, defaultValue, valuesList) {\n if (valuesList.filter((enumValue) => val === enumValue.value)[0])\n return val;\n var existingValue = valuesList.filter((enumValue) => val === enumValue.displayName || val === enumValue.name)[0];\n if (existingValue)\n return existingValue.value;\n return defaultValue;\n}\nexport function validateExpression(options) {\n var deferred = $.Deferred();\n try {\n var requests = [];\n var _pushRequest = (path, propertyName, isParameter = false) => {\n var message = formatUnicorn(getLocalization('{0} is not found', 'AnalyticsCoreStringId.WarningMessage_FieldNotFound'), isParameter ? ('?' + propertyName) : ('[' + propertyName + ']'));\n var propertyDeferred = $.Deferred();\n options.fieldListProvider.getItemByPath(new PathRequest(path))\n .done(_ => propertyDeferred.resolve({ success: true }))\n .fail(_ => {\n path === propertyName\n ? propertyDeferred.resolve({ success: false, message })\n : options.fieldListProvider.getItemByPath(new PathRequest([path.split('.')[0], propertyName].join('.')))\n .done(_ => propertyDeferred.resolve({ success: true }))\n .fail(_ => propertyDeferred.resolve({ success: false, message }));\n });\n requests.push(propertyDeferred);\n };\n var expression = CriteriaOperatorStateMachine.parse(options.expression);\n criteriaForEach(expression, (operator, innerPath) => {\n if (operator instanceof OperandProperty) {\n var propertyName = operator.propertyName.indexOf('^.') === 0 ? operator.propertyName.substring(2) : operator.propertyName;\n var path = propertyName;\n if ((options.rootItems || []).indexOf(propertyName.split('.')[0]) === -1 && innerPath) {\n path = propertyName ? [innerPath, propertyName].join('.') : innerPath;\n }\n _pushRequest(path, propertyName);\n }\n else if (operator instanceof OperandParameter) {\n var parameterName = operator.parameterName;\n var parameterPath = 'Parameters.' + parameterName;\n _pushRequest(parameterPath, parameterName, true);\n }\n }, options.path);\n $.when.apply($, requests).done((...responses) => deferred.resolve(responses.reduce((result, value) => {\n if (!value.success)\n result = result ? [result, value.message].join('\\n') : value.message;\n return result;\n }, '')));\n }\n catch (e) {\n deferred.reject();\n }\n return deferred.promise();\n}\nexport function floatValueConverter(val, defaultValue, type) {\n var stringValue = '' + val;\n return ValueEditorHelper.isValid(type, 'float', stringValue) ? stringValue : defaultValue;\n}\nvar _lightThemes = ['generic.light', 'generic.carmine', 'generic.greenmist', 'generic.softblue', 'generic.light.compact', 'generic.carmine.compact', 'generic.greenmist.compact', 'generic.softblue.compact'];\nvar _darkThemes = ['generic.dark', 'generic.contrast', 'generic.dark.compact', 'generic.darkmoon', 'generic.darkviolet', 'generic.contras.compact', 'generic.darkmoon.compact', 'generic.darkviolet.compact'];\nfunction getCurrentTheme() {\n return themes.current();\n}\nexport var isDarkTheme = (theme) => {\n theme = theme || getCurrentTheme();\n if ($.inArray(theme, _darkThemes) !== -1)\n return true;\n if ($.inArray(theme, _lightThemes) !== -1)\n return false;\n return false;\n};\nexport function _setIsDarkTheme(callback) {\n isDarkTheme = callback;\n}\nexport function setCursorInFunctionParameter(paramCount, editor, insertValue) {\n if (!paramCount || paramCount <= 0)\n return;\n var cursorPosition = editor.getCursorPosition(), lastIndexOpeningBracket = insertValue.lastIndexOf('(');\n if (insertValue.charAt(lastIndexOpeningBracket + 1) === \"'\")\n lastIndexOpeningBracket++;\n editor.gotoLine(cursorPosition.row + 1, cursorPosition.column - (insertValue.length - 1 - lastIndexOpeningBracket));\n}\nexport function isList(data) {\n return data.isList === true || data.specifics === 'List' || data.specifics === 'ListSource';\n}\nexport function getParentContainer(el, container = '.dx-designer-viewport') {\n return $.fn.constructor(el).closest(container);\n}\nexport function isNullOrEmptyString(str) {\n return str == null || str === '';\n}\n","/**\n* DevExpress Analytics (analytics-version.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport const version = '22.2.15';\n","/**\n* DevExpress Analytics (core\\internal\\dx-versions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as devextremeVersion from 'devextreme/core/version';\nimport { version as clientVersions } from '../../analytics-version';\nexport var dxversions = {\n analytics: clientVersions,\n devextreme: devextremeVersion.version || devextremeVersion\n};\n","/**\r\n * DevExtreme (esm/ui/toast/ui.toast.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar ready = readyCallbacks.add;\r\nvar TOAST_CLASS = \"dx-toast\";\r\nvar TOAST_CLASS_PREFIX = TOAST_CLASS + \"-\";\r\nvar TOAST_WRAPPER_CLASS = TOAST_CLASS_PREFIX + \"wrapper\";\r\nvar TOAST_CONTENT_CLASS = TOAST_CLASS_PREFIX + \"content\";\r\nvar TOAST_MESSAGE_CLASS = TOAST_CLASS_PREFIX + \"message\";\r\nvar TOAST_ICON_CLASS = TOAST_CLASS_PREFIX + \"icon\";\r\nvar WIDGET_NAME = \"dxToast\";\r\nvar toastTypes = [\"info\", \"warning\", \"error\", \"success\"];\r\nvar TOAST_STACK = [];\r\nvar FIRST_Z_INDEX_OFFSET = 8e3;\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n bottom: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: null,\r\n offset: \"0 -20\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n right: {\r\n my: \"center right\",\r\n at: \"center right\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n left: {\r\n my: \"center left\",\r\n at: \"center left\",\r\n of: null,\r\n offset: \"0 0\"\r\n }\r\n};\r\nvar DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nready((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, (function(e) {\r\n for (var i = TOAST_STACK.length - 1; i >= 0; i--) {\r\n if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n }))\r\n}));\r\nvar Toast = Overlay.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: \"\",\r\n type: \"info\",\r\n displayTime: 2e3,\r\n position: \"bottom center\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n shading: false,\r\n height: \"auto\",\r\n hideTopOverlayHandler: null,\r\n closeOnSwipe: true,\r\n closeOnClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n hideOnOutsideClick: true,\r\n width: \"auto\",\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 200,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 200,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n var isPhone = \"phone\" === _device.deviceType;\r\n var isAndroid = \"android\" === _device.platform;\r\n return isPhone && isAndroid\r\n },\r\n options: {\r\n width: \"100vw\",\r\n position: {\r\n at: \"bottom center\",\r\n my: \"bottom center\",\r\n offset: \"0 0\"\r\n }\r\n }\r\n }, {\r\n device: function(_device2) {\r\n return \"phone\" === _device2.deviceType\r\n },\r\n options: {\r\n width: \"100vw\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n minWidth: 344,\r\n maxWidth: 568,\r\n displayTime: 4e3\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._posStringToObject()\r\n },\r\n _renderContentImpl: function() {\r\n this._message = $(\"
\").addClass(TOAST_MESSAGE_CLASS).text(this.option(\"message\")).appendTo(this.$content());\r\n this.setAria(\"role\", \"alert\", this._message);\r\n if (toastTypes.includes(this.option(\"type\").toLowerCase())) {\r\n this.$content().prepend($(\"
\").addClass(TOAST_ICON_CLASS))\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(TOAST_CLASS);\r\n this.$wrapper().addClass(TOAST_WRAPPER_CLASS);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(this.option(\"type\")).toLowerCase());\r\n this.$content().addClass(TOAST_CONTENT_CLASS);\r\n this._toggleCloseEvents(\"Swipe\");\r\n this._toggleCloseEvents(\"Click\")\r\n },\r\n _renderScrollTerminator: noop,\r\n _toggleCloseEvents: function(event) {\r\n var dxEvent = \"dx\" + event.toLowerCase();\r\n eventsEngine.off(this.$content(), dxEvent);\r\n this.option(\"closeOn\" + event) && eventsEngine.on(this.$content(), dxEvent, this.hide.bind(this))\r\n },\r\n _posStringToObject: function() {\r\n if (!isString(this.option(\"position\"))) {\r\n return\r\n }\r\n var verticalPosition = this.option(\"position\").split(\" \")[0];\r\n var horizontalPosition = this.option(\"position\").split(\" \")[1];\r\n this.option(\"position\", extend({\r\n boundaryOffset: DEFAULT_BOUNDARY_OFFSET\r\n }, POSITION_ALIASES[verticalPosition]));\r\n switch (horizontalPosition) {\r\n case \"center\":\r\n case \"left\":\r\n case \"right\":\r\n this.option(\"position\").at += \" \" + horizontalPosition;\r\n this.option(\"position\").my += \" \" + horizontalPosition\r\n }\r\n },\r\n _show: function() {\r\n return this.callBase.apply(this, arguments).always(function() {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = setTimeout(this.hide.bind(this), this.option(\"displayTime\"))\r\n }.bind(this))\r\n },\r\n _overlayStack: function() {\r\n return TOAST_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return this.callBase() + FIRST_Z_INDEX_OFFSET\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._hideTimeout);\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"type\":\r\n this.$content().removeClass(TOAST_CLASS_PREFIX + args.previousValue);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(args.value).toLowerCase());\r\n break;\r\n case \"message\":\r\n if (this._message) {\r\n this._message.text(args.value)\r\n }\r\n break;\r\n case \"closeOnSwipe\":\r\n this._toggleCloseEvents(\"Swipe\");\r\n break;\r\n case \"closeOnClick\":\r\n this._toggleCloseEvents(\"Click\");\r\n break;\r\n case \"displayTime\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(WIDGET_NAME, Toast);\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/toast.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toast from \"./toast/ui.toast\";\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/notify.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport Toast from \"./toast\";\r\nvar window = getWindow();\r\nvar $notify = null;\r\nvar $containers = {};\r\n\r\nfunction notify(message, typeOrStack, displayTime) {\r\n var options = isPlainObject(message) ? message : {\r\n message: message\r\n };\r\n var stack = isPlainObject(typeOrStack) ? typeOrStack : void 0;\r\n var type = isPlainObject(typeOrStack) ? void 0 : typeOrStack;\r\n var {\r\n onHidden: userOnHidden\r\n } = options;\r\n if (null !== stack && void 0 !== stack && stack.position) {\r\n var {\r\n position: position\r\n } = stack;\r\n var direction = stack.direction || getDefaultDirection(position);\r\n var containerKey = isString(position) ? position : \"\".concat(position.top, \"-\").concat(position.left, \"-\").concat(position.bottom, \"-\").concat(position.right);\r\n var {\r\n onShowing: userOnShowing\r\n } = options;\r\n var $container = getStackContainer(containerKey);\r\n setContainerClasses($container, direction);\r\n extend(options, {\r\n container: $container,\r\n onShowing: function(args) {\r\n setContainerStyles($container, direction, position);\r\n null === userOnShowing || void 0 === userOnShowing ? void 0 : userOnShowing(args)\r\n }\r\n })\r\n }\r\n extend(options, {\r\n type: type,\r\n displayTime: displayTime,\r\n onHidden: function(args) {\r\n $(args.element).remove();\r\n null === userOnHidden || void 0 === userOnHidden ? void 0 : userOnHidden(args)\r\n }\r\n });\r\n $notify = $(\"
\").appendTo(viewPort());\r\n new Toast($notify, options).show()\r\n}\r\nvar getDefaultDirection = position => isString(position) && position.includes(\"top\") ? \"down-push\" : \"up-push\";\r\nvar createStackContainer = key => {\r\n var $container = $(\"
\").appendTo(viewPort());\r\n $containers[key] = $container;\r\n return $container\r\n};\r\nvar getStackContainer = key => {\r\n var $container = $containers[key];\r\n return $container ? $container : createStackContainer(key)\r\n};\r\nvar setContainerClasses = (container, direction) => {\r\n var containerClasses = \"dx-toast-stack dx-toast-stack-\".concat(direction, \"-direction\");\r\n container.removeAttr(\"class\").addClass(containerClasses)\r\n};\r\nvar setContainerStyles = (container, direction, position) => {\r\n var {\r\n offsetWidth: toastWidth,\r\n offsetHeight: toastHeight\r\n } = container.children().first().get(0);\r\n var dimensions = {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: window.innerHeight,\r\n windowWidth: window.innerWidth\r\n };\r\n var coordinates = isString(position) ? getCoordinatesByAlias(position, dimensions) : position;\r\n var styles = getPositionStylesByCoordinates(direction, coordinates, dimensions);\r\n container.css(styles)\r\n};\r\nvar getCoordinatesByAlias = (alias, _ref) => {\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = _ref;\r\n switch (alias) {\r\n case \"top left\":\r\n return {\r\n top: 10, left: 10\r\n };\r\n case \"top right\":\r\n return {\r\n top: 10, right: 10\r\n };\r\n case \"bottom left\":\r\n return {\r\n bottom: 10, left: 10\r\n };\r\n case \"bottom right\":\r\n return {\r\n bottom: 10, right: 10\r\n };\r\n case \"top center\":\r\n return {\r\n top: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"left center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: 10\r\n };\r\n case \"right center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), right: 10\r\n };\r\n case \"center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"bottom center\":\r\n default:\r\n return {\r\n bottom: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n }\r\n }\r\n};\r\nvar getPositionStylesByCoordinates = (direction, coordinates, dimensions) => {\r\n var _coordinates$bottom, _coordinates$left, _coordinates$right, _coordinates$top, _coordinates$left2, _coordinates$right2, _coordinates$right3, _coordinates$top2, _coordinates$bottom2, _coordinates$left3, _coordinates$top3, _coordinates$bottom3;\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = dimensions;\r\n switch (direction.replace(/-push|-stack/g, \"\")) {\r\n case \"up\":\r\n return {\r\n bottom: null !== (_coordinates$bottom = coordinates.bottom) && void 0 !== _coordinates$bottom ? _coordinates$bottom : windowHeight - toastHeight - coordinates.top, top: \"\", left: null !== (_coordinates$left = coordinates.left) && void 0 !== _coordinates$left ? _coordinates$left : \"\", right: null !== (_coordinates$right = coordinates.right) && void 0 !== _coordinates$right ? _coordinates$right : \"\"\r\n };\r\n case \"down\":\r\n return {\r\n top: null !== (_coordinates$top = coordinates.top) && void 0 !== _coordinates$top ? _coordinates$top : windowHeight - toastHeight - coordinates.bottom, bottom: \"\", left: null !== (_coordinates$left2 = coordinates.left) && void 0 !== _coordinates$left2 ? _coordinates$left2 : \"\", right: null !== (_coordinates$right2 = coordinates.right) && void 0 !== _coordinates$right2 ? _coordinates$right2 : \"\"\r\n };\r\n case \"left\":\r\n return {\r\n right: null !== (_coordinates$right3 = coordinates.right) && void 0 !== _coordinates$right3 ? _coordinates$right3 : windowWidth - toastWidth - coordinates.left, left: \"\", top: null !== (_coordinates$top2 = coordinates.top) && void 0 !== _coordinates$top2 ? _coordinates$top2 : \"\", bottom: null !== (_coordinates$bottom2 = coordinates.bottom) && void 0 !== _coordinates$bottom2 ? _coordinates$bottom2 : \"\"\r\n };\r\n case \"right\":\r\n return {\r\n left: null !== (_coordinates$left3 = coordinates.left) && void 0 !== _coordinates$left3 ? _coordinates$left3 : windowWidth - toastWidth - coordinates.right, right: \"\", top: null !== (_coordinates$top3 = coordinates.top) && void 0 !== _coordinates$top3 ? _coordinates$top3 : \"\", bottom: null !== (_coordinates$bottom3 = coordinates.bottom) && void 0 !== _coordinates$bottom3 ? _coordinates$bottom3 : \"\"\r\n }\r\n }\r\n};\r\nexport default notify;\r\n","/**\n* DevExpress Analytics (core\\internal\\_surfaceHelpers.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nexport function findSurface(viewModel) {\n return !!viewModel ? viewModel['surface'] : null;\n}\nexport function getControlNewAbsolutePositionOnResize(snapHelper, absolutePosition, ui, delta) {\n var newAbsolutePosition = {\n top: absolutePosition.top + delta.y,\n left: absolutePosition.left + delta.x,\n bottom: absolutePosition.top + ui.originalSize.height,\n right: absolutePosition.left + ui.originalSize.width\n };\n if (delta.x !== 0) {\n newAbsolutePosition.left = snapHelper.snapPosition(newAbsolutePosition.left, false);\n }\n else if (delta.width !== 0) {\n newAbsolutePosition.right = snapHelper.snapPosition(absolutePosition.left + ui.size.width, false);\n }\n if (delta.y !== 0) {\n newAbsolutePosition.top = snapHelper.snapPosition(newAbsolutePosition.top, true);\n }\n else if (delta.height !== 0) {\n newAbsolutePosition.bottom = snapHelper.snapPosition(absolutePosition.top + ui.size.height, true);\n }\n return newAbsolutePosition;\n}\nfunction num(v) {\n return parseInt(v, 10) || 0;\n}\nexport function getControlRect(element, control, surface) {\n var curleft = num(element.css('left')), curtop = num(element.css('top'));\n if (surface.rtl()) {\n var posLeft = surface.pageWidth() - surface.margins.left() - element.width();\n if (curleft > posLeft) {\n curleft = posLeft;\n }\n }\n var bounds = element[0].getBoundingClientRect();\n return { top: curtop, left: curleft, width: bounds.width, height: bounds.height };\n}\nexport function minHeightWithoutScroll(element) {\n return Math.min(element.scrollHeight, element.offsetHeight, element.clientHeight) + element.offsetTop;\n}\nexport function chooseBetterPositionOf(html, designer) {\n return designer && (minHeightWithoutScroll(html) < minHeightWithoutScroll(designer) ? window : designer) || window;\n}\nexport function updateSurfaceContentSize(surfaceSize, root, rtl = false) {\n return () => {\n var $root = $.fn.constructor(root).find('.dxrd-designer').eq(0);\n var toolboxWidth = $root.find('.dxrd-toolbox-wrapper:visible').outerWidth() || 0;\n var rightAreaWidth = ($root.find('.dxrd-right-panel:visible').outerWidth() || 0) + ($root.find('.dxrd-right-tabs:visible').outerWidth() || 0);\n var otherWidth = rightAreaWidth + toolboxWidth, surfaceWidth = $root.width() - (otherWidth);\n $root.find('.dxrd-surface-wrapper').eq(0).css({\n 'left': rtl ? rightAreaWidth : toolboxWidth,\n 'right': !rtl ? rightAreaWidth : toolboxWidth,\n 'width': surfaceWidth,\n 'bottom': $root.find('.dxrd-navigation-panel-wrapper:visible').outerHeight() || 0\n });\n surfaceSize(surfaceWidth);\n };\n}\n","/**\n* DevExpress Analytics (core\\utils\\_debug.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var DEBUG = false;\nexport function DebugMode(value) {\n DEBUG = value;\n}\n","/**\n* DevExpress Analytics (core\\utils\\_infoMessageHelpers.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport notify from 'devextreme/ui/notify';\nimport * as $ from 'jquery';\nimport { chooseBetterPositionOf } from '../internal/_surfaceHelpers';\nimport { DEBUG } from './_debug';\nexport var NotifyType = {\n info: 'info',\n warning: 'warning',\n error: 'error',\n success: 'success'\n};\nvar wrappedConsole = (console => {\n var getWrappedMethod = methodName => (function (...args) {\n if (console && $.isFunction(console[methodName])) {\n console[methodName].apply(console, arguments);\n }\n });\n return {\n info: getWrappedMethod('info'),\n warn: getWrappedMethod('warn'),\n error: getWrappedMethod('error')\n };\n})(window.console);\nexport function NotifyAboutWarning(msg, showForUser = false) {\n if (showForUser) {\n ShowMessage(msg);\n }\n if (DEBUG) {\n throw new Error(msg);\n }\n else {\n wrappedConsole.warn(msg);\n }\n}\nexport function getErrorMessage(jqXHR) {\n return jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.error ? jqXHR.responseJSON.error : '';\n}\nvar _showMessage = (msg, type = 'error', displayTime, debugInfo, contentTemplate, containerElement) => {\n containerElement = containerElement || $.fn.constructor('.dx-designer-viewport')[0];\n notify({\n message: msg,\n type: type,\n maxWidth: containerElement ? containerElement.clientWidth : undefined,\n position: { boundary: containerElement, collision: 'fit', of: chooseBetterPositionOf(document.documentElement, containerElement), my: 'bottom', at: 'bottom', offset: '0 -10' },\n container: containerElement,\n hideOnOutsideClick: true,\n closeOnSwipe: false,\n displayTime: displayTime || (type === 'error' ? 60000 : 3000),\n contentTemplate: contentTemplate\n });\n};\nexport var ShowMessage = _showMessage;\nexport var _setShowMessageFunc = (func) => ShowMessage = func;\nexport var _resetShowMessageFunc = () => ShowMessage = _showMessage;\n","/**\n* DevExpress Analytics (core\\internal\\_processError.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getErrorMessage, NotifyAboutWarning } from '../utils/_infoMessageHelpers';\nexport var _addErrorPrefix = true;\nexport function _processError(errorThrown, deferred, jqXHR, textStatus, processErrorCallback) {\n var message = errorThrown;\n var error = getErrorMessage(jqXHR);\n if (error && error !== message) {\n if (!_addErrorPrefix)\n message = error;\n else\n message += ': ' + error;\n }\n try {\n processErrorCallback ? processErrorCallback(message, jqXHR, textStatus) : NotifyAboutWarning(message);\n }\n finally {\n deferred.reject(jqXHR, textStatus, errorThrown);\n }\n}\nexport var _errorProcessor = {\n handlers: [],\n call: (e) => {\n for (var i = 0; i < _errorProcessor.handlers.length; i++) {\n _errorProcessor.handlers[i](e);\n }\n }\n};\nexport function processErrorEvent(func) {\n if (func) {\n _errorProcessor.handlers.push(func);\n }\n return {\n dispose: () => {\n func && _removeErrorEvent(func);\n }\n };\n}\nfunction _removeErrorEvent(func) {\n _errorProcessor.handlers.splice(_errorProcessor.handlers.indexOf(func), 1);\n}\n","/**\n* DevExpress Analytics (core\\internal\\_getNameHelpers.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport function getTypeNameFromFullName(controlType) {\n return controlType.split(',')[0].trim();\n}\nexport function getShortTypeName(controlType) {\n var fullTypeName = getTypeNameFromFullName(controlType), typeNameParts = fullTypeName.split('.');\n return typeNameParts[typeNameParts.length - 1];\n}\nexport function getControlTypeName(value) {\n var controlType = value.displayType && value.displayType() || value.controlType;\n if (value.getControlFactory) {\n var info = value.getControlFactory().getControlInfo(controlType);\n if (info.displayName)\n controlType = info.displayName;\n }\n return controlType && getLocalization(getShortTypeName(controlType));\n}\nexport function getControlFullName(value) {\n if (!value)\n return '';\n var displayName = ko.unwrap(value.name) || ko.unwrap(value.displayName), controlType = getControlTypeName(value);\n return displayName + (controlType ? (' (' + controlType + ')') : '');\n}\nexport function getImageClassName(controlType, isTemplate = false) {\n var controlType = getTypeNameFromFullName(controlType || '').split('.').join('_'), name;\n if (controlType.indexOf('XR') === 0) {\n name = controlType.slice(2).toLowerCase();\n }\n else if (controlType === 'DevExpress_XtraReports_UI_XtraReport') {\n name = 'master_report';\n }\n return (isTemplate ? 'dxrd-svg-toolbox-' : 'dxrd-image-') + (name ? name : controlType.toLowerCase());\n}\nexport function getUniqueNameForNamedObjectsArray(objects, prefix, names) {\n if (prefix.indexOf('XR') === 0) {\n prefix = prefix[2].toLowerCase() + prefix.slice(3);\n }\n else {\n var indexBand = prefix.indexOf('Band');\n if (indexBand !== -1 && prefix !== 'SubBand') {\n prefix = prefix.slice(0, indexBand) + prefix.slice(indexBand + 4);\n }\n }\n return getUniqueName(names || objects.map((item) => { return ko.unwrap(item.name); }), prefix);\n}\nexport function getUniqueName(names, prefix, inculdeFirst = true) {\n var i = inculdeFirst ? 1 : 0, result = inculdeFirst ? (prefix + i) : prefix;\n while (names.filter((item) => { return item === result; }).length > 0) {\n i++;\n result = prefix + i;\n }\n return result;\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\internal\\_svgTemplateEngine.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nclass SvgTemplateSource {\n constructor(template, _data, _templates) {\n this._data = _data;\n this._templates = _templates;\n this.templateName = template;\n }\n data(key, value) {\n this._data[this.templateName] = this._data[this.templateName] || {};\n if (arguments.length === 1) {\n return this._data[this.templateName][key];\n }\n this._data[this.templateName][key] = value;\n }\n text(value) {\n if (arguments.length === 0) {\n if (this.templateName in this._templates)\n return this._templates[this.templateName];\n else\n throw new Error('Cannot find template with ID ' + this.templateName);\n }\n this._templates[this.templateName] = value;\n }\n}\nexport class SvgTemplatesEngine {\n constructor() {\n this._hasTemplate = (name, findEverywhere) => {\n return findEverywhere && !!document.getElementById(name) || this._templates.hasOwnProperty(name);\n };\n this._data = {};\n this._templates = {};\n }\n static get Instance() {\n return this._instance || (this._instance = new this());\n }\n static get templates() {\n return SvgTemplatesEngine.Instance._templates;\n }\n static addTemplate(templateName, templateMarkup) {\n SvgTemplatesEngine.templates[templateName] = templateMarkup;\n }\n static addTemplates(templates) {\n ko.utils.extend(SvgTemplatesEngine.templates, templates);\n }\n static getExistingTemplate(name, findEverywhere = true) {\n return SvgTemplatesEngine.Instance._hasTemplate(name, findEverywhere) ? name : undefined;\n }\n}\nvar makeTemplateSource = ko.templateEngine.prototype['makeTemplateSource'];\nko.templateEngine.prototype['makeTemplateSource'] = function (template, doc) {\n if (typeof template === 'string' && SvgTemplatesEngine.getExistingTemplate(template, false) && !document.getElementById(template)) {\n return new SvgTemplateSource(template, SvgTemplatesEngine['_instance']['_data'], SvgTemplatesEngine.templates);\n }\n else {\n return makeTemplateSource.apply(this, [template, doc]);\n }\n};\n","/**\n* DevExpress Analytics (core\\internal\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ToolboxItem } from '../tools/toolbox';\nexport function getToolboxItems(controlsMap, defaultGroup = '') {\n var toolboxItems = [];\n Object.keys(controlsMap).forEach((controlType) => {\n if (!controlsMap[controlType].nonToolboxItem) {\n var item = {\n '@ControlType': controlType,\n displayName: controlsMap[controlType].displayName,\n index: controlsMap[controlType].toolboxIndex || 0,\n canDrop: controlsMap[controlType].canDrop,\n group: controlsMap[controlType].group || defaultGroup\n };\n if (controlsMap[controlType].size) {\n item['size'] = controlsMap[controlType].size;\n }\n if (controlsMap[controlType].defaultVal) {\n Object.keys(controlsMap[controlType].defaultVal).forEach((name) => {\n item[name] = controlsMap[controlType].defaultVal[name];\n });\n }\n toolboxItems.push(new ToolboxItem(item));\n }\n });\n return toolboxItems.sort((item1, item2) => { return item1.index - item2.index; });\n}\nexport function blur(element) {\n try {\n element['blur'] && element['blur']();\n }\n catch (e) {\n document.body.blur();\n }\n}\nexport const convertToCssPixelUnits = (value) => `${value}px`;\nexport const convertFromCssPixelUnits = (value) => parseFloat(value.replace('px', ''));\n","/**\n* DevExpress Analytics (core\\utils\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { calculateWithZoomFactor } from '../../accessibility/_internal';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { noDataText, searchPlaceholder, selectPlaceholder } from '../../property-grid/localization/_localization';\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nimport { extend } from '../../serializer/_utils';\nimport { getParentContainer } from '../../widgets/_utils';\nimport { ajaxSetup } from '../internal/ajaxSetup';\nimport { dxversions } from '../internal/dx-versions';\nimport { _errorProcessor, _processError } from '../internal/_processError';\nimport { convertFromCssPixelUnits } from '../internal/_utils';\nimport { getErrorMessage as igetErrorMessage } from './_infoMessageHelpers';\nimport { objectsVisitor } from './_visitors';\nexport function copyObservables(from, to) {\n Object.keys(from || {}).forEach((name) => {\n if (ko.isObservable(from[name])) {\n to[name](from[name]());\n }\n else if (!$.isFunction(from[name])) {\n copyObservables(from[name], to[name]);\n }\n });\n}\nexport function _wrapModelInObservable(model) {\n return ko.isWritableObservable(model) ? model : ko.observable(null);\n}\nexport function collectGroupsFromFlatList(list, getGroupId) {\n var temp = {};\n return list.reduce((res, val) => {\n var groupId = getGroupId(val);\n if (groupId) {\n if (temp[groupId])\n temp[groupId].push(val);\n else {\n var group = { group: groupId, items: [val] };\n res.push(group);\n temp[groupId] = group.items;\n }\n }\n return res;\n }, []);\n}\nexport function compareObjects(a, b) {\n var result = a && b && !(a instanceof Array) && !(b instanceof Array);\n result = result && (Object.getOwnPropertyNames(a).length === Object.getOwnPropertyNames(b).length);\n if (result) {\n Object.keys(a || {}).some((name) => {\n if (name.indexOf('_') !== 0 && (typeof a[name] !== 'function' || ko.isObservable(a[name]))) {\n if (ko.isObservable(a[name])) {\n result = ko.unwrap(a[name]) === ko.unwrap(b[name]);\n }\n else if (a[name] instanceof Array) {\n if ((b[name] instanceof Array) && a[name].length === b[name].length) {\n for (var i = 0; i < a[name].length; i++) {\n result = compareObjects(a[name][i], b[name][i]);\n if (result === false)\n break;\n }\n }\n else {\n result = false;\n }\n }\n else if (a[name] instanceof Object) {\n result = compareObjects(a[name], b[name]);\n }\n else {\n result = a[name] === b[name];\n }\n return !result;\n }\n });\n }\n return result;\n}\nexport var cssTransform = ['-webkit-transform', '-moz-transform', '-ms-transform', '-o-transform', 'transform'];\nexport function getFullPath(path, dataMember) {\n return path + (dataMember ? '.' + dataMember : '');\n}\nexport function loadTemplates() {\n var promises = $.fn.constructor(\"script[type='text/html']\").map(function (_, script) {\n if (script.src) {\n var deffered = $.Deferred();\n $.get(script.src)\n .done(function (tmpl) {\n script.text = tmpl;\n if (tmpl.indexOf('type=\"text/html\"') !== -1 || tmpl.indexOf(\"type='text/html'\") !== -1) {\n $.fn.constructor(document.body).append(tmpl);\n }\n deffered.resolve();\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n deffered.reject();\n });\n return deffered.promise();\n }\n });\n return $.when.apply($.when, promises);\n}\nexport function getSizeFactor(width) {\n if (width < 768) {\n return 'xs';\n }\n else if (width < 992) {\n return 'sm';\n }\n else if (width < 1200) {\n return 'md';\n }\n else if (width < 1380) {\n return 'lg';\n }\n else {\n return 'xl';\n }\n}\nexport var staticContext = {\n _static: {\n searchPlaceholder: () => searchPlaceholder(),\n selectPlaceholder: () => selectPlaceholder(),\n noDataText: () => noDataText(),\n ajaxSetup\n }\n};\nexport var _defaultStaticContext = createGlobalModuleVariableFunc({});\nexport function appendStaticContextToRootViewModel(root, dx = staticContext, className) {\n if (dx)\n root.dx = Object.assign(Object.assign({}, dx), _defaultStaticContext());\n root.getLocalization = function () {\n return getLocalization.apply(root, arguments);\n };\n root.getPopupContainer = getParentContainer;\n root.calculateWithZoomFactor = calculateWithZoomFactor;\n root.surfaceClass = (el) => 'dx-designer-viewport dx-designer-viewport-' + getSizeFactor(el.clientWidth) +\n ' ' + (!getParentContainer(el, '.dx-theme-generic').length ? ' dx-theme-generic' : '') +\n (className ? ' ' + className : '');\n}\nexport function _ajax(uri, action, arg, processErrorCallback, ignoreError, customOptions, isError = (data) => !data.success, getErrorMessage = igetErrorMessage) {\n var deferred = $.Deferred();\n var requestData;\n if (action !== undefined && arg !== undefined) {\n requestData = {\n actionKey: action,\n arg: arg,\n dxversions: JSON.stringify(dxversions)\n };\n }\n ajaxSetup.sendRequest(extend({}, {\n type: 'POST',\n data: requestData,\n url: uri\n }, customOptions)).fail((jqXHR, textStatus, errorThrown) => {\n if (ignoreError && ignoreError()) {\n deferred.reject();\n return;\n }\n _errorProcessor.call({ jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown, getRequestDetails: () => requestData || uri });\n _processError(errorThrown, deferred, jqXHR, textStatus, processErrorCallback);\n })\n .done((data, textStatus, jqXHR) => {\n if (!data) {\n deferred.reject();\n return;\n }\n if (!isError(data)) {\n deferred.resolve(data.result);\n }\n else {\n if (ignoreError && ignoreError()) {\n deferred.reject();\n return;\n }\n _errorProcessor.call({ jqXHR: jqXHR, textStatus: textStatus, data: data, errorThrown: getErrorMessage(jqXHR), getRequestDetails: () => requestData || uri });\n _processError('Internal Server Error', deferred, jqXHR, textStatus, processErrorCallback);\n }\n });\n return deferred.promise();\n}\nexport function _ajaxWithOptions(options) {\n return _ajax(options.uri, options.action, options.arg, options.processErrorCallback, options.ignoreError, options.customOptions, options.isError, options.getErrorMessage);\n}\nexport var ajax = (...params) => {\n if (params.length > 1) {\n return _ajax.apply(this, params);\n }\n else {\n return _ajaxWithOptions(params[0]);\n }\n};\nexport function setAjax(newFunc) {\n ajax = newFunc;\n}\nexport function cutRefs(model) {\n objectsVisitor(model, (target) => {\n delete target['@Ref'];\n });\n return model;\n}\nexport var DesignerBaseElements = {\n MenuButton: 'dxrd-menubutton-template-base',\n Toolbar: 'dxrd-toolbar-template-base',\n Toolbox: 'dxrd-toolbox-template-base',\n GroupedToolbox: 'dxrd-grouped-toolbox-template-base',\n Surface: 'dxrd-surface-template-base',\n RightPanel: 'dxrd-right-panel-template-base'\n};\nexport function generateDefaultParts(model) {\n return [\n { id: DesignerBaseElements.MenuButton, templateName: DesignerBaseElements.MenuButton, model: model },\n { id: DesignerBaseElements.Toolbar, templateName: DesignerBaseElements.Toolbar, model: model },\n { id: DesignerBaseElements.Toolbox, templateName: DesignerBaseElements.Toolbox, model: model },\n { id: DesignerBaseElements.Surface, templateName: DesignerBaseElements.Surface, model: model },\n { id: DesignerBaseElements.RightPanel, templateName: DesignerBaseElements.RightPanel, model: model }\n ];\n}\nexport function createActionWrappingFunction(wrapperName, func) {\n return (actions) => {\n actions.forEach(action => {\n if (!action['wrappedWith'] || action['wrappedWith'].indexOf(wrapperName) === -1) {\n var oldClickHandler = action.clickAction;\n action.clickAction = (model) => {\n return func(model, oldClickHandler);\n };\n action['wrappedWith'] = action['wrappedWith'] || [];\n action['wrappedWith'].push(wrapperName);\n }\n });\n };\n}\nexport function localizeNoneString(noneValue) {\n var value = ko.unwrap(noneValue);\n if (value === 'none') {\n return getLocalization('none', 'DataAccessStringId.ParameterListEmpty');\n }\n else if (value === '(none)') {\n return (getLocalization('(none)', 'DxDesignerStringId.None') !== '(none)') ? getLocalization('(none)', 'DxDesignerStringId.None') : ('(' + getLocalization('none', 'DataAccessStringId.ParameterListEmpty') + ')');\n }\n return value;\n}\nexport function parseZoom(val) {\n var _value = Math.round(parseInt(val.replace('%', ''))) / 100;\n if (!_value)\n return 1;\n if (_value >= 5)\n return 5;\n if (_value <= 0.1)\n return 0.1;\n return _value;\n}\nexport function getResizableOptions($element, panelOffset, minWidth, position, startPosition, width, disabled) {\n const disabledOption = ko.unwrap(disabled);\n const minWidthOption = ko.unwrap(minWidth);\n return {\n starting: function (e) {\n $.fn.constructor($element).css(position === startPosition ? 'right' : 'left', '');\n },\n handles: ko.observable(position === startPosition ? 'e' : 'w'),\n stopped: $.noop,\n stop: $.noop,\n resize: function (event, element) {\n const startResizePosition = convertFromCssPixelUnits(element.dataset.originalLeftMousePosition);\n const originalWidth = convertFromCssPixelUnits(element.dataset.originalWidth);\n const sizeDiff = event.x - startResizePosition;\n $.fn.constructor($element).css({ left: position === startPosition ? panelOffset + 'px' : '', right: position === startPosition ? '' : panelOffset + 'px' });\n const newWidth = Math.min(Math.max(minWidthOption, position === startPosition ? originalWidth + sizeDiff : originalWidth - sizeDiff), 1000);\n width && ko.isObservable(width) && width(newWidth);\n },\n disabled: disabled || false,\n zoom: 1,\n minimumWidth: ko.observable(disabledOption ? 0 : minWidthOption),\n maximumWidth: 1000,\n $element: $element\n };\n}\nexport function createPasswordSerializationInfo(info, isNew = true) {\n info.editor = editorTemplates.getEditor('text');\n info.editorOptions = { mode: 'password' };\n if (isNew)\n info.editorOptions.inputAttr = { autocomplete: 'new-password' };\n return info;\n}\n","/**\n* DevExpress Analytics (accessibility\\_controlElementBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '../serializer/utils';\nimport { addDisposeCallback } from '../serializer/_internal';\nexport class AccessibilityControlElementBase extends Disposable {\n constructor(element) {\n super();\n this.element = element;\n this._eventListeners = [];\n }\n dispose() {\n super.dispose();\n this._eventListeners.forEach((item) => { item.element.removeEventListener(item.eventType, item.listener); });\n this._eventListeners.length = 0;\n this.element = null;\n }\n addListener(element, eventType, handler) {\n var listener = (e) => {\n handler.call(this, e);\n };\n element.addEventListener(eventType, listener);\n addDisposeCallback(element, function () {\n element.removeEventListener(eventType, listener);\n });\n this._eventListeners.push({ element: element, eventType: eventType, listener: listener });\n }\n setTabIndex(index) {\n this.element.setAttribute('tabindex', index);\n }\n setFocus() {\n this.element.focus();\n }\n}\n","/**\n* DevExpress Analytics (core\\tools\\_keyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardCodesEnum } from '../../property-grid/widgets/internal/_utils';\nexport class KeyboardHelperBase extends Disposable {\n _processShortcut(map, e, index) {\n var method = map[KeyboardCodesEnum[e.keyCode]];\n if (method) {\n return method(e, index);\n }\n return false;\n }\n processShortcut(e, index) {\n return this._processShortcut(this.shortcutMap, e, index);\n }\n processChildrenShortcut(e, index) {\n return this._processShortcut(this.childrenShortcutMap, e, index);\n }\n}\nexport class KeyboardHelper extends KeyboardHelperBase {\n constructor(selection, undoEngine) {\n super();\n this._selection = selection;\n this._undoEngine = undoEngine;\n this.shortcutMap = {\n Esc: (e) => { this.processEsc(); return true; },\n Left: (e) => { this.moveSelectedControls(true, true, -1); return true; },\n Up: (e) => { this.moveSelectedControls(true, false, -1); return true; },\n Right: (e) => { this.moveSelectedControls(false, true, 1); return true; },\n Down: (e) => { this.moveSelectedControls(false, false, 1); return true; }\n };\n }\n processEsc() {\n var parent = this._selection.focused() && this._selection.focused().parent;\n parent && this._selection.focused(parent);\n }\n moveSelectedControls(leftUp, isHoriz, sign) {\n var focusedControl = this._selection.focused();\n if (!focusedControl || focusedControl && focusedControl.getControlModel().getMetaData().isCopyDeny) {\n return;\n }\n this._undoEngine && this._undoEngine().start();\n var distance = 1, axisProperty = isHoriz ? 'left' : 'top', lengthProperty = isHoriz ? 'width' : 'height', minAxis, maxSide, newAxis;\n if (focusedControl.rect) {\n minAxis = focusedControl.rect()[axisProperty];\n maxSide = focusedControl.rect()[axisProperty] + focusedControl.rect()[lengthProperty];\n }\n else {\n return;\n }\n this._selection.selectedItems.filter((item) => { return !item.locked; }).forEach((item) => {\n var axis = item.rect()[axisProperty];\n if (axis < minAxis) {\n minAxis = axis;\n }\n });\n this._selection.selectedItems.filter((item) => { return !item.locked; }).forEach((item) => {\n var side = item.rect()[axisProperty] + item.rect()[lengthProperty];\n if (side > maxSide) {\n maxSide = side;\n }\n });\n if ((leftUp && minAxis <= 0) || (!focusedControl.parent.rect || (!leftUp && maxSide.toFixed(5) >= focusedControl.parent.rect()[lengthProperty]))) {\n return;\n }\n else {\n this._selection.selectedItems.filter((item) => { return !item.locked; })\n .filter((item) => { return !!item.rect; })\n .forEach((item) => {\n var newVal = {}, itemAxisProperty = item.rect()[axisProperty], itemLengthProperty = item.rect()[lengthProperty], parentLengthProperty = item.parent.rect()[lengthProperty];\n newAxis = itemAxisProperty + sign * distance;\n if ((leftUp && newAxis >= 0) || (!leftUp && (newAxis + itemLengthProperty) <= parentLengthProperty)) {\n newVal[axisProperty] = newAxis;\n }\n if (!leftUp && (newAxis + itemLengthProperty) > parentLengthProperty) {\n newVal[axisProperty] = parentLengthProperty - itemLengthProperty;\n }\n if (leftUp && newAxis < 0 && itemAxisProperty > 0) {\n newVal[axisProperty] = 0;\n }\n item.rect(newVal);\n });\n }\n this._undoEngine && this._undoEngine().end();\n }\n}\nexport class KeyDownHandlersManager {\n constructor(targetElement) {\n this._handlers = [];\n this._targetElement = targetElement;\n }\n get _activeHandler() {\n return this._handlers.length > 0 ? this._handlers[this._handlers.length - 1] : null;\n }\n _removeHandler(handler, eventName) {\n var index = this._handlers.indexOf(handler);\n if (index < 0)\n return;\n this._handlers.splice(index, 1);\n if (index === this._handlers.length) {\n this._targetElement.removeEventListener(eventName, handler);\n if (this._activeHandler)\n this._targetElement.addEventListener(eventName, this._activeHandler);\n }\n }\n bindHandler(element, handler, eventName = 'keydown') {\n if (this._activeHandler)\n this._targetElement.removeEventListener(eventName, this._activeHandler);\n var _handler = (e) => {\n if ($.fn.constructor(this._targetElement).closest('.dx-designer').length > 0 ||\n $.fn.constructor(e.target).closest('.dx-designer').length > 0 ||\n e.target === document.body)\n handler(e);\n };\n this._handlers.push(_handler);\n this._targetElement.addEventListener(eventName, _handler);\n addDisposeCallback(element, () => { this._removeHandler(_handler, eventName); });\n }\n}\n","/**\n* DevExpress Analytics (core\\utils\\_arrayutils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { knockoutArrayWrapper } from '../../serializer/_utils';\nexport function createObservableReverseArrayMapCollection(elementModels, target, createItem) {\n var array = target();\n elementModels.peek().forEach(item => {\n var surface = createItem(item);\n array.splice(0, 0, surface);\n });\n target.valueHasMutated();\n return elementModels.subscribe((args) => {\n var unwrapedTarget = target();\n var targetLength = unwrapedTarget.length;\n args.forEach((changeSet) => {\n if (changeSet.status === 'deleted') {\n unwrapedTarget.splice(unwrapedTarget.indexOf(changeSet.value.surface), 1);\n targetLength--;\n }\n });\n args.forEach((changeSet) => {\n if (changeSet.status === 'added') {\n unwrapedTarget.splice(targetLength - changeSet.index, 0, createItem(changeSet.value));\n targetLength++;\n }\n });\n target.valueHasMutated();\n }, null, 'arrayChange');\n}\nexport function createObservableArrayMapCollection(elementModels, target, createItem) {\n var array = target();\n elementModels.peek().forEach(item => {\n var surface = createItem(item);\n array.push(surface);\n });\n target.valueHasMutated();\n return elementModels.subscribe((args) => {\n var startIndex = target().length, deleteCount = 0, valuesToAdd = [];\n args.forEach((changeSet) => {\n if (changeSet.status === 'deleted') {\n deleteCount++;\n if (changeSet.index < startIndex) {\n startIndex = changeSet.index;\n }\n }\n });\n args.forEach((changeSet) => {\n if (changeSet.status === 'added') {\n if (changeSet.index < startIndex) {\n startIndex = changeSet.index;\n }\n valuesToAdd.push(createItem(changeSet.value));\n }\n });\n target.splice.apply(target, [startIndex, deleteCount].concat(valuesToAdd));\n }, null, 'arrayChange');\n}\nexport function deserializeChildArray(model, parent, creator) {\n var result = Object.keys(model || {}).map(propertyName => creator(model[propertyName]));\n return knockoutArrayWrapper(result, (array, event) => {\n if (event === 'beforeChange') {\n return;\n }\n if (event === 'arrayChange') {\n for (var i = 0; i < array.length; i++) {\n parent !== array[i].value.parentModel() && array[i].value.parentModel(parent);\n }\n }\n else {\n for (var i = 0; i < array.length; i++) {\n parent !== array[i].parentModel() && array[i].parentModel(parent);\n }\n }\n });\n}\nexport function getFirstItemByPropertyValue(array, propertyName, propertyValue, fromIndex) {\n var fromIndex = fromIndex || 0;\n for (var i = fromIndex; i < array.length; i++) {\n var value = ko.isObservable(array[i][propertyName]) ? array[i][propertyName].peek() : array[i][propertyName];\n if (value === propertyValue) {\n return array[i];\n }\n }\n return null;\n}\nexport function findFirstItemMatchesCondition(array, predicate) {\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return array[i];\n }\n }\n return null;\n}\nexport var find = findFirstItemMatchesCondition;\nexport function binaryIndexOf(ar, el, compare) {\n var m = 0;\n var n = ar.length - 1;\n while (m <= n) {\n var k = (n + m) >> 1;\n var cmp = compare(el, ar[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return ~m;\n}\nexport function compareArrays(array1, array2) {\n if (!array1 || !array2)\n return false;\n if (array1.length !== array2.length)\n return false;\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i])\n return false;\n }\n return true;\n}\n","/**\n* DevExpress Analytics (accessibility\\_keyboardHelperBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { KeyboardHelperBase, KeyDownHandlersManager } from '../core/tools/_keyboardHelper';\nimport { findFirstItemMatchesCondition } from '../core/utils/_arrayutils';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nexport class AccessibilityKeyboardHelperBase extends KeyboardHelperBase {\n constructor() {\n super();\n this.childrenInitialized = false;\n this.accessibilityCompliantEnabled = false;\n this.focusFirstFocusableDescendant = false;\n this.controlElements = [];\n this._eventListeners = [];\n this.setTabIndexes = (index) => {\n this.controlElements.forEach(button => button.setTabIndex(index));\n };\n this.liveRegion = () => {\n if (!this.liveRegionId)\n return null;\n if (!this._liveRegion || !this._liveRegion.element) {\n this._liveRegion = {\n element: document.getElementById(this.liveRegionId),\n changeText: (text, timeout = 200) => {\n return setTimeout(() => {\n if (this._liveRegion.element)\n this._liveRegion.element.textContent = text;\n }, timeout);\n }\n };\n }\n return this._liveRegion;\n };\n this.shortcutMap = {\n Esc: (e) => { return this.handleEscKey(e); },\n Tab: (e) => {\n var shiftKey = !!(e && e.shiftKey);\n return shiftKey ? this.handleShiftTabKey(e) : this.handleTabKey(e);\n },\n Enter: (e) => { return this.handleEnterKey(e); },\n Space: (e) => { return this.handleSpaceKey(e); },\n End: (e) => { return this.handleEndKey(e); },\n Home: (e) => { return this.handleHomeKey(e); },\n Up: (e) => { return this.handleUpArrowKey(e); },\n Down: (e) => { return this.handleDownArrowKey(e); },\n Left: (e) => { return this.handleLeftArrowKey(e); },\n Right: (e) => { return this.handleRightArrowKey(e); },\n };\n this.childrenShortcutMap = {\n Tab: (e, index) => {\n var shiftKey = !!(e && e.shiftKey);\n return shiftKey ? this.itemHandleShiftTabKey(e, index) : this.itemHandleTabKey(e, index);\n },\n Enter: (e, index) => { return this.itemHandleEnterKey(e, index); },\n Space: (e, index) => { return this.itemHandleSpaceKey(e, index); },\n End: (e, index) => { return this.itemHandleEndKey(e, index); },\n Home: (e, index) => { return this.itemHandleHomeKey(e, index); },\n Up: (e, index) => { return this.itemHandleUpArrowKey(e, index); },\n Down: (e, index) => { return this.itemHandleDownArrowKey(e, index); },\n Left: (e, index) => { return this.itemHandleLeftArrowKey(e, index); },\n Right: (e, index) => { return this.itemHandleRightArrowKey(e, index); },\n Esc: (e, index) => { return this.itemHandleEscKey(e, index); },\n };\n }\n _disposeItems() {\n this._eventListeners.forEach((item) => { item.element.removeEventListener(item.eventType, item.listener); });\n this._eventListeners.length = 0;\n this.disposeArray(this.controlElements);\n this.controlElements.length = 0;\n }\n initialize() {\n this._disposeItems();\n if (!this._elementContainer)\n return;\n var htmlElements = Array.prototype.slice.call(this._elementContainer.querySelectorAll('.' + this.controlElementClassName));\n if (!htmlElements.length)\n return;\n htmlElements.forEach((element, index) => {\n var newItem = this.createControlElement(element, index);\n if (newItem) {\n this.controlElements.push(newItem);\n }\n });\n this.controlElements.forEach((item, index) => {\n this.addListener(item.element, index, 'click', this.clickHandler);\n });\n this.childrenInitialized = true;\n }\n getIndexByElement(htmlElement) {\n return this.controlElements.map(element => element.element).indexOf(htmlElement);\n }\n createControlElement(element, index) {\n return new AccessibilityControlElementBase(element);\n }\n getContainer() {\n return this._elementContainer;\n }\n changeFocus(index, roundTrip = true) {\n var elCount = this.controlElements.length - 1;\n if (index < 0)\n index = roundTrip ? elCount : 0;\n if (index > elCount)\n index = roundTrip ? 0 : elCount;\n this.controlElements[index].setFocus();\n return index;\n }\n bindHandler(elementContainer) {\n this._elementContainer = elementContainer;\n var handlersManager = new KeyDownHandlersManager(this._elementContainer);\n this.initialize();\n var handler = (e) => {\n var target = e.target;\n if (findFirstItemMatchesCondition(Object.keys(target.classList), (key) => target.classList[key] === this.controlElementClassName) && this.processChildrenShortcut(e, this.getIndexByElement(target))\n || this.processShortcut(e)) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n handlersManager.bindHandler(this._elementContainer, handler);\n }\n handleEscKey(e, index) {\n if (this._prevActiveElement) {\n this._prevActiveElement.focus();\n return true;\n }\n return false;\n }\n handleTabKey(e) {\n return false;\n }\n handleShiftTabKey(e) {\n return false;\n }\n handleEnterKey(e) {\n return false;\n }\n handleSpaceKey(e) {\n return false;\n }\n handleEndKey(e) {\n return false;\n }\n handleHomeKey(e) {\n return false;\n }\n handleUpArrowKey(e) {\n return false;\n }\n handleDownArrowKey(e) {\n return false;\n }\n handleLeftArrowKey(e) {\n return false;\n }\n handleRightArrowKey(e) {\n return false;\n }\n itemHandleHomeKey(e, index) {\n this.changeFocus(0);\n return true;\n }\n itemHandleEndKey(e, index) {\n this.changeFocus(this.controlElements.length - 1);\n return true;\n }\n itemHandleLeftArrowKey(e, index) {\n return false;\n }\n itemHandleRightArrowKey(e, index) {\n return false;\n }\n itemHandleEnterKey(e, index) {\n return false;\n }\n itemHandleSpaceKey(e, index) {\n return false;\n }\n itemHandleUpArrowKey(e, index) {\n return false;\n }\n itemHandleDownArrowKey(e, index) {\n return false;\n }\n itemHandleTabKey(e, index) {\n return false;\n }\n itemHandleShiftTabKey(e, index) {\n return false;\n }\n itemHandleEscKey(e, index) {\n return false;\n }\n setFocusToPrevious(currentIndex, roundTrip = true) {\n return this.changeFocus(currentIndex - 1, roundTrip);\n }\n setFocusToNext(currentIndex, roundTrip = true) {\n return this.changeFocus(currentIndex + 1, roundTrip);\n }\n clickHandler(e, index) {\n this.changeFocus(index);\n }\n dispose() {\n super.dispose();\n this._disposeItems();\n this._elementContainer = null;\n this._prevActiveElement = null;\n }\n addListener(element, index, eventType, handler) {\n var listener = (e) => {\n handler.call(this, e, index);\n };\n element.addEventListener(eventType, listener);\n addDisposeCallback(element, function () {\n element.removeEventListener(eventType, listener);\n });\n this._eventListeners.push({ element: element, eventType: eventType, listener: listener });\n }\n focus(prevActiveElement) {\n if (!this.childrenInitialized && !this._elementContainer)\n return;\n this._prevActiveElement = (prevActiveElement || document.activeElement);\n if (this.childrenInitialized && !this.focusFirstFocusableDescendant) {\n this.changeFocus(this.startIndex || 0);\n }\n else {\n var focusable = this._elementContainer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n focusable.length && focusable[0].focus();\n }\n }\n lastFocusItem() {\n return document.getElementById('dxrd-designer-last-focus-item-blank');\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_rightPanelKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class RightPanelKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor(_tabPanel) {\n super();\n this._tabPanel = _tabPanel;\n this.controlElementClassName = 'dx-accessibility-rightpanel-button';\n }\n bindHandler(el) {\n super.bindHandler(el);\n this._disposables.push(ko.computed(() => {\n this._tabPanel.tabs.forEach((tab) => { ko.unwrap(tab.visible); });\n this.initialize();\n }).extend(({ rateLimit: { timeout: 1, method: 'notifyWhenChangesStop' } })));\n }\n initialize() {\n super.initialize();\n this.setTabIndexes(0);\n }\n createControlElement(element, index) {\n if (ko.unwrap(this._tabPanel.tabs[index].visible))\n return new AccessibilityControlElementBase(element);\n }\n itemHandleDownArrowKey(e, index) {\n this.setFocusToNext(index, true);\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n this.setFocusToPrevious(index, true);\n return true;\n }\n}\n","/**\n* DevExpress Analytics (core\\tools\\tabPanel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { getResizableOptions } from '../utils/_utils';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { extend } from '../../serializer/_utils';\nimport { SvgTemplatesEngine } from '../../property-grid/widgets/internal/_svgTemplateEngine';\nimport { accessibilityFontSizeZoomFactor } from '../../accessibility/_internal';\nimport { RightPanelKeyboardHelper } from '../../accessibility/_rightPanelKeyboardHelper';\nexport class TabPanel extends Disposable {\n constructor(options) {\n super();\n this.tabs = [];\n this.collapsed = ko.observable(false);\n this.position = ko.observable(TabPanel.Position.Right);\n this.toggleCollapsedText = ko.pureComputed(() => {\n var actionString = this.collapsed() ? 'Open' : 'Collapse';\n return getLocalization(actionString, 'ASPxReportsStringId.SidePanel_' + actionString);\n });\n this.cssClasses = (extendOptions) => {\n return extend({\n 'dxrd-tab-panel-left': this.position() === TabPanel.Position.Left,\n 'dxrd-tab-panel-right': this.position() === TabPanel.Position.Right,\n 'dxrd-tab-panel-empty': this.isEmpty()\n }, extendOptions);\n };\n var tabs = options.tabs;\n var autoSelectTab = options.autoSelectTab;\n if (options.rtl)\n this.position(TabPanel.Position.Left);\n var zoomFactor = accessibilityFontSizeZoomFactor();\n var _self = this;\n this.tabs = tabs;\n if (tabs && tabs.length) {\n this._disposables.push(this.isEmpty = ko.computed(() => this.tabs.every(tab => !tab.visible())));\n this.tabs.forEach(tab => {\n tab.collapsed = this.collapsed;\n });\n }\n else\n this.isEmpty = ko.observable(true);\n this._disposables.push(ko.computed(() => {\n var visibleTabs = tabs.filter((tab) => { return tab.visible(); });\n if (visibleTabs.length !== 0) {\n if (visibleTabs.filter((tab) => { return tab.active.peek(); }).length === 0) {\n visibleTabs[0].active(true);\n if (autoSelectTab) {\n this.collapsed(true);\n }\n }\n }\n else {\n this.collapsed(true);\n }\n }));\n this._disposables.push(ko.computed(() => {\n var disabledTabs = tabs.filter((tab) => { return tab.disabled(); });\n if (disabledTabs.length !== 0) {\n if (disabledTabs.filter((tab) => { return tab.active.peek(); }).length !== 0) {\n disabledTabs.forEach(t => t.active(false));\n var nextSelectedTab = tabs.filter((tab) => { return !tab.disabled.peek() && tab.visible.peek(); })[0];\n if (nextSelectedTab) {\n this.selectTab({ model: nextSelectedTab });\n }\n }\n }\n }));\n if (autoSelectTab) {\n this.tabs.forEach((tab) => {\n this._disposables.push(tab.active.subscribe((newVal) => {\n if (newVal) {\n this.selectTab({ model: tab });\n }\n }));\n });\n }\n this.toggleTabVisibility = (e) => {\n var selectedTab = e.model;\n var activeTab = this.tabs.filter((tab) => tab.active())[0];\n if (selectedTab === activeTab) {\n this.collapsed(!this.collapsed());\n }\n else {\n this.selectTab(e);\n }\n };\n this.selectTab = (e) => {\n var selectedTab = e.model;\n if (!selectedTab.disabled()) {\n this.tabs.forEach(function (tab) {\n tab.active(tab === selectedTab);\n });\n this.collapsed(false);\n }\n };\n var _width = ko.observable((options.width || 370) * zoomFactor);\n this._disposables.push(this.width = ko.pureComputed({\n read: () => { return this.collapsed() ? 0 : _width(); },\n write: (newWidth) => { _width(newWidth); }\n }));\n this._disposables.push(this.headerWidth = ko.pureComputed(() => { return this.isEmpty() ? 0 : (50 * zoomFactor + (this.collapsed() ? 0 : this.width())); }));\n this.getResizableOptions = ($element, panelOffset, minWidth) => {\n if (!this._resizableOptions || this._resizableOptions.$element !== $element) {\n this._resizableOptions = getResizableOptions($element, zoomFactor * panelOffset, minWidth, _self.position(), TabPanel.Position.Left, _self.width, _self.collapsed);\n _self._disposables.push(_self.position.subscribe((newVal) => {\n this._resizableOptions.handles(newVal === TabPanel.Position.Left ? 'e' : 'w');\n }));\n _self._disposables.push(_self.collapsed.subscribe((isCollapsed) => {\n this._resizableOptions.minimumWidth(isCollapsed ? 0 : minWidth);\n }));\n }\n return this._resizableOptions;\n };\n this._disposables.push({\n dispose: () => {\n this._resizableOptions = null;\n this.getResizableOptions = null;\n }\n });\n this._disposables.push(this.toggleCollapsedImage = ko.pureComputed(() => {\n var postfix = this.collapsed() ? '-expand' : '-collapse';\n return { class: 'dxrd-image-propertygrid' + postfix, template: 'dxrd-svg-tabs' + postfix };\n }));\n this.keyboardHelper = new RightPanelKeyboardHelper(this);\n this._disposables.push(this.toggleCollapsedText, this.keyboardHelper);\n }\n dispose() {\n super.dispose();\n this.disposeArray(this.tabs);\n }\n getTabByName(tabName) {\n return this.tabs.filter(x => x.name === tabName)[0];\n }\n}\nTabPanel.Position = {\n Left: 'Left',\n Right: 'Right'\n};\nexport class TabInfo extends Disposable {\n constructor(options) {\n super();\n this.active = ko.observable(false);\n this.visible = ko.observable();\n this.disabled = ko.observable();\n var imageBaseName = options.imageClassName || options.text.toLowerCase();\n this._text = options.text;\n this.name = options.text;\n this._localizationId = options.localizationId;\n this._disposables.push(this.imageClassName = ko.pureComputed(() => {\n return 'dxrd-image-' + imageBaseName;\n }));\n this.imageTemplateName = options.imageTemplateName || SvgTemplatesEngine.getExistingTemplate('dxrd-svg-tabs-' + options.text.toLowerCase());\n this.template = options.template;\n this._disposables.push(options.model, options.keyboardHelper);\n var computedVisible = options.visible;\n var computedDisabled = options.disabled;\n this._disposables.push(this.visible = ko.pureComputed(() => { return computedVisible !== undefined ? computedVisible() : true; }));\n this._disposables.push(this.disabled = ko.pureComputed(() => { return computedDisabled !== undefined ? computedDisabled() : false; }));\n this._disposables.push(this.visible.subscribe((visibility) => {\n if (!visibility) {\n this.active(false);\n }\n }));\n computedVisible && this._disposables.push(computedVisible);\n computedDisabled && this._disposables.push(computedDisabled);\n this.model = options.model;\n this.keyboardHelper = options.keyboardHelper;\n if (this.keyboardHelper)\n this._disposables.push(ko.computed(() => {\n if (this.active() && this.collapsed && !this.collapsed())\n this.focus();\n }).extend({ rateLimit: 0 }));\n }\n focus() {\n this.keyboardHelper && this.keyboardHelper.focus(document.getElementsByClassName('dxrd-tab-item dxd-state-active')[0]);\n }\n get text() {\n return getLocalization(this._text, this._localizationId);\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\_propertiesAccessibilityProvider.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class PropertiesAccessibilityProvider {\n isPropertyVisible(editor) {\n if (!editor._model())\n return false;\n var model = editor._model();\n var visible = model.isPropertyVisible ? model.isPropertyVisible(editor.name) : true;\n if (visible) {\n visible = this._calculateAccessibilityByPropertyInfo(model, editor.info().visible, true);\n }\n return visible;\n }\n isPropertyDisabled(editor) {\n if (!editor._model())\n return true;\n var model = editor._model();\n return model.isPropertyDisabled && model.isPropertyDisabled(editor.name) || this._calculateAccessibilityByPropertyInfo(model, editor.info().disabled, false);\n }\n _calculateAccessibilityByPropertyInfo(model, propertyInfo, defaultValue) {\n var result;\n if (ko.isObservable(propertyInfo)) {\n result = propertyInfo();\n }\n else if (typeof propertyInfo === 'function') {\n result = propertyInfo(model);\n }\n else {\n result = propertyInfo !== undefined ? propertyInfo : defaultValue;\n }\n return result;\n }\n}\nexport var defaultAccessibilityProvider = new PropertiesAccessibilityProvider();\n","/**\n* DevExpress Analytics (property-grid\\widgets\\editorValidator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '../../serializer/utils';\nimport validationEngine from 'devextreme/ui/validation_engine';\nimport { extend } from '../../serializer/_utils';\nexport class EditorValidator extends Disposable {\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._lastValidatorOptions = null;\n this._lastModelOverridableRules = null;\n this._onValidatedHandler = undefined;\n }\n dispose() {\n this.onValidatedHandler = null;\n this.validatorInstance && this.validatorInstance.dispose();\n this.validatorInstance = null;\n super.dispose();\n }\n _isValid(validationRules, newValue) {\n this.onValidatedHandler = undefined;\n if (this.validatorInstance) {\n (validationRules || []).forEach(rule => rule && (rule.validator = this.validatorInstance));\n return this.validatorInstance.validate();\n }\n else {\n return validationEngine['validate'](newValue, validationRules, this._editor.displayName());\n }\n }\n get validatorInstance() {\n return this._validatorInstance;\n }\n set validatorInstance(newValue) {\n if (this._validatorInstance && this.onValidatedHandler) {\n this._validatorInstance.off('validated', this._onValidatedHandler);\n }\n this._validatorInstance = newValue;\n }\n get onValidatedHandler() {\n return this._onValidatedHandler;\n }\n set onValidatedHandler(newValue) {\n if (this._onValidatedHandler && this.validatorInstance) {\n this.validatorInstance.off('validated', this._onValidatedHandler);\n this._onValidatedHandler = newValue;\n if (newValue) {\n this.validatorInstance.on('validated', this._onValidatedHandler);\n }\n }\n }\n getValidationRules() {\n var options = this.getValidatorOptions();\n var resultRules = (options || {}).validationRules;\n return resultRules || (resultRules === null ? null : []);\n }\n getValidatorOptions(templateValidatorOptions = {}) {\n var info = this._editor.info.peek();\n if (!info)\n return;\n var options = this._lastValidatorOptions;\n var modelOverridableRules = this._editor._getEditorValidationRules();\n if (options && !this.areRulesChanged(modelOverridableRules)) {\n return options;\n }\n this._lastModelOverridableRules = modelOverridableRules;\n var extendedValidationRules = this._concatValidationRules(info.validatorOptions, modelOverridableRules);\n var extendedValidatorOptions = info.editor.extendedOptions && info.editor.extendedOptions.validatorOptions;\n var options = extend({}, templateValidatorOptions, info.validatorOptions, { validationRules: extendedValidationRules }, extendedValidatorOptions);\n this._wrapValidatorEvents(options);\n this._lastValidatorOptions = options;\n return options;\n }\n areRulesChanged(overridableRuleSet) {\n if (!(this._lastModelOverridableRules && this._lastModelOverridableRules.length)) {\n return overridableRuleSet && overridableRuleSet.length;\n }\n else if (!overridableRuleSet || !overridableRuleSet.length) {\n return true;\n }\n else {\n return !overridableRuleSet.every(newRule => {\n return this._lastModelOverridableRules.some(rule => {\n return newRule.message === rule.message && newRule.validationCallback === rule.validationCallback && newRule.type === rule.type;\n });\n });\n }\n }\n wrapOnValidatorInitialized(options) {\n var onInitializedHandler = options.onInitialized;\n var _this = this;\n options.onInitialized = function (e) {\n _this._onValidatorInitialized(e);\n onInitializedHandler && onInitializedHandler.apply(this, arguments);\n };\n }\n _onValidatorInitialized(e) {\n this.validatorInstance = e && e.component;\n }\n _concatValidationRules(validatorOptions, validationRules) {\n if ((!validatorOptions || !validatorOptions.validationRules) && !validationRules) {\n return null;\n }\n return ((validatorOptions || {}).validationRules || []).concat(validationRules || []);\n }\n _wrapValidatorEvents(validatorOptions) {\n if (!validatorOptions || !validatorOptions.validationRules || !validatorOptions.validationRules.length) {\n return;\n }\n this.wrapOnValidatorInitialized(validatorOptions);\n return validatorOptions;\n }\n assignWithValidation(newValue, assignValueFunc) {\n var validationRules = this.getValidationRules();\n var assignValueFirst = !validationRules || validationRules.some(x => x.assignValueFirst);\n if (assignValueFirst) {\n assignValueFunc();\n }\n var validationResult = this._isValid(validationRules, newValue);\n if (!validationResult.isValid) {\n if (validationResult.brokenRule && validationResult.brokenRule['isDeferred']) {\n this.onValidatedHandler = (result) => {\n this.onValidatedHandler = undefined;\n if (!result.isValid)\n return;\n assignValueFunc();\n };\n }\n return;\n }\n if (!assignValueFirst) {\n assignValueFunc();\n }\n }\n}\n","/**\n* DevExpress Analytics (core\\internal\\_validation.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nconst restrictedNames = ['Name', 'Version'];\nexport function validateName(nameCandidate) {\n if (!nameCandidate)\n return false;\n var letter = '\\\\u0041-\\\\u005A\\\\u0061-\\\\u007A\\\\u00AA\\\\u00B5\\\\u00BA\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376-\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E-\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5-\\\\u06E6\\\\u06EE-\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F-\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC-\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0-\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F-\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32-\\\\u0A33\\\\u0A35-\\\\u0A36\\\\u0A38-\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2-\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0-\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F-\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32-\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C-\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99-\\\\u0B9A\\\\u0B9C\\\\u0B9E-\\\\u0B9F\\\\u0BA3-\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0-\\\\u0CE1\\\\u0CF1-\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32-\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81-\\\\u0E82\\\\u0E84\\\\u0E87-\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA-\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2-\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065-\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16F1-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE-\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5-\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2183-\\\\u2184\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3006\\\\u3031-\\\\u3035\\\\u303B-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A-\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6E5\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AD\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5-\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40-\\\\uFB41\\\\uFB43-\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC';\n var pattern = new RegExp('^[' + letter + '_][' + letter + '_\\\\d]*$');\n return pattern.test(nameCandidate) && restrictedNames.every(name => nameCandidate != name);\n}\nexport function replaceInvalidSymbols(text) {\n return text.replace(/[\\W_]+/g, '_');\n}\nexport var nameValidationRules = [\n {\n type: 'custom',\n validationCallback: (options) => { return validateName(options.value); },\n get message() {\n return getLocalization('Name is required and should be a valid identifier.', 'AnalyticsCoreStringId.NameIsRequired_Error');\n }\n }\n];\n","/**\n* DevExpress Analytics (core\\utils\\_units.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport function roundingXDecimals(value, useFloor = false, x = 3) {\n return (useFloor ? Math.floor : Math.round)(value * Math.pow(10, x)) / Math.pow(10, x);\n}\nexport function unitsToPixel(val, measureUnit, zoom = 1) {\n var result;\n if (measureUnit === 'Pixels') {\n result = 1 * val;\n }\n else if (measureUnit === 'TenthsOfAMillimeter') {\n result = val * 3.78 / 10;\n }\n else {\n result = val * 96 / 100;\n }\n result = result * (zoom);\n return roundingXDecimals(result, true);\n}\nexport function pixelToUnits(val, measureUnit, zoom) {\n var result;\n if (measureUnit === 'Pixels') {\n result = 1 * val;\n }\n else if (measureUnit === 'TenthsOfAMillimeter') {\n result = val / 3.78 * 10;\n }\n else {\n result = val / 96 * 100;\n }\n result = result / (zoom);\n return roundingXDecimals(result);\n}\nexport function createUnitProperty(model, target, propertyName, property, measureUnit, zoom, afterCreation) {\n var lastVal = 0;\n target[propertyName] = ko.pureComputed({\n read: () => {\n var val = property(model)(), newVal = unitsToPixel(val, measureUnit.peek(), zoom());\n if (Math.abs(newVal - lastVal) > 0.2) {\n lastVal = newVal;\n return lastVal;\n }\n return lastVal;\n },\n write: (val) => {\n if (Math.abs(val - lastVal) <= 0.2)\n return;\n lastVal = val;\n var result = pixelToUnits(val, measureUnit.peek(), zoom());\n property(model)(result);\n }\n });\n afterCreation(target[propertyName]);\n}\nexport function createUnitProperties(model, target, properties, measureUnit, zoom, afterCreation) {\n if (!properties)\n return;\n Object.keys(properties).forEach(propertyName => {\n createUnitProperty(model, target, propertyName, properties[propertyName], measureUnit, zoom, afterCreation);\n });\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\editor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { findMatchesInString, compareEditorInfo } from './internal/_utils';\nimport { defaultAccessibilityProvider } from '../_propertiesAccessibilityProvider';\nimport { EditorValidator } from './editorValidator';\nimport { getLocalization } from '../localization/localization_utils';\nimport { propertiesGridEditorsPaddingLeft } from './internal/_internal';\nimport { editorTemplates } from './editorsInfo';\nimport config from 'devextreme/core/config';\nimport { extend } from '../../serializer/_utils';\nimport { replaceInvalidSymbols } from '../../core/internal/_validation';\nimport { roundingXDecimals } from '../../core/utils/_units';\nexport class Editor extends Disposable {\n constructor(modelPropertyInfo, level, parentDisabled = ko.observable(false), textToSearch = undefined) {\n super();\n this._model = ko.observable();\n this._parent = ko.observable(null);\n this.isSearchedProperty = ko.observable(true);\n this.isParentSearched = ko.observable(false);\n this.rtl = config().rtlEnabled;\n this._accessibilityProvider = ko.observable(defaultAccessibilityProvider);\n this._validator = new EditorValidator(this);\n this._cachedValue = undefined;\n this.isEditorSelected = ko.observable(false);\n this.isRequired = false;\n this.isRendered = ko.observable(false);\n this.collapsed = ko.observable(true);\n this.info = ko.observable(modelPropertyInfo);\n this._disposables.push(this.displayName = ko.computed({\n read: () => {\n var info = this.info();\n return info && getLocalization(info.displayName, info['localizationId']);\n },\n write: (value) => { }\n }));\n if (textToSearch) {\n this.textToSearch = textToSearch;\n this._disposables.push(this.isSearchedProperty = ko.computed(() => {\n return this.isParentSearched() || !!findMatchesInString(this.displayName(), textToSearch());\n }));\n }\n this.padding = this._setPadding(this.rtl ? 'right' : 'left', level * propertiesGridEditorsPaddingLeft());\n var defaultValue = ko.observable(null), propertyName = modelPropertyInfo.propertyName;\n this._disposables.push(this._editorOptions = ko.pureComputed(() => this.info().editorOptions));\n this.validatorOptions = modelPropertyInfo.validatorOptions;\n this.isRequired = modelPropertyInfo.isRequired;\n if (modelPropertyInfo.defaultVal !== undefined) {\n defaultValue = ko.observable(modelPropertyInfo.defaultVal);\n }\n if (modelPropertyInfo.from) {\n defaultValue = modelPropertyInfo.from(modelPropertyInfo.defaultVal);\n }\n if (modelPropertyInfo.array) {\n defaultValue = ko.observableArray();\n }\n this._disposables.push(this.values = ko.computed(() => {\n var _values = this.info().valueStore || this.info().valuesArray;\n if (_values) {\n return _values;\n }\n _values = ko.unwrap(this.info().values);\n if (_values) {\n return $.map(_values, (displayValue, value) => {\n return { value: value, displayValue: displayValue };\n });\n }\n }));\n this.level = level;\n this._init(modelPropertyInfo.editor, defaultValue, propertyName);\n this._disposables.push(this.disabled = ko.computed(() => {\n return parentDisabled() || this._accessibilityProvider() && this._accessibilityProvider().isPropertyDisabled(this);\n }));\n this._disposables.push(this.visible = ko.computed(() => {\n return this.isSearchedProperty() && this._accessibilityProvider() && this._accessibilityProvider().isPropertyVisible(this);\n }));\n this._disposables.push(this.isPropertyModified = ko.computed(() => {\n return !!(this._model() && this._model().isPropertyModified && this._model().isPropertyModified(this.name));\n }));\n this._disposables.push(this.isPropertyHighlighted = ko.pureComputed(() => {\n if (this._shouldSkipHighlighting(this.name))\n return false;\n var controlModel = this._model();\n return !!(controlModel && controlModel.isPropertyHighlighted && controlModel.isPropertyHighlighted(this.name));\n }));\n }\n _setPadding(position, value) {\n var obj = {};\n obj['padding-' + position] = value;\n return obj;\n }\n dispose() {\n this._validator && this._validator.dispose();\n this._validator = null;\n super.dispose();\n this._cachedValue = null;\n this._model(null);\n }\n _shouldSkipHighlighting(propertyName) {\n return this.isComplexEditor;\n }\n _assignValue(modelValue, model, newValue, name) {\n if (ko.isObservable(modelValue)) {\n modelValue(newValue);\n }\n else {\n model[name] = newValue;\n }\n }\n _roundTwoDesemialsForUnitProperties(value, model, propertyName) {\n var properties = model && model['constructor'] && model['constructor'].unitProperties;\n if (!properties || properties.indexOf(propertyName) === -1)\n return value;\n return roundingXDecimals(value);\n }\n _init(editorTemplate, value, name) {\n editorTemplate = editorTemplate || editorTemplates.getEditor('text');\n this.templateName = editorTemplate.header;\n this.contentTemplateName = editorTemplate.content;\n this._cachedValue = undefined;\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var model = this._model();\n if (!model && this._cachedValue) {\n return this._cachedValue;\n }\n var modelValue = model && model[name] !== undefined ? model[name] : value;\n if (ko.isObservable(modelValue) && !modelValue['push']) {\n var hasValueInModel = modelValue() !== undefined && modelValue() !== null;\n this._cachedValue = hasValueInModel ? this._roundTwoDesemialsForUnitProperties(modelValue(), model, name) : this.defaultValue;\n return this._cachedValue;\n }\n else {\n this._cachedValue = modelValue;\n return this._cachedValue;\n }\n },\n write: (newValue) => {\n var model = this._model();\n if (!model) {\n return;\n }\n var modelValue = model[name];\n this._validator.assignWithValidation(newValue, () => {\n this._assignValue(modelValue, model, newValue, name);\n });\n }\n }));\n this.name = name;\n this.editorTemplate = editorTemplate && editorTemplate.custom || 'dx-property-editor';\n }\n _getInfoFromModel(viewModel) {\n if (!viewModel)\n return null;\n var modelInfo = viewModel['getInfo'] && viewModel['getInfo']();\n if (modelInfo) {\n return modelInfo.filter(property => property.propertyName === this.name)[0];\n }\n return null;\n }\n update(viewModel) {\n if (!!viewModel) {\n var propertyInfo = this._getInfoFromModel(viewModel);\n var isSameEditorType = propertyInfo && compareEditorInfo(propertyInfo.editor, this.info().editor);\n if (isSameEditorType && this.info() !== propertyInfo) {\n this.info(propertyInfo);\n }\n this._model(this.name in viewModel && (isSameEditorType || !propertyInfo) ? viewModel : null);\n }\n else {\n this._model(null);\n }\n }\n getOptions(templateOptions) {\n var extendedOptions = this.info.peek().editor.extendedOptions;\n return extend(true, {}, templateOptions, this.editorOptions, extendedOptions);\n }\n getValidatorOptions(templateValidatorOptions) {\n return this._validator && this._validator.getValidatorOptions(templateValidatorOptions);\n }\n registerAccessibilityProvider(accessibilityProvider) {\n if (this._accessibilityProvider() != accessibilityProvider)\n this._accessibilityProvider(accessibilityProvider);\n }\n assingParent(parent) {\n if (this._parent() != parent)\n this._parent(parent);\n }\n _getEditorValidationRules() {\n var info = ko.unwrap(this.info);\n if (!info)\n return;\n var validationRules = info.validationRules;\n return validationRules || (validationRules === null ? null : []);\n }\n getValidationRules() {\n return this._validator && this._validator.getValidationRules();\n }\n get validationRules() {\n return this.getValidationRules();\n }\n getIdByDisplayName(preffix) {\n return preffix + '-' + replaceInvalidSymbols(this.displayName());\n }\n getPopupServiceActions() {\n if (!this._model()) {\n return;\n }\n var actions = (this._model().actions || []).concat();\n (this._model().actionProviders || [])\n .forEach((provider) => {\n var additionalActions = provider && provider.getActions(this.name) || [];\n additionalActions.forEach((action) => actions.push(action));\n });\n return actions;\n }\n get editorOptions() { return ko.unwrap(this._editorOptions); }\n get isComplexEditor() { return !!this.contentTemplateName; }\n}\n","/**\n* DevExpress Analytics (property-grid\\internal\\_addon.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class EditorAddOn extends Disposable {\n constructor(editor, popupService) {\n super();\n this.templateName = null;\n this._editor = editor;\n this._popupService = popupService;\n this._disposables.push(this._actions = ko.pureComputed(() => {\n return (editor.getPopupServiceActions() || []).filter(x => this.actionFilter(x));\n }));\n this._disposables.push(this.visible = ko.pureComputed(() => {\n return this._actions().length > 0;\n }));\n this._disposables.push(this.hint = ko.pureComputed(() => {\n var acc = [];\n this._actions().forEach(x => this._getTitles(x, [], acc));\n return acc.join('\\n');\n }));\n this._disposables.push(this.editorMenuButtonCss = ko.pureComputed(() => {\n var editorModel = editor._model();\n return editorModel && editorModel['getActionClassName'] && editorModel['getActionClassName'](editor.name) || '';\n }));\n this._disposables.push(this.imageTemplateName = ko.pureComputed(() => {\n var editorModel = editor._model();\n return editorModel && editorModel['getMenuBoxTemplate'] && editorModel['getMenuBoxTemplate'](editor.name) || '';\n }));\n }\n _updateActions(actions) {\n this._popupService.actions([]);\n if (!actions || !actions.length)\n return;\n actions\n .sort((x, y) => (x.title < y.title ? -1 : x.title > y.title ? 1 : 0))\n .sort((x, y) => (x.weight || 0) - (y.weight || 0));\n this._wrapVisibleItems(actions, this._editor.name).forEach(visibleItem => {\n this._popupService.actions.push(visibleItem);\n });\n }\n _getTitles(item, currentItemPath = [], acc = []) {\n var title = ko.unwrap(item.title);\n (item.items || []).forEach(x => {\n var nextPath = title ? currentItemPath.concat([title]) : currentItemPath;\n this._getTitles(x, nextPath, acc);\n });\n var hint = ko.unwrap(item.hint);\n if (!hint || !title)\n return;\n var resultTitle = currentItemPath.concat([title]).join('. ');\n acc.push(resultTitle + ':\\n' + hint + '\\n');\n return acc;\n }\n _wrapVisibleItems(actions, editorName) {\n if (!actions)\n return undefined;\n return actions.map(modelAction => this._wrapActionClick(modelAction, editorName)).filter(x => !!x);\n }\n _wrapActionClick(modelAction, editorName) {\n if (this.actionFilter(modelAction)) {\n return {\n id: modelAction.id,\n items: this._wrapVisibleItems(modelAction.items, editorName),\n innerTemplate: modelAction.innerTemplate,\n itemTemplate: modelAction.itemTemplate,\n action: () => {\n modelAction.action(editorName);\n this._popupService.visible(false);\n },\n title: modelAction.title,\n hint: modelAction.hint,\n visible: () => { return true; }\n };\n }\n else {\n return null;\n }\n }\n showPopup(_, element) {\n this._popupService.title(this._editor.displayName());\n this._updateActions(this._editor.getPopupServiceActions());\n this._popupService.target(element);\n this._popupService.visible(true);\n }\n actionFilter(action) {\n return action.visible(this._editor.name);\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\propertygrid.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../serializer/utils';\nimport { defaultAccessibilityProvider } from './_propertiesAccessibilityProvider';\nimport { Editor } from './widgets/editor';\nimport { compareEditorInfo, findMatchesInString } from './widgets/internal/_utils';\nimport { EditorAddOn } from './internal/_addon';\nimport config from 'devextreme/core/config';\nimport { isEmptyObject } from '../serializer/_utils';\nexport class ObjectProperties extends Disposable {\n constructor(viewModel, editorsInfo, level = 0, parentDisabled = ko.observable(false), recreateEditors = false, textToSearch, popupService) {\n super();\n this._viewModelSubscription = null;\n this._infoSubscription = null;\n this._getInfoComputed = null;\n this._accessibilityProvider = defaultAccessibilityProvider;\n this.level = 0;\n this.rtl = config()['rtlEnabled'];\n if (popupService) {\n this.createEditorAddOn = (editor) => {\n var editorAddOn = new EditorAddOn(editor, this.popupService);\n editor._disposables.push(editorAddOn);\n return {\n templateName: 'dx-editor-addons',\n data: [editorAddOn]\n };\n };\n this.popupService = popupService;\n }\n this._editors = ko.observableArray([]).extend({ deferred: true });\n this.level = level;\n this._parentDisabled = parentDisabled;\n this._textToSearch = textToSearch;\n this._disposables.push(this.visible = ko.computed(() => {\n return this._editors().some(editor => editor.visible());\n }));\n this._viewModelSubscription = viewModel.subscribe((newVal) => {\n this._infoSubscription && this._infoSubscription.dispose();\n this._getInfoComputed && this._getInfoComputed.dispose();\n this._update(newVal, editorsInfo, recreateEditors);\n });\n this._update(viewModel(), editorsInfo, recreateEditors);\n }\n update(viewModel) {\n if (viewModel) {\n this._editors().forEach((editor) => {\n editor.update(viewModel);\n });\n }\n }\n _cleanEditorsSubscriptions() {\n this._editors().forEach((editor) => {\n editor.dispose();\n Object.keys(editor).forEach(name => {\n if (ko.isComputed(editor[name])) {\n editor[name].dispose();\n }\n });\n });\n }\n dispose() {\n super.dispose();\n this.disposeObservableArray(this._editors);\n this.resetObservableArray(this._editors);\n this.cleanSubscriptions();\n }\n cleanSubscriptions() {\n this._infoSubscription && this._infoSubscription.dispose();\n this._getInfoComputed && this._getInfoComputed.dispose();\n this._viewModelSubscription && this._viewModelSubscription.dispose();\n this._cleanEditorsSubscriptions();\n }\n cleanEditors() {\n this._cleanEditorsSubscriptions();\n this.resetObservableArray(this._editors);\n }\n findEditorByInfo(serializationInfo) {\n return this._editors().filter(editor => editor.name === serializationInfo.propertyName && compareEditorInfo(editor.info().editor, serializationInfo.editor))[0];\n }\n createEditor(modelPropertyInfo) {\n var editorType = modelPropertyInfo.editor && modelPropertyInfo.editor.editorType || Editor;\n var editor = new editorType(modelPropertyInfo, this.level, this._parentDisabled, this._textToSearch, this.popupService);\n editor.assingParent(this._parent);\n editor.registerAccessibilityProvider(this._accessibilityProvider);\n return editor;\n }\n createEditors(serializationInfo) {\n var self = this;\n return (serializationInfo || [])\n .filter(info => { return !!info.editor && !this.findEditorByInfo(info); })\n .map(info => { return this.createEditor(info); });\n }\n registerAccessibilityProvider(accessibilityProvider) {\n this._accessibilityProvider = accessibilityProvider;\n this._editors().forEach((editor) => {\n editor.registerAccessibilityProvider(accessibilityProvider);\n });\n }\n assignParent(parent) {\n this._parent = parent;\n this._editors().forEach((editor) => {\n editor.assingParent(parent);\n });\n }\n _createEditors(serializationInfo) {\n if (!serializationInfo || serializationInfo.length === 0)\n return false;\n var newEditors = this.createEditors(serializationInfo);\n if (!newEditors.length)\n return;\n var currentEditors = this._editors();\n if (currentEditors.length === 0) {\n currentEditors = newEditors;\n }\n else {\n newEditors.forEach((editor) => {\n var existEditorIndex = currentEditors.map(_editor => _editor.name).indexOf(editor.name);\n if (existEditorIndex !== -1)\n currentEditors.splice(existEditorIndex, 0, editor);\n else\n currentEditors.push(editor);\n });\n }\n this._editors(currentEditors);\n }\n _update(viewModel, editorsInfo, recreateEditors) {\n if (recreateEditors) {\n this.cleanEditors();\n }\n this._getInfoComputed = ko.computed(() => {\n return (editorsInfo && editorsInfo.editors && ko.unwrap(editorsInfo.editors))\n || (viewModel && viewModel['getInfo'] && viewModel['getInfo']());\n });\n this._infoSubscription = this._getInfoComputed.subscribe((newInfo) => {\n if (recreateEditors) {\n this.cleanEditors();\n }\n this._recreateEditors(viewModel, newInfo);\n });\n this._recreateEditors(viewModel, this._getInfoComputed());\n }\n _recreateEditors(viewModel, serializationInfo) {\n this._createEditors(serializationInfo);\n this.update(viewModel);\n }\n getEditors() {\n return this._editors();\n }\n}\nexport class PropertyGridEditor extends Editor {\n constructor(info, level, parentDisabled, textToSearch, _popupService) {\n super(info, level, parentDisabled, textToSearch);\n this._popupService = _popupService;\n this.editorCreated = ko.observable(false);\n this.viewmodel = this.createObjectProperties();\n if (!isEmptyObject(this.viewmodel)) {\n this.viewmodel.assignParent(this);\n }\n this._disposables.push(this.viewmodel);\n var subscription = this.collapsed.subscribe((newVal) => {\n if (!newVal) {\n subscription.dispose();\n this.editorCreated(true);\n }\n });\n this._disposables.push(subscription);\n if (textToSearch) {\n this._disposables.push(this.visibleByName = ko.computed(() => {\n var visible = !!findMatchesInString(this.displayName(), textToSearch());\n if (!isEmptyObject(this.viewmodel)) {\n this.viewmodel._editors().forEach((editor) => editor.isParentSearched(visible));\n }\n return visible;\n }));\n this.isSearchedProperty['dispose'] && this.isSearchedProperty['dispose']();\n this._disposables.push(this.isSearchedProperty = ko.computed(() => {\n if (this.visibleByName())\n return true;\n var visibleByEditors = this.viewmodel.visible();\n visibleByEditors && this.collapsed(false);\n return visibleByEditors;\n }));\n }\n }\n createObjectProperties() {\n return new ObjectProperties(this.value, { editors: ko.computed(() => { var _a, _b; return ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.getInfo) && ((_b = this.value()) === null || _b === void 0 ? void 0 : _b.getInfo()) || this.info().info; }) }, this.level + 1, this.disabled, undefined, this.textToSearch, this._popupService);\n }\n registerAccessibilityProvider(accessibilityProvider) {\n super.registerAccessibilityProvider(accessibilityProvider);\n this.viewmodel.registerAccessibilityProvider(accessibilityProvider);\n }\n}\nexport class PropertyGridEditorFlat extends PropertyGridEditor {\n createObjectProperties() {\n this.collapsed(false);\n this.editorCreated(true);\n this.level = -1;\n return super.createObjectProperties();\n }\n}\n","/**\n* DevExpress Analytics (core\\tools\\_tabInfoWithPropertyGrid.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { ObjectProperties } from '../../property-grid/propertygrid';\nimport { TabInfo } from './tabPanel';\nexport class TabInfoWithPropertyGrid extends TabInfo {\n constructor(options) {\n super(options);\n this.propertyGrid = new ObjectProperties(ko.observable(options.model), undefined, undefined, undefined, true);\n this._disposables.push(ko.computed(() => {\n var someRendered = this.propertyGrid.getEditors().some(editor => editor.visible && editor.isRendered());\n if (someRendered) {\n this.keyboardHelper && this.keyboardHelper.initialize();\n this.focus();\n }\n }));\n this._disposables.push(this.propertyGrid);\n }\n}\n","/**\n* DevExpress Analytics (serializer\\serializer.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { extend, isPlainObject, isEmptyObject } from './_utils';\nimport { serializeDate } from './utils';\nexport class ModelSerializer {\n constructor(options) {\n this._refTable = {};\n this._linkTable = {};\n this._options = extend({\n useRefs: true,\n serializeDate: serializeDate\n }, options);\n }\n linkObjects() {\n Object.keys(this._linkTable).forEach((index) => {\n var val = this._refTable[index];\n if (val) {\n this._linkTable[index].splice(0).forEach(property => property(val));\n }\n });\n }\n _getModel(model, propertyPath) {\n var currentModel = model;\n propertyPath.forEach((name) => {\n currentModel = currentModel[name];\n });\n return currentModel;\n }\n _collectLinks(model, internalModel, propertyPath, propertyName) {\n var refVal = model[propertyName].slice('#Ref-'.length);\n var value = ko.observable();\n this._linkTable[refVal] = this._linkTable[refVal] || [];\n this._linkTable[refVal].push(value);\n if (!internalModel._restoreLinks)\n internalModel._restoreLinks = [];\n internalModel._restoreLinks.push((model) => {\n var currentModel = this._getModel(model, propertyPath);\n return {\n setRef: (ref) => {\n if (ref === -1)\n delete currentModel[propertyName];\n else\n currentModel[propertyName] = '#Ref-' + ref;\n },\n obj: value()\n };\n });\n }\n _enumRefs(internalModel, propertyPath, propertyName) {\n if (!internalModel._refs)\n internalModel._refs = [];\n internalModel._refs.push((model, ref) => {\n this._getModel(model, propertyPath)[propertyName] = ref;\n });\n }\n _collectLinksAndEnumRefs(model, internalModel = null, propertyPath = []) {\n var start = internalModel === null;\n internalModel = internalModel || model;\n Object.keys(model).forEach((propertyName) => {\n if (model[propertyName] instanceof Object) {\n this._collectLinksAndEnumRefs(model[propertyName], internalModel, [].concat(propertyPath, [propertyName]));\n }\n else if (model[propertyName].indexOf && model[propertyName].indexOf('#Ref-') === 0) {\n this._collectLinks(model, internalModel, propertyPath, propertyName);\n }\n else if (!start && propertyName === '@Ref') {\n this._enumRefs(internalModel, propertyPath, propertyName);\n }\n });\n if (start)\n this.linkObjects();\n }\n setLinks(refs) {\n refs.linkObjTable.forEach(item => {\n var refValue = refs.objects.indexOf(item.obj);\n item.setRef(refValue);\n });\n }\n deserializeProperty(modelPropertyInfo, model) {\n var propName = modelPropertyInfo.modelName;\n if (!propName) {\n return;\n }\n var modelValue = model[propName] !== undefined ? model[propName] : modelPropertyInfo.defaultVal;\n return this.deserializePropertyValue(modelPropertyInfo, modelValue);\n }\n deserializeDefaultValue(modelPropertyInfo) {\n var value = this.deserializePropertyValue(modelPropertyInfo, modelPropertyInfo.defaultVal, false);\n return value || modelPropertyInfo.defaultVal;\n }\n deserializePropertyValue(modelPropertyInfo, modelValue, strict = true) {\n if (typeof modelPropertyInfo === 'string') {\n return ko.observable(modelValue);\n }\n else if (modelPropertyInfo.link) {\n var value = ko.observable(null);\n if (modelValue) {\n var refVal = modelValue && modelValue.slice('#Ref-'.length);\n this._linkTable[refVal] = this._linkTable[refVal] || [];\n this._linkTable[refVal].push(value);\n }\n return value;\n }\n else if (modelPropertyInfo.array) {\n if (modelPropertyInfo.from) {\n return modelPropertyInfo.from(modelValue, this);\n }\n else if (modelPropertyInfo.info) {\n var result = Object.keys(modelValue || {}).map(propertyName => {\n var object = { getInfo: () => { return modelPropertyInfo.info; } };\n this.deserialize(object, modelValue[propertyName] || {});\n return object;\n });\n return ko.observableArray(result);\n }\n return;\n }\n else if (modelPropertyInfo.from) {\n return modelPropertyInfo.from(modelValue, this);\n }\n else if (modelPropertyInfo.type) {\n var ctorResult = new modelPropertyInfo.type(modelValue, this, modelPropertyInfo.info);\n if (!ctorResult._model) {\n this.deserialize(ctorResult, modelValue || {}, modelPropertyInfo.info);\n }\n return ctorResult;\n }\n else if (modelPropertyInfo.info) {\n var object = { getInfo: () => { return modelPropertyInfo.info; } };\n this.deserialize(object, modelValue || {});\n return object;\n }\n else if (modelPropertyInfo.modelName) {\n return ko.observable(modelValue);\n }\n if (strict) {\n throw new Error(\"Invalid info '\" + JSON.stringify(modelPropertyInfo) + \"'\");\n }\n return;\n }\n deserialize(viewModel, model, serializationsInfo = null) {\n if (!model) {\n return;\n }\n viewModel._model = extend({}, model);\n var _serializationsInfo = viewModel.getInfo ? viewModel.getInfo() : serializationsInfo;\n var refValue = model['@Ref'];\n var proto = Object.getPrototypeOf(viewModel);\n _serializationsInfo.forEach((modelPropertyInfo) => {\n var propertyName = modelPropertyInfo.propertyName, propName = modelPropertyInfo.modelName;\n if (model[propName] !== undefined) {\n delete viewModel._model[propName];\n }\n var property = this.deserializeProperty(modelPropertyInfo, model);\n var descriptor = Object.getOwnPropertyDescriptor(proto, propertyName);\n if (property !== undefined && (!descriptor || !!descriptor.set))\n viewModel[propertyName] = property;\n if (!(propertyName in viewModel) && property === undefined && modelPropertyInfo.array) {\n var currentArray = ko.observable(undefined);\n Object.defineProperty(viewModel, propertyName, {\n get: () => {\n return currentArray();\n },\n set: (val) => {\n currentArray(val);\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n if (refValue) {\n this._refTable[refValue] = viewModel;\n }\n this.linkObjects();\n }\n serialize(viewModel, serializationsInfo, refs = null) {\n if (!serializationsInfo && !refs) {\n return this._serialize(viewModel, null, null);\n }\n return this._serialize(viewModel, serializationsInfo, refs);\n }\n _isSerializableValue(resultValue) {\n return (isPlainObject(resultValue) && !isEmptyObject(resultValue)) || (Array.isArray(resultValue) && resultValue['length'] > 0) || (!Array.isArray(resultValue) && !isPlainObject(resultValue));\n }\n serializeProperty(modelPropertyInfo, viewModel, serializationsInfo, refs, result) {\n var propertyName = modelPropertyInfo.propertyName, value = ko.unwrap(viewModel['_' + propertyName] || viewModel[propertyName]), defaultVal = modelPropertyInfo.defaultVal;\n if (modelPropertyInfo.beforeSerialize)\n value = modelPropertyInfo.beforeSerialize(value);\n if (!!modelPropertyInfo.from) {\n defaultVal = ko.unwrap(modelPropertyInfo.from(defaultVal, this));\n }\n var resultValue = {};\n if (!modelPropertyInfo.modelName) {\n return;\n }\n if (modelPropertyInfo.alwaysSerialize || ((value !== undefined && value !== null) && ((isPlainObject(value) || !isEmptyObject(value)) || (Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && !isPlainObject(value))) && (value !== defaultVal))) {\n if (modelPropertyInfo.link) {\n refs.linkObjTable.push({\n obj: value,\n setRef: (index) => {\n if (index < 0) {\n delete result[modelPropertyInfo.modelName];\n }\n else {\n result[modelPropertyInfo.modelName] = '#Ref-' + index;\n }\n }\n });\n resultValue = undefined;\n }\n else if (modelPropertyInfo.array) {\n resultValue = {};\n var index = 1;\n value.forEach(item => {\n var info = modelPropertyInfo.info || null;\n var item_ = this._serialize(item, info, refs);\n if (this._isSerializableValue(item_) || modelPropertyInfo.alwaysSerialize) {\n resultValue['Item' + index] = item_;\n if (this._options.useRefs) {\n item_['@Ref'] = (refs.objects.push(item) - 1).toString();\n }\n index++;\n }\n });\n }\n else if (modelPropertyInfo.from) {\n if (value['isEmpty'] && value['isEmpty']()) {\n resultValue = {};\n }\n else {\n resultValue = modelPropertyInfo.toJsonObject ? modelPropertyInfo.toJsonObject(value, this, refs) : value.toString();\n }\n }\n else if (modelPropertyInfo.info || value['getInfo']) {\n resultValue = this._serialize(value, modelPropertyInfo.info, refs);\n }\n else if (modelPropertyInfo.modelName) {\n if (value instanceof Date) {\n resultValue = this._options.serializeDate(value);\n }\n else {\n resultValue = value;\n }\n }\n else {\n throw new Error(\"Invalid info '\" + serializationsInfo.stringify() + \"'\");\n }\n if (modelPropertyInfo.alwaysSerialize || this._isSerializableValue(resultValue)) {\n if (modelPropertyInfo.asRef) {\n resultValue['@Ref'] = (refs.objects.push(value) - 1).toString();\n }\n result[modelPropertyInfo.modelName] = resultValue;\n }\n }\n }\n _serialize(viewModel, serializationsInfo, refs) {\n var result = extend(true, {}, viewModel._model), isInitial = refs === null;\n refs = refs || { linkObjTable: [], objects: [] };\n if (result._restoreLinks) {\n refs.linkObjTable.push.apply(refs.linkObjTable, result._restoreLinks.map(x => x(result)));\n delete result._restoreLinks;\n }\n if (result._refs) {\n result._refs.forEach(x => x(result, (refs.objects.push('0') - 1).toString()));\n delete result._refs;\n }\n serializationsInfo = viewModel.getInfo ? viewModel.getInfo() : serializationsInfo;\n delete result['@Ref'];\n if (viewModel['isEmpty'] && viewModel['isEmpty']())\n return {};\n serializationsInfo.forEach((modelPropertyInfo) => {\n this.serializeProperty(modelPropertyInfo, viewModel, serializationsInfo, refs, result);\n });\n if (isInitial)\n this.setLinks(refs);\n return result;\n }\n}\n","/**\n* DevExpress Analytics (core\\utils\\parsers.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { getShortTypeName } from '../internal/_getNameHelpers';\nexport function floatFromModel(val) {\n return ko.observable(val === undefined || val === null ? null : parseFloat(val));\n}\nexport function fromEnum(value) {\n var shotEnumValueKey = getShortTypeName(value);\n var valuesArrayItem = this.valuesArray && this.valuesArray.filter(item => item.value == shotEnumValueKey)[0];\n return ko.observable((this.values && this.values[shotEnumValueKey] !== undefined || valuesArrayItem) ? shotEnumValueKey : value);\n}\nexport function parseBool(val) {\n return ko.observable(val !== void 0 ? String(val).toLowerCase() === 'true' : val);\n}\nexport function colorFromString(val) {\n var color = (val || '').split(',');\n var result = ko.observable(val);\n if (color.length === 3) {\n result = ko.observable('rgb(' + color.join(', ') + ')');\n }\n else if (color.length === 4) {\n var alpha = Math.round(parseFloat(color[0]) / 255 * 100) / 100;\n color.shift();\n color.push(alpha.toString());\n result = ko.observable('rgba(' + color.join(', ') + ')');\n }\n return result;\n}\nexport function saveAsInt(val) {\n return Math.round(val).toString();\n}\nexport function colorToInt(color) {\n var colorAsString = colorToString(color).split(',');\n return (parseInt(colorAsString[0]) << 24) + (parseInt(colorAsString[1]) << 16) + (parseInt(colorAsString[2]) << 8) + (parseInt(colorAsString[3]));\n}\nexport function intToColor(color, hasAlpha = true) {\n var r = Math.round((color >> 16) & 0xff);\n var g = Math.round((color >> 8) & 0xff);\n var b = Math.round((color) & 0xff);\n if (hasAlpha) {\n var a = Math.round((color >> 24) & 0xff);\n return colorFromString([a, r, g, b].join(', '))();\n }\n else {\n return colorFromString([r, g, b].join(', '))();\n }\n}\nexport function colorToString(val) {\n var color = (val || '').split(', ');\n var result = val;\n if (color.length === 3) {\n color[0] = color[0].split('(')[1];\n color[2] = color[2].split(')')[0];\n result = color.join(',');\n }\n else if (color.length === 4) {\n var alpha = Math.round(parseFloat(color[3]) * 255);\n color.pop();\n color[0] = color[0].split('(')[1];\n result = alpha.toString() + ',' + color.join(',');\n }\n return result;\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\internal\\_bindingsCache.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport config from 'devextreme/core/config';\nimport * as ko from 'knockout';\nvar cache = {};\nfunction createBaseFunction(controlName, optionsName) {\n return function ($context, $index) {\n var obj = {};\n obj[controlName] = function () {\n if (optionsName === '$data')\n return $context.$data;\n return optionsName === undefined ? undefined : $context.$data[optionsName];\n };\n return obj;\n };\n}\nexport function registerBaseBinding(bindingName, optionsName) {\n addToBindingsCache(!optionsName ? bindingName : `${bindingName}: ${optionsName}`, createBaseFunction(bindingName, optionsName));\n}\nexport function addToBindingsCache(key, value) {\n cache[key] = value;\n}\nfunction getFromCache(key) {\n return cache[key];\n}\nregisterBaseBinding('svgAttrs');\nregisterBaseBinding('dxButtonWithTemplate', 'options');\nregisterBaseBinding('dxButton', 'options');\nregisterBaseBinding('dxCheckBox', 'options');\nregisterBaseBinding('dxToolbarBase', 'options');\nregisterBaseBinding('dxToolbar', 'options');\nregisterBaseBinding('treelist', 'options');\naddToBindingsCache('template: \\'dxrd-designer\\'', function ($context, $element) {\n return { 'template': function () { return 'dxrd-designer'; } };\n});\nvar currentParseBindingsString = ko.bindingProvider.prototype.parseBindingsString;\nko.utils.extend(ko.bindingProvider.prototype, {\n 'parseBindingsString': function (bindingsString, bindingContext, node, options) {\n try {\n var func = getFromCache(bindingsString.trim());\n if (func)\n return func(bindingContext, node);\n return currentParseBindingsString.call(ko.bindingProvider.instance, bindingsString, bindingContext, node, options);\n }\n catch (ex) {\n ex.message = 'Unable to parse bindings.\\nBindings value: ' + bindingsString + '\\nMessage: ' + ex.message;\n throw ex;\n }\n }\n});\nvar optionsParser = config()['optionsParser'];\nconfig({\n optionsParser: function (optionsString) {\n var func = getFromCache(optionsString.trim());\n if (func)\n return func();\n return optionsParser(optionsString);\n }\n});\n","/**\n* DevExpress Analytics (property-grid\\widgets\\templateUtils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from './internal/_svgTemplateEngine';\nexport function addTemplate(templateName, templateMarkup) {\n SvgTemplatesEngine.addTemplate(templateName, templateMarkup);\n}\nexport function getTemplate(id) {\n var id = id[0] === '#' ? id.substr(1) : id;\n var item = document.querySelector('#' + id);\n return item && item.innerHTML || SvgTemplatesEngine.templates[id];\n}\n","/**\n* DevExpress Analytics (undo-engine\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport function propertiesVisitor(target, visitor, visited = [], skip = ['surface']) {\n if (target && target !== undefined) {\n var properties = [];\n Object.keys(target).forEach((propertyName) => {\n if (propertyName.indexOf('_') !== 0 && skip.indexOf(propertyName) === -1) {\n var realPropertyName = propertyName;\n if (ko.isComputed(target[propertyName]) && ko.isWritableObservable(target['_' + propertyName])) {\n realPropertyName = '_' + realPropertyName;\n }\n if (visited.indexOf(target[realPropertyName]) === -1 && !ko.isComputed(target[realPropertyName])) {\n properties.push(target[realPropertyName]);\n }\n }\n });\n visitor(properties);\n visited.push.apply(visited, properties);\n properties.forEach((property) => {\n property = ko.unwrap(property);\n if (typeof property === 'object') {\n propertiesVisitor(property, visitor, visited, skip);\n }\n });\n }\n}\nexport function checkModelReady(model) {\n return model.isModelReady ? model.isModelReady() : true;\n}\nexport function guid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n","/**\n* DevExpress Analytics (undo-engine\\undoengine.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../serializer/utils';\nimport { checkModelReady, guid, propertiesVisitor } from './_utils';\nexport class _LatestChangeSet {\n constructor(changes, position) {\n this.changes = changes;\n this.position = position;\n }\n static Empty() {\n return new _LatestChangeSet(null, null);\n }\n equal(changeSet) {\n return this.changes === changeSet.changes && this.position === changeSet.position;\n }\n}\nvar activeEngines = [];\nexport class UndoEngine extends Disposable {\n constructor(target, _ignoredProperties = ['surface'], _getInfoMethodName, _alwaysSubscribeProperties = []) {\n super();\n this._ignoredProperties = _ignoredProperties;\n this._getInfoMethodName = _getInfoMethodName;\n this._alwaysSubscribeProperties = _alwaysSubscribeProperties;\n this._groupObservers = [];\n this._groupPosition = -1;\n this._observers = [];\n this._subscriptions = [];\n this._visited = [];\n this._position = ko.observable(-1);\n this._lockedPosition = ko.observable(-1);\n this._inUndoRedo = false;\n this._currentEngineName = UndoEngine._disposeUndoEngineSubscriptionsName + guid();\n this.redoEnabled = ko.observable(false);\n this.undoEnabled = ko.observable(false);\n this.isIngroup = -1;\n this.isDirty = ko.computed({\n read: () => { return this._position() !== this._lockedPosition(); },\n write: (value) => { value ? this._lockedPosition('forcibly marked as dirty') : this._lockedPosition(this._position()); }\n });\n activeEngines.push(this._currentEngineName);\n this._model = ko.unwrap(target);\n if (this._getInfoMethodName) {\n if (ko.isSubscribable(target)) {\n this._targetSubscription = this.subscribeProperty(target, true);\n }\n else {\n this._createDisposeFunction(target);\n }\n }\n else {\n var innerSubscriptions = this.subscribe(this._model);\n if (ko.isSubscribable(target)) {\n var prevVal = target();\n this._targetSubscription = target.subscribe((newTargetValue) => {\n this._removePropertiesSubscriptions();\n if (!this._inUndoRedo) {\n this.properyChanged({\n observable: target,\n propertyChanged: { oldVal: prevVal, val: newTargetValue }\n });\n prevVal = newTargetValue;\n }\n this._cleanSubscribtions(innerSubscriptions);\n this._model = newTargetValue;\n innerSubscriptions = this.subscribe(this._model);\n });\n }\n }\n this._disposables.push(this.isDirty);\n }\n static tryGetUndoEngine(object) {\n var undo = null;\n activeEngines.some(x => {\n undo = object[x] && object[x].instance;\n return !!undo;\n });\n return undo;\n }\n get _modelReady() {\n return checkModelReady(this._model);\n }\n _disposeObserver(record) {\n if (record.propertyChanged) {\n var value = record.propertyChanged.val;\n if (value && !value[this._currentEngineName]) {\n value.dispose && value.dispose();\n }\n }\n else if (record.arrayChanges) {\n record.arrayChanges.forEach(change => {\n if (change.status === 'added') {\n var value = change.value;\n if (value && !value[this._currentEngineName])\n value.dispose && value.dispose();\n }\n });\n }\n }\n _disposeRemovedRecord(record) {\n if (record.arrayChanges) {\n record.arrayChanges.forEach(change => {\n var _a, _b;\n if (change.status === 'deleted') {\n ((_a = change.value) === null || _a === void 0 ? void 0 : _a.dispose) && ((_b = change.value) === null || _b === void 0 ? void 0 : _b.dispose());\n }\n });\n }\n }\n _disposeObservers(removedItems, disposeRemovedRecords) {\n var disposalFunction = (disposeRemovedRecords ? this._disposeRemovedRecord : this._disposeObserver).bind(this);\n removedItems.forEach((changeSet) => {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => disposalFunction(item));\n }\n else {\n disposalFunction(changeSet);\n }\n });\n }\n properyChanged(undoRecord) {\n if (this._inUndoRedo) {\n return;\n }\n var currentPosition = this._position() + 1;\n if (currentPosition < this._observers.length) {\n var removedItems = this._observers.splice(currentPosition, this._observers.length);\n this._disposeObservers(removedItems, false);\n }\n this._observers.push(undoRecord);\n this._position(currentPosition);\n this.undoEnabled(true);\n this.redoEnabled(false);\n }\n visitProperties(target, info) {\n var subscribtions = [];\n if (target && info) {\n for (var i = 0; i < info.length; i++) {\n var alwaysSubscribeProperty = this._alwaysSubscribeProperties.some(x => x === info[i].propertyName);\n if (info[i].modelName || info[i].editor || info[i].info || alwaysSubscribeProperty) {\n var realPropertyName = alwaysSubscribeProperty ? info[i].propertyName : this.validatePropertyName(target, info[i].propertyName);\n if (realPropertyName) {\n if (!ko.isComputed(target[realPropertyName])) {\n if (!ko.isObservable(target[realPropertyName])) {\n subscribtions.push.apply([], this._createDisposeFunction(target[realPropertyName], info[i].info));\n }\n else {\n subscribtions.push(this.subscribeProperty(target[realPropertyName], !info[i].link));\n }\n }\n }\n }\n }\n }\n return subscribtions;\n }\n undoChangeSet(changeSet) {\n if (changeSet.propertyChanged) {\n changeSet.observable(changeSet.propertyChanged.oldVal);\n }\n else {\n var array = changeSet.observable();\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'added') {\n var addedIndex = array.indexOf(changeSet.arrayChanges[i].value);\n if (addedIndex != -1)\n array.splice(addedIndex, 1);\n }\n }\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'deleted') {\n array.splice(changeSet.arrayChanges[i].index, 0, changeSet.arrayChanges[i].value);\n }\n }\n if (ko.isObservable(changeSet.observable)) {\n changeSet.observable.valueHasMutated();\n }\n }\n }\n redoChangeSet(changeSet) {\n if (changeSet.propertyChanged) {\n changeSet.observable(changeSet.propertyChanged.val);\n }\n else {\n var array = changeSet.observable();\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'deleted') {\n array.splice(array.indexOf(changeSet.arrayChanges[i].value), 1);\n }\n }\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'added') {\n array.splice(changeSet.arrayChanges[i].index, 0, changeSet.arrayChanges[i].value);\n }\n }\n if (ko.isObservable(changeSet.observable)) {\n changeSet.observable.valueHasMutated();\n }\n }\n }\n _disposeChilds(target, info) {\n if (target && info) {\n for (var i = 0; i < info.length; i++) {\n if (info[i].modelName || info[i].editor || info[i].info) {\n var propertyName = info[i].propertyName;\n if (propertyName.indexOf('_') !== 0) {\n var realPropertyName = propertyName;\n if (ko.isWritableObservable(target['_' + propertyName])) {\n realPropertyName = '_' + realPropertyName;\n }\n if (!ko.isComputed(target[realPropertyName])) {\n var val = ko.unwrap(target[realPropertyName]);\n if (!!val && typeof val === 'object') {\n if (!info[i].link) {\n this._callDisposeFunction(val);\n }\n }\n }\n }\n }\n }\n }\n }\n _createDisposeFunction(val, info) {\n var subscriptions = [];\n if (val && typeof val === 'object') {\n var objectInfo = info || (val[this._getInfoMethodName] && val[this._getInfoMethodName]());\n if (!!objectInfo) {\n if (val[this._currentEngineName]) {\n val[this._currentEngineName].inc++;\n }\n else {\n val[this._currentEngineName] = { inc: 1, instance: this };\n subscriptions = this.subscribe(val, objectInfo);\n val[this._currentEngineName]['func'] = () => {\n val[this._currentEngineName].inc--;\n this._disposeChilds(val, objectInfo);\n if (val[this._currentEngineName].inc === 0) {\n this._cleanSubscribtions(subscriptions);\n delete val[this._currentEngineName];\n }\n };\n }\n }\n }\n return subscriptions;\n }\n _callDisposeFunction(val) {\n if (val) {\n if (Array.isArray(val)) {\n for (var i = 0; i < val.length; i++) {\n val[i][this._currentEngineName] && val[i][this._currentEngineName].func();\n }\n }\n else {\n val[this._currentEngineName] && val[this._currentEngineName].func();\n }\n }\n }\n _cleanSubscribtions(subscribtionArray) {\n if (subscribtionArray) {\n if (subscribtionArray.length) {\n for (var i = 0; i < subscribtionArray.length; i++) {\n this._cleanSubscribtions(subscribtionArray[i]);\n }\n }\n else {\n subscribtionArray.dispose && subscribtionArray.dispose();\n }\n }\n }\n validatePropertyName(target, propertyName) {\n if ((!this._ignoredProperties || (this._ignoredProperties && this._ignoredProperties.every(x => x !== propertyName))) && propertyName[0] !== '_') {\n if (ko.isWritableObservable(target['_' + propertyName])) {\n return '_' + propertyName;\n }\n return propertyName;\n }\n return null;\n }\n subscribeProperty(property, subscribeChilds) {\n if (ko.isObservable(property)) {\n var prevVal = property();\n if (Array.isArray(prevVal)) {\n for (var i = 0; i < property().length; i++) {\n this._createDisposeFunction(property()[i]);\n }\n return property.subscribe((args) => {\n if (this._modelReady) {\n var addedItems = args.filter(x => x.status === 'added');\n var removedItems = args.filter(x => x.status === 'deleted');\n for (var i = 0; i < removedItems.length; i++) {\n this._callDisposeFunction(removedItems[i].value);\n }\n for (var i = 0; i < addedItems.length; i++) {\n this._createDisposeFunction(addedItems[i].value);\n }\n this.properyChanged({ observable: property, arrayChanges: args });\n }\n }, null, 'arrayChange');\n }\n else {\n if (ko.isWritableObservable(property)) {\n if (subscribeChilds) {\n this._createDisposeFunction(property());\n }\n return property.subscribe((val) => {\n if (this._modelReady) {\n if (subscribeChilds) {\n this._callDisposeFunction(prevVal);\n }\n this.properyChanged({\n observable: property, propertyChanged: { oldVal: prevVal, val: val }\n });\n prevVal = val;\n if (subscribeChilds) {\n this._createDisposeFunction(val);\n }\n }\n });\n }\n }\n }\n }\n subscribeProperties(properties) {\n properties.forEach((property) => {\n if (ko.isObservable(property)) {\n var prevVal = property();\n if (property['push']) {\n this._subscriptions.push(property.subscribe((args) => {\n if (this._modelReady) {\n if (!this._inUndoRedo) {\n this.properyChanged({ observable: property, arrayChanges: args });\n this.subscribe(args.map((item) => { return item.value; }));\n }\n }\n }, null, 'arrayChange'));\n }\n else {\n if (ko.isWritableObservable(property)) {\n this._subscriptions.push(property.subscribe((val) => {\n if (this._modelReady) {\n this.properyChanged({\n observable: property, propertyChanged: { oldVal: prevVal, val: val }\n });\n prevVal = property();\n }\n }));\n }\n }\n }\n });\n }\n subscribe(target, info) {\n if (this._getInfoMethodName) {\n return this.visitProperties(target, info || (target && target[this._getInfoMethodName] && target[this._getInfoMethodName]()));\n }\n else {\n propertiesVisitor(target, (properties) => { this.subscribeProperties(properties); }, this._visited, this._ignoredProperties);\n }\n }\n getCurrentChangeSet() {\n return new _LatestChangeSet(this._observers[this._position()], this._position());\n }\n _removePropertiesSubscriptions() {\n this._subscriptions.forEach(subscription => subscription.dispose());\n this._subscriptions = [];\n this._visited = [];\n }\n dispose() {\n super.dispose();\n this._disposeObservers(this._observers.splice(0, this._observers.length), true);\n this.removeTargetSubscription();\n var position = 0;\n activeEngines.some((x, index) => {\n if (x === this._currentEngineName) {\n position = index;\n return true;\n }\n return false;\n });\n activeEngines.splice(position, 1);\n }\n removeTargetSubscription() {\n this._targetSubscription && this._targetSubscription.dispose();\n this.reset();\n }\n undoAll() {\n if (this.undoEnabled()) {\n this.undo();\n this.undoAll();\n }\n }\n reset() {\n this._removePropertiesSubscriptions();\n this.clearHistory();\n }\n clearHistory() {\n this._groupObservers = [];\n this._observers = [];\n this.redoEnabled(false);\n this.undoEnabled(false);\n this._inUndoRedo = false;\n this._groupPosition = -1;\n this._position(-1);\n this._lockedPosition(this._position());\n }\n undo(removeNode = false) {\n try {\n this._inUndoRedo = true;\n if (this.undoEnabled()) {\n var changeSet = this._observers[this._position()];\n if (changeSet) {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => this.undoChangeSet(item));\n }\n else {\n this.undoChangeSet(changeSet);\n }\n if (removeNode) {\n this._observers.splice(this._position(), 1);\n }\n this._position(this._position() - 1);\n this.undoEnabled(this._observers.length !== 0 && this._position() >= 0);\n this.redoEnabled(this._position() < this._observers.length - 1);\n }\n }\n }\n finally {\n this._inUndoRedo = false;\n }\n }\n redo() {\n try {\n this._inUndoRedo = true;\n if (this.redoEnabled()) {\n var changeSet = this._observers[this._position() + 1];\n if (changeSet) {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => this.redoChangeSet(item));\n }\n else {\n this.redoChangeSet(changeSet);\n }\n this._position(this._position() + 1);\n this.undoEnabled(this._observers.length !== 0 && this._position() >= 0);\n this.redoEnabled(this._position() + 1 < this._observers.length);\n }\n }\n }\n finally {\n this._inUndoRedo = false;\n }\n }\n _hasSessionChanges() {\n return this.isIngroup === 0 && this._observers.length > 0;\n }\n start() {\n this.isIngroup++;\n if (this.isIngroup !== 0)\n return;\n this._groupObservers = this._observers;\n this._observers = [];\n this._groupPosition = this._position();\n this._position(-1);\n this._lockedPosition(this._position());\n }\n end() {\n this.isIngroup--;\n if (this.isIngroup !== -1) {\n return;\n }\n if (this._observers.length > 0) {\n this._position(this._groupPosition + 1);\n var removedItems = this._groupObservers.splice(this._position(), this._groupObservers.length - this._position(), this._observers);\n this._disposeObservers(removedItems, false);\n }\n else {\n this._position(this._groupPosition);\n }\n this._observers = this._groupObservers;\n }\n}\nUndoEngine._disposeUndoEngineSubscriptionsName = '___dispose___UndoEngine___Subscriptions___';\n","/**\n* DevExpress Analytics (accessibility\\_accordionKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class AccordionKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dxrd-accessibility-accordion-trigger';\n this.focusFirstFocusableDescendant = true;\n }\n _getElementsCount() {\n return Array.prototype.slice.call(this.getContainer().querySelectorAll('.' + this.controlElementClassName)).length;\n }\n _defferedInit() {\n setTimeout(() => {\n if (this.controlElements.length !== this._getElementsCount()) {\n this.initialize();\n }\n }, 20);\n }\n _collapseItem(item) {\n var collapsed = ko.dataFor(item).collapsed;\n collapsed(!collapsed());\n this._defferedInit();\n }\n initialize() {\n super.initialize();\n this.setTabIndexes(0);\n }\n itemHandleUpArrowKey(e, index) {\n this.setFocusToPrevious(index);\n return true;\n }\n itemHandleDownArrowKey(e, index) {\n this.setFocusToNext(index);\n return true;\n }\n itemHandleEnterKey(e, index) {\n this._collapseItem(e.target);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n this._collapseItem(e.target);\n return true;\n }\n clickHandler(e, index) {\n this._defferedInit();\n super.clickHandler(e, index);\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_controlElementWithParentHighlight.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nexport class ControlElementWithParentHighlight extends AccessibilityControlElementBase {\n constructor(element, _parentElement) {\n super(element);\n this.element = element;\n this._parentElement = _parentElement;\n this._borderCssClassName = ['dxd-border-accented', 'dx-accessibility-container-highlight'];\n this.toolbarItemHandleFocus = () => {\n this._parentElement.classList.add(...this._borderCssClassName);\n };\n this.toolbarItemHandleBlur = () => {\n this._parentElement.classList.remove(...this._borderCssClassName);\n };\n element.addEventListener('focus', this.toolbarItemHandleFocus);\n element.addEventListener('blur', this.toolbarItemHandleBlur);\n }\n dispose() {\n this.element.removeEventListener('focus', this.toolbarItemHandleFocus);\n this.element.removeEventListener('blur', this.toolbarItemHandleBlur);\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_keyboardHelperWithArrowButtonBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class KeyboardHelperWithArrowButtonBase extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.startIndex = 0;\n }\n resetTabIndexes() {\n this.setTabIndexes('-1');\n }\n initialize() {\n super.initialize();\n this.resetTabIndexes();\n this.controlElements[this.startIndex] && this.controlElements[this.startIndex].element.setAttribute('tabindex', '0');\n }\n changeFocus(index, roundTrip = true) {\n this.resetTabIndexes();\n var nextIndex = super.changeFocus(index, roundTrip);\n this.controlElements[nextIndex].setTabIndex('0');\n this.controlElements[nextIndex].setFocus();\n this.startIndex = nextIndex;\n return nextIndex;\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_listKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ControlElementWithParentHighlight } from './_controlElementWithParentHighlight';\nimport { KeyboardHelperWithArrowButtonBase } from './_keyboardHelperWithArrowButtonBase';\nexport class ListKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-list-item';\n }\n createControlElement(element, index) {\n return new ControlElementWithParentHighlight(element, this.getContainer());\n }\n itemHandleUpArrowKey(e, index) {\n this.startIndex = this.setFocusToPrevious(index, false);\n return true;\n }\n itemHandleDownArrowKey(e, index) {\n this.startIndex = this.setFocusToNext(index, false);\n return true;\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_toolbarKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport dxSelectBox from 'devextreme/ui/select_box';\nimport dxMenu from 'devextreme/ui/menu';\nimport { KeyboardHelperWithArrowButtonBase } from './_keyboardHelperWithArrowButtonBase';\nimport { ControlElementWithParentHighlight } from './_controlElementWithParentHighlight';\nimport { getLocalization } from '../property-grid/localization/localization_utils';\nexport class ToolbarKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor(_buttonModels) {\n super();\n this._buttonModels = _buttonModels;\n this.controlElementClassName = 'dx-accessibility-toolbar-item';\n this.liveRegionId = 'dxrd-preview-toolbar-live-region';\n this._disposables.push(ko.computed(() => {\n this.buttonModels.forEach((button) => { ko.unwrap(button.visible); });\n setTimeout(() => this.initialize(), 100);\n }));\n }\n createControlElement(element, index) {\n if (ko.unwrap(this.buttonModels[index].visible))\n return new ToolbarItemElement(element, this.getContainer(), this.buttonModels[index], this.liveRegion.bind(this));\n }\n itemHandleEnterKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute();\n return true;\n }\n itemHandleSpaceKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute();\n return true;\n }\n itemHandleLeftArrowKey(e, index) {\n this.setFocusToPrevious(index);\n return true;\n }\n itemHandleRightArrowKey(e, index) {\n this.setFocusToNext(index);\n return true;\n }\n get buttonModels() {\n return ko.unwrap(this._buttonModels);\n }\n}\nclass ToolbarItemElement extends ControlElementWithParentHighlight {\n constructor(element, _toolbarElement, _toolbarItemModel, _liveRegion) {\n super(element, _toolbarElement);\n this.element = element;\n this._toolbarItemModel = _toolbarItemModel;\n this._liveRegion = _liveRegion;\n this._selectBox = dxSelectBox.getInstance(element.children[0]);\n this._menu = dxMenu.getInstance(element.children[0]);\n }\n _complexItem() {\n if (this._selectBox || this._menu)\n return true;\n return false;\n }\n dispose() {\n super.dispose();\n this._menu = null;\n this._selectBox = null;\n }\n setFocus() {\n if (this._complexItem() && this.element.getAttribute('aria-disabled') !== 'true')\n this._liveRegion().changeText(getLocalization('press Enter or Space to activate the editor', 'ASPxReportsStringId.WebDocumentViewer_AriaActivateEditor'), 200);\n else\n this._liveRegion().changeText('');\n return super.setFocus();\n }\n actionExecute() {\n if (this._complexItem()) {\n this._liveRegion().changeText(getLocalization('Press Alt ↓ or Alt ↑ to navigate the editor. Press Shift Tab to exit navigation mode.', 'ASPxReportsStringId.WebDocumentViewer_AriaEditorKeyboardNavigation'), 500);\n }\n if (this._selectBox) {\n this._selectBox.focus();\n return;\n }\n if (this._menu) {\n this._menu.focus();\n return;\n }\n if (!ko.unwrap(this._toolbarItemModel.disabled))\n this._toolbarItemModel.clickAction();\n }\n}\n","/**\n* DevExpress Analytics (accessibility\\_treeListKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nimport { ListKeyboardHelper } from './_listKeyboardHelper';\nexport class TreeListKeyboardHelper extends ListKeyboardHelper {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-treelist-item';\n }\n _setFocusToParentNode(item, index) {\n var offset = 1;\n var parentItems = item.parent.items();\n var indexOfParent = parentItems.indexOf(item);\n var getChildCount = (item, _offset) => {\n if (item.hasItems && !item.collapsed()) {\n item.items().forEach(element => {\n _offset += getChildCount(element, 0);\n });\n }\n _offset += 1;\n return _offset;\n };\n for (var i = 0; i < indexOfParent; i++) {\n offset += getChildCount(parentItems[i], 0);\n }\n this.changeFocus(index - offset);\n }\n _toggleCollapsed(item, model) {\n this.startIndex = this.getIndexByElement(item);\n model.toggleCollapsed();\n }\n _toggleSelected(el) {\n this._getItemModel(el).toggleSelected();\n }\n _getItemModel(el) {\n return ko.dataFor(el);\n }\n createControlElement(element, index) {\n return new AccessibilityControlElementBase(element);\n }\n itemHandleLeftArrowKey(e, index) {\n var item = this._getItemModel(e.target);\n if (item.hasItems && !item.collapsed()) {\n this._toggleCollapsed(e.target, item);\n }\n else {\n this._setFocusToParentNode(item, index);\n }\n return true;\n }\n itemHandleRightArrowKey(e, index) {\n var item = this._getItemModel(e.target);\n if (item.hasItems) {\n if (item.collapsed())\n this._toggleCollapsed(e.target, item);\n else\n this.changeFocus(index + 1, false);\n }\n return true;\n }\n itemHandleEnterKey(e, index) {\n this._toggleSelected(e.target);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n this._toggleSelected(e.target);\n return true;\n }\n clickHandler(e, index) {\n super.clickHandler(e, index);\n this.startIndex = index;\n }\n}\n","/**\n* DevExpress Analytics (core\\binding\\_requestHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport class RequestHelper {\n static generateUri(host, uri) {\n host = host || '';\n if (host && host[host.length - 1] === '/' && uri && uri[0] === '/') {\n return host + uri.substring(1);\n }\n return host + uri;\n }\n}\n","/**\n* DevExpress Analytics (core\\binding\\_jsDesignerBindingCommon.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nimport { Disposable } from '../../serializer/utils';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { _processError } from '../internal/_processError';\nimport { RequestHelper } from './_requestHelper';\nexport class JSDesignerBindingCommon extends Disposable {\n constructor(_options, _customEventRaiser) {\n super();\n this._options = _options;\n this._customEventRaiser = _customEventRaiser;\n this._templateHtml = getTemplate('dxrd-designer');\n }\n dispose() {\n super.dispose();\n if (this.sender && this.sender instanceof Disposable)\n this.sender.dispose();\n this.removeProperties();\n }\n _fireEvent(eventName, args) {\n if (this._customEventRaiser) {\n this._customEventRaiser(eventName, args);\n return;\n }\n this._options && this._options.callbacks && this._options.callbacks[eventName] && this._options.callbacks[eventName](this.sender, args);\n }\n _warnForIncorrectCallbackName(publicName, privateName) {\n console.warn('The callback name must be different. Use \"' + publicName + '\" instead of \"' + privateName + '\" to call the function with the correct arguments.');\n }\n _checkCallbackName(availableEvents) {\n Object.keys(this._options.callbacks).forEach(callbackName => {\n availableEvents.forEach(event => {\n if (callbackName === event.privateName) {\n this._warnForIncorrectCallbackName(event.publicName, callbackName);\n }\n });\n });\n }\n _getServerActionUrl(host, uri) {\n return RequestHelper.generateUri(host, uri);\n }\n _generateCallbackDictionary(eventsArray, prefix) {\n var events = JSDesignerBindingCommon.convertCallbackArrayToDictionary(eventsArray);\n var result = events;\n if (prefix && this._options.callbacks[prefix]) {\n Object.keys(events).forEach(propertyName => {\n result[propertyName] = this._options.callbacks[prefix][propertyName] || events[propertyName];\n });\n }\n else {\n Object.keys(events).forEach(propertyName => {\n result[propertyName] = this._options.callbacks[propertyName] || events[propertyName];\n });\n }\n return result;\n }\n _getLocalizationRequest() {\n var deferred = $.Deferred();\n var requestOptions = this._options.requestOptions;\n if (requestOptions.getLocalizationAction) {\n var actionUrl = this._getServerActionUrl(requestOptions.host, requestOptions.getLocalizationAction);\n $.getJSON(actionUrl)\n .fail(function (jqXHR, textStatus, errorThrown) {\n try {\n _processError(errorThrown.message, $.Deferred(), jqXHR, textStatus);\n }\n finally {\n deferred.reject();\n }\n }).done((localization) => {\n deferred.resolve(localization);\n });\n }\n else {\n deferred.resolve();\n }\n return deferred.promise();\n }\n _createDisposeFunction(element) {\n addDisposeCallback(element, () => {\n this.dispose();\n });\n }\n static convertCallbackArrayToDictionary(callbackArray) {\n var callbacks = {};\n callbackArray.forEach((event) => { callbacks[event['privateName']] = event['callback']; });\n return callbacks;\n }\n}\nexport class DxAnalyticsComponentCommon {\n constructor(_element, _options) {\n this._element = _element;\n this._options = _options;\n }\n getBindingName() {\n return '';\n }\n render() {\n ko.cleanNode(this._element);\n this._element.setAttribute('data-bind', `${this.getBindingName()}: $data`);\n ko.applyBindings(this._options, this._element);\n }\n dispose() {\n ko.cleanNode(this._element);\n }\n}\n","/**\n* DevExpress Analytics (core\\_metadata.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '../property-grid/widgets/editorsInfo';\nexport var sizeFake = [\n { propertyName: 'height', displayName: 'Height', localizationId: 'AnalyticsCoreStringId.SizeF.Height', editor: editorTemplates.getEditor('numeric'), editorOptions: { min: 2 } },\n { propertyName: 'width', displayName: 'Width', localizationId: 'AnalyticsCoreStringId.SizeF.Width', editor: editorTemplates.getEditor('numeric'), editorOptions: { min: 2 } }\n];\nexport var locationFake = [\n { propertyName: 'x', displayName: 'X', editor: editorTemplates.getEditor('numeric') },\n { propertyName: 'y', displayName: 'Y', editor: editorTemplates.getEditor('numeric') }\n];\n","/**\n* DevExpress Analytics (core\\elements\\size.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { sizeFake } from '../_metadata';\nexport class Size {\n constructor(width, height) {\n this.isPropertyDisabled = (name) => void 0;\n this.height = ko.observable(height).extend({ 'dxdnum': { min: 2 } });\n this.width = ko.observable(width).extend({ 'dxdnum': { min: 2 } });\n }\n getInfo() {\n return sizeFake;\n }\n static fromString(value = '0, 0') {\n var components = value.split(',');\n return new Size(parseFloat(components[0]), parseFloat(components[1]));\n }\n toString() {\n return this.width() + ', ' + this.height();\n }\n}\nSize.unitProperties = ['width', 'height'];\n","/**\n* DevExpress Analytics (core\\dragDrop\\_dragDropHandler.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { Size } from '../elements/size';\nimport { findSurface } from '../internal/_surfaceHelpers';\nimport { unitsToPixel } from '../utils/_units';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from '../internal/_utils';\nexport class DragDropHandler extends Disposable {\n constructor(surface, selection, undoEngine, snapHelper, dragHelperContent) {\n super();\n this._snapDisabled = false;\n this._size = new Size(0, 0);\n this.alwaysAlt = false;\n this.surface = surface;\n this.selection = selection;\n this.snapHelper = snapHelper;\n this.dragHelperContent = dragHelperContent;\n this.stopDrag = (ui, draggable, event) => {\n undoEngine() && undoEngine().start();\n this.doStopDrag(ui, draggable, event);\n undoEngine() && undoEngine().end();\n snapHelper && snapHelper.deactivateSnapLines();\n };\n }\n dispose() {\n super.dispose();\n this.surface = null;\n this.selection = null;\n this.snapHelper = null;\n this.dragHelperContent = null;\n }\n getTarget(event) {\n return event['toElement'] || (ko.dataFor(event.relatedTarget) && event.relatedTarget) || (event && event.target) || null;\n }\n _getAbsoluteSurfacePosition(uiElement) {\n return { left: convertFromCssPixelUnits(uiElement.dataset.leftPosition) - uiElement['delta'].left, top: convertFromCssPixelUnits(uiElement.dataset.topPosition) - uiElement['delta'].top };\n }\n addControl(control, dropTargetSurface, size) {\n var targetWidth = (dropTargetSurface['width'] && dropTargetSurface['width']()) || (dropTargetSurface['_width'] && dropTargetSurface['_width']());\n var underCursor = dropTargetSurface.underCursor();\n if (underCursor.x < targetWidth) {\n dropTargetSurface.getControlModel().addChild(control);\n var controlSurface = findSurface(control);\n if (!controlSurface)\n return;\n var width = size.width(), height = size.height();\n var left = (underCursor.x + width > targetWidth) ? (targetWidth - width - 1) : underCursor.x;\n controlSurface.rect({ left: left, top: Math.max(underCursor.y, 0), width: width, height: height });\n this.selection.initialize(controlSurface);\n }\n }\n recalculateSize(size) {\n var surface = ko.unwrap(this.surface);\n this._size.width(unitsToPixel(ko.unwrap(size.width) * surface.dpi() / 100, surface.measureUnit(), surface.zoom()));\n this._size.height(unitsToPixel(ko.unwrap(size.height) * surface.dpi() / 100, surface.measureUnit(), surface.zoom()));\n }\n helper(draggable, event) {\n this.snapHelper && this.snapHelper.updateSnapLines(draggable || null);\n }\n canDrop(dropTarget, controlModel, metaData) {\n var locked = dropTarget.locked;\n if (metaData && metaData.canDrop) {\n locked = locked || !metaData.canDrop(dropTarget, controlModel);\n }\n return !locked;\n }\n startDrag(_) { }\n drag(event, uiElement, draggableModel) {\n var needToActivateSnapLines = !this._snapDisabled && event.altKey !== true;\n if (this.selection.dropTarget) {\n var dropTarget = this.selection.dropTarget.getControlModel().getMetaData().isContainer ? this.selection.dropTarget : (this.selection.dropTarget.parent || this.selection.dropTarget), controlModel = draggableModel.getControlModel && draggableModel.getControlModel(), metaData = controlModel && controlModel.getMetaData() || draggableModel.info;\n if (this.canDrop(dropTarget, controlModel, metaData)) {\n this.dragHelperContent && this.dragHelperContent.isLocked(false);\n }\n else {\n this.snapHelper && this.snapHelper.deactivateSnapLines();\n needToActivateSnapLines = false;\n this.dragHelperContent && this.dragHelperContent.isLocked(true);\n }\n }\n if (needToActivateSnapLines) {\n var position = this._getAbsoluteSurfacePosition(uiElement);\n var snapDelta = this.snapHelper && this.snapHelper.activateSnapLines({\n left: position.left,\n top: position.top,\n right: position.left + this._size.width(),\n bottom: position.top + this._size.height()\n });\n if (snapDelta && (snapDelta.left > 0 || snapDelta.top > 0)) {\n uiElement.dataset.leftPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.leftPosition) - snapDelta.left);\n uiElement.dataset.topPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.topPosition) - snapDelta.top);\n uiElement.ghostContainer.style.left = uiElement.dataset.leftPosition;\n uiElement.ghostContainer.style.top = uiElement.dataset.topPosition;\n }\n }\n }\n doStopDrag(uiElement, draggableModel, event) { }\n}\nDragDropHandler.started = ko.observable(false);\n","/**\n* DevExpress Analytics (core\\elements\\paddingModelMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nexport var left = {\n propertyName: 'left', modelName: '@Left', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Left', displayName: 'Left', editor: editorTemplates.getEditor('numeric')\n}, right = { propertyName: 'right', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Right', modelName: '@Right', displayName: 'Right', editor: editorTemplates.getEditor('numeric') }, top = { propertyName: 'top', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Top', modelName: '@Top', displayName: 'Top', editor: editorTemplates.getEditor('numeric') }, bottom = { propertyName: 'bottom', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Bottom', modelName: '@Bottom', displayName: 'Bottom', editor: editorTemplates.getEditor('numeric') }, all = { propertyName: 'all', localizationId: 'AnalyticsCoreStringId.PaddingInfo.All', displayName: 'All', editor: editorTemplates.getEditor('numeric') };\nexport var paddingSerializationsInfo = [all, left, right, top, bottom];\n","/**\n* DevExpress Analytics (core\\elements\\paddingModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { paddingSerializationsInfo } from './paddingModelMetaData';\nexport class PaddingModel extends Disposable {\n constructor(left = ko.observable(null), right = ko.observable(null), top = ko.observable(null), bottom = ko.observable(null), dpi = ko.observable(100)) {\n super();\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n this.dpi = dpi;\n ['left', 'right', 'top', 'bottom'].forEach((propertyName) => {\n this['_' + propertyName] = ko.observable(this[propertyName]());\n this._disposables.push(this[propertyName] = ko.computed({\n read: () => {\n return this['_' + propertyName]() || 0;\n },\n write: (newVal) => {\n this['_' + propertyName](newVal);\n }\n }));\n });\n var isUpdating = ko.observable(false);\n var oldValue = null;\n this._disposables.push(this.all = ko.computed({\n read: () => {\n if (isUpdating())\n return oldValue;\n if (['right', 'top', 'bottom'].every(propertyName => this[propertyName]() === this.left()))\n oldValue = this.left();\n else\n oldValue = null;\n return oldValue;\n },\n write: (newVal) => {\n isUpdating(true);\n ['left', 'right', 'top', 'bottom'].forEach((propertyName) => this[propertyName](newVal));\n isUpdating(false);\n }\n }));\n }\n getInfo() {\n return paddingSerializationsInfo;\n }\n resetValue() {\n ['left', 'right', 'top', 'bottom'].forEach(name => this['_' + name](null));\n }\n isEmpty() {\n return ['left', 'right', 'top', 'bottom'].map(x => ko.unwrap(this['_' + x])).every(x => x === null);\n }\n applyFromString(value) {\n if (value) {\n var components = (value || '').split(',');\n this.left(parseInt(components[0]) || 0);\n this.right(parseInt(components[1]) || 0);\n this.top(parseInt(components[2]) || 0);\n this.bottom(parseInt(components[3]) || 0);\n }\n return this;\n }\n static from(val) {\n return new PaddingModel().applyFromString(val);\n }\n toString() {\n if (this.isEmpty())\n return;\n return this._toString();\n }\n _toString(inner = false) {\n return ['left', 'right', 'top', 'bottom'].map(x => parseInt(ko.unwrap(this[x]))).concat(this.dpi()).join(', ');\n }\n}\nPaddingModel.defaultVal = '0, 0, 0, 0, 100';\nPaddingModel.unitProperties = ['left', 'right', 'top', 'bottom'];\n","/**\n* DevExpress Analytics (core\\internal\\_cssCalculator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { unitsToPixel } from '../utils/_units';\nimport { PaddingModel } from '../elements/paddingModel';\nimport { extend } from '../../serializer/_utils';\nexport function patchPositionByRTL(position, rtl) {\n if (rtl) {\n if (position === 'Left')\n return 'Right';\n else if (position === 'Right')\n return 'Left';\n }\n return position;\n}\nexport class CssCalculator {\n constructor(control, _rtlLayout) {\n this._rtlLayout = _rtlLayout;\n this._control = control;\n this.borderCss = (zoom) => {\n var borderWidth = this._getBorderWidth(control, zoom);\n var borderDefault = control['borderDefault'] && control['borderDefault']();\n var borderColor = control['borderColor'] && control['borderColor']() || '';\n var borders = control['borders'] && control['borders']() || '';\n var borderStyle = control['borderDashStyle'] && control['borderDashStyle']() || '';\n return borderDefault ? this.createBorders(borderStyle, borderWidth, borderColor, borders, borderDefault) :\n this.createBorders(borderStyle, borderWidth, borderColor, borders);\n };\n this.backGroundCss = () => {\n return { backgroundColor: control['backColor'] && control['backColor']() || 'transparent' };\n };\n this.foreColorCss = () => {\n var color = (control['foreColor'] && control['foreColor']() || 'transparent') === 'transparent' ? 'black' : control['foreColor']();\n return { color: color };\n };\n this.fontCss = () => {\n return this.createFont(control['font'] && control['font']() || '');\n };\n this.wordWrapCss = () => {\n return this.createWordWrap(ko.unwrap(control['wordWrap']), ko.unwrap(control['multiline']));\n };\n this.paddingsCss = () => {\n var controlPaddings = ko.unwrap(control['paddingObj'] || control['padding']) || PaddingModel.from(PaddingModel.defaultVal);\n var paddings = {\n paddingLeft: this._getPixelValueFromUnit(controlPaddings.left(), control) + 'px',\n paddingTop: this._getPixelValueFromUnit(controlPaddings.top(), control) + 'px',\n paddingRight: this._getPixelValueFromUnit(controlPaddings.right(), control) + 'px',\n paddingBottom: this._getPixelValueFromUnit(controlPaddings.bottom(), control) + 'px'\n };\n return paddings;\n };\n this.textAlignmentCss = () => {\n var align = control['textAlignment'] && control['textAlignment']() || '';\n return extend(this.createVerticalAlignment(align), this.createHorizontalAlignment(align));\n };\n this.stroke = () => {\n var color = (control['foreColor'] && control['foreColor']() || 'transparent') === 'transparent' ? 'black' : control['foreColor']();\n return { 'stroke': color };\n };\n this.strokeWidth = () => {\n var lineWidth = control['lineWidth'] && control['lineWidth']() || '';\n return { 'strokeWidth': lineWidth };\n };\n this.strokeWidthWithWidth = () => {\n var lineWidth = control['width'] && control['width']() || '';\n return { 'strokeWidth': lineWidth };\n };\n this.strokeDashArray = () => {\n var dashArray = this.createStrokeDashArray(control['lineStyle'] && control['lineStyle']() || '', control['lineWidth'] && control['lineWidth']() || '');\n return { 'strokeDasharray': dashArray };\n };\n this.strokeDashArrayWithWidth = () => {\n var dashArray = this.createStrokeDashArray(control['lineStyle'] && control['lineStyle']() || '', control['width'] && control['width']() || '');\n return { 'strokeDasharray': dashArray };\n };\n this.crossBandBorder = (position) => {\n return this.createBorder(control['borderDashStyleCrossband'] && control['borderDashStyleCrossband']() || 'solid', this._getBorderWidth(control), control['borderColor'] && control['borderColor']() || '', control['borders'] && control['borders']() || '', position);\n };\n this.angle = () => {\n return this.createAngle(control['angle'] && control['angle']() || 0);\n };\n this.cellBorder = (position, zoom) => {\n return this.createControlBorder(control['borderDashStyle'] && control['borderDashStyle']() || 'solid', this._getBorderWidth(control, zoom), control['borderColor'] && control['borderColor']() || '', control['borders'] && control['borders']() || '', position);\n };\n this.zipCodeFontCss = (fontSize) => {\n return this.createZipCodeFont(fontSize || control['size']['height']());\n };\n this.zipCodeAlignment = () => {\n var align = 'TopLeft';\n return extend(this.createVerticalAlignment(align), this.createHorizontalAlignment(align));\n };\n }\n _getPixelValueFromUnit(value, control) {\n if (control['root'] && control['root'].measureUnit) {\n return unitsToPixel(value, control['root'].measureUnit());\n }\n return value;\n }\n _patchPosition(position) {\n return patchPositionByRTL(position, this._rtlLayout());\n }\n _getBorderWidth(control, zoom) {\n return control['borderWidth'] && typeof (control['borderWidth']()) == 'number' ? Math.floor(control['borderWidth']() * (zoom || 1)) : '';\n }\n createBorder(dashStyle, width, color, positions, position) {\n var line = {};\n positions = positions || 'All';\n line = { stroke: 'Silver', strokeWidth: 2 };\n var dash = this.createStrokeDashArray(dashStyle, width);\n if (positions.indexOf(position) !== -1 || positions.indexOf('All') !== -1) {\n line['stroke'] = color;\n line['strokeWidth'] = width;\n line['strokeDasharray'] = dash;\n }\n return line;\n }\n createControlBorder(borderStyle, width, color, positions, position, defaultColor = 'solid 1px Silver') {\n var border = {};\n positions = positions || '';\n if (borderStyle === 'Dash') {\n borderStyle = 'dashed';\n }\n else if (borderStyle === 'Dot') {\n borderStyle = 'dotted';\n }\n else if (borderStyle === 'Double') {\n borderStyle = 'double';\n }\n else {\n borderStyle = 'solid';\n }\n if (positions.indexOf(position) !== -1 || positions.indexOf('All') !== -1) {\n border['border' + this._patchPosition(position)] = borderStyle + ' ' + width + 'px ' + color;\n }\n else {\n border['border' + this._patchPosition(position)] = defaultColor;\n }\n return border;\n }\n createBorders(borderStyle, width, color, positions, defaultColor = CssCalculator.DEFAULT_BORDER) {\n var left = this.createControlBorder(borderStyle, width, color, positions, 'Left', defaultColor);\n var right = this.createControlBorder(borderStyle, width, color, positions, 'Right', defaultColor);\n var top = this.createControlBorder(borderStyle, width, color, positions, 'Top', defaultColor);\n var bottom = this.createControlBorder(borderStyle, width, color, positions, 'Bottom', defaultColor);\n var border = extend({}, left, right, top, bottom);\n return border;\n }\n createZipCodeFont(height) {\n var fontStyles = {};\n fontStyles['fontFamily'] = 'Impact';\n fontStyles['fontSize'] = height + 'px';\n return fontStyles;\n }\n createFont(fontString) {\n var fontStyles = {};\n fontString = fontString || '';\n var components = fontString.split(',');\n fontStyles['fontFamily'] = components[0] ? '\"' + components[0] + '\"' : '';\n fontStyles['fontSize'] = components[1];\n if (components.length > 2) {\n for (var i = 2; i < components.length; i++) {\n if (components[i].indexOf('Bold') !== -1)\n fontStyles['fontWeight'] = 'Bold';\n if (components[i].indexOf('Italic') !== -1)\n fontStyles['fontStyle'] = 'Italic';\n if (components[i].indexOf('Underline') != -1)\n fontStyles['textDecoration'] = 'Underline';\n if (components[i].indexOf('Strikeout') != -1)\n fontStyles['textDecoration'] = (fontStyles['textDecoration'] ? fontStyles['textDecoration'] + ' ' : '') + 'Line-through';\n }\n }\n if (!fontStyles['fontWeight']) {\n fontStyles['fontWeight'] = '';\n }\n if (!fontStyles['fontStyle']) {\n fontStyles['fontStyle'] = '';\n }\n if (!fontStyles['textDecoration']) {\n fontStyles['textDecoration'] = '';\n }\n return fontStyles;\n }\n createVerticalAlignment(alignment) {\n var result = {};\n if (alignment.indexOf('Top') !== -1) {\n result['verticalAlign'] = 'top';\n }\n if (alignment.indexOf('Middle') !== -1) {\n result['verticalAlign'] = 'middle';\n }\n if (alignment.indexOf('Bottom') !== -1) {\n result['verticalAlign'] = 'bottom';\n }\n return result;\n }\n createHorizontalAlignment(alignment) {\n var result = {};\n if (alignment.indexOf('Left') !== -1) {\n result['textAlign'] = patchPositionByRTL('Left', this._control.rtl()).toLowerCase();\n }\n if (alignment.indexOf('Right') !== -1) {\n result['textAlign'] = patchPositionByRTL('Right', this._control.rtl()).toLowerCase();\n }\n if (alignment.indexOf('Center') !== -1) {\n result['textAlign'] = 'center';\n }\n if (alignment.indexOf('Justify') !== -1) {\n result['textAlign'] = 'justify';\n }\n return result;\n }\n createStrokeDashArray(style, width) {\n if (style === 'Solid') {\n return '';\n }\n else if (style === 'Dot') {\n return [width, width * 2].join('px, ') + 'px';\n }\n else if (style === 'Dash') {\n return [width * 4, width * 4].join('px, ') + 'px';\n }\n else if (style === 'DashDot') {\n return [width * 4, width * 2, width, width * 2].join('px, ') + 'px';\n }\n else if (style === 'DashDotDot') {\n return [width * 4, width * 2, width, width * 2, width, width * 2].join('px, ') + 'px';\n }\n else {\n return '';\n }\n }\n createWordWrap(wordwrap, multiline) {\n var result = {};\n if (wordwrap === false && multiline === false) {\n result['white-space'] = 'nowrap';\n result['word-wrap'] = 'normal';\n }\n else if (wordwrap === true && multiline === false) {\n result['word-wrap'] = 'break-word';\n result['white-space'] = '';\n }\n else if (wordwrap === false && multiline === true) {\n result['word-wrap'] = 'normal';\n result['white-space'] = 'pre';\n }\n else if (wordwrap === true && multiline === true) {\n result['white-space'] = 'pre-wrap';\n result['word-wrap'] = 'break-word';\n }\n return result;\n }\n createAngle(angle) {\n angle = -angle;\n return {\n '-webkit-transform': 'rotate(' + angle + 'deg)',\n '-moz-transform': 'rotate(' + angle + 'deg)',\n '-o-transform': 'rotate(' + angle + 'deg)',\n '-ms-transform': 'rotate(' + angle + 'deg)',\n 'transform': 'rotate(' + angle + 'deg)'\n };\n }\n contentSizeCss(controlSurfaceWidth, controlSurfaceHeight, zoom, borders, paddings) {\n var result = { top: 1, left: 1, right: 1, bottom: 1, width: 1, height: 1 };\n borders = borders || this._control['borders'] && this._control['borders']() || '';\n var borderWidth = this._getBorderWidth(this._control, zoom);\n ['Left', 'Top', 'Right', 'Bottom'].forEach((item) => {\n var value = 0;\n if (borderWidth != '' && (borders.indexOf(item) !== -1 || borders.indexOf('All') !== -1)) {\n value += borderWidth;\n }\n if (paddings) {\n value += this._getPixelValueFromUnit(ko.unwrap(paddings[item.toLowerCase()]), this._control) * (zoom || 1);\n }\n if (value)\n result[this._patchPosition(item).toLowerCase()] = value;\n });\n result.width = controlSurfaceWidth - result.left - result.right;\n result.height = controlSurfaceHeight - result.top - result.bottom;\n return result;\n }\n}\nCssCalculator.DEFAULT_BORDER = 'none';\n","/**\n* DevExpress Analytics (core\\internal\\_editorTypeMapper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nexport const ExpressionType = 'DevExpress.DataAccess.Expression';\nexport function IsDataAccessExpression(type) {\n return type === ExpressionType;\n}\nexport var editorTypeMapper = {\n 'Enum': editorTemplates.getEditor('combobox'),\n 'System.String': editorTemplates.getEditor('text'),\n 'System.Guid': editorTemplates.getEditor('guid'),\n 'System.SByte': editorTemplates.getEditor('sbyte'),\n 'System.Decimal': editorTemplates.getEditor('decimal'),\n 'System.Int64': editorTemplates.getEditor('int64'),\n 'System.Int32': editorTemplates.getEditor('int32'),\n 'System.Int16': editorTemplates.getEditor('int16'),\n 'System.Single': editorTemplates.getEditor('single'),\n 'System.Double': editorTemplates.getEditor('double'),\n 'System.Byte': editorTemplates.getEditor('byte'),\n 'System.UInt16': editorTemplates.getEditor('uint16'),\n 'System.UInt32': editorTemplates.getEditor('uint32'),\n 'System.UInt64': editorTemplates.getEditor('uint64'),\n 'System.Boolean': editorTemplates.getEditor('boolSelect'),\n 'System.DateTime': editorTemplates.getEditor('date'),\n 'DevExpress.DataAccess.Expression': editorTemplates.getEditor('expressionEditor')\n};\nexport function getEditorType(typeString) {\n return editorTypeMapper[typeString] || editorTemplates.getEditor('text');\n}\n","/**\n* DevExpress Analytics (core\\internal\\_globalize.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Globalize } from '../../property-grid/localization/_localization';\nimport * as localization from 'devextreme/localization';\nexport function initGlobalize(settings) {\n var globalize = Globalize;\n if (globalize && settings) {\n settings.cldrSupplemental && globalize.load(settings.cldrSupplemental);\n settings.cldrData && globalize.load(settings.cldrData);\n if (settings.currentCulture) {\n globalize.locale(settings.currentCulture);\n localization['locale'] && localization['locale'](settings.currentCulture);\n }\n }\n}\n","/**\n* DevExpress Analytics (core\\internal\\_inlineTextEdit.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardEnum } from '../../property-grid/widgets/internal/_utils';\nexport function processTextEditorHotKeys(event, delegates) {\n if (!event || !delegates)\n return;\n if (event.key === KeyboardEnum.Esc && !!delegates['esc']) {\n delegates['esc']();\n }\n if (event.key === KeyboardEnum.Enter && event.ctrlKey && !!delegates['ctrlEnter']) {\n delegates['ctrlEnter']();\n }\n}\nexport class InlineTextEdit extends Disposable {\n constructor(selection) {\n super();\n this._showInline = ko.observable(false);\n this.text = ko.observable();\n var _controlText;\n this._disposables.push(selection.focused.subscribe(() => {\n if (this._showInline() && _controlText) {\n _controlText(this.text());\n this._showInline(false);\n }\n var controlModel = selection.focused() && selection.focused().getControlModel();\n _controlText = controlModel && (controlModel.textEditableProperty || controlModel.text || controlModel.alias);\n }));\n this._disposables.push(this.visible = ko.pureComputed({\n read: () => {\n return this._showInline();\n },\n write: (val) => {\n this._showInline(val);\n }\n }));\n this.show = (element) => {\n if (this._showInline()) {\n return;\n }\n this.element = element;\n const isSingleControlSelected = !!selection.selectedItems ? selection.selectedItems.length === 1 : !!selection.focused();\n if (isSingleControlSelected && _controlText && !selection.focused().locked) {\n this.text(_controlText());\n this._showInline(true);\n if (element) {\n var textarea = $.fn.constructor(element).find('textarea')[0];\n textarea && textarea['select']();\n }\n }\n else {\n this._showInline(false);\n }\n };\n this.keypressAction = (args) => {\n processTextEditorHotKeys(args.event, {\n esc: () => { this._showInline(false); },\n ctrlEnter: () => {\n _controlText(this.text());\n this._showInline(false);\n }\n });\n };\n }\n}\n","/**\n* DevExpress Analytics (core\\internal\\_resizable.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './_utils';\nexport class Resizable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this.handleClass = 'ui-resizable-handle';\n this.handleClassSelector = `.${this.handleClass}`;\n this.resizableElementClass = 'ui-resizable';\n this._defaultMinSize = 1;\n this._bodyEvents = {\n move: null,\n up: null\n };\n this._resizeDirection = null;\n this._resizeHandles = ['w', 'e', 's', 'n', 'se', 'sw', 'ne', 'nw'];\n }\n _initResize(event) {\n this._startResizeMousePosition = {\n left: event.pageX,\n top: event.pageY\n };\n this._resizeDirection = getResizeDirection(event.target.classList);\n this._addClassToElement('ui-resizable-resizing');\n var bounds = this._element.getBoundingClientRect();\n var $el = $.fn.constructor(this._element);\n this._element.dataset.originalLeftPosition = $el.css('left');\n this._element.dataset.originalTopPosition = $el.css('top');\n this._element.dataset.originalWidth = convertToCssPixelUnits(bounds.width);\n this._element.dataset.originalHeight = convertToCssPixelUnits(bounds.height);\n this._element.dataset.originalLeftMousePosition = convertToCssPixelUnits(event.pageX);\n this._element.dataset.originalTopMousePosition = convertToCssPixelUnits(event.pageY);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n _mouseMove(event) {\n const leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n const boundsDiff = this._getBoundsDiff(event);\n this._options.resize(event, this._element, boundsDiff);\n }\n }\n _mouseUp(event) {\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._options.stop();\n Resizable.inProcess = false;\n this._removeClassFromElement('ui-resizable-resizing');\n this._startResizeMousePosition = null;\n this._resizeDirection = null;\n }\n _mouseDown(event) {\n Resizable.inProcess = true;\n this._initResize(event);\n this._options.start(event, this._element);\n }\n _initResizeHandle(className, handleResizeEvent) {\n const handleDiv = document.createElement('div');\n handleDiv.classList.add(this.handleClass);\n handleDiv.style.zIndex = '95';\n handleDiv.classList.add(className);\n handleDiv.addEventListener('mousedown', handleResizeEvent);\n this._element.append(handleDiv);\n }\n _addClassToElement(className) {\n this._element.classList.add(className);\n }\n _removeClassFromElement(className) {\n this._element.classList.remove(className);\n }\n _getBoundsDiff(event) {\n let diffWidth = 0;\n let diffHeight = 0;\n let leftDiff = 0;\n let topDiff = 0;\n const originalHeight = convertFromCssPixelUnits(this._element.dataset.originalHeight);\n const originalWidth = convertFromCssPixelUnits(this._element.dataset.originalWidth);\n const updateHeightFunc = (resizeFromTop) => {\n const minHeight = this._element.style.minHeight ? convertFromCssPixelUnits(this._element.style.minHeight) : this._defaultMinSize;\n const resizeDistance = (this._startResizeMousePosition.top - event.pageY) * (resizeFromTop ? 1 : -1);\n const newHeightIsLessThanMinHeight = minHeight > originalHeight + resizeDistance;\n if (newHeightIsLessThanMinHeight) {\n var respectedDiff = originalHeight - minHeight;\n if (resizeFromTop)\n topDiff = respectedDiff;\n diffHeight = -respectedDiff;\n return;\n }\n diffHeight = resizeDistance;\n if (resizeFromTop) {\n topDiff = -diffHeight;\n }\n };\n const updateWidthFunc = (resizeFromLeft) => {\n const minWidth = this._element.style.minWidth ? convertFromCssPixelUnits(this._element.style.minWidth) : this._defaultMinSize;\n const resizeDistance = (this._startResizeMousePosition.left - event.pageX) * (resizeFromLeft ? 1 : -1);\n const newWidthIsLessThanMinWidth = minWidth > originalWidth + resizeDistance;\n if (newWidthIsLessThanMinWidth) {\n var respectedDiff = originalWidth - minWidth;\n if (resizeFromLeft)\n leftDiff = respectedDiff;\n diffWidth = -respectedDiff;\n return;\n }\n diffWidth = resizeDistance;\n if (resizeFromLeft) {\n leftDiff = -diffWidth;\n }\n };\n const updateHeight = this._resizeDirection && /sw|se|nw|ne|s|n/.test(this._resizeDirection);\n const updateWidth = this._resizeDirection && /sw|se|nw|ne|e|w/.test(this._resizeDirection);\n if (updateHeight)\n updateHeightFunc(/nw|ne|n/.test(this._resizeDirection));\n if (updateWidth)\n updateWidthFunc(/sw|nw|w/.test(this._resizeDirection));\n const boundsDiff = {\n width: diffWidth,\n height: diffHeight,\n left: leftDiff,\n top: topDiff\n };\n return boundsDiff;\n }\n initialize() {\n var mousedown = event => this._mouseDown(event);\n var addElementHandles = (handles) => {\n if (!handles)\n return;\n this._addClassToElement(this.resizableElementClass);\n $.fn.constructor(this._element).children(this.handleClassSelector).remove();\n const elementResizeHandles = handles === 'all' ? this._resizeHandles : handles.split(',');\n elementResizeHandles.forEach(handle => {\n this._initResizeHandle(`ui-resizable-${handle}`, mousedown);\n });\n };\n addElementHandles(ko.unwrap(this._options.handles));\n if (ko.isSubscribable(this._options.handles)) {\n var subscribe = this._options.handles.subscribe((newHandles) => {\n this._removeClassFromElement(this.resizableElementClass);\n var oldElementHandles = this._element.querySelectorAll(this.handleClassSelector);\n oldElementHandles.forEach(handle => handle.removeEventListener('mousedown', mousedown));\n $.fn.constructor(this._element).children(this.handleClassSelector).remove();\n addElementHandles(newHandles);\n });\n this._disposables.push(subscribe);\n }\n this._disposables.push({\n dispose: () => {\n addElementHandles = null;\n var elementHandles = this._element.querySelectorAll(this.handleClass);\n elementHandles.forEach(handle => handle.removeEventListener('mousedown', mousedown));\n this._element.removeEventListener('mousedown', mousedown);\n mousedown = null;\n this._element = null;\n this._options = null;\n }\n });\n return this;\n }\n}\nResizable.inProcess = false;\nexport function getResizeDirection(currentClassList) {\n for (var i = 0; i < currentClassList.length; i++) {\n if (currentClassList[i] !== 'ui-resizable-handle' && currentClassList[i].indexOf('ui-resizable-') === 0)\n return currentClassList[i].slice('ui-resizable-'.length, currentClassList[i].length);\n }\n}\n","/**\n* DevExpress Analytics (core\\internal\\_draggable.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '../../serializer/utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './../internal/_utils';\nimport { Resizable } from './_resizable';\nexport class Draggable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this._bodyEvents = { move: null, up: null };\n this._windowEvents = { up: null };\n this._originalDragStartCoordinates = null;\n this._originalElementPosition = null;\n this._dragInitialized = false;\n this._scrollableContainer = null;\n this._draggableElementClass = 'ui-draggable';\n this._minDragDistance = 1;\n let mousedown = event => this._canDrag() && this._mouseDown(event);\n this._addClassToElement(this._draggableElementClass);\n this._element.addEventListener('mousedown', mousedown);\n this._disposables.push({\n dispose: () => {\n this._element.removeEventListener('mousedown', mousedown);\n mousedown = null;\n this._element = null;\n this._options = null;\n }\n });\n }\n _initScrollContainer() {\n var containment = this._options.containment;\n if (containment && containment[0].classList.contains('dxrd-ghost-container')) {\n this._scrollableContainer = containment.find('.dx-scrollable-container')[0];\n }\n }\n _initDrag(event) {\n this._startRect = {\n left: event.pageX,\n top: event.pageY\n };\n this._bodyEvents.move = event => this._canDrag() && this._mouseMove(event);\n this._windowEvents.up = event => this._canDrag() && this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n window.addEventListener('mouseup', this._windowEvents.up);\n this._initScrollContainer();\n }\n _addClassToElement(className) {\n this._element.classList.add(className);\n }\n _calculateElementPosition(dragDeltaLeft, dragDeltaTop) {\n var _a, _b;\n var left = this._originalElementPosition.left - dragDeltaLeft - (((_a = this._scrollableContainer) === null || _a === void 0 ? void 0 : _a.scrollLeft) || 0);\n var top = this._originalElementPosition.top - dragDeltaTop - (((_b = this._scrollableContainer) === null || _b === void 0 ? void 0 : _b.scrollTop) || 0);\n var boundary = this._options.boundary;\n if (boundary) {\n left = left < boundary.left ? boundary.left : left > boundary.right ? boundary.right : left;\n top = top < boundary.top ? boundary.top : top > boundary.bottom ? boundary.bottom : top;\n }\n return { left, top };\n }\n _mouseMove(event) {\n if (Resizable.inProcess || !this._startRect)\n return;\n const leftButtonPressed = event.which === 1;\n if (!leftButtonPressed || !this.shouldStartDrag(event))\n return;\n if (!this._dragInitialized) {\n this._dragInitialized = true;\n this._options.helper && (this._ghostContainer = this._options.helper(event, this._element));\n if (this._ghostContainer)\n this._element.ghostContainer = this._ghostContainer[0];\n this._originalDragStartCoordinates = { left: this._element.dataset.startDragWithOffset ? event.pageX : this._startRect.left, top: this._element.dataset.startDragWithOffset ? event.pageY : this._startRect.top };\n this._originalElementPosition = { left: this._ghostContainer ? convertFromCssPixelUnits(this._ghostContainer[0].dataset.startLeftPosition) : event.pageX, top: this._ghostContainer ? convertFromCssPixelUnits(this._ghostContainer[0].dataset.startTopPosition) : event.pageY };\n this._element.dataset.leftPosition = convertToCssPixelUnits(this._originalElementPosition.left);\n this._element.dataset.topPosition = convertToCssPixelUnits(this._originalElementPosition.top);\n this._options.start(event, this._element);\n }\n var dragDeltaLeft = this._originalDragStartCoordinates.left - event.pageX;\n var dragDeltaTop = this._originalDragStartCoordinates.top - event.pageY;\n const position = this._calculateElementPosition(dragDeltaLeft, dragDeltaTop);\n this._element.dataset.leftPosition = convertToCssPixelUnits(position.left);\n this._element.dataset.topPosition = convertToCssPixelUnits(position.top);\n if (this._ghostContainer) {\n this._ghostContainer[0].style.left = this._element.dataset.leftPosition;\n this._ghostContainer[0].style.top = this._element.dataset.topPosition;\n }\n this._options.drag(event, this._element);\n }\n shouldStartDrag(event) {\n return Math.abs(this._startRect.left - event.pageX) >= this._minDragDistance || Math.abs(this._startRect.top - event.pageY) >= this._minDragDistance;\n }\n _mouseUp(event) {\n if (Resizable.inProcess)\n return;\n Draggable.inProcess = false;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._windowEvents.up && window.removeEventListener('mouseup', this._windowEvents.up);\n if (this._dragInitialized) {\n this._dragInitialized = false;\n this._ghostContainer && this._ghostContainer.remove();\n this._ghostContainer = null;\n this._scrollableContainer = null;\n this._options.stop(event, this._element);\n }\n this._startRect = null;\n }\n _mouseDown(event) {\n event.stopPropagation();\n if (Resizable.inProcess)\n return;\n Draggable.inProcess = true;\n this._initDrag(event);\n }\n _canDrag() {\n var _a;\n return ((_a = (this._options.disabled && !this._options.disabled())) !== null && _a !== void 0 ? _a : true);\n }\n}\nDraggable.inProcess = false;\n","/**\n* DevExpress Analytics (core\\internal\\selectable.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport dxPopup from 'devextreme/ui/popup';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { DragDropHandler } from '../dragDrop/_dragDropHandler';\nimport { Draggable } from './_draggable';\nimport { Resizable } from './_resizable';\nfunction rectIntersection(r1, r2) {\n return !(r2.left > r1.right ||\n r2.right < r1.left ||\n r2.top > r1.bottom ||\n r2.bottom < r1.top);\n}\nexport class SelectableElement extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this.isSelected = false;\n this.bounds = _element.getBoundingClientRect();\n this._disposables.push({\n dispose: () => {\n this._element = null;\n this._options = null;\n this.bounds = null;\n }\n });\n }\n updateSelection(currentRect, event) {\n var isSelected = rectIntersection(this.bounds, currentRect);\n if (isSelected != this.isSelected) {\n isSelected ? this._options.selecting(event, this._element) : this._options.unselecting(event, this._element);\n this.isSelected = isSelected;\n }\n }\n}\nexport class Selectable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this._elements = [];\n this._bodyEvents = {\n move: null,\n up: null\n };\n this._minSelectDistance = 2;\n var mousemove = event => this._mouseMove(event);\n var mouseup = event => this._mouseUp(event);\n var mousedown = event => this._mouseDown(event);\n this._element.addEventListener('mousemove', mousemove);\n this._element.addEventListener('mouseup', mouseup);\n this._element.addEventListener('mousedown', mousedown);\n this._$window = $.fn.constructor(window);\n this._disposables.push({\n dispose: () => {\n this._element.removeEventListener('mousemove', mousemove);\n this._element.removeEventListener('mouseup', mouseup);\n this._element.removeEventListener('mousedown', mousedown);\n mousemove = null;\n mouseup = null;\n mousedown = null;\n this._$window = null;\n this._element = null;\n this._options = null;\n }\n });\n }\n _clearElements() {\n this._elements.forEach(x => x.dispose());\n this._elements = [];\n }\n _collectElements() {\n this._clearElements();\n var elements = document.getElementsByClassName(this._options.filter.substr(1));\n for (var i = 0; i < elements.length; i++) {\n this._elements.push(new SelectableElement(elements[i], this._options));\n }\n }\n _updateSelectionContent(event) {\n if (this._startRect.left >= event.pageX) {\n this._$selectionContent.css('left', event.pageX);\n this._$selectionContent.css('right', this._startRect.right);\n }\n else {\n this._$selectionContent.css('left', this._startRect.left);\n this._$selectionContent.css('right', this._$window.width() - event.pageX);\n }\n if (this._startRect.top >= event.pageY) {\n this._$selectionContent.css('top', event.pageY);\n this._$selectionContent.css('bottom', this._startRect.bottom);\n }\n else {\n this._$selectionContent.css('top', this._startRect.top);\n this._$selectionContent.css('bottom', this._$window.height() - event.pageY);\n }\n const currentRect = this._$selectionContent[0].getBoundingClientRect();\n for (var i = 0; i < this._elements.length; i++) {\n this._elements[i].updateSelection(currentRect, event);\n }\n }\n _initStartRect(event) {\n this._startRect = {\n left: event.pageX,\n top: event.pageY,\n right: this._$window.width() - event.pageX,\n bottom: this._$window.height() - event.pageY\n };\n }\n _mouseMove(event) {\n setTimeout(() => {\n if (DragDropHandler.started() || Selectable.disabled || Resizable.inProcess || !this._startRect)\n return;\n var leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n if (!this._$selectionContent) {\n if (this.shouldStartSelect(event)) {\n this._options.start(event);\n Selectable.inProcess = true;\n this._$selectionContent = $.fn.constructor('
').appendTo(document.body);\n this._$selectionContent.addClass('dxrd-selection-content ui-selectable-helper');\n if (dxPopup.prototype['_zIndexInitValue'])\n this._$selectionContent.css('z-index', dxPopup.prototype['_zIndexInitValue']() + 100);\n this._updateSelectionContent(event);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n }\n else {\n this._updateSelectionContent(event);\n }\n }\n }, 1);\n }\n shouldStartSelect(event) {\n return Math.abs(this._startRect.left - event.pageX) >= this._minSelectDistance || Math.abs(this._startRect.top - event.pageY) >= this._minSelectDistance;\n }\n _mouseUp(event) {\n if (Selectable.disabled || Resizable.inProcess || Draggable.inProcess)\n return;\n this._options.stop();\n this._$selectionContent && this._$selectionContent.remove();\n this._$selectionContent = null;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._startRect = null;\n this._clearElements();\n Selectable.inProcess = false;\n }\n _mouseDown(event) {\n if (Selectable.disabled || Resizable.inProcess || Draggable.inProcess)\n return;\n this._initStartRect(event);\n this._collectElements();\n }\n}\nSelectable.inProcess = false;\nSelectable.disabled = false;\n","/**\n* DevExpress Analytics (core\\internal\\_resizableBinding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { getControlRect, getControlNewAbsolutePositionOnResize } from './_surfaceHelpers';\nimport { Size } from '../elements/size';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { extend } from '../../serializer/_utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './_utils';\nimport { getResizeDirection, Resizable } from './_resizable';\nko.bindingHandlers['resizable'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var $element = $.fn.constructor(element), $parent = $element.closest('.dx-designer'), currentDirection = null, $selectedNodes = null, resizableDirections = { 'north': 'n', 'east': 'e', 'south': 's', 'west': 'w' }, calculateSizes = [], absolutePosition = null;\n var options = extend({\n handles: ko.isSubscribable(values.handles) ? values.handles : (values.handles || 'all'),\n ghost: false,\n stop: function (event) {\n $selectedNodes.each((_, el) => {\n var context = ko.contextFor(el), control = context.$data, surface = context.$root.surface(), $el = $.fn.constructor(el);\n var rect = control.rect();\n var newRect = getControlRect($el, control, surface);\n newRect = {\n top: currentDirection.indexOf(resizableDirections.north) !== -1 ? newRect.top : rect.top,\n left: currentDirection.indexOf(resizableDirections.west) !== -1 ? newRect.left : rect.left,\n width: currentDirection.indexOf(resizableDirections.east) !== -1 || currentDirection.indexOf(resizableDirections.west) !== -1 ? newRect.width : rect.width,\n height: currentDirection.indexOf(resizableDirections.south) !== -1 || currentDirection.indexOf(resizableDirections.north) !== -1 ? newRect.height : rect.height,\n };\n calculateSizes.push(() => {\n if (control.canSetRect && !control.canSetRect(newRect)) {\n if (el.dataset.originalLeftPosition && el.dataset.originalTopPosition) {\n $el.css('top', el.dataset.originalTopPosition);\n $el.css('left', el.dataset.originalLeftPosition);\n }\n if (el.dataset.originalWidth && el.dataset.originalHeight) {\n $el.css('width', el.dataset.originalWidth);\n $el.css('height', el.dataset.originalHeight);\n }\n }\n else {\n control.rect(newRect);\n if (JSON.stringify(rect) === JSON.stringify(newRect)) {\n $el.css({\n left: rect.left,\n top: rect.top,\n width: rect.width,\n height: rect.height\n });\n }\n }\n el.dataset.originalLeftPosition = void 0;\n el.dataset.originalTopPosition = void 0;\n el.dataset.originalWidth = void 0;\n el.dataset.originalHeight = void 0;\n });\n });\n calculateSizes.forEach(c => c());\n calculateSizes = [];\n currentDirection = null;\n values.stopped();\n values.started = false;\n if (values.snapHelper) {\n values.snapHelper.deactivateSnapLines();\n }\n },\n start: (event) => {\n currentDirection = getResizeDirection(event.target.classList);\n values.started = true;\n values.starting(event);\n $selectedNodes = values.$selectedNodes || $.fn.constructor('.dxrd-viewport .dxrd-selected').filter(':visible');\n $selectedNodes\n .each((_, el) => {\n var $el = $.fn.constructor(el);\n var bounds = el.getBoundingClientRect();\n el.dataset.originalLeftPosition = $el.css('left');\n el.dataset.originalTopPosition = $el.css('top');\n el.dataset.originalWidth = convertToCssPixelUnits(bounds.width);\n el.dataset.originalHeight = convertToCssPixelUnits(bounds.height);\n });\n var elementOffset = $element.offset();\n var ghostContainerOffset = $parent.find('.dxrd-ghost-container').offset();\n if (!ghostContainerOffset) {\n absolutePosition = elementOffset;\n }\n else {\n absolutePosition = {\n top: elementOffset.top - ghostContainerOffset.top,\n left: elementOffset.left - ghostContainerOffset.left\n };\n }\n if (values.snapHelper) {\n values.snapHelper.updateSnapLines(viewModel);\n }\n },\n resize: (event, element, boundsDiff) => {\n event.stopPropagation();\n const dw = boundsDiff.width;\n const dh = boundsDiff.height;\n const dx = boundsDiff.left;\n const dy = boundsDiff.top;\n if (values.forceResize) {\n values.forceResize({ size: new Size(element.offsetWidth, element.offsetHeight), delta: { dx: dx, dy: dy, dw: dw, dh: dh }, element });\n return;\n }\n if (!element.dataset.originalLeftPosition || !element.dataset.originalTopPosition || !element.dataset.originalWidth || !element.dataset.originalHeight)\n return;\n const mainSelectionOriginalSize = getOriginalSizeNum(element);\n const mainSelectionOriginalPosition = getOriginalPositionNum(element);\n if (event.altKey) {\n values.snapHelper && values.snapHelper.deactivateSnapLines();\n }\n else if (values.snapHelper && $selectedNodes.length === 1) {\n const newWidth = mainSelectionOriginalSize.width + dw;\n const newHeight = mainSelectionOriginalSize.height + dh;\n const elementSizeInfo = {\n originalSize: { width: mainSelectionOriginalSize.width, height: mainSelectionOriginalSize.height },\n size: { width: newWidth, height: newHeight }\n };\n const newAbsolutePosition = getControlNewAbsolutePositionOnResize(values.snapHelper, absolutePosition, elementSizeInfo, { x: dx, y: dy, width: dw, height: dh });\n values.snapHelper.activateSnapLines(newAbsolutePosition);\n const resizedBounds = getResizedBounds(mainSelectionOriginalPosition, mainSelectionOriginalSize, boundsDiff);\n const snapBounds = {\n left: mainSelectionOriginalPosition.left + newAbsolutePosition.left - absolutePosition.left,\n top: mainSelectionOriginalPosition.top + newAbsolutePosition.top - absolutePosition.top,\n width: newAbsolutePosition.right - newAbsolutePosition.left,\n height: newAbsolutePosition.bottom - newAbsolutePosition.top\n };\n if (!boundsAreEqual(snapBounds, resizedBounds)) {\n $element.css(snapBounds);\n return;\n }\n }\n $selectedNodes.each(function (key, el) {\n if (el === event.target)\n return;\n var resizedBounds = getResizedBounds(getOriginalPositionNum(el), getOriginalSizeNum(el), boundsDiff);\n el.style.left = convertToCssPixelUnits(resizedBounds.left);\n el.style.top = convertToCssPixelUnits(resizedBounds.top);\n el.style.width = convertToCssPixelUnits(resizedBounds.width);\n el.style.height = convertToCssPixelUnits(resizedBounds.height);\n });\n }\n }, ko.unwrap(values));\n var subscription = null;\n if (!values.disabled) {\n }\n var resizableElement = new Resizable(element, options).initialize();\n addDisposeCallback(element, () => {\n resizableElement.dispose();\n element = null;\n subscription && subscription.dispose();\n });\n },\n update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n const minWidthOption = ko.unwrap(valueAccessor().minimumWidth);\n if (minWidthOption) {\n element.style.minWidth = convertToCssPixelUnits(minWidthOption);\n }\n const minHeightOption = ko.unwrap(valueAccessor().minimumHeight);\n if (minHeightOption) {\n element.style.minHeight = convertToCssPixelUnits(minHeightOption);\n }\n const getElementHandles = (element) => Array.from(element.children).filter(function (child) {\n return child.classList.contains('ui-resizable-handle');\n });\n const maxWidth = ko.unwrap(valueAccessor().maximumWidth);\n if (maxWidth) {\n element.style.maxWidth = convertToCssPixelUnits(maxWidth);\n }\n const handleClassName = valueAccessor().handleClassName;\n handleClassName && getElementHandles(element).forEach((handle) => handle.classList.add(handleClassName));\n const disabled = !!(ko.unwrap(valueAccessor().disabled) || ko.unwrap(viewModel.locked));\n getElementHandles(element).forEach((handle) => handle.style.display = disabled ? 'none' : 'block');\n }\n};\nko.bindingHandlers['resizableReportMargins'] = {\n init: function (element, valueAccessor) {\n valueAccessor();\n }\n};\nfunction getOriginalPositionNum(element) {\n return {\n left: convertFromCssPixelUnits(element.dataset.originalLeftPosition),\n top: convertFromCssPixelUnits(element.dataset.originalTopPosition)\n };\n}\nfunction getOriginalSizeNum(element) {\n return {\n width: convertFromCssPixelUnits(element.dataset.originalWidth),\n height: convertFromCssPixelUnits(element.dataset.originalHeight)\n };\n}\nfunction getResizedBounds(originalPosition, originalSize, boundsDiff) {\n return {\n left: originalPosition.left + boundsDiff.left,\n top: originalPosition.top + boundsDiff.top,\n width: originalSize.width + boundsDiff.width,\n height: originalSize.height + boundsDiff.height\n };\n}\nfunction boundsAreEqual(bounds1, bounds2) {\n return bounds1.left === bounds2.left\n && bounds1.top === bounds2.top\n && bounds1.width === bounds2.width\n && bounds1.height === bounds2.height;\n}\n","/**\n* DevExpress Analytics (core\\internal\\_stores.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport ArrayStore from 'devextreme/data/array_store';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class CustomSortedArrayStore extends CustomStore {\n static _sortItems(items, sortPropertyName) {\n return items.sort((a, b) => {\n var propA = ko.unwrap(a[sortPropertyName]), propB = ko.unwrap(b[sortPropertyName]);\n if (propA && propB) {\n var diff = propA - propB;\n if (!isNaN(diff))\n return diff;\n propA = propA.toLowerCase ? propA.toLowerCase() : propA;\n propB = propB.toLowerCase ? propB.toLowerCase() : propB;\n return (propA < propB) ? -1 : (propA > propB) ? 1 : 0;\n }\n });\n }\n static _createOptions(items, sortPropertyName) {\n items = this._sortItems(items, sortPropertyName);\n return {\n load: (options) => {\n var result = [].concat(items);\n if (options.take)\n result = result.splice(options.skip, options.take);\n return $.Deferred().resolve(result).promise();\n },\n byKey: (key) => {\n if (items.some(x => x === key))\n return key;\n }\n };\n }\n constructor(items, sortPropertyName = 'name') {\n super(CustomSortedArrayStore._createOptions(items, sortPropertyName));\n }\n}\nexport class SortedArrayStore extends ArrayStore {\n constructor(options, sortPropertyName = 'name') {\n if (options instanceof Array) {\n CustomSortedArrayStore._sortItems(options, sortPropertyName);\n }\n super(options);\n }\n}\nexport class ControlsStore extends Disposable {\n constructor(allControls) {\n super();\n this._filter = ko.observable(null);\n var dataSource = null;\n this._disposables.push(this.dataSource = ko.computed(() => {\n dataSource && dataSource.dispose();\n var items = this._filter() ? allControls().filter(this._filter()) : allControls();\n dataSource = new DataSource({\n store: new CustomSortedArrayStore(items),\n paginate: true,\n pageSize: 100\n });\n return dataSource;\n }));\n this._disposables.push(this.visible = ko.computed(() => {\n return allControls().length > 0;\n }));\n }\n getFilter() {\n return this._filter();\n }\n setFilter(filter) {\n this._filter(filter);\n }\n resetFilter() {\n this._filter(null);\n }\n}\n","/**\n* DevExpress Analytics (core\\snapLines\\_snapLinesCollector.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { binaryIndexOf } from '../utils/_arrayutils';\nexport class SnapLinesCollector {\n constructor() {\n this._verticalSnapLines = [];\n this._horizontalSnapLines = [];\n this._snapTargetToIgnore = null;\n }\n _appendSnapLine(position, limitInf, limitSup, snapLines) {\n var line = {\n position: position,\n limitInf: limitInf,\n limSup: limitSup\n };\n var index = binaryIndexOf(snapLines, line, (a, b) => a.position - b.position);\n if (index > -1) {\n snapLines[index].limitInf = Math.min(snapLines[index].limitInf, limitInf);\n snapLines[index].limSup = Math.max(snapLines[index].limSup, limitSup);\n }\n else {\n snapLines.splice(~index, 0, line);\n }\n }\n _collectSnaplines(parent, parentAbsoluteProsition) {\n this._enumerateCollection(parent, parentAbsoluteProsition, (item, itemAbsoluteRect) => {\n if (item !== this._snapTargetToIgnore) {\n this._appendSnapLine(itemAbsoluteRect.left, itemAbsoluteRect.top, itemAbsoluteRect.bottom, this._verticalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.right, itemAbsoluteRect.top, itemAbsoluteRect.bottom, this._verticalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.top, itemAbsoluteRect.left, itemAbsoluteRect.right, this._horizontalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.bottom, itemAbsoluteRect.left, itemAbsoluteRect.right, this._horizontalSnapLines);\n this._collectSnaplines(item, itemAbsoluteRect);\n }\n });\n }\n _getCollection(parent) {\n return parent['controls'] && parent['controls']();\n }\n _enumerateCollection(parent, parentAbsoluteProsition, callback) {\n var collection = this._getCollection(parent);\n if (!collection)\n return;\n for (var i = 0; i < collection.length; i++) {\n var itemRect = collection[i].rect && collection[i].rect();\n if (itemRect) {\n callback(collection[i], {\n top: itemRect.top + parentAbsoluteProsition.top,\n bottom: itemRect.bottom + parentAbsoluteProsition.top,\n left: itemRect.left + parentAbsoluteProsition.left,\n right: itemRect.right + parentAbsoluteProsition.left\n });\n }\n }\n }\n collectSnaplines(root, snapTargetToIgnore) {\n this._snapTargetToIgnore = snapTargetToIgnore;\n this._verticalSnapLines.splice(0);\n this._horizontalSnapLines.splice(0);\n this._collectSnaplines(root, { top: 0, left: 0 });\n return {\n vertical: this._verticalSnapLines,\n horizontal: this._horizontalSnapLines\n };\n }\n}\n","/**\n* DevExpress Analytics (core\\snapLines\\_snapLineSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class SnapLineSurface {\n constructor() {\n this._position = ko.observable(SnapLineSurface._blankPosition);\n }\n transform() {\n var position = this._position();\n return 'matrix(' + position.width + ', 0, 0, ' + position.height + ', ' + position.left + ', ' + position.top + ')';\n }\n updatePosition(position) {\n this._position(position);\n }\n reset() {\n this.updatePosition(SnapLineSurface._blankPosition);\n }\n}\nSnapLineSurface._blankPosition = { top: 0, left: 0, width: 0, height: 0, };\n","/**\n* DevExpress Analytics (core\\snapLines\\_snapLinesHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SnapLinesCollector } from './_snapLinesCollector';\nimport { SnapLineSurface } from './_snapLineSurface';\nimport { binaryIndexOf } from '../utils/_arrayutils';\nexport class SnapLinesHelper {\n constructor(surface = null, snapTolerance = SnapLinesHelper.snapTolerance, snapLinesCollector = new SnapLinesCollector()) {\n this.snapLineSurfaces = [new SnapLineSurface(), new SnapLineSurface(), new SnapLineSurface(), new SnapLineSurface()];\n this.verticalSnapLines = [];\n this.horizontalSnapLines = [];\n this._surfaceContext = surface;\n this._snapTolerance = snapTolerance;\n this._snapLinesCollector = snapLinesCollector;\n }\n _findClosestSnapLine(position, snapLines) {\n var line = {\n position: position,\n limitInf: 0,\n limSup: 0\n };\n var index = binaryIndexOf(snapLines, line, (a, b) => a.position - b.position);\n var snapLineCandidate;\n if (index > -1) {\n snapLineCandidate = {\n snapLine: snapLines[index],\n distance: position - snapLines[index].position\n };\n }\n else {\n index = ~index;\n var delta1 = snapLines[index] ? (position - snapLines[index].position) : Number.MAX_VALUE;\n var delta2 = snapLines[index - 1] ? (position - snapLines[index - 1].position) : Number.MAX_VALUE;\n snapLineCandidate = Math.abs(delta1) > Math.abs(delta2) ?\n { snapLine: snapLines[index - 1], distance: delta2 } :\n { snapLine: snapLines[index], distance: delta1 };\n }\n return snapLineCandidate;\n }\n _getActiveSnapLines(position1, position2, snapLines) {\n var line1 = this._findClosestSnapLine(position1, snapLines);\n var line2 = this._findClosestSnapLine(position2, snapLines);\n var result = {\n lines: [],\n distance: 0\n };\n if (Math.abs(line1.distance - line2.distance) >= 1) {\n var line = Math.abs(line1.distance) < Math.abs(line2.distance) ? line1 : line2;\n if (Math.abs(line.distance) <= this._snapTolerance) {\n result.lines = [line];\n result.distance = line.distance;\n }\n }\n else if (Math.abs(line1.distance) <= this._snapTolerance) {\n result.lines = [line1, line2];\n result.distance = line1.distance;\n }\n return result;\n }\n updateSnapLines(snapTargetToIgnore = null) {\n this.verticalSnapLines.splice(0);\n this.horizontalSnapLines.splice(0);\n var result = this._snapLinesCollector.collectSnaplines(this._surfaceContext(), snapTargetToIgnore);\n this.verticalSnapLines.push.apply(this.verticalSnapLines, result.vertical);\n this.horizontalSnapLines.push.apply(this.horizontalSnapLines, result.horizontal);\n }\n deactivateSnapLines() {\n this.snapLineSurfaces[0].reset();\n this.snapLineSurfaces[1].reset();\n this.snapLineSurfaces[2].reset();\n this.snapLineSurfaces[3].reset();\n }\n activateSnapLines(position) {\n var vertical = this._getActiveSnapLines(position.left, position.right, this.verticalSnapLines);\n var horizontal = this._getActiveSnapLines(position.top, position.bottom, this.horizontalSnapLines);\n for (var i = 0; i < 2; i++) {\n var line = vertical.lines[i];\n if (!line) {\n this.snapLineSurfaces[i].reset();\n }\n else {\n var top = Math.min(line.snapLine.limitInf, position.top);\n var bottom = Math.max(line.snapLine.limSup, position.bottom);\n if (position.top < line.snapLine.limitInf) {\n top -= horizontal.distance;\n }\n if (position.bottom > line.snapLine.limSup) {\n bottom -= horizontal.distance;\n }\n this.snapLineSurfaces[i].updatePosition({\n top: top,\n left: line.snapLine.position,\n height: bottom - top,\n width: 1\n });\n }\n }\n for (var i = 0; i < 2; i++) {\n var line = horizontal.lines[i];\n if (!line) {\n this.snapLineSurfaces[i + 2].reset();\n }\n else {\n var left = Math.min(line.snapLine.limitInf, position.left);\n var right = Math.max(line.snapLine.limSup, position.right);\n if (position.left < line.snapLine.limitInf) {\n left -= vertical.distance;\n }\n if (position.right > line.snapLine.limSup) {\n right -= vertical.distance;\n }\n this.snapLineSurfaces[i + 2].updatePosition({\n top: line.snapLine.position,\n left: left,\n width: right - left,\n height: 1\n });\n }\n }\n return {\n left: vertical.distance,\n top: horizontal.distance\n };\n }\n snapPosition(position, horizontal) {\n var line = this._findClosestSnapLine(position, horizontal ? this.horizontalSnapLines : this.verticalSnapLines);\n return (line && Math.abs(line.distance) <= this._snapTolerance) ? line.snapLine.position : position;\n }\n}\nSnapLinesHelper.snapTolerance = 10;\n","/**\n* DevExpress Analytics (core\\elements\\point.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { locationFake } from '../_metadata';\nexport class Point {\n constructor(x, y) {\n this.x = ko.observable(x).extend({ 'dxdnum': {} });\n this.y = ko.observable(y).extend({ 'dxdnum': {} });\n }\n getInfo() {\n return locationFake;\n }\n static fromString(value = '0, 0') {\n var components = value.split(',');\n return new Point(parseFloat(components[0]), parseFloat(components[1]));\n }\n toString() {\n return this.x() + ', ' + this.y();\n }\n}\nPoint.unitProperties = ['x', 'y'];\n","/**\n* DevExpress Analytics (core\\tools\\_actionList.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardHelper } from './_keyboardHelper';\nimport { CopyPasteHandler } from './_copyPaste';\nimport { ActionId } from './actionId';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { deleteSelection } from '../selection/_selectionHelpers';\nimport { parseZoom } from '../utils/_utils';\nexport class ActionListsBase extends Disposable {\n constructor(enabled) {\n super();\n this.toolbarItems = [];\n this.enabled = enabled || ko.observable(true);\n }\n processShortcut(actions, e) {\n for (var i = 0; i < actions.length; i++) {\n if (actions[i].hotKey && (actions[i].disabled && !actions[i].disabled() || !actions[i].disabled) && ($.isFunction(actions[i].visible) ? actions[i].visible() : actions[i].visible)) {\n if (actions[i].hotKey.ctrlKey === e.ctrlKey && actions[i].hotKey.keyCode === e.keyCode) {\n actions[i].clickAction();\n e.preventDefault();\n }\n }\n }\n }\n shouldIgnoreProcessing(e) {\n if (e.altKey || !this.enabled.peek())\n return true;\n var activeElement = $.fn.constructor(document.activeElement);\n if (activeElement.is('textarea') || activeElement.is(':input') && (['password', 'text', 'number'].indexOf(activeElement.attr('type')) != -1)) {\n return true;\n }\n return false;\n }\n}\nexport class ActionLists extends ActionListsBase {\n constructor(surfaceContext, selection, undoEngine, customizeActions, enabled, copyPasteStrategy, zoomStep = ko.observable(0.01), isLocked = (item) => false) {\n super(enabled);\n this.menuItems = [];\n var copyPasteHandler = new CopyPasteHandler(selection, copyPasteStrategy), actions = [];\n if (selection) {\n var selectionControlsLocked = ko.computed(() => {\n return selection.selectedItems.some(item => item.locked || isLocked(item));\n });\n this._disposables.push(selectionControlsLocked);\n this._keyboardHelper = new KeyboardHelper(selection, undoEngine);\n actions.push({\n id: ActionId.Cut,\n text: 'Cut',\n displayText: () => getLocalization('Cut', 'AnalyticsCoreStringId.EditCut'),\n imageClassName: 'dxrd-image-cut',\n imageTemplateName: 'dxrd-svg-toolbar-cut',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canCopy() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n undoEngine().start();\n copyPasteHandler.cut();\n undoEngine().end();\n },\n hotKey: { ctrlKey: true, keyCode: 'X'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Copy,\n text: 'Copy',\n displayText: () => getLocalization('Copy', 'AnalyticsCoreStringId.Cmd_Copy'),\n imageClassName: 'dxrd-image-copy',\n imageTemplateName: 'dxrd-svg-toolbar-copy',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canCopy() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n copyPasteHandler.copy();\n },\n hotKey: { ctrlKey: true, keyCode: 'C'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Paste,\n text: 'Paste',\n displayText: () => getLocalization('Paste', 'AnalyticsCoreStringId.Cmd_Paste'),\n imageClassName: 'dxrd-image-paste',\n imageTemplateName: 'dxrd-svg-toolbar-paste',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canPaste() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n undoEngine().start();\n copyPasteHandler.paste();\n undoEngine().end();\n },\n hotKey: { ctrlKey: true, keyCode: 'V'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Delete,\n text: 'Delete',\n displayText: () => getLocalization('Delete', 'AnalyticsCoreStringId.Cmd_Delete'),\n imageClassName: 'dxrd-image-delete',\n imageTemplateName: 'dxrd-svg-toolbar-delete',\n disabled: ko.pureComputed(() => {\n if (selection.focused()) {\n return selection.focused().getControlModel().getMetaData().isDeleteDeny || selectionControlsLocked();\n }\n else {\n return true;\n }\n }),\n visible: true,\n hotKey: { ctrlKey: false, keyCode: 46 },\n clickAction: () => {\n undoEngine().start();\n deleteSelection(selection);\n undoEngine().end();\n }\n });\n }\n actions.push({\n id: ActionId.Undo,\n text: 'Undo',\n displayText: () => getLocalization('Undo', 'AnalyticsCoreStringId.Undo'),\n imageClassName: 'dxrd-image-undo',\n imageTemplateName: 'dxrd-svg-toolbar-undo',\n disabled: ko.pureComputed(() => { return !surfaceContext() || !undoEngine() || (undoEngine() && !undoEngine().undoEnabled()); }),\n visible: true,\n clickAction: () => {\n undoEngine().undo();\n },\n hotKey: { ctrlKey: true, keyCode: 'Z'.charCodeAt(0) },\n hasSeparator: true\n });\n actions.push({\n id: ActionId.Redo,\n text: 'Redo',\n displayText: () => getLocalization('Redo', 'AnalyticsCoreStringId.Redo'),\n imageClassName: 'dxrd-image-redo',\n imageTemplateName: 'dxrd-svg-toolbar-redo',\n disabled: ko.pureComputed(() => { return !surfaceContext() || !undoEngine() || (undoEngine() && !undoEngine().redoEnabled()); }),\n visible: true,\n clickAction: () => {\n undoEngine().redo();\n },\n hotKey: { ctrlKey: true, keyCode: 'Y'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.ZoomOut,\n text: 'Zoom Out',\n displayText: () => getLocalization('Zoom Out', 'AnalyticsCoreStringId.ZoomOut'),\n imageClassName: 'dxrd-image-zoomout',\n imageTemplateName: 'dxrd-svg-toolbar-zoomout',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 109 },\n zoomStep: zoomStep,\n clickAction: () => {\n surfaceContext().zoom(Math.max(surfaceContext().zoom() - zoomStep(), 0.01));\n },\n hasSeparator: true\n });\n actions.push({\n id: ActionId.ZoomSelector,\n text: 'Zoom 100%',\n displayText: () => getLocalization('Zoom 100%'),\n imageClassName: 'dxrd-image-zoom',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 187 },\n clickAction: () => {\n surfaceContext().zoom(1);\n },\n templateName: 'dxrd-zoom-select-template',\n zoomLevels: ko.observableArray([5, 2, 1.5, 1, 0.75, 0.5, 0.25]),\n zoom: ko.pureComputed({\n read: () => { return surfaceContext() && surfaceContext().zoom(); },\n write: (val) => { surfaceContext().zoom(val); }\n }),\n onCustomItemCreating: (e) => {\n e.customItem = parseZoom(e.text);\n }\n });\n actions.push({\n id: ActionId.ZoomIn,\n text: 'Zoom In',\n displayText: () => getLocalization('Zoom In', 'AnalyticsCoreStringId.ZoomIn'),\n imageClassName: 'dxrd-image-zoomin',\n imageTemplateName: 'dxrd-svg-toolbar-zoomin',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 107 },\n zoomStep: zoomStep,\n clickAction: () => {\n surfaceContext().zoom(surfaceContext().zoom() + zoomStep());\n }\n });\n if (customizeActions) {\n customizeActions(actions);\n }\n actions.forEach((action) => {\n Object.keys(action).forEach((name) => {\n if (ko.isComputed(action[name])) {\n this._disposables.push(action[name]);\n }\n });\n this._registerAction(action['container'] === 'menu' ? this.menuItems : ko.unwrap(this.toolbarItems), action);\n });\n }\n _registerAction(container, action) {\n if (action['index']) {\n container.splice(action['index'], 0, action);\n }\n else {\n container.push(action);\n }\n }\n processShortcut(actions, e) {\n if (this.shouldIgnoreProcessing(e)) {\n return;\n }\n if (!this._keyboardHelper.processShortcut(e)) {\n super.processShortcut(actions, e);\n }\n else {\n e.preventDefault();\n }\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\internal\\_popupService.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class PopupService {\n constructor() {\n this.data = ko.observable();\n this.title = ko.observable();\n this.visible = ko.observable(false);\n this.disabled = ko.observable(false);\n this.actions = ko.observableArray([]);\n this.target = ko.observable();\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\_fonts.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport var availableFonts = ko.observable({});\n","/**\n* DevExpress Analytics (core\\widgets\\bordereditor\\_bordereditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nexport class BordersModel extends Disposable {\n constructor(object) {\n super();\n this.left = ko.observable(false);\n this.right = ko.observable(false);\n this.top = ko.observable(false);\n this.bottom = ko.observable(false);\n this.disabled = object.disabled || ko.observable(false);\n this.value = object.value;\n this.updateModel(object.value());\n this._disposables.push(object.value.subscribe((newVal) => {\n this.updateModel(newVal);\n }));\n }\n _setAllValues(value) {\n this.left(value), this.bottom(value), this.right(value), this.top(value);\n }\n setValue(name) {\n if (this.disabled())\n return;\n this[name](!this[name]());\n this.updateValue();\n }\n setAll() {\n if (this.disabled())\n return;\n this._setAllValues(true);\n this.updateValue();\n }\n setNone() {\n if (this.disabled())\n return;\n this._setAllValues(false);\n this.updateValue();\n }\n updateModel(value) {\n var val = value || 'None';\n if (val.indexOf('All') !== -1) {\n this._setAllValues(true);\n }\n else if (val.indexOf('None') !== -1) {\n this._setAllValues(false);\n }\n else {\n this.left(val.indexOf('Left') !== -1);\n this.top(val.indexOf('Top') !== -1);\n this.right(val.indexOf('Right') !== -1);\n this.bottom(val.indexOf('Bottom') !== -1);\n }\n }\n updateValue() {\n var result = [];\n if (this.left() && this.right() && this.top() && this.bottom()) {\n result.push('All');\n }\n else if (!this.left() && !this.right() && !this.top() && !this.bottom()) {\n result.push('None');\n }\n else {\n this.left() ? result.push('Left') : null;\n this.right() ? result.push('Right') : null;\n this.top() ? result.push('Top') : null;\n this.bottom() ? result.push('Bottom') : null;\n }\n this.value(result.join(','));\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\bordereditor\\_binding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { BordersModel } from './_bordereditor';\nimport { getTemplate } from '../../../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nko.bindingHandlers['dxBorderEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrd-bordereditor'), $element = $.fn.constructor(element).append(templateHtml);\n var model = new BordersModel(valueAccessor());\n ko.applyBindings({ value: model }, $element.children()[0]);\n addDisposeCallback(element, () => model.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress Analytics (core\\widgets\\_buttonInlineEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/button';\nimport dxButton from 'devextreme/ui/button';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nvar editor_template = {\n render: function (options) {\n var $icon = $.fn.constructor('').addClass('dx-icon');\n if (!!options.model.iconClass) {\n $icon.addClass(options.model.iconClass);\n $icon.addClass('dx-icon-' + options.model.iconClass);\n $icon.addClass('dx-icon-dxrd');\n }\n else if (!!options.model.icon) {\n $icon.addClass(options.model.icon);\n }\n if (options.model.icon) {\n $icon.attr('data-bind', \"template: '\" + options.model.icon + \"'\");\n }\n var icon = $icon.get(0);\n $.fn.constructor(options.container).append(icon);\n if (options.model.text) {\n var $span = $.fn.constructor('').addClass('dx-button-text');\n $span.text(options.model.text);\n $.fn.constructor(options.container).append($span);\n }\n setTimeout(() => {\n if (!ko.dataFor(icon))\n ko.applyBindings(options.model, icon);\n }, 1);\n }\n};\nexport class dxButtonWithTemplate extends dxButton {\n constructor(element, options) {\n options['template'] = editor_template;\n super(element, options);\n }\n _patchOptionValues(options) {\n var patchedOptions = super['_patchOptionValues'].call(this, options);\n var optionsToExtend = { iconClass: options['iconClass'] };\n ko.utils.extend(patchedOptions.templateData, optionsToExtend);\n return patchedOptions;\n }\n}\nregisterComponent('dxButtonWithTemplate', dxButtonWithTemplate);\n","/**\n* DevExpress Analytics (core\\_bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { KeyboardEnum } from '../property-grid/widgets/internal/_utils';\nimport { getTemplate } from '../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { extend } from '../serializer/_utils';\nimport { DragDropHandler } from './dragDrop/_dragDropHandler';\nimport { KeyDownHandlersManager } from './tools/_keyboardHelper';\nimport { cssTransform } from './utils/_utils';\nimport { Selectable } from './internal/selectable';\nimport { Draggable } from './internal/_draggable';\nimport { convertToCssPixelUnits } from './internal/_utils';\nko.bindingHandlers['cssArray'] = {\n 'update': function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n for (var i = 0; i < value.length; i++) {\n ko.bindingHandlers['css'].update(element, () => { return value[i]; });\n }\n }\n};\nko.bindingHandlers['selectable'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var selection = ko.unwrap(values.selection), options = extend({ filter: '.dxd-selectable', distance: 1 }, ko.unwrap(values), {\n selecting: function (event, selectionElement) {\n var _event = { control: ko.dataFor(selectionElement), cancel: false, ctrlKey: event.ctrlKey };\n selection.selecting(_event);\n if (_event.cancel) {\n $.fn.constructor(selectionElement).removeClass('ui-selecting');\n }\n },\n start: (event, element) => {\n selection.clickHandler(null, event);\n selection.expectClick = true;\n selection.started = true;\n },\n stop: () => {\n selection.started = false;\n setTimeout(() => { selection.expectClick = false; }, 100);\n selection.applySelection();\n },\n unselecting: function (event, selectionElement) {\n selection.unselecting(ko.dataFor(selectionElement));\n }\n });\n const selectable = new Selectable(element, options);\n var subscriptions = [];\n if (selection.disabled && ko.isSubscribable(selection.disabled)) {\n subscriptions.push(selection.disabled.subscribe((newVal) => {\n return Selectable.disabled = newVal;\n }));\n }\n addDisposeCallback(element, () => {\n selectable.dispose();\n element = null;\n subscriptions.forEach(x => x.dispose());\n });\n }\n};\nko.bindingHandlers['updateTop'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = valueAccessor();\n var $element = $.fn.constructor(element);\n var updateTop = (value) => {\n var scaleY = element.getBoundingClientRect().height / element.offsetHeight;\n var top = (value === 0 || !!value) ? value : ($element.prev().position().top / scaleY) + $element.prev().outerHeight();\n $element.css('top', top + 'px');\n };\n var subscription = value.subscribe((newVal) => {\n updateTop(newVal);\n });\n updateTop(value());\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nfunction _getElementOffset(element, containment) {\n if (!element)\n return { top: 0, left: 0 };\n const containmentElement = _getContainment(element, containment);\n return {\n top: containmentElement.offset().top,\n left: containmentElement.offset().left\n };\n}\nfunction _getContainment(parent, containment) {\n return (containment === 'parent' || containment === parent) ? parent : parent.find(containment);\n}\nfunction _getBoundary($parent, $containment) {\n if (!$parent || !$containment)\n return null;\n var top = $parent.offset().top - $containment.offset().top;\n var left = $parent.offset().left - $containment.offset().left;\n return {\n left: left,\n top: top,\n right: left + $containment.width(),\n bottom: top + $containment.height()\n };\n}\nko.bindingHandlers['draggable'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var values = valueAccessor();\n if (!values)\n return;\n var $element = $.fn.constructor(element), $parent = values.parent && values.parent() || $element.closest('.dx-designer-viewport'), containment = values.containment || '.dxrd-ghost-container', $viewport, $ghostContainerOffset, $containmentOffset, initialScroll = { left: 0, top: 0 }, attachDelta = (ui) => {\n ui['delta'] = {\n left: (($ghostContainerOffset && $ghostContainerOffset.left || 0) - $containmentOffset.left),\n top: ($ghostContainerOffset && $ghostContainerOffset.top || 0) - $containmentOffset.top\n };\n ui['scroll'] = {\n left: $viewport.scrollLeft() - initialScroll.left,\n top: $viewport.scrollTop() - initialScroll.top\n };\n }, options = extend({}, ko.unwrap(values), {\n start: function (event, uiElement) {\n DragDropHandler.started(true);\n $viewport = $parent.find('.dxrd-viewport');\n $ghostContainerOffset = $parent.find('.dxrd-ghost-container').offset();\n $containmentOffset = _getContainment($parent, containment).offset();\n initialScroll.left = $viewport.scrollLeft();\n initialScroll.top = $viewport.scrollTop();\n values.startDrag && values.startDrag(ko.dataFor(uiElement));\n },\n stop: function (event, uiElement) {\n attachDelta(uiElement);\n values.stopDrag(uiElement, ko.dataFor(uiElement), event);\n DragDropHandler.started(false);\n },\n drag: function (event, uiElement) {\n attachDelta(uiElement);\n values.drag && values.drag(event, uiElement, ko.dataFor(uiElement));\n },\n helper: function (event, uiElement) {\n let $container;\n var parentOffset = _getElementOffset($parent, options.containment);\n if (values.helper) {\n $container = values.helper(ko.dataFor(uiElement), event);\n if ($container) {\n $container.css({ 'position': 'absolute' });\n $container[0].dataset.startLeftPosition = convertToCssPixelUnits(event.pageX - parentOffset.left);\n $container[0].dataset.startTopPosition = convertToCssPixelUnits(event.pageY - parentOffset.top);\n return $container;\n }\n }\n var templateHtml = getTemplate(bindingContext.$root.dragHelperContent.template);\n var draggableModel = ko.dataFor(uiElement);\n $container = $.fn.constructor(templateHtml).css({ 'display': values.helper ? 'block' : 'none', 'position': 'absolute' });\n $container[0].dataset.startLeftPosition = convertToCssPixelUnits(draggableModel.absolutePosition ? draggableModel.absolutePosition.x() : event.pageX - parentOffset.left);\n $container[0].dataset.startTopPosition = convertToCssPixelUnits(draggableModel.absolutePosition ? draggableModel.absolutePosition.y() : event.pageY - parentOffset.top);\n $container.prependTo(_getContainment($parent, options.containment));\n ko.applyBindingsToDescendants(bindingContext.$root.dragHelperContent, $container[0]);\n return $container;\n }\n });\n options.containment = _getContainment($parent, options.containment);\n setDragOffsetMode(element);\n options.disabled = () => {\n return bindingContext.$root.inlineTextEdit &&\n bindingContext.$root.inlineTextEdit['_showInline']() &&\n element === bindingContext.$root.inlineTextEdit.element;\n };\n const draggable = new Draggable(element, options);\n addDisposeCallback(element, () => {\n draggable.dispose();\n element = null;\n });\n }\n};\nvar trackCursorData = 'dxd-track-cursor-data';\nvar trackCursorClass = 'dxd-track-cursor';\nvar trackCursorSelector = '.' + trackCursorClass;\nvar dragHelperLineClass = 'dxrd-drag-helper-item';\nko.bindingHandlers['trackCursor'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var $element = $.fn.constructor(element);\n $element.addClass(trackCursorClass);\n var value = valueAccessor();\n var recalculateBounds = false;\n if (value['recalculateBounds']) {\n recalculateBounds = value['recalculateBounds'];\n value = value['underCursor'];\n }\n var bounds = element.getBoundingClientRect(), body = document.body, docElem = document.documentElement, overHandler = (event) => {\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n if (!value().isNotDropTarget) {\n bindingContext.$root.selection.dropTarget = bindingContext.$data;\n event.stopPropagation();\n }\n }\n }, enterHandler = (event) => {\n value(extend(value(), { isOver: true }));\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n bounds = element.getBoundingClientRect();\n }\n }, leaveHandler = (event) => {\n value(extend(value(), { isOver: false }));\n }, handler = (event) => {\n if (recalculateBounds)\n bounds = element.getBoundingClientRect();\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop, scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft, clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, y = event.pageY - (bounds.top + scrollTop - clientTop), x = event.pageX - (bounds.left + scrollLeft - clientLeft);\n value(extend(value(), { x: x, y: y }));\n }\n };\n element.addEventListener('mousemove', handler);\n !recalculateBounds && element.addEventListener('mouseenter', enterHandler);\n element.addEventListener('mouseover', overHandler);\n element.addEventListener('mouseleave', leaveHandler);\n element.addEventListener('dragover', handler);\n addDisposeCallback(element, function () {\n element.removeEventListener('dragover', handler);\n element.removeEventListener('mousemove', handler);\n element.removeEventListener('mouseover', overHandler);\n element.removeEventListener('mouseleave', leaveHandler);\n !recalculateBounds && element.removeEventListener('mouseenter', enterHandler);\n $element.removeClass(trackCursorClass);\n });\n }\n};\nko.bindingHandlers['templates'] = {\n init: function (element, valueAccessor) {\n var templateHtml = $.fn.constructor(valueAccessor()).text(), $templateHtml = $.fn.constructor(templateHtml);\n $.fn.constructor(element).append($templateHtml);\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['zoom'] = {\n update: function (element, valueAccessor) {\n var value = ko.unwrap(valueAccessor() || {});\n for (var i = 0; i < cssTransform.length; i++) {\n element.style[cssTransform[i]] = 'scale(' + (value) + ')';\n }\n $.fn.constructor(element).addClass('dxrd-transform-origin-left-top');\n }\n};\nko.bindingHandlers['keyDownActions'] = (() => {\n var handlersManager = new KeyDownHandlersManager(window);\n return {\n init: function (element, valueAccessor) {\n var actionLists = valueAccessor(), handler = (e) => { actionLists.processShortcut(ko.unwrap(actionLists.toolbarItems), e); };\n if (ko.isSubscribable(actionLists.enabled)) {\n var subscribe = actionLists.enabled.subscribe((newVal) => {\n if (newVal)\n handlersManager.bindHandler(element, handler);\n });\n addDisposeCallback(element, () => subscribe.dispose());\n }\n if (ko.unwrap(actionLists.enabled))\n handlersManager.bindHandler(element, handler);\n }\n };\n})();\nko.bindingHandlers['accessibilityKeyboardHelper'] = (() => {\n return {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var handlersManager = valueAccessor();\n if (handlersManager && (bindingContext.$root.accessibilityCompliant || handlersManager.accessibilityCompliantEnabled)) {\n var subscription = ko.bindingEvent.subscribe(element, 'childrenComplete', function () {\n handlersManager.bindHandler(element);\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n }\n };\n})();\nko.bindingHandlers['dxAction'] = (() => {\n return {\n init: (element, valueAccessor) => {\n var values = valueAccessor();\n var clickHandler = function (e) {\n values.action.call(values.model, values.model, e);\n };\n var keyPressHandler = function (e) {\n if (e.key == KeyboardEnum.Enter || e.key == KeyboardEnum.Space) {\n values.action.call(values.model, values.model, e);\n }\n };\n element.addEventListener('click', clickHandler);\n element.addEventListener('keydown', keyPressHandler);\n addDisposeCallback(element, function () {\n element.removeEventListener('click', clickHandler);\n element.removeEventListener('keydown', keyPressHandler);\n });\n }\n };\n})();\nko.extenders.dxdnum = function (target, value) {\n target.subscribe((newValue) => {\n newValue = newValue || 0;\n if (!isNaN(value.max)) {\n target(Math.min(newValue, value.max));\n }\n else if (!isNaN(value.min)) {\n target(Math.max(newValue, value.min));\n }\n else {\n target(newValue);\n }\n });\n return target;\n};\nfunction setDragOffsetMode(element) {\n const startDragWithOffset = element.parentElement.classList.contains('dxrd-toolbox-item');\n if (startDragWithOffset) {\n element.dataset.startDragWithOffset = 'true';\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\internal\\_codeResolver.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { guid } from '../../undo-engine/_utils';\nexport class CodeResolver {\n constructor() {\n this._queue = [];\n this._queueObj = {};\n this._done = [];\n this._doneOnce = [];\n }\n clear() {\n this._queue = [];\n this._queueObj = {};\n }\n done(callback) {\n this._done.push(callback);\n }\n doneOnce(callback) {\n this._doneOnce.push(callback);\n }\n _executeNext(id = this._queue[0]) {\n delete this._queueObj[id];\n while (this._queue.length > 0 && !this._queueObj[this._queue[0]]) {\n this._queue.splice(0, 1);\n }\n if (this._queue.length !== 0) {\n this._queueObj[this._queue[0]]();\n }\n else {\n for (var i = 0; i < this._done.length; i++) {\n this._done[i]();\n }\n do {\n var doOnceCallback = this._doneOnce.pop();\n doOnceCallback && doOnceCallback();\n } while (this._doneOnce.length);\n }\n }\n execute(func, time = 0) {\n var id = guid();\n var $deferred = $.Deferred();\n if (time) {\n this._queue.push(id);\n this._queueObj[id] = () => {\n if (!this._queueObj[id])\n return this._executeNext(id);\n setTimeout(() => {\n this._queueObj[id] && $deferred.resolve(func());\n this._executeNext(id);\n }, time);\n };\n if (this._queue.length === 1) {\n this._queueObj[this._queue[0]]();\n }\n }\n else {\n $deferred.resolve(func());\n }\n return {\n dispose: () => (delete this._queueObj[id], $deferred.reject()),\n force: () => (delete this._queueObj[id], $deferred.resolve(func())),\n doNext: () => (this._queue.splice(0, 0, id)),\n $promise: $deferred.promise()\n };\n }\n}\nexport var globalResolver = new CodeResolver();\n","/**\n* DevExpress Analytics (property-grid\\localization\\_localizationStringIds.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var StringId = {\n MasterDetailRelationsEditor: 'DataAccessUIStringId.MasterDetailEditorForm_Title',\n DataAccessBtnOK: 'DataAccessUIStringId.Button_OK',\n DataAccessBtnCancel: 'DataAccessUIStringId.Button_Cancel',\n DataSourceWizardTitle: 'DataAccessUIStringId.WizardTitleDatasource',\n WizardPageConfigureQuery: 'DataAccessUIStringId.WizardPageConfigureQuery'\n};\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_functions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend } from '../../../serializer/_utils';\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nvar defaultFunctionDisplay = [\n {\n display: 'Aggregate',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Aggregate',\n category: 'Aggregate',\n items: {\n Avg: [{ paramCount: 1, text: '[].Avg()', displayName: 'Avg()', descriptionStringId: 'ExpressionEditorStringId.Function_AvgAggregate' }],\n Count: [{ paramCount: 1, text: '[].Count()', displayName: 'Count()', descriptionStringId: 'ExpressionEditorStringId.Function_CountAggregate' }],\n Exists: [{ paramCount: 1, text: '[].Exists()', displayName: 'Exists()', descriptionStringId: 'ExpressionEditorStringId.Function_ExistsAggregate' }],\n Max: [{ paramCount: 1, text: '[].Max()', displayName: 'Max()', descriptionStringId: 'ExpressionEditorStringId.Function_MaxAggregate' }],\n Min: [{ paramCount: 1, text: '[].Min()', displayName: 'Min()', descriptionStringId: 'ExpressionEditorStringId.Function_MinAggregate' }],\n Single: [{ paramCount: 1, text: '[].Single()', displayName: 'Single()', descriptionStringId: 'ExpressionEditorStringId.Function_SingleAggregate' }],\n Sum: [{ paramCount: 1, text: '[].Sum()', displayName: 'Sum()', descriptionStringId: 'ExpressionEditorStringId.Function_SumAggregate' }],\n }\n }, {\n display: 'Date-Time',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_DateTime',\n items: {\n LocalDateTimeThisYear: [{ paramCount: 0, text: 'LocalDateTimeThisYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisYear' }],\n LocalDateTimeThisMonth: [{ paramCount: 0, text: 'LocalDateTimeThisMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisMonth' }],\n LocalDateTimeLastMonth: [{ paramCount: 0, text: 'LocalDateTimeLastMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastMonth' }],\n LocalDateTimeLastWeek: [{ paramCount: 0, text: 'LocalDateTimeLastWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastWeek' }],\n LocalDateTimeLastYear: [{ paramCount: 0, text: 'LocalDateTimeLastYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastYear' }],\n LocalDateTimeThisWeek: [{ paramCount: 0, text: 'LocalDateTimeThisWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisWeek' }],\n LocalDateTimeYesterday: [{ paramCount: 0, text: 'LocalDateTimeYesterday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeYesterday' }],\n LocalDateTimeToday: [{ paramCount: 0, text: 'LocalDateTimeToday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeToday' }],\n LocalDateTimeNow: [{ paramCount: 0, text: 'LocalDateTimeNow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNow' }],\n LocalDateTimeTomorrow: [{ paramCount: 0, text: 'LocalDateTimeTomorrow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTomorrow' }],\n LocalDateTimeDayAfterTomorrow: [{ paramCount: 0, text: 'LocalDateTimeDayAfterTomorrow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeDayAfterTomorrow' }],\n LocalDateTimeNextWeek: [{ paramCount: 0, text: 'LocalDateTimeNextWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextWeek' }],\n LocalDateTimeTwoMonthsAway: [{ paramCount: 0, text: 'LocalDateTimeTwoMonthsAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoMonthsAway' }],\n LocalDateTimeTwoYearsAway: [{ paramCount: 0, text: 'LocalDateTimeTwoYearsAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoYearsAway' }],\n LocalDateTimeTwoWeeksAway: [{ paramCount: 0, text: 'LocalDateTimeTwoWeeksAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoWeeksAway' }],\n LocalDateTimeNextMonth: [{ paramCount: 0, text: 'LocalDateTimeNextMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextMonth' }],\n LocalDateTimeNextYear: [{ paramCount: 0, text: 'LocalDateTimeNextYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextYear' }],\n LocalDateTimeYearBeforeToday: [{ paramCount: 0, text: 'LocalDateTimeYearBeforeToday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeYearBeforeToday' }],\n InDateRange: [{ paramCount: 3, text: 'InDateRange(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_InDateRange' }],\n IsOutlookIntervalBeyondThisYear: null,\n IsOutlookIntervalNextWeek: null,\n IsOutlookIntervalTomorrow: null,\n IsOutlookIntervalToday: null,\n IsOutlookIntervalYesterday: null,\n IsOutlookIntervalLastWeek: null,\n IsOutlookIntervalPriorThisYear: null,\n IsLastMonth: [{ paramCount: 1, text: 'IsLastMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsLastMonth' }],\n IsLastYear: [{ paramCount: 1, text: 'IsLastYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsLastYear' }],\n IsNextMonth: [{ paramCount: 1, text: 'IsNextMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNextMonth' }],\n IsNextYear: [{ paramCount: 1, text: 'IsNextYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNextYear' }],\n IsThisWeek: [{ paramCount: 1, text: 'IsThisWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisWeek' }],\n IsThisMonth: [{ paramCount: 1, text: 'IsThisMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisMonth' }],\n IsThisYear: [{ paramCount: 1, text: 'IsThisYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisYear' }],\n IsJanuary: [{ paramCount: 1, text: 'IsJanuary()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJanuary' }],\n IsFebruary: [{ paramCount: 1, text: 'IsFebruary()', descriptionStringId: 'ExpressionEditorStringId.Function_IsFebruary' }],\n IsMarch: [{ paramCount: 1, text: 'IsMarch()', descriptionStringId: 'ExpressionEditorStringId.Function_IsMarch' }],\n IsApril: [{ paramCount: 1, text: 'IsApril()', descriptionStringId: 'ExpressionEditorStringId.Function_IsApril' }],\n IsMay: [{ paramCount: 1, text: 'IsMay()', descriptionStringId: 'ExpressionEditorStringId.Function_IsMay' }],\n IsJune: [{ paramCount: 1, text: 'IsJune()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJune' }],\n IsJuly: [{ paramCount: 1, text: 'IsJuly()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJuly' }],\n IsAugust: [{ paramCount: 1, text: 'IsAugust()', descriptionStringId: 'ExpressionEditorStringId.Function_IsAugust' }],\n IsSeptember: [{ paramCount: 1, text: 'IsSeptember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsSeptember' }],\n IsOctober: [{ paramCount: 1, text: 'IsOctober()', descriptionStringId: 'ExpressionEditorStringId.Function_IsOctober' }],\n IsNovember: [{ paramCount: 1, text: 'IsNovember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNovember' }],\n IsDecember: [{ paramCount: 1, text: 'IsDecember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsDecember' }],\n IsSameDay: [{ paramCount: 2, text: 'IsSameDay(, )', descriptionStringId: 'ExpressionEditorStringId.Function_IsSameDay' }],\n IsYearToDate: [{ paramCount: 1, text: 'IsYearToDate()', descriptionStringId: 'ExpressionEditorStringId.Function_IsYearToDate' }],\n DateDiffTick: [{ paramCount: 2, text: 'DateDiffTick(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffTick' }],\n DateDiffSecond: [{ paramCount: 2, text: 'DateDiffSecond(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffSecond' }],\n DateDiffMilliSecond: [{ paramCount: 2, text: 'DateDiffMilliSecond(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMilliSecond' }],\n DateDiffMinute: [{ paramCount: 2, text: 'DateDiffMinute(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMinute' }],\n DateDiffHour: [{ paramCount: 2, text: 'DateDiffHour(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffHour' }],\n DateDiffDay: [{ paramCount: 2, text: 'DateDiffDay(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffDay' }],\n DateDiffMonth: [{ paramCount: 2, text: 'DateDiffMonth(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMonth' }],\n DateDiffYear: [{ paramCount: 2, text: 'DateDiffYear(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffYear' }],\n GetDate: [{ paramCount: 1, text: 'GetDate()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDate' }],\n GetMilliSecond: [{ paramCount: 1, text: 'GetMilliSecond()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMilliSecond' }],\n GetSecond: [{ paramCount: 1, text: 'GetSecond()', descriptionStringId: 'ExpressionEditorStringId.Function_GetSecond' }],\n GetMinute: [{ paramCount: 1, text: 'GetMinute()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMinute' }],\n GetHour: [{ paramCount: 1, text: 'GetHour()', descriptionStringId: 'ExpressionEditorStringId.Function_GetHour' }],\n GetDay: [{ paramCount: 1, text: 'GetDay()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDay' }],\n GetMonth: [{ paramCount: 1, text: 'GetMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMonth' }],\n GetYear: [{ paramCount: 1, text: 'GetYear()', descriptionStringId: 'ExpressionEditorStringId.Function_GetYear' }],\n GetDayOfWeek: [{ paramCount: 1, text: 'GetDayOfWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDayOfWeek' }],\n GetDayOfYear: [{ paramCount: 1, text: 'GetDayOfYear()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDayOfYear' }],\n GetTimeOfDay: [{ paramCount: 1, text: 'GetTimeOfDay()', descriptionStringId: 'ExpressionEditorStringId.Function_GetTimeOfDay' }],\n Now: [{ paramCount: 0, text: 'Now()', descriptionStringId: 'ExpressionEditorStringId.Function_Now' }],\n UtcNow: [{ paramCount: 0, text: 'UtcNow()', descriptionStringId: 'ExpressionEditorStringId.Function_UtcNow' }],\n Today: [{ paramCount: 0, text: 'Today()', descriptionStringId: 'ExpressionEditorStringId.Function_Today' }],\n AddTimeSpan: [{ paramCount: 2, text: 'AddTimeSpan(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddTimeSpan' }],\n AddTicks: [{ paramCount: 2, text: 'AddTicks(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddTicks' }],\n AddMilliSeconds: [{ paramCount: 2, text: 'AddMilliSeconds(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMilliSeconds' }],\n AddSeconds: [{ paramCount: 2, text: 'AddSeconds(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddSeconds' }],\n AddMinutes: [{ paramCount: 2, text: 'AddMinutes(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMinutes' }],\n AddHours: [{ paramCount: 2, text: 'AddHours(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddHours' }],\n AddDays: [{ paramCount: 2, text: 'AddDays(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddDays' }],\n AddMonths: [{ paramCount: 2, text: 'AddMonths(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMonths' }],\n AddYears: [{ paramCount: 2, text: 'AddYears(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddYears' }],\n },\n }, {\n display: 'Logical',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Logical',\n items: {\n Iif: [{ paramCount: 3, text: 'Iif(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_Iif' }],\n InRange: [{ paramCount: 3, text: 'InRange(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_InRange' }],\n IsNull: [{ paramCount: 1, text: 'IsNull()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNull' }],\n IsNullOrEmpty: [{ paramCount: 1, text: 'IsNullOrEmpty()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNullOrEmpty' }],\n }\n }, {\n display: 'Math',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Math',\n items: {\n Abs: [{ paramCount: 1, text: 'Abs()', descriptionStringId: 'ExpressionEditorStringId.Function_Abs' }],\n Sqr: [{ paramCount: 1, text: 'Sqr()', descriptionStringId: 'ExpressionEditorStringId.Function_Sqr' }],\n Cos: [{ paramCount: 1, text: 'Cos()', descriptionStringId: 'ExpressionEditorStringId.Function_Cos' }],\n Sin: [{ paramCount: 1, text: 'Sin()', descriptionStringId: 'ExpressionEditorStringId.Function_Sin' }],\n Atn: [{ paramCount: 1, text: 'Atn()', descriptionStringId: 'ExpressionEditorStringId.Function_Atn' }],\n Exp: [{ paramCount: 1, text: 'Exp()', descriptionStringId: 'ExpressionEditorStringId.Function_Exp' }],\n Log: [\n { paramCount: 1, text: 'Log()', descriptionStringId: 'ExpressionEditorStringId.Function_Log' },\n { paramCount: 2, text: 'Log(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Log_2' },\n ],\n Rnd: [{ paramCount: 0, text: 'Rnd()', descriptionStringId: 'ExpressionEditorStringId.Function_Rnd' }],\n Tan: [{ paramCount: 1, text: 'Tan()', descriptionStringId: 'ExpressionEditorStringId.Function_Tan' }],\n Power: [{ paramCount: 2, text: 'Power(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Power' }],\n Sign: [{ paramCount: 1, text: 'Sign()', descriptionStringId: 'ExpressionEditorStringId.Function_Sign' }],\n Round: [\n { paramCount: 1, text: 'Round()', descriptionStringId: 'ExpressionEditorStringId.Function_Round' },\n { paramCount: 2, text: 'Round(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Round_2' },\n ],\n Ceiling: [{ paramCount: 1, text: 'Ceiling()', descriptionStringId: 'ExpressionEditorStringId.Function_Ceiling' }],\n Floor: [{ paramCount: 1, text: 'Floor()', descriptionStringId: 'ExpressionEditorStringId.Function_Floor' }],\n Max: [{ paramCount: 2, text: 'Max(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Max' }],\n Min: [{ paramCount: 2, text: 'Min(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Min' }],\n Acos: [{ paramCount: 1, text: 'Acos()', descriptionStringId: 'ExpressionEditorStringId.Function_Acos' }],\n Asin: [{ paramCount: 1, text: 'Asin()', descriptionStringId: 'ExpressionEditorStringId.Function_Asin' }],\n Atn2: [{ paramCount: 2, text: 'Atn2(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Atn2' }],\n BigMul: [{ paramCount: 2, text: 'BigMul(, )', descriptionStringId: 'ExpressionEditorStringId.Function_BigMul' }],\n Cosh: [{ paramCount: 1, text: 'Cosh()', descriptionStringId: 'ExpressionEditorStringId.Function_Cosh' }],\n Log10: [{ paramCount: 1, text: 'Log10()', descriptionStringId: 'ExpressionEditorStringId.Function_Log10' }],\n Sinh: [{ paramCount: 1, text: 'Sinh()', descriptionStringId: 'ExpressionEditorStringId.Function_Sinh' }],\n Tanh: [{ paramCount: 1, text: 'Tanh()', descriptionStringId: 'ExpressionEditorStringId.Function_Tanh' }],\n ToInt: [{ paramCount: 1, text: 'ToInt()', descriptionStringId: 'ExpressionEditorStringId.Function_ToInt' }],\n ToLong: [{ paramCount: 1, text: 'ToLong()', descriptionStringId: 'ExpressionEditorStringId.Function_ToLong' }],\n ToFloat: [{ paramCount: 1, text: 'ToFloat()', descriptionStringId: 'ExpressionEditorStringId.Function_ToFloat' }],\n ToDouble: [{ paramCount: 1, text: 'ToDouble()', descriptionStringId: 'ExpressionEditorStringId.Function_ToDouble' }],\n ToDecimal: [{ paramCount: 1, text: 'ToDecimal()', descriptionStringId: 'ExpressionEditorStringId.Function_ToDecimal' }],\n }\n }, {\n display: 'String',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Text',\n items: {\n Trim: [{ paramCount: 1, text: 'Trim()', descriptionStringId: 'ExpressionEditorStringId.Function_Trim' }],\n Len: [{ paramCount: 1, text: 'Len()', descriptionStringId: 'ExpressionEditorStringId.Function_Len' }],\n Substring: [\n { paramCount: 3, text: \"Substring('', , )\", descriptionStringId: 'ExpressionEditorStringId.Function_Substring_3' },\n { paramCount: 2, text: \"Substring('', )\", descriptionStringId: 'ExpressionEditorStringId.Function_Substring' }\n ],\n Upper: [{ paramCount: 1, text: 'Upper()', descriptionStringId: 'ExpressionEditorStringId.Function_Upper' }],\n Lower: [{ paramCount: 1, text: 'Lower()', descriptionStringId: 'ExpressionEditorStringId.Function_Lower' }],\n Concat: [{ paramCount: Infinity, text: 'Concat(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Concat' }],\n Ascii: [{ paramCount: 1, text: \"Ascii('')\", descriptionStringId: 'ExpressionEditorStringId.Function_Ascii' }],\n Char: [{ paramCount: 1, text: 'Char()', descriptionStringId: 'ExpressionEditorStringId.Function_Char' }],\n ToStr: [{ paramCount: 1, text: 'ToStr()', descriptionStringId: 'ExpressionEditorStringId.Function_ToStr' }],\n Replace: [{ paramCount: 3, text: \"Replace('','', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Replace' }],\n Reverse: [{ paramCount: 1, text: \"Reverse('')\", descriptionStringId: 'ExpressionEditorStringId.Function_Reverse' }],\n Insert: [{ paramCount: 3, text: \"Insert('', , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Insert' }],\n CharIndex: [\n { paramCount: 2, text: \"CharIndex('','')\", descriptionStringId: 'ExpressionEditorStringId.Function_CharIndex' },\n { paramCount: 3, text: \"CharIndex('','', )\", descriptionStringId: 'ExpressionEditorStringId.Function_CharIndex_3' }\n ],\n Remove: [\n { paramCount: 2, text: \"Remove('', )\", descriptionStringId: 'ExpressionEditorStringId.Function_Remove' },\n { paramCount: 3, text: \"Remove('', , )\", descriptionStringId: 'ExpressionEditorStringId.Function_Remove_3' }\n ],\n PadLeft: [\n { paramCount: 2, text: 'PadLeft(, )', descriptionStringId: 'ExpressionEditorStringId.Function_PadLeft' },\n { paramCount: 3, text: \"PadLeft(, , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_PadLeft_3' }\n ],\n PadRight: [\n { paramCount: 2, text: 'PadRight(, )', descriptionStringId: 'ExpressionEditorStringId.Function_PadRight' },\n { paramCount: 3, text: \"PadRight(, , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_PadRight_3' }\n ],\n StartsWith: [{ paramCount: 2, text: \"StartsWith('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_StartsWith' }],\n EndsWith: [{ paramCount: 2, text: \"EndsWith('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_EndsWith' }],\n Contains: [{ paramCount: 0, text: \"Contains('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Contains' }],\n Join: [\n { paramCount: 1, text: 'Join()', descriptionStringId: 'ExpressionEditorStringId.Function_Join' },\n { paramCount: 2, text: \"Join(, '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Join_2' }\n ],\n }\n }\n];\nexport var functionDisplay = createGlobalModuleVariableFunc(defaultFunctionDisplay);\nexport var resetFunctionDisplay = () => functionDisplay(defaultFunctionDisplay);\nexport function insertInFunctionDisplay(addins) {\n var functions = [];\n if (Array.isArray(addins)) {\n functions = [...functionDisplay()];\n addins.forEach(addin => {\n var func = functions.filter(x => x.display === addin.display)[0];\n if (!!func) {\n func.items = Object.assign(Object.assign({}, func.items), addin.items);\n }\n else {\n functions.push(addin);\n }\n });\n }\n else {\n functionDisplay().forEach(cat => {\n var ext = addins[cat.display];\n var items = extend({}, cat.items, ext);\n if (!Object.keys(items).length)\n return;\n functions.push(ext ? {\n display: cat.display, category: cat.category, localizationId: cat.localizationId,\n items: items\n } : cat);\n });\n }\n return functions;\n}\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\_expressioneditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport var RangeSpecific = 'range';\nexport function createExpressionEditorCollectionToolOptions(collectionItems, toolName, displayToolName, showDescription) {\n return {\n displayName: getLocalization(toolName, displayToolName),\n content: {\n showDescription: showDescription,\n isSelected: ko.observable(false),\n data: {\n items: collectionItems,\n selectedItem: ko.observable(null)\n },\n name: 'dx-expressioneditor-collection'\n },\n dispose: () => void 0\n };\n}\nexport function wrapExpressionValue(path, value, converter, subscriptions) {\n if (!(converter && path))\n return value;\n var _displayValue = ko.observable(value());\n converter.toDisplayExpression(path(), value()).done((result) => {\n _displayValue(result);\n }).fail(() => {\n _displayValue(value());\n });\n var valueSubscription = value.subscribe((newValue) => {\n converter.toDisplayExpression(path(), newValue).done((result) => {\n _displayValue(result);\n }).fail(() => {\n _displayValue(newValue);\n });\n });\n var pathSubscription = path.subscribe(newPath => {\n converter.toDisplayExpression(newPath, value())\n .done(result => { _displayValue(result); })\n .fail(_ => { _displayValue(value()); });\n });\n var displayValue = ko.pureComputed({\n read: () => _displayValue(),\n write: (newValue) => {\n _displayValue(newValue);\n converter.toRealExpression(path(), newValue).done((result) => {\n value(result);\n }).fail(() => {\n value(newValue);\n });\n }\n });\n if (subscriptions)\n [displayValue, valueSubscription, pathSubscription].forEach(x => subscriptions.push(x));\n return displayValue;\n}\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_operatorNames.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var operatorNames = [\n { text: '+', image: 'addition', descriptionStringId: 'ExpressionEditorStringId.Operator_Plus' },\n { text: '-', image: 'subtraction', descriptionStringId: 'ExpressionEditorStringId.Operator_Minus' },\n { text: '*', image: 'multiplication', descriptionStringId: 'ExpressionEditorStringId.Operator_Multiply' },\n { text: '/', image: 'division', descriptionStringId: 'ExpressionEditorStringId.Operator_Divide' },\n { text: '%', image: 'modulus', hasSeparator: true, descriptionStringId: 'ExpressionEditorStringId.Operator_Modulo' },\n { text: '()', image: 'parenthesis', hasSeparator: true },\n { text: '|', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseOr' },\n { text: '&', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseAnd' },\n { text: '^', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseXor' },\n { text: '==', image: 'equal', descriptionStringId: 'ExpressionEditorStringId.Operator_Equal' },\n { text: '!=', image: 'not_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_NotEqual' },\n { text: '<', image: 'less', descriptionStringId: 'ExpressionEditorStringId.Operator_Less' },\n { text: '<=', image: 'less_or_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_LessOrEqual' },\n { text: '>=', image: 'greater_or_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_GreaterOrEqual' },\n { text: '>', hasSeparator: true, image: 'greater', descriptionStringId: 'ExpressionEditorStringId.Operator_Greater' },\n { text: 'In', descriptionStringId: 'ExpressionEditorStringId.Operator_In' },\n { text: 'Like', descriptionStringId: 'ExpressionEditorStringId.Operator_Like' },\n { text: 'Between', descriptionStringId: 'ExpressionEditorStringId.Operator_Between' },\n { text: 'And', image: 'and', descriptionStringId: 'ExpressionEditorStringId.Operator_And' },\n { text: 'Or', image: 'or', descriptionStringId: 'ExpressionEditorStringId.Operator_Or' },\n { text: 'Not', image: 'not', descriptionStringId: 'ExpressionEditorStringId.Operator_Not' }\n];\n","/**\n* DevExpress Analytics (widgets\\common\\_codeCompletor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { functionDisplay } from '../expressioneditor/tools/_functions';\nimport { Disposable } from '../../serializer/utils';\nimport { isList, setCursorInFunctionParameter } from '../_utils';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { PathRequest } from './pathRequest';\nimport { RangeSpecific } from '../expressioneditor/_expressioneditor';\nimport { operatorNames } from '../expressioneditor/tools/_operatorNames';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nexport class CodeCompletor extends Disposable {\n constructor(_options) {\n super();\n this._options = _options;\n this._contextPath = null;\n this._isInContext = () => this._contextPath !== null;\n this._getPath = () => this._contextPath ? this._path() + '.' + this._contextPath : this._path();\n this.identifierRegexps = [/\\./, /\\[/];\n this._fieldListProvider = _options.fieldListProvider;\n this._path = _options.path;\n this._editor = _options.editor;\n this._functions = ko.computed(() => { return ko.unwrap(_options.functions) || functionDisplay(); });\n this._rootItems = _options.rootItems || [{ name: 'Parameters', needPrefix: true }];\n this._disposables.push(this._functions);\n }\n _previousSymbol() {\n var cursorPosition = this._editor.getCursorPosition();\n return this._editor.session.getLine(cursorPosition.row)[cursorPosition.column - 1];\n }\n beforeInsertMatch(editor, token, parentPrefix) {\n var cursorPosition = editor.getCursorPosition();\n if (parentPrefix === 'Parameters.') {\n token = token || !this['_isInContext']() && editor.session.getTokenAt(cursorPosition.row, cursorPosition.column);\n if (token) {\n if ((token.type === 'support.variable.other' || token.type === 'support.function')) {\n editor.session.remove({\n start: { column: token.start - 1 || 0, row: cursorPosition.row },\n end: { column: Math.max(token.start + token.value.length || 0, cursorPosition.column), row: cursorPosition.row }\n });\n }\n else if (token.type === 'support.variable.parameter') {\n editor.session.remove({\n start: { column: token.start || 0, row: cursorPosition.row },\n end: { column: Math.max(token.start + token.value.length + 1 || 0, cursorPosition.column), row: cursorPosition.row }\n });\n }\n else if (token.type === 'text' && token.value[token.value.length - 1] === '?') {\n editor.session.remove({\n start: { column: token.start + token.value.length - 1 || 0, row: cursorPosition.row },\n end: { column: token.start + token.value.length || 0, row: cursorPosition.row },\n });\n }\n }\n }\n else {\n token = token || editor.session.getTokenAt(cursorPosition.row, cursorPosition.column);\n if (!token)\n return;\n var endColumn = null;\n if (token.type === 'support.variable.other' || token.type === 'support.function') {\n endColumn = Math.max(token.start + token.value.length || 0, cursorPosition.column);\n }\n else if (token.type === 'support.context.start' && cursorPosition.column < token.start + token.value.length) {\n endColumn = token.start + token.value.length - 1 || 0;\n }\n if (endColumn !== null)\n editor.session.remove({\n start: { column: token.start || 0, row: cursorPosition.row },\n end: { column: endColumn, row: cursorPosition.row }\n });\n }\n }\n insertMatch(editor, parentPrefix, fieldName) {\n if (parentPrefix === 'Parameters.') {\n editor.insert('?' + fieldName);\n }\n else {\n editor.insert('[' + (parentPrefix || '') + fieldName + ']');\n }\n }\n generateFieldDisplayName(parentPrefix, displayName) {\n if (parentPrefix === 'Parameters.') {\n return '?' + displayName;\n }\n return '[' + displayName + ']';\n }\n _convertDataMemberInfoToCompletions(fields, getToken, parentPrefix = '') {\n return (fields || []).map(field => {\n var displayName = this.generateFieldDisplayName(parentPrefix, field.displayName);\n return {\n caption: field.displayName || field.name,\n snippet: displayName,\n meta: isList(field) && getLocalization('list', 'DxDesignerStringId.CodeCompletion_List') || getLocalization('field', 'DxDesignerStringId.CodeCompletion_Field'),\n score: isList(field) && 200 || 100,\n completer: {\n insertMatch: (editor, data) => {\n this.beforeInsertMatch(editor, getToken(), parentPrefix);\n this.insertMatch(editor, parentPrefix, this._options.getRealExpression ? (field.displayName || field.name) : field.name);\n }\n }\n };\n });\n }\n _combinePath(parentPrefix) {\n var path = this._getPath();\n if (parentPrefix) {\n var rootItem = this._rootItems.filter(item => parentPrefix.indexOf(item.name) === 0)[0];\n if (rootItem && rootItem.rootPath)\n path = [rootItem.rootPath, parentPrefix].join('.');\n else\n path = [path, parentPrefix].join('.');\n }\n return path;\n }\n _getParentPrefix(token) {\n var position = this._editor.getCursorPosition().column - token.start - 1;\n var dotIndex = token.value.lastIndexOf('.', position);\n var closeIndex = token.value.lastIndexOf(']', position);\n dotIndex = Math.max(closeIndex, dotIndex);\n var startIndex = token.type === 'support.variable.other' || token.type === 'support.context.start' ? 1 : 0;\n var parentPrefix = token.value.substring(startIndex, dotIndex);\n if (parentPrefix[0] === '[')\n parentPrefix = parentPrefix.substr(1);\n if (parentPrefix[parentPrefix.length - 1] === ']')\n parentPrefix = parentPrefix.substring(0, parentPrefix.length - 1);\n return parentPrefix;\n }\n _getRealPath(path) {\n var pathArray = path.split('.');\n var $deferred = $.Deferred();\n if (this._options.getRealExpression) {\n this._options.getRealExpression(pathArray[0], this.generateFieldDisplayName(null, pathArray.splice(1).join('.'))).done(result => {\n result = result.slice(1, result.length - 1);\n $deferred.resolve(result && [pathArray[0], result].join('.') || pathArray[0]);\n }).fail(() => { $deferred.resolve(path); });\n }\n else {\n $deferred.resolve(path);\n }\n return $deferred.promise();\n }\n _getFields(getToken = () => null, completions = [], ignorePrefix = false) {\n var $deferred = $.Deferred();\n var parentPrefix = undefined;\n var token = getToken();\n if (token && (token.type === 'support.variable.other' || token.type === 'support.function' || token.type === 'support.context.start')) {\n parentPrefix = this._getParentPrefix(token);\n }\n this._getRealPath(this._combinePath(parentPrefix)).done((path) => {\n var $fields = ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path))\n .done((fields) => {\n completions.push.apply(completions, this._convertDataMemberInfoToCompletions(CodeCompletor._cleanupFields(fields), getToken, ignorePrefix ? null : parentPrefix && parentPrefix + '.'));\n });\n var $deferreds = [$fields];\n var rootPathRequests = [];\n if (!parentPrefix) {\n this._rootItems.forEach(item => {\n var path = item.rootPath || item.name;\n if (rootPathRequests.indexOf(path) === -1) {\n rootPathRequests.push(path);\n $deferreds.push(ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path))\n .done((fields) => {\n this._processFields($deferreds, fields, completions, path, getToken, item.needPrefix ? item.name + '.' : '', true);\n }));\n }\n });\n }\n $.when($deferreds).always(() => { $deferred.resolve(completions); });\n });\n return $deferred.promise();\n }\n static _cleanupFields(fields = []) {\n return fields.filter(x => x.specifics !== 'parameters' && x.specifics !== 'none');\n }\n _processFields($deferreds, fields, completions, path, getToken, parentPrefix = '', needCleanup = false) {\n var pushToCompletions = (fields) => {\n completions.push.apply(completions, this._convertDataMemberInfoToCompletions(needCleanup ? CodeCompletor._cleanupFields(fields) : fields, getToken, parentPrefix));\n };\n fields.forEach(item => {\n if (item.specifics === RangeSpecific && isList(item)) {\n $deferreds.push(ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path + '.' + item.name))\n .done((subFields) => {\n pushToCompletions(subFields);\n })\n .fail(() => {\n pushToCompletions([item]);\n }));\n }\n else {\n pushToCompletions([item]);\n }\n });\n }\n getFunctionsCompletions() {\n var functions = [];\n var functionsWithoutAggregates = ko.unwrap(this._functions).filter(fnDisplay => fnDisplay.category !== 'Aggregate');\n functionsWithoutAggregates.forEach(fnDisplay => {\n Object.keys(fnDisplay.items).forEach(fnKey => {\n if (fnDisplay.items[fnKey]) {\n functions.push(createFunctionCompletion(fnDisplay.items[fnKey][0], fnKey));\n }\n });\n });\n return functions;\n }\n getAggregateCompletions() {\n var functions = [];\n var aggregates = ko.unwrap(this._functions).filter(fnDisplay => fnDisplay.category === 'Aggregate')[0];\n if (aggregates)\n Object.keys(aggregates.items).forEach(fnKey => {\n if (aggregates.items[fnKey]) {\n functions.push(createFunctionCompletion(aggregates.items[fnKey][0], fnKey, fnKey + '()'));\n }\n });\n return functions;\n }\n getOperatorCompletions(prefix) {\n return operatorNames.map(operator => {\n return { caption: operator.text, snippet: prefix + operator.text, meta: getLocalization('operator', 'DxDesignerStringId.CodeCompletion_Operator') };\n });\n }\n _addFunctions(completions) {\n completions.push.apply(completions, this.getFunctionsCompletions());\n }\n _addAggregates(completions) {\n completions.push.apply(completions, this.getAggregateCompletions());\n }\n _addOperators(completions, text) {\n var prefix = /\\s/.test(text[text.length - 1]) ? '' : ' ';\n completions.push.apply(completions, this.getOperatorCompletions(prefix));\n }\n _addParameterOperators(completions, getToken) {\n var $deferred = $.Deferred();\n var $parametersPromises = [];\n var paramPath = 'Parameters';\n $parametersPromises.push(ko.unwrap(this['_fieldListProvider']).getItems(new PathRequest(paramPath))\n .done((fields) => {\n this._processFields($parametersPromises, fields, completions, paramPath, getToken, paramPath + '.');\n }));\n $.when($parametersPromises).always(() => { $deferred.resolve(completions); });\n return $deferred.promise();\n }\n _getOperands(getToken = () => null) {\n var result = [];\n this._addFunctions(result);\n return this._getFields(getToken, result);\n }\n _getOperandsOrOperators(getToken, text, completions) {\n var exceptionInfo;\n try {\n CriteriaOperatorStateMachine.parse(text);\n }\n catch (exception) {\n exceptionInfo = exception.hash;\n }\n var trimmedText = text.trim();\n var lastNonSpaceSymbol = trimmedText[trimmedText.length - 1];\n if (lastNonSpaceSymbol === '?' && text[text.length - 1] !== ' ') {\n this._addParameterOperators(completions, getToken);\n }\n else if (!exceptionInfo && trimmedText || (lastNonSpaceSymbol === ']' || lastNonSpaceSymbol === ')')) {\n this._addOperators(completions, text);\n }\n else {\n return this._getOperands();\n }\n }\n _findStartContextTokenPosition(tokens, index) {\n var blocks = 0;\n var path = [];\n for (var i = index; i > -1; i--) {\n if (tokens[i].type === 'support.context.end') {\n blocks++;\n }\n else if (tokens[i].type === 'support.context.start') {\n if (blocks > 0)\n blocks--;\n else\n return i;\n }\n }\n }\n _findOpenedStartContext(tokens, index) {\n var openedContextIndexes = [];\n var contextItems = tokens.filter((token, tokenIndex) => (token.type === 'support.context.start' || token.type === 'support.context.end') && tokenIndex < index);\n for (var i = 0; i < contextItems.length; i++) {\n if (contextItems[i].type === 'support.context.start') {\n openedContextIndexes.push(tokens.indexOf(contextItems[i]));\n }\n else {\n openedContextIndexes.pop();\n }\n }\n return openedContextIndexes;\n }\n _findOpenedAggregates(tokens, index) {\n var openedAggregatesIndexes = [];\n var aggregates = tokens.filter((token, tokenIndex) => token.type === 'support.other.aggregate' && tokenIndex < index);\n if (aggregates.length > 0) {\n var currentToken = tokens[index];\n var currentCursorPosition = this._editor.getCursorPosition().column - (currentToken && currentToken.start || 0);\n for (var i = aggregates.length - 1; i > -1; i--) {\n var aggregateIndex = tokens.indexOf(aggregates[i]);\n var openBrace = 0;\n var closeBrace = 0;\n var isClosedAggregate = false;\n if (aggregateIndex + 1 === index && tokens[aggregateIndex + 1].value.substr(0, currentCursorPosition).indexOf('()') !== -1 ||\n aggregateIndex + 1 < index && tokens[aggregateIndex + 1].value.indexOf('()') !== -1) {\n isClosedAggregate = true;\n index = aggregateIndex;\n continue;\n }\n for (var j = aggregateIndex; j < index; j++) {\n if (tokens[j].value.trim() === '(') {\n openBrace++;\n }\n else if (tokens[j].value.trim() === ')') {\n closeBrace++;\n }\n if (openBrace === closeBrace && openBrace !== 0) {\n isClosedAggregate = true;\n break;\n }\n }\n if (!isClosedAggregate)\n openedAggregatesIndexes.splice(0, 0, aggregateIndex);\n index = aggregateIndex;\n }\n }\n return openedAggregatesIndexes;\n }\n _getContextPath(tokens, currentPosition) {\n var path = [];\n var openedAggregatePositions = this._findOpenedAggregates(tokens, currentPosition);\n var openedContextPositions = this._findOpenedStartContext(tokens, currentPosition);\n var contextPath = openedContextPositions.concat(...openedAggregatePositions).sort((a, b) => { return a - b; });\n if (contextPath.length > 0) {\n for (var i = 0; i < contextPath.length; i++) {\n if (tokens[contextPath[i]].type === 'support.other.aggregate') {\n if (tokens[contextPath[i] - 1].type === 'support.context.end') {\n var startContextToken = this._findStartContextTokenPosition(tokens, contextPath[i] - 2);\n var member = trimBrackets(tokens[startContextToken].value.match(/^\\[(?:[^\\]\\)])*\\]/)[0]);\n path.push(member);\n }\n else if (tokens[contextPath[i] - 1].type === 'support.variable.other') {\n path.push(trimBrackets(tokens[contextPath[i] - 1].value));\n }\n }\n else {\n var member = trimBrackets(tokens[contextPath[i]].value.match(/^\\[(?:[^\\]\\)])*\\]/)[0]);\n path.push(member);\n }\n }\n }\n return path.filter(x => !!x).join('.');\n }\n _getCompletions(editor, session, pos, prefix) {\n var $deferred;\n var completions = [];\n var getToken = () => session.getTokenAt(pos.row, pos.column);\n var currentToken = getToken();\n var text = editor.session.getLine(pos.row).substring(0, pos.column);\n var tokens = session.getTokens(pos.row);\n var currentTokenIndex = currentToken ? currentToken.index : -1;\n this._contextPath = this._getContextPath(tokens, currentTokenIndex);\n if (!currentToken) {\n $deferred = this._getOperands();\n }\n else if (currentToken.type === 'support.context.start') {\n var ignorePrefix = this._editor.getCursorPosition().column - currentToken.start === currentToken.value.length;\n if (ignorePrefix) {\n var functions = [];\n this._addFunctions(functions);\n }\n $deferred = this._getFields(getToken, functions, ignorePrefix);\n }\n else if (currentToken.type === 'string.quoted.single') {\n }\n else if (currentToken.type.indexOf('support.variable') === 0) {\n $deferred = this._getFields(getToken);\n }\n else if (currentToken.type === 'support.function') {\n $deferred = this.defaultProcess(getToken, text.substring(0, currentToken.start), completions);\n }\n else if (currentToken.type === 'support.other.aggregate') {\n var previousToken = tokens[currentTokenIndex - 1];\n this._addAggregates(completions);\n if (previousToken && trimBrackets(previousToken.value).trim()) {\n $deferred = this._getFields(() => ({\n start: (currentToken.start - (previousToken.value || '').length) || 0,\n value: previousToken.value + currentToken.value,\n type: 'support.function'\n }), completions);\n }\n }\n else {\n if (!(currentToken.type.indexOf('comment') === 0)) {\n $deferred = this.defaultProcess(getToken, text, completions);\n }\n }\n return $deferred ? $deferred.promise() : $.Deferred().resolve(completions).promise();\n }\n defaultProcess(getToken, text, completions) {\n return this._getOperandsOrOperators(getToken, text, completions);\n }\n getCompletions(aceEditor, session, pos, prefix, callback) {\n this._getCompletions(aceEditor, session, pos, prefix).done(completions => {\n callback(null, completions);\n });\n }\n getDocTooltip(item) {\n if (item.tooltip && !item.docHTML) {\n item.docHTML = [\n item.tooltip\n ].join('');\n }\n }\n}\nexport function createFunctionCompletion(fnInfo, name, insertValue = null) {\n var _insertValue = insertValue || fnInfo.text;\n return {\n caption: name,\n snippet: _insertValue,\n meta: getLocalization('function', 'DxDesignerStringId.CodeCompletion_Function'),\n tooltip: fnInfo.description || getLocalization(fnInfo.text, fnInfo.descriptionStringId) || null,\n score: 10,\n completer: {\n insertMatch: (editor, data) => {\n var completions = editor.completer.completions;\n if (completions.filterText) {\n var ranges = editor.selection.getAllRanges();\n for (var i = 0, range; range = ranges[i]; i++) {\n range.start.column -= completions.filterText.length;\n editor.session.remove(range);\n }\n }\n if (_insertValue.substr(0, 3) === '[].') {\n var ranges = editor.selection.getAllRanges();\n for (var i = 0, range; range = ranges[i]; i++) {\n range.start.column -= 2;\n if (editor.session.getTextRange(range) === '].')\n _insertValue = _insertValue.substr(3);\n }\n }\n editor.insert(_insertValue);\n setCursorInFunctionParameter(fnInfo.paramCount, editor, _insertValue);\n }\n }\n };\n}\nexport function trimBrackets(value) {\n return value.substring(value[0] === '[' ? 1 : 0, value[value.length - 1] === ']' ? value.length - 1 : value.length);\n}\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\between.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class BetweenOperator extends CriteriaOperator {\n constructor(property, begin, end) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.property = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.begin = criteriaOperator.rightPart[0];\n this.end = criteriaOperator.rightPart.length > 1 ? criteriaOperator.rightPart[1] : criteriaCreator.process('value');\n }\n else {\n this.begin = criteriaCreator.process('value');\n this.end = criteriaCreator.process('value');\n }\n }\n else {\n this.begin = criteriaOperator.rightPart;\n this.end = criteriaCreator.process('value');\n }\n };\n this.operatorType = 'Between';\n this.type = 'between';\n this.property = property;\n this.begin = begin || criteriaCreator.process('value');\n this.end = end || criteriaCreator.process('value');\n }\n get leftPart() {\n return this.property;\n }\n get rightPart() {\n return [this.begin, this.end];\n }\n get displayType() {\n return 'Between';\n }\n get enumType() {\n return BetweenOperator;\n }\n accept(visitor) {\n return visitor.visitBetweenOperator\n ? visitor.visitBetweenOperator(this)\n : new BetweenOperator(this.property && this.property.accept(visitor), this.begin && this.begin.accept(visitor), this.end && this.end.accept(visitor));\n }\n}\ncriteriaCreator.register('between', (options) => {\n return new BetweenOperator(options.property, options.begin, options.end);\n}, (operatorType) => (criteriaCreator.process('between', {\n property: criteriaCreator.process('property'),\n begin: criteriaCreator.process('value'),\n end: criteriaCreator.process('value')\n})));\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\in.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class InOperator extends CriteriaOperator {\n constructor(criteriaOperator, operands) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.criteriaOperator = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n this.operands = [].concat(criteriaOperator.rightPart);\n };\n this.operatorType = 'In';\n this.type = 'in';\n this.operands = [];\n this.criteriaOperator = criteriaOperator || criteriaCreator.process('default');\n (operands || []).forEach(operand => this.operands.push(operand));\n }\n get leftPart() {\n return this.criteriaOperator;\n }\n get rightPart() {\n return this.operands;\n }\n get displayType() {\n return 'In';\n }\n get enumType() {\n return InOperator;\n }\n accept(visitor) {\n return visitor.visitInOperator\n ? visitor.visitInOperator(this)\n : new InOperator(this.criteriaOperator && this.criteriaOperator.accept(visitor), this.operands && this.operands.map(op => op.accept(visitor)));\n }\n}\ncriteriaCreator.register('in', (options) => {\n return new InOperator(options.criteriaOperator, options.operands);\n}, (operatorType) => criteriaCreator.process('in', {\n criteriaOperator: criteriaCreator.process('property'),\n operands: [criteriaCreator.process('value')]\n}));\n","/**\n* DevExpress Analytics (widgets\\criteria\\utils\\operatorTokens.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var operatorTokens = {\n 'Plus': '+',\n 'Minus': '-',\n 'Equal': '=',\n 'NotEqual': '<>',\n 'Greater': '>',\n 'Less': '<',\n 'LessOrEqual': '<=',\n 'GreaterOrEqual': '>=',\n 'Divide': '/',\n 'BitwiseAnd': '&',\n 'BitwiseOr': '|',\n 'BitwiseXor': '^',\n 'Modulo': '%',\n 'Multiply': '*',\n};\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\binary.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { operatorTokens } from '../utils/operatorTokens';\nimport { BinaryOperatorType } from './options/binary';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class BinaryOperator extends CriteriaOperator {\n constructor(left, right, operatorType) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.leftOperand = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.rightOperand = criteriaOperator.rightPart[0];\n }\n }\n else {\n this.rightOperand = criteriaOperator.rightPart;\n }\n };\n this.type = 'binary';\n this.leftOperand = left || criteriaCreator.process('default');\n this.rightOperand = right || criteriaCreator.process('default');\n this.operatorType = operatorType;\n }\n get leftPart() {\n return this.leftOperand;\n }\n get rightPart() {\n return this.rightOperand;\n }\n get displayType() {\n return operatorTokens[BinaryOperatorType[this.operatorType]] || BinaryOperatorType[this.operatorType];\n }\n get enumType() {\n return BinaryOperatorType;\n }\n accept(visitor) {\n return visitor.visitBinaryOperator\n ? visitor.visitBinaryOperator(this)\n : new BinaryOperator(this.leftOperand && this.leftOperand.accept(visitor), this.rightOperand && this.rightOperand.accept(visitor), this.operatorType);\n }\n}\ncriteriaCreator.register('binary', (options) => {\n return new BinaryOperator(options.left, options.right, options.operatorType);\n}, (operatorType) => criteriaCreator.process('binary', {\n left: criteriaCreator.process('property'),\n right: criteriaCreator.process('value'),\n operatorType: operatorType.value\n}));\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\function.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CriteriaOperator } from './criteriaOperator';\nimport { operatorTokens } from '../utils/operatorTokens';\nimport { FunctionOperatorType } from './options/function';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class FunctionOperator extends CriteriaOperator {\n constructor(operatorType, operands) {\n super();\n this.toString = (reverse) => {\n var result = (operatorTokens[this.displayType] || this.displayType) + '(' + this.operands.map((operand) => {\n return operand.toString();\n }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n };\n this.assignLeftPart = (criteriaOperator) => {\n this.operands = [criteriaOperator.leftPart];\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.operands.push(criteriaOperator.rightPart[0]);\n }\n else {\n this.operands.push(criteriaCreator.process('value'));\n }\n }\n else {\n this.operands.push(criteriaOperator.rightPart);\n }\n };\n this.operands = [];\n this.type = 'function';\n this.operatorType = operatorType;\n operands = operands || [criteriaCreator.process('default')];\n operands.forEach(operand => this.operands.push(operand));\n }\n get leftPart() {\n return this.operands[0];\n }\n get rightPart() {\n return this.operands.filter((_, index) => { return index !== 0; });\n }\n get displayType() {\n return FunctionOperatorType[this.operatorType] || this.operatorType.toString();\n }\n get enumType() {\n return FunctionOperatorType;\n }\n accept(visitor) {\n return visitor.visitFunctionOperator\n ? visitor.visitFunctionOperator(this)\n : new FunctionOperator(this.operatorType, this.operands && this.operands.map(op => op.accept(visitor)));\n }\n}\ncriteriaCreator.register('function', (options) => {\n return new FunctionOperator(options.operatorType, options.operands);\n}, (operatorType) => new FunctionOperator(operatorType.value, [criteriaCreator.process('property')]));\n","/**\n* DevExpress Analytics (widgets\\criteria\\operators\\constant.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nimport { OperandValue } from './value';\nexport class ConstantValue extends OperandValue {\n constructor(value, specifics) {\n super(value);\n this.type = 'value';\n if (specifics && !this.specifics)\n this.specifics = specifics;\n }\n accept(visitor) {\n return visitor.visitConstantValue\n ? visitor.visitConstantValue(this)\n : new ConstantValue(this.value, this.specifics);\n }\n}\ncriteriaCreator.register('const', (options) => new ConstantValue((options === null || options === void 0 ? void 0 : options.value) || null));\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_serializer.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { GroupOperator } from '../../criteria/operators/group';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { trimBrackets } from '../../common/_codeCompletor';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { validateGuid } from '../../../property-grid/widgets/internal/_internal';\nimport { serializeDate } from '../../../serializer/utils';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { BetweenOperator } from '../../criteria/operators/between';\nimport { InOperator } from '../../criteria/operators/in';\nimport { BinaryOperator } from '../../criteria/operators/binary';\nimport { UnaryOperator } from '../../criteria/operators/unary';\nimport { FunctionOperator } from '../../criteria/operators/function';\nimport { operatorTokens as iOperatorTokens } from '../../criteria/utils/operatorTokens';\nimport { ConstantValue } from '../../criteria/operators/constant';\nimport { CriteriaOperatorStateMachine } from '../../criteria/utils/criteriaOperatorStateMachine';\nimport { BinaryOperatorType } from '../../criteria/operators/options/binary';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nexport class FilterEditorSerializer {\n constructor(operatorTokens = iOperatorTokens, custom) {\n this.operatorTokens = operatorTokens;\n this.custom = custom;\n }\n serializeGroupOperand(groupOperator, reverse) {\n var result = groupOperator.operands.map((operand) => {\n if (operand instanceof GroupOperator) {\n return '(' + this.serialize(operand) + ')';\n }\n else {\n return this.serialize(operand);\n }\n }).filter((serialize) => { return serialize !== '' && serialize !== '()'; }).join(' ' + (this.operatorTokens[groupOperator.displayType] || groupOperator.displayType) + ' ');\n return reverse && result ? 'Not(' + result + ')' : result;\n }\n serializeAggregateOperand(aggregateOperand, reverse) {\n var operatorTypeSuffix = aggregateOperand.operatorType === 'Exists' ? '' : '.' + aggregateOperand.operatorType;\n var condition = aggregateOperand.condition ? this.serialize(aggregateOperand.condition) : '';\n var propertyResult = this.serialize(aggregateOperand.property);\n var conditionResult = '[' + condition + ']';\n var aggregateSuffix = aggregateOperand.operatorType !== 'Exists' ?\n '(' + (aggregateOperand.aggregatedExpression && this.serialize(aggregateOperand.aggregatedExpression) || '') + ')' : '';\n var result = propertyResult;\n if (!condition && !aggregateSuffix || condition) {\n result += conditionResult;\n }\n return result + operatorTypeSuffix + aggregateSuffix;\n }\n serializeOperandProperty(operandProperty) {\n if (!operandProperty.propertyName) {\n return operandProperty.circumflex ? '^' : '[]';\n }\n var value = operandProperty.displayType;\n if (value.length - trimBrackets(value).length === 2) {\n value = '[' + trimBrackets(value).replace(/\\\\/g, '\\\\\\\\').replace(/\\]/g, '\\\\]') + ']';\n }\n return operandProperty.circumflex ? '^.' + value : value;\n }\n serializeOperandValue(operandValue) {\n var result = operandValue.value;\n if (result !== null && result !== undefined && ($.isNumeric(result) || String(result).toLowerCase() === 'true' || String(result).toLowerCase() === 'false')) {\n if (operandValue.specifics === 'string')\n return \"'\" + result + \"'\";\n if (operandValue.specifics === 'guid' && validateGuid(result))\n return '{' + result + '}';\n return result;\n }\n else if (result && operandValue.value instanceof Date) {\n return '#' + serializeDate(result, '-') + '#';\n }\n else if (operandValue.specifics === 'integer' || operandValue.specifics === 'integer') {\n return result || '?';\n }\n else if (operandValue.specifics === 'guid' && validateGuid(result)) {\n return '{' + result + '}';\n }\n result = result.replace(/'/g, \"''\");\n return result ? \"'\" + result + \"'\" : '?';\n }\n serializeOperandParameter(operandParameter) {\n return operandParameter.displayType;\n }\n serializeBetweenOperator(betweenOperator, reverse) {\n var result = this.serialize(betweenOperator.property) + ' ' + betweenOperator.displayType +\n '(' + this.serialize(betweenOperator.begin) + ', ' + this.serialize(betweenOperator.end) + ')';\n return reverse ? 'Not ' + result : result;\n }\n serializeInOperator(inOperator, reverse) {\n var result = this.serialize(inOperator.criteriaOperator) + ' ' + inOperator.displayType + '(' +\n inOperator.operands.map((operand) => { return this.serialize(operand); }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n }\n serializeBinaryOperator(binaryOperator, reverse) {\n if (binaryOperator.operatorType === BinaryOperatorType.Like) {\n var separator = reverse ? ' Not ' : ' ';\n return this.serialize(binaryOperator.leftOperand) + separator + (this.operatorTokens[binaryOperator.displayType] || binaryOperator.displayType) + ' ' + this.serialize(binaryOperator.rightOperand);\n }\n return (reverse ? 'Not ' : '') + this.serialize(binaryOperator.leftOperand) + ' ' + (this.operatorTokens[binaryOperator.displayType] || binaryOperator.displayType) + ' ' + this.serialize(binaryOperator.rightOperand);\n }\n serializeUnaryOperator(unaryOperator, reverse) {\n if (unaryOperator.operatorType === UnaryOperatorType.IsNull) {\n var separator = reverse ? ' Not ' : ' ';\n return this.serialize(unaryOperator.operand) + ' Is' + separator + 'Null';\n }\n else if (unaryOperator.operatorType === UnaryOperatorType.Not) {\n return this.serialize(unaryOperator.operand, true);\n }\n var result = (this.operatorTokens[unaryOperator.displayType] || unaryOperator.displayType) + this.serialize(unaryOperator.operand);\n return reverse ? 'Not ' + result : result;\n }\n serializeFunctionOperator(functionOperator, reverse) {\n var result = (this.operatorTokens[functionOperator.displayType] || functionOperator.displayType) + '(' + functionOperator.operands.map((operand) => {\n return this.serialize(operand);\n }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n }\n serialize(criteriaOperator, reverse = false) {\n if (criteriaOperator instanceof AggregateOperand) {\n return this.serializeAggregateOperand(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof BetweenOperator) {\n return this.serializeBetweenOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof BinaryOperator) {\n return this.serializeBinaryOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof ConstantValue) {\n return this.serializeOperandValue(criteriaOperator);\n }\n if (criteriaOperator instanceof FunctionOperator) {\n return this.serializeFunctionOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof GroupOperator) {\n return this.serializeGroupOperand(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof InOperator) {\n return this.serializeInOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof OperandParameter) {\n return this.serializeOperandParameter(criteriaOperator);\n }\n if (criteriaOperator instanceof OperandProperty) {\n return this.serializeOperandProperty(criteriaOperator);\n }\n if (criteriaOperator instanceof OperandValue) {\n return this.serializeOperandValue(criteriaOperator);\n }\n if (criteriaOperator instanceof UnaryOperator) {\n return this.serializeUnaryOperator(criteriaOperator, reverse);\n }\n if (this.custom) {\n return this.custom(criteriaOperator, reverse);\n }\n throw Error('Undefined type criteria operator');\n }\n deserialize(stringCriteria) {\n return this.deserializeOperand(CriteriaOperatorStateMachine.parse(stringCriteria));\n }\n deserializeOperand(operand) {\n if (operand instanceof GroupOperator) {\n return operand;\n }\n else if (operand instanceof UnaryOperator && operand.operatorType === UnaryOperatorType.Not) {\n var child = operand['operand'];\n if (child instanceof GroupOperator || child instanceof FunctionOperator || child instanceof BetweenOperator || child instanceof InOperator) {\n return operand;\n }\n else if (child instanceof UnaryOperator && operand.operatorType === UnaryOperatorType.Not\n && !(child.operand instanceof OperandProperty)) {\n return this.deserializeOperand(child.operand);\n }\n return new UnaryOperator(UnaryOperatorType.Not, new GroupOperator(GroupOperatorType.And, child ? [child] : []));\n }\n return new GroupOperator(GroupOperatorType.And, operand ? [operand] : []);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\common\\_displayNameProvider.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { OperandProperty } from '../criteria/operators/property';\nimport { FilterEditorSerializer } from '../filtereditor/helpers/_serializer';\nimport { criteriaForEach } from '../criteria/utils/criteriaEnumeration';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nexport class DisplayExpressionConverter {\n constructor(displayNameProvider) {\n this.displayNameProvider = displayNameProvider;\n }\n _replaceNames(path, expression, getDisplayExpression) {\n var def = $.Deferred();\n if (!expression)\n return def.resolve('').promise();\n try {\n var expressionCriteria = CriteriaOperatorStateMachine.parse(expression, true);\n }\n catch (e) {\n return def.reject().promise();\n }\n var requests = [];\n var result = [];\n var serializer = new FilterEditorSerializer();\n criteriaForEach(expressionCriteria, (operator, innerPath) => {\n if (operator instanceof OperandProperty) {\n var isContainsParentRelationshipTraversalOperator = operator.propertyName.indexOf('^.') === 0;\n var propertyName = isContainsParentRelationshipTraversalOperator ? operator.propertyName.substring(2) : operator.propertyName;\n propertyName = innerPath ? [innerPath, propertyName].join('.') : propertyName;\n var request = getDisplayExpression ? this.displayNameProvider.getDisplayNameByPath(path, propertyName) :\n this.displayNameProvider.getRealName(path, propertyName);\n requests.push(request.done(data => {\n var convertedName = isContainsParentRelationshipTraversalOperator ? '^.' + data : data;\n convertedName = innerPath ? convertedName.split('.').slice(innerPath.split('.').length).join('.') : convertedName;\n result.push({\n operand: operator,\n convertedName\n });\n }));\n }\n });\n if (requests.length === 0) {\n def.resolve(expression);\n }\n else {\n var processedRequestsCount = 0;\n var onAlways = () => {\n if (++processedRequestsCount < requests.length)\n return;\n var lines = expression.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var operands = result.filter((value) => value.operand.startPosition.line === i).sort((a, b) => {\n return a.operand.startPosition.column - b.operand.startPosition.column;\n });\n for (var j = 0, delta = 0; j < operands.length; j++) {\n var column = operands[j].operand.startPosition.column;\n var propertyName = operands[j].operand.propertyName;\n var deltaName = 0;\n if (operands[j].operand.originalPropertyLength !== propertyName.length) {\n deltaName = Math.max(0, operands[j].operand.originalPropertyLength - serializer.serialize(operands[j].operand, false).length);\n }\n var convertedName = operands[j].convertedName;\n if (!propertyName || column < 0)\n continue;\n lines[i] = lines[i].substring(0, column + delta) + convertedName + lines[i].substring(column + propertyName.length + deltaName + delta);\n delta += convertedName.length - propertyName.length - deltaName;\n }\n }\n def.resolve(lines.join('\\n'));\n };\n requests.forEach(r => r.always(onAlways));\n }\n return def.promise();\n }\n toDisplayExpression(path, expression) {\n return this._replaceNames(path, expression, true);\n }\n toRealExpression(path, expression) {\n return this._replaceNames(path, expression, false);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\_searchHighlighting.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { findMatchesInString } from '../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../serializer/utils';\nimport { addDisposeCallback } from '../serializer/_internal';\nexport function cloneHtmlBinding(data, element, valueAccessor, allBindings, viewModel, bindingContext) {\n addDisposeCallback(element, function () {\n data.dispose();\n });\n setTimeout(() => {\n var isInitialized = false;\n ko.computed({\n read: () => {\n if (!isInitialized && ko.bindingHandlers['html'].init) {\n ko.bindingHandlers['html'].init(element, () => { return data.content; }, allBindings, viewModel, bindingContext);\n isInitialized = true;\n }\n if (ko.bindingHandlers['html'].update) {\n ko.bindingHandlers['html'].update(element, () => {\n data.update(valueAccessor());\n return data.content;\n }, allBindings, viewModel, bindingContext);\n }\n },\n disposeWhenNodeIsRemoved: element\n });\n }, 1);\n}\nexport class HighlightEngine extends Disposable {\n constructor(options) {\n super();\n this._$spanProtect = $.fn.constructor('');\n this._$spanSearch = $.fn.constructor('').addClass('dx-datagrid-search-text');\n this.content = ko.observable('');\n this._options = options;\n if (ko.isSubscribable(this._options.text)) {\n this._disposables.push(this._options.text.subscribe(newText => {\n this._update();\n }));\n }\n this._disposables.push(this._options.textToSearch.subscribe(newFind => {\n this._update();\n }));\n this._update();\n }\n _update() {\n this.content(this._getHighlightContent(ko.unwrap(this._options.text), ko.unwrap(this._options.textToSearch), ko.unwrap(this._options.searchOptions)));\n }\n update(options) {\n this._options = options;\n this._update();\n }\n _getHighlightContent(text, textToSearch, options) {\n var searchPattern = textToSearch;\n var result = text;\n if (searchPattern) {\n var match = findMatchesInString(result, searchPattern, options);\n if (match) {\n var newResult = '', curIndex = 0, subString = result;\n match.forEach((item, index) => {\n var itemIndex = subString.indexOf(item);\n var textBeforeMath = result.substr(curIndex, itemIndex);\n subString = subString.substr(itemIndex + item.length);\n if (textBeforeMath) {\n this._$spanProtect.text(textBeforeMath);\n newResult += this._$spanProtect[0].outerHTML;\n }\n this._$spanSearch.text(item);\n newResult += this._$spanSearch[0].outerHTML;\n curIndex = result.length - subString.length;\n if (index === match.length - 1) {\n if (subString) {\n this._$spanProtect.text(subString);\n newResult += this._$spanProtect[0].outerHTML;\n }\n }\n });\n return newResult;\n }\n }\n this._$spanProtect.text(result);\n result = this._$spanProtect[0].outerHTML;\n return result;\n }\n}\nko.bindingHandlers['searchHighlighting'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n cloneHtmlBinding(new HighlightEngine(valueAccessor()), element, valueAccessor, allBindings, viewModel, bindingContext);\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (common\\imageSource.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nexport class ImageSource {\n constructor(sourceType, data) {\n this.sourceType = sourceType;\n this.data = data;\n }\n getDataUrl() {\n switch (this.sourceType) {\n case 'svg':\n return 'data:image/svg+xml;charset=UTF-8;base64,' + encodeURI(this.data);\n case 'img':\n return 'data:image/x;base64,' + this.data;\n }\n if (this.sourceType === 'png' || this.sourceType === 'jpg' || this.sourceType === 'jpeg')\n return 'data:image/' + this.sourceType + ';base64,' + this.data;\n }\n static parse(val) {\n var sourceType, data;\n [sourceType, data] = (val || '').split(',');\n return sourceType && new ImageSource(sourceType, data);\n }\n static toString(val) {\n return formatUnicorn('{0},{1}', val.sourceType, val.data);\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\localization\\localization.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { loadMessages as _loadMessages } from './_localization';\nexport function loadMessages(messages) { _loadMessages(messages); }\n","/**\n* DevExpress Analytics (core\\elements\\margins.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { paddingSerializationsInfo } from './paddingModelMetaData';\nexport class Margins {\n constructor(left, right, top, bottom) {\n this.bottom = ko.observable(bottom);\n this.left = ko.observable(left);\n this.right = ko.observable(right);\n this.top = ko.observable(top);\n }\n getInfo() {\n return paddingSerializationsInfo;\n }\n isEmpty() {\n return this.toString() === Margins.defaultVal;\n }\n static fromString(value = Margins.defaultVal) {\n var components = value.split(',');\n return new Margins(parseFloat(components[0]), parseFloat(components[1]), parseFloat(components[2]), parseFloat(components[3]));\n }\n toString() {\n var result = this.left() + ', ' + this.right() + ', ' + this.top() + ', ' + this.bottom();\n return result;\n }\n}\nMargins.defaultVal = '100, 100, 100, 100';\nMargins.unitProperties = ['left', 'right'];\n","/**\n* DevExpress HTML/JS Reporting (common\\metadata.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { PaddingModel } from '@devexpress/analytics-core/analytics-elements';\nimport { colorFromString, colorToString, floatFromModel } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport var previewBackColor = { propertyName: 'backColor', modelName: '@BackColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewSides = { propertyName: 'borders', modelName: '@Sides' };\nexport var previewBorderColor = { propertyName: 'borderColor', modelName: '@BorderColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewBorderStyle = { propertyName: 'borderStyle', modelName: '@BorderStyle' };\nexport var previewBorderDashStyle = { propertyName: 'borderDashStyle', modelName: '@BorderDashStyle' };\nexport var previewBorderWidth = { propertyName: 'borderWidth', modelName: '@BorderWidthSerializable', from: floatFromModel };\nexport var previewForeColor = { propertyName: 'foreColor', modelName: '@ForeColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewFont = { propertyName: 'font', modelName: '@Font' };\nexport var previewPadding = { propertyName: 'padding', modelName: '@Padding', from: PaddingModel.from };\nexport var previewTextAlignment = { propertyName: 'textAlignment', modelName: '@TextAlignment' };\nexport var brickStyleSerializationsInfo = [\n previewBackColor,\n previewSides,\n previewBorderColor,\n previewBorderStyle,\n previewBorderDashStyle,\n previewBorderWidth,\n previewForeColor,\n previewFont,\n previewPadding,\n previewTextAlignment\n];\nexport var defaultCulture = 'Default';\nexport var availableCultures = ko.observable({\n 'Default': '(Default)'\n});\n","/**\n* DevExpress HTML/JS Reporting (common\\binding\\exportOptionsEventArgs.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class CustomizeExportOptionsEventArgs {\n constructor(options) {\n this._options = options;\n }\n HideExportOptionsPanel() { this._options.panelVisible = false; }\n HideFormat(format) { delete this._options.exportOptions[format.propertyName || format.format]; }\n HideProperties(format, ...paths) {\n var patchPropName = (propName, obj) => {\n var info = obj.getInfo && obj.getInfo();\n if (info) {\n var p = info.filter(x => x.modelName === propName || x.modelName === '@' + propName)[0];\n if (p)\n return p.propertyName;\n }\n return propName;\n };\n var addPredicate = (obj, propName) => {\n propName = patchPropName(propName, obj);\n var oldPredicate = obj.isPropertyVisible;\n obj.isPropertyVisible =\n oldPredicate\n ? ((x) => oldPredicate(x) && x !== propName)\n : ((x) => x !== propName);\n };\n if (paths.length == 0) {\n addPredicate(this._options.exportOptions, format.format);\n }\n else {\n paths.forEach(property => {\n var path = Array.isArray(property)\n ? property\n : property.split('.');\n var obj = this._options.exportOptions[format.format];\n while (path.length > 1) {\n obj = ko.unwrap(obj[patchPropName(path[0], obj)]);\n path.splice(0, 1);\n }\n addPredicate(obj, path[0]);\n });\n }\n }\n GetExportOptionsModel(format) { return this._options.exportOptions[format.format]; }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\binding\\eventGenerator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend } from '@devexpress/analytics-core/analytics-internal';\nimport { loadMessages as analyticLoadMessages } from '@devexpress/analytics-core/analytics-localization';\nimport * as localization from 'devextreme/localization';\nimport { availableCultures, defaultCulture } from '../metadata';\nimport { CustomizeExportOptionsEventArgs } from './exportOptionsEventArgs';\nexport class EventGenerator {\n static generateCustomizeLocalizationCallback(fireEvent) {\n return function (localizationCallbacks) {\n fireEvent('CustomizeLocalization', {\n LoadMessages: (messages) => {\n if (!messages)\n return;\n if (typeof messages.then === 'function') {\n localizationCallbacks.push(messages);\n }\n else {\n analyticLoadMessages(messages);\n }\n },\n SetAvailableCultures: (customCultures) => {\n var newCultures = {};\n newCultures[defaultCulture] = availableCultures()[defaultCulture];\n extend(newCultures, customCultures);\n availableCultures(newCultures);\n },\n WidgetLocalization: localization\n });\n };\n }\n static generateDesignerEvents(fireEvent) {\n var customizeActionsEvent = { publicName: 'CustomizeMenuActions', privateName: 'customizeActions' };\n var reportTabClosingEvent = { publicName: 'ReportTabClosing', privateName: 'reportTabClosing' };\n var reportTabClosedEvent = { publicName: 'ReportTabClosed', privateName: 'reportTabClosed' };\n var customizeParameterEditorsEvent = { publicName: 'CustomizeParameterEditors', privateName: 'customizeParameterEditors' };\n var customizeParameterLookUpSourceEvent = { publicName: 'CustomizeParameterLookUpSource', privateName: 'customizeParameterLookUpSource' };\n var exitDesignerEvent = { publicName: 'ExitDesigner', privateName: 'exitDesigner' };\n var reportSavingEvent = { publicName: 'ReportSaving', privateName: 'reportSaving' };\n var reportSavedEvent = { publicName: 'ReportSaved', privateName: 'reportSaved' };\n var reportOpeningEvent = { publicName: 'ReportOpening', privateName: 'reportOpening' };\n var reportOpenedEvent = { publicName: 'ReportOpened', privateName: 'reportOpened' };\n var tabChangedEvent = { publicName: 'TabChanged', privateName: 'tabChanged' };\n var onServerErrorEvent = { publicName: 'OnServerError', privateName: 'onServerError' };\n var customizePartsEvent = { publicName: 'CustomizeElements', privateName: 'customizeParts' };\n var componentAddedEvent = { publicName: 'ComponentAdded', privateName: 'componentAdded' };\n var customizeSaveDialogEvent = { publicName: 'CustomizeSaveDialog', privateName: 'customizeSaveDialog' };\n var customizeSaveAsDialogEvent = { publicName: 'CustomizeSaveAsDialog', privateName: 'customizeSaveAsDialog' };\n var customizeOpenDialogEvent = { publicName: 'CustomizeOpenDialog', privateName: 'customizeOpenDialog' };\n var customizeToolboxEvent = { publicName: 'CustomizeToolbox', privateName: 'customizeToolbox' };\n var customizeLocalizationEvent = { publicName: 'CustomizeLocalization', privateName: 'customizeLocalization' };\n var customizeFieldListActionsEvent = { publicName: 'CustomizeFieldListActions', privateName: 'customizeFieldListActions' };\n var onInitializingEvent = { publicName: 'OnInitializing', privateName: 'onInitializing' };\n var beforeRenderEvent = { publicName: 'BeforeRender', privateName: 'beforeRender' };\n var customizeWizardEvent = { publicName: 'CustomizeWizard', privateName: 'customizeWizard' };\n onInitializingEvent['callback'] = function onInitializing() {\n fireEvent(onInitializingEvent.publicName);\n };\n customizeLocalizationEvent['callback'] = EventGenerator.generateCustomizeLocalizationCallback(fireEvent);\n customizeActionsEvent['callback'] = function customizeActions(actions) {\n fireEvent(customizeActionsEvent.publicName, {\n Actions: actions,\n GetById: (actionId) => {\n return actionId ? actions.filter(function (item) { return actionId === item.id; })[0] : null;\n }\n });\n };\n beforeRenderEvent['callback'] = function beforeRender(designerModel) {\n fireEvent(beforeRenderEvent.publicName, designerModel);\n };\n customizeParameterEditorsEvent['callback'] = function customizeParameterEditors(parameter, info) {\n fireEvent(customizeParameterEditorsEvent.publicName, {\n parameter: parameter,\n info: info\n });\n };\n customizeParameterLookUpSourceEvent['callback'] = function customizeParameterLookUpSource(parameter, items) {\n var arg = {\n parameter,\n items,\n dataSource: null\n };\n fireEvent(customizeParameterLookUpSourceEvent.publicName, arg);\n return arg.dataSource;\n };\n exitDesignerEvent['callback'] = function exitDesigner() {\n fireEvent(exitDesignerEvent.publicName);\n };\n reportSavingEvent['callback'] = function reportSaving(args) {\n var arg = {\n Url: args.url,\n Report: args.report,\n Cancel: args.cancel\n };\n fireEvent(reportSavingEvent.publicName, arg);\n args.cancel = arg.Cancel;\n };\n reportSavedEvent['callback'] = function reportSaved(args) {\n var arg = {\n Url: args.url,\n Report: args.report\n };\n fireEvent(reportSavedEvent.publicName, arg);\n };\n reportOpenedEvent['callback'] = function reportOpened(args) {\n var arg = {\n Url: args.url,\n Report: args.report\n };\n fireEvent(reportOpenedEvent.publicName, arg);\n };\n reportOpeningEvent['callback'] = function reportOpening(args) {\n var arg = {\n Url: args.url,\n Report: args.report,\n Cancel: args.cancel\n };\n fireEvent(reportOpeningEvent.publicName, arg);\n args.cancel = arg.Cancel;\n };\n tabChangedEvent['callback'] = function tabChanged(tab) {\n fireEvent(tabChangedEvent.publicName, {\n Tab: tab\n });\n };\n onServerErrorEvent['callback'] = function onServerError(args) {\n fireEvent(onServerErrorEvent.publicName, { Error: args });\n };\n componentAddedEvent['callback'] = function componentAdded(args) {\n fireEvent(componentAddedEvent.publicName, { Model: args.model, Parent: args.parent });\n };\n customizePartsEvent['callback'] = function customizeParts(parts) {\n fireEvent(customizePartsEvent.publicName, {\n Elements: parts,\n GetById: id => {\n return id\n ? parts.filter(item => id === item.id)[0]\n : null;\n }\n });\n };\n customizeSaveDialogEvent['callback'] = function customizeSaveDialog(popup) {\n fireEvent(customizeSaveDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeSaveAsDialogEvent['callback'] = function customizeSaveAsDialog(popup) {\n fireEvent(customizeSaveAsDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeOpenDialogEvent['callback'] = function customizeOpenDialog(popup) {\n fireEvent(customizeOpenDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeToolboxEvent['callback'] = function customizeToolbox(controlsFactory) {\n fireEvent(customizeToolboxEvent.publicName, {\n ControlsFactory: controlsFactory\n });\n };\n customizeFieldListActionsEvent['callback'] = function customizeFieldListActions(item, actions) {\n fireEvent(customizeFieldListActionsEvent.publicName, {\n Item: item,\n Actions: actions\n });\n };\n customizeWizardEvent['callback'] = function customizeWizard(type, wizard) {\n fireEvent(customizeWizardEvent.publicName, {\n Type: type,\n Wizard: wizard\n });\n };\n reportTabClosingEvent['callback'] = function reportTabClosing(tab, deffered) {\n var args = {\n Tab: tab,\n ReadyToClose: deffered,\n Handled: false\n };\n fireEvent(reportTabClosingEvent.publicName, args);\n return args.Handled;\n };\n reportTabClosedEvent['callback'] = function reportTabClosed(tab) {\n fireEvent(reportTabClosedEvent.publicName, {\n Tab: tab\n });\n };\n return [\n customizeActionsEvent,\n reportTabClosingEvent,\n reportTabClosedEvent,\n customizeParameterEditorsEvent,\n customizeParameterLookUpSourceEvent,\n exitDesignerEvent,\n reportSavingEvent,\n reportSavedEvent,\n reportOpeningEvent,\n reportOpenedEvent,\n tabChangedEvent,\n onServerErrorEvent,\n customizePartsEvent,\n componentAddedEvent,\n customizeSaveDialogEvent,\n customizeSaveAsDialogEvent,\n customizeOpenDialogEvent,\n customizeToolboxEvent,\n customizeLocalizationEvent,\n customizeFieldListActionsEvent,\n onInitializingEvent,\n beforeRenderEvent,\n customizeWizardEvent\n ];\n }\n static generatePreviewEvents(fireEvent, prefix) {\n function generateBrickMethods(brick) {\n return {\n GetBrickText: function () { return brick() && brick().text(); },\n GetBrickValue: function (key = 'value') {\n var contentValue = brick() && brick().content && brick().content.filter(function (x) { return x.Key === key; })[0];\n return contentValue && contentValue.Value;\n },\n };\n }\n var previewClickEvent = { publicName: 'PreviewClick', privateName: 'previewClick' };\n var documentReadyEvent = { publicName: [prefix, 'DocumentReady'].join(''), privateName: 'documentReady' };\n var editingFieldChangedEvent = { publicName: [prefix, 'EditingFieldChanged'].join(''), privateName: 'editingFieldChanged' };\n var parametersSubmittedEvent = { publicName: [prefix, 'ParametersSubmitted'].join(''), privateName: 'parametersSubmitted' };\n var parametersInitializedEvent = { publicName: [prefix, 'ParametersInitialized'].join(''), privateName: 'parametersInitialized' };\n var parametersResetEvent = { publicName: [prefix, 'ParametersReset'].join(''), privateName: 'parametersReset' };\n var customizeParameterLookUpSourceEvent = { publicName: 'CustomizeParameterLookUpSource', privateName: 'customizeParameterLookUpSource' };\n var customizeParameterEditorsEvent = { publicName: 'CustomizeParameterEditors', privateName: 'customizeParameterEditors' };\n var customizeActionsEvent = { publicName: [prefix, 'CustomizeMenuActions'].join(''), privateName: 'customizeActions' };\n var customizePartsEvent = { publicName: [prefix, 'CustomizeElements'].join(''), privateName: 'customizeParts' };\n var customizeExportOptionsEvent = { publicName: [prefix, 'CustomizeExportOptions'].join(''), privateName: 'customizeExportOptions' };\n var onServerErrorEvent = { publicName: 'OnServerError', privateName: 'onServerError' };\n var onExportEvent = { publicName: [prefix, 'OnExport'].join(''), privateName: 'onExport' };\n customizeParameterEditorsEvent['callback'] = function customizeParameterEditors(parameter, info) {\n fireEvent(customizeParameterEditorsEvent.publicName, { parameter, info });\n };\n customizePartsEvent['callback'] = function customizeParts(parts) {\n fireEvent(customizePartsEvent.publicName, {\n Elements: parts,\n GetById: (templateId) => {\n return templateId ? parts.filter(function (item) { return templateId === item.templateName; })[0] : null;\n }\n });\n };\n customizeActionsEvent['callback'] = function customizeActions(actions) {\n fireEvent(customizeActionsEvent.publicName, {\n Actions: actions,\n GetById: (actionId) => {\n return actionId ? actions.filter(function (item) { return actionId === item.id; })[0] : null;\n }\n });\n };\n customizeParameterLookUpSourceEvent['callback'] = function customizeParameterLookUpSource(parameter, items) {\n var arg = {\n parameter,\n items,\n dataSource: null\n };\n fireEvent(customizeParameterLookUpSourceEvent.publicName, arg);\n return arg.dataSource;\n };\n previewClickEvent['callback'] = function previewClick(pageIndex, brick, defaultHandler) {\n var arg = Object.assign(Object.assign({ PageIndex: pageIndex, Brick: brick, DefaultHandler: defaultHandler }, generateBrickMethods(() => brick)), { Handled: false });\n fireEvent(previewClickEvent.publicName, arg);\n return arg.Handled;\n };\n parametersResetEvent['callback'] = function parametersReset(model, parameters) {\n fireEvent(parametersResetEvent.publicName, {\n ParametersViewModel: model,\n Parameters: parameters\n });\n };\n parametersSubmittedEvent['callback'] = function parametersSubmitted(model, parameters) {\n fireEvent(parametersSubmittedEvent.publicName, {\n ParametersViewModel: model,\n Parameters: parameters\n });\n };\n parametersInitializedEvent['callback'] = function parametersInitialized(model, info, submit, shouldRequestParameters) {\n fireEvent(parametersInitializedEvent.publicName, {\n ParametersModel: model,\n ActualParametersInfo: info,\n Submit: submit,\n ShouldRequestParameters: shouldRequestParameters\n });\n };\n editingFieldChangedEvent['callback'] = function editingFieldChanged(field, oldValue, newValue) {\n var arg = Object.assign({ Field: field, OldValue: oldValue, NewValue: newValue }, generateBrickMethods(() => field.brick));\n fireEvent(editingFieldChangedEvent.publicName, arg);\n return arg.NewValue;\n };\n documentReadyEvent['callback'] = function documentReady(documentId, reportId, pageCount) {\n fireEvent(documentReadyEvent.publicName, {\n ReportId: reportId,\n DocumentId: documentId,\n PageCount: pageCount\n });\n };\n onServerErrorEvent['callback'] = function onServerError(args) {\n fireEvent(onServerErrorEvent.publicName, { Error: args });\n };\n onExportEvent['callback'] = function onExport(args) {\n fireEvent(onExportEvent.publicName, args);\n };\n customizeExportOptionsEvent['callback'] = function customizeExportOptions(options) {\n var arg = new CustomizeExportOptionsEventArgs(options);\n fireEvent(customizeExportOptionsEvent.publicName, arg);\n };\n var result = [\n previewClickEvent,\n documentReadyEvent,\n editingFieldChangedEvent,\n parametersSubmittedEvent,\n parametersInitializedEvent,\n parametersResetEvent,\n customizeParameterLookUpSourceEvent,\n customizeParameterEditorsEvent,\n customizeActionsEvent,\n customizePartsEvent,\n customizeExportOptionsEvent,\n onServerErrorEvent,\n onExportEvent,\n ];\n if (!prefix) {\n var onInitializingEvent = { publicName: 'OnInitializing', privateName: 'onInitializing' };\n onInitializingEvent['callback'] = function onInitializing() {\n fireEvent(onInitializingEvent.publicName);\n };\n result.push(onInitializingEvent);\n var beforeRenderEvent = { publicName: 'BeforeRender', privateName: 'beforeRender' };\n beforeRenderEvent['callback'] = function beforeRender(designerModel) {\n fireEvent(beforeRenderEvent.publicName, designerModel);\n };\n result.push(beforeRenderEvent);\n var customizeLocalizationEvent = { publicName: 'CustomizeLocalization', privateName: 'customizeLocalization' };\n customizeLocalizationEvent['callback'] = EventGenerator.generateCustomizeLocalizationCallback(fireEvent);\n result.push(customizeLocalizationEvent);\n }\n return result;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (dx-reporting-version.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport const version = '22.2.15';\n","/**\n* DevExpress HTML/JS Reporting (common\\versions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as clientVersions from '@devexpress/analytics-core/core/internal/dx-versions';\nimport { version } from '../dx-reporting-version';\n(clientVersions.dxversions || clientVersions)['reporting'] = version;\n","/**\n* DevExpress Analytics (core\\widgets\\textAlignmentEditor\\_textAlignmentEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/_localization';\nimport { Disposable } from '../../../serializer/utils';\nexport class TextAlignmentModel extends Disposable {\n constructor(object) {\n super();\n this.top = ko.observable(false);\n this.middle = ko.observable(false);\n this.bottom = ko.observable(false);\n this.left = ko.observable(false);\n this.right = ko.observable(false);\n this.center = ko.observable(false);\n this.justify = ko.observable(false);\n this.horizontalString = ko.observable(getLocalization('Horizontal', 'ASPxReportsStringId.ReportDesigner_TextAlignment_Horizontal'));\n this.verticalString = ko.observable(getLocalization('Vertical', 'ASPxReportsStringId.ReportDesigner_TextAlignment_Vertical'));\n this.disabled = object.disabled || ko.observable(false);\n this.value = object.value;\n this.updateModel(object.value());\n this._disposables.push(object.value.subscribe((newVal) => {\n this.updateModel(newVal);\n }));\n }\n _resetHorizontalValues() {\n this.left(false), this.right(false), this.center(false), this.justify(false);\n }\n _resetVerticalValues() {\n this.top(false), this.middle(false), this.bottom(false);\n }\n setValue(name, type) {\n if (this.disabled() || this[name]())\n return;\n if (type == 'Horizontal')\n this._resetHorizontalValues();\n else\n this._resetVerticalValues();\n this[name](true);\n this.updateValue();\n }\n updateModel(value) {\n var val = value || 'TopLeft';\n this.top(val.indexOf('Top') !== -1);\n this.middle(val.indexOf('Middle') !== -1);\n this.bottom(val.indexOf('Bottom') !== -1);\n this.left(val.indexOf('Left') !== -1);\n this.right(val.indexOf('Right') !== -1);\n this.center(val.indexOf('Center') !== -1);\n this.justify(val.indexOf('Justify') !== -1);\n }\n updateValue() {\n var result = [];\n this.top() ? result.push('Top') : null;\n this.middle() ? result.push('Middle') : null;\n this.bottom() ? result.push('Bottom') : null;\n this.left() ? result.push('Left') : null;\n this.right() ? result.push('Right') : null;\n this.center() ? result.push('Center') : null;\n this.justify() ? result.push('Justify') : null;\n this.value(result.join(''));\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\textAlignmentEditor\\_binding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { TextAlignmentModel } from './_textAlignmentEditor';\nimport { getTemplate } from '../../../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nko.bindingHandlers['dxTextAlignmentEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrd-textalignment-editor'), $element = $.fn.constructor(element).append(templateHtml);\n var model = new TextAlignmentModel(valueAccessor());\n ko.applyBindings({ value: model }, $element.children()[0]);\n addDisposeCallback(element, () => model.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress Analytics (core\\widgets\\_dataMemberEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport class DataMemberTreeListController {\n constructor() {\n this.selectedItem = null;\n this.suppressActions = true;\n }\n dispose() {\n this.selectedItem = null;\n }\n itemsFilter(item) {\n return item.specifics !== 'parameters' && (item.specifics === 'List' || item.specifics === 'ListSource' || item.isList === true || item.specifics === 'none');\n }\n hasItems(item) {\n return item.specifics !== 'none';\n }\n canSelect(value) {\n return (this.hasItems(value.data) && !!value.path && (value.data.specifics === 'List' || value.data.specifics === 'ListSource')) || value.data.specifics === 'none';\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem && this.selectedItem.isSelected(false);\n this.selectedItem = value;\n value.isSelected(true);\n }\n }\n isDraggable(item) {\n return false;\n }\n}\n","/**\r\n * DevExtreme (esm/ui/drop_down_box.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DropDownEditor from \"./drop_down_editor/ui.drop_down_editor\";\r\nimport DataExpressionMixin from \"./editor/ui.data_expression\";\r\nimport {\r\n noop,\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n tabbable\r\n} from \"./widget/selectors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../ui/overlay/utils\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n keyboard\r\n} from \"../events/short\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nvar getActiveElement = domAdapter.getActiveElement;\r\nvar DROP_DOWN_BOX_CLASS = \"dx-dropdownbox\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar realDevice = devices.real();\r\nvar DropDownBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n var $tabbableElements = this._getTabbableElements();\r\n var $focusableElement = e.shiftKey ? $tabbableElements.last() : $tabbableElements.first();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _getTabbableElements: function() {\r\n return this._getElements().filter(tabbable)\r\n },\r\n _getElements: function() {\r\n return $(this.content()).find(\"*\")\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n acceptCustomValue: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n openOnFieldClick: true,\r\n displayValueFormatter: function(value) {\r\n return Array.isArray(value) ? value.join(\", \") : value\r\n },\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._initDataExpressions();\r\n this.$element().addClass(DROP_DOWN_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _sortValuesByKeysOrder(orderedKeys, values) {\r\n var sortedValues = values.sort((a, b) => orderedKeys.indexOf(a.itemKey) - orderedKeys.indexOf(b.itemKey));\r\n return sortedValues.map(x => x.itemDisplayValue)\r\n },\r\n _renderInputValue: function() {\r\n this._rejectValueLoading();\r\n var values = [];\r\n if (!this._dataSource) {\r\n this.callBase(values);\r\n return (new Deferred).resolve()\r\n }\r\n var currentValue = this._getCurrentValue();\r\n var keys = null !== currentValue && void 0 !== currentValue ? currentValue : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n var itemLoadDeferreds = map(keys, key => {\r\n var deferred = new Deferred;\r\n this._loadItem(key).always(item => {\r\n var displayValue = this._displayGetter(item);\r\n if (isDefined(displayValue)) {\r\n values.push({\r\n itemKey: key,\r\n itemDisplayValue: displayValue\r\n })\r\n } else if (this.option(\"acceptCustomValue\")) {\r\n values.push({\r\n itemKey: key,\r\n itemDisplayValue: key\r\n })\r\n }\r\n deferred.resolve()\r\n });\r\n return deferred\r\n });\r\n var callBase = this.callBase.bind(this);\r\n return when.apply(this, itemLoadDeferreds).always(() => {\r\n var orderedValues = this._sortValuesByKeysOrder(keys, values);\r\n this.option(\"displayValue\", orderedValues);\r\n callBase(values.length && orderedValues)\r\n })\r\n },\r\n _loadItem: function(value) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var selectedItem = grep(this.option(\"items\") || [], function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0];\r\n if (void 0 !== selectedItem) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n this._loadValue(value).done((function(item) {\r\n deferred.resolve(item)\r\n })).fail((function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n if (that.option(\"acceptCustomValue\")) {\r\n deferred.resolve(value)\r\n } else {\r\n deferred.reject()\r\n }\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _popupElementTabHandler: function(e) {\r\n if (\"tab\" !== normalizeKeyName(e)) {\r\n return\r\n }\r\n var $firstTabbable = this._getTabbableElements().first().get(0);\r\n var $lastTabbable = this._getTabbableElements().last().get(0);\r\n var $target = e.originalEvent.target;\r\n var moveBackward = !!($target === $firstTabbable && e.shift);\r\n var moveForward = !!($target === $lastTabbable && !e.shift);\r\n if (moveBackward || moveForward) {\r\n this.close();\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n if (moveBackward) {\r\n e.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _renderPopup: function(e) {\r\n this.callBase();\r\n if (this.option(\"focusStateEnabled\")) {\r\n keyboard.on(this.content(), null, e => this._popupElementTabHandler(e))\r\n }\r\n },\r\n _renderPopupContent: function() {\r\n if (this.option(\"contentTemplate\") === ANONYMOUS_TEMPLATE_NAME) {\r\n return\r\n }\r\n var contentTemplate = this._getTemplateByOption(\"contentTemplate\");\r\n if (!(contentTemplate && this.option(\"contentTemplate\"))) {\r\n return\r\n }\r\n var $popupContent = this._popup.$content();\r\n var templateData = {\r\n value: this._fieldRenderData(),\r\n component: this\r\n };\r\n $popupContent.empty();\r\n contentTemplate.render({\r\n container: getPublicElement($popupContent),\r\n model: templateData\r\n })\r\n },\r\n _canShowVirtualKeyboard: function() {\r\n return realDevice.mac\r\n },\r\n _isNestedElementActive: function() {\r\n var activeElement = getActiveElement();\r\n return activeElement && this._popup.$content().get(0).contains(activeElement)\r\n },\r\n _shouldHideOnParentScroll: function() {\r\n return \"desktop\" === realDevice.deviceType && this._canShowVirtualKeyboard() && this._isNestedElementActive()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._popupPosition = void 0\r\n },\r\n _popupPositionedHandler: function(e) {\r\n this.callBase(e);\r\n this._popupPosition = e.position\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this.callBase(isRtlEnabled);\r\n return {\r\n my: my,\r\n at: at,\r\n offset: {\r\n v: -1\r\n },\r\n collision: \"flipfit\"\r\n }\r\n },\r\n _popupConfig: function() {\r\n var {\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n return extend(this.callBase(), {\r\n tabIndex: -1,\r\n dragEnabled: false,\r\n focusStateEnabled: focusStateEnabled,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n hideOnParentScroll: this._shouldHideOnParentScroll.bind(this),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n onKeyboardHandled: opts => this.option(\"focusStateEnabled\") && this._popupElementTabHandler(opts),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: function() {\r\n var _this$_popupPosition;\r\n var popupLocation = null === (_this$_popupPosition = this._popupPosition) || void 0 === _this$_popupPosition ? void 0 : _this$_popupPosition.v.location;\r\n return getElementMaxHeightByWindow(this.$element(), popupLocation)\r\n }.bind(this)\r\n })\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n var $firstElement = this._getTabbableElements().first();\r\n eventsEngine.trigger($firstElement, \"focus\")\r\n },\r\n _setCollectionWidgetOption: noop,\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._renderInputValue();\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n break;\r\n case \"contentTemplate\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin);\r\nregisterComponent(\"dxDropDownBox\", DropDownBox);\r\nexport default DropDownBox;\r\n","/**\n* DevExpress Analytics (core\\widgets\\_fieldlistpicker.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/drop_down_box';\nimport dxDropDownBox from 'devextreme/ui/drop_down_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { extend } from '../../serializer/_utils';\nexport class dxFieldListPicker extends dxDropDownBox {\n constructor($element, options) {\n var _a, _b;\n super($element, extend(options, { showClearButton: true }));\n this._path = ko.observable('');\n this._value = ko.observable('');\n this._parentViewport = null;\n this._itemsProvider = ko.observable(null);\n this._hasDisplayNameOption = false;\n this._defaultPosition = null;\n var _$element = $.fn.constructor($element);\n _$element.addClass('dx-fieldlistpicker');\n this.option('path') && this._path((_a = this.option('path')) === null || _a === void 0 ? void 0 : _a.toString());\n this.option('value') && this._value(this.option('value'));\n this.option('itemsProvider') && this._itemsProvider(this.option('itemsProvider'));\n this.option('valueChangeEvent', 'change');\n this.option('openOnFieldClick', this.option('acceptCustomValue') === false);\n this._parentViewport = _$element.parents('.dx-designer-viewport');\n if ('displayValue' in options) {\n this._hasDisplayNameOption = true;\n this.option('displayValue', options.displayValue);\n this._setTitle((_b = this.option('displayValue')) === null || _b === void 0 ? void 0 : _b.toString());\n }\n }\n updateOptions(options) {\n options.showClearButton = true;\n }\n _showDropDown() {\n if (this['_popup']) {\n var $element = $.fn.constructor(this.element());\n this['_popup'].option('width', $element.width());\n var popupPosition = extend(true, {}, this._defaultPosition, { boundary: this._parentViewport[0], boundaryOffset: '0 20', collision: 'none flip' });\n this['_popup'].option('position', popupPosition);\n this['_popup'].option('height', 'auto');\n this['_popup'].option('maxHeight', this._getMaxHeight());\n this['_popup'].repaint();\n $.fn.constructor(this['_popup'].content())[0].style.height = 'auto';\n this['_popup']._renderPosition();\n }\n }\n _getMaxHeight() {\n var $element = $.fn.constructor(this.element()), offset = $element.offset(), windowHeight = $.fn.constructor(window).height(), maxHeight = Math.max(offset.top, windowHeight - offset.top - $element.outerHeight());\n return Math.min(.5 * windowHeight, maxHeight);\n }\n _closeOutsideDropDownHandler(e, ignoreContainerClicks) { super['_closeOutsideDropDownHandler'].apply(this, [e, true]); }\n _hideOnBlur() { return false; }\n _popupConfig() {\n var dxPolymorphWidget = this.option('integrationOptions')['templates']['dx-polymorph-widget'];\n var popuConfig = super['_popupConfig'].apply(this);\n this._defaultPosition = popuConfig.position;\n return extend(popuConfig, {\n container: this._parentViewport,\n contentTemplate: dxPolymorphWidget && dxPolymorphWidget._template,\n hideOnOutsideClick: true\n });\n }\n _setTitle(text) {\n if (this.option('openOnFieldClick')) {\n $.fn.constructor(this.element()).attr('title', text);\n }\n }\n _renderDisplayText(newValue) { super['_renderDisplayText'].apply(this, [newValue]); }\n _optionChanged(args) {\n var name = args.name, newValue = args.value;\n switch (name) {\n case 'value':\n this._value(newValue);\n if (!this._hasDisplayNameOption)\n this._renderDisplayText(newValue);\n setTimeout($.proxy(() => {\n this.option('opened', false);\n }, this), 50);\n break;\n case 'path':\n this._path(newValue);\n break;\n case 'itemsProvider':\n this._itemsProvider(newValue);\n break;\n case 'displayValue':\n this._renderDisplayText(newValue);\n this._setTitle(newValue);\n break;\n default:\n super['_optionChanged'].apply(this, arguments);\n if (name === 'opened' && newValue) {\n this['_showDropDown']();\n }\n }\n }\n _clearValueHandler() {\n $.fn.constructor(this['_input']()).val(null);\n super['_clearValueHandler'].apply(this, arguments);\n }\n _renderPopupContent() {\n super['_renderPopupContent'].apply(this, arguments);\n var selectedPath = ko.pureComputed({\n read: () => {\n return this._path() ? this._path() + '.' + this._value() : this._value();\n },\n write: (newVal) => {\n if (this._path() && this._path().length > 0) {\n this._value(newVal.substr(this._path().length + 1));\n this.option('value', this._value());\n }\n else {\n this._value(newVal);\n this.option('value', this._value());\n }\n }\n });\n var element = $.fn.constructor('
').addClass('dx-treelist-wrapper').get(0);\n var scroll = this['_createComponent'](element, 'dxScrollView', { scrollByThumb: true });\n var self = this;\n var $scrollContent = $.fn.constructor(scroll['content']());\n var $element = $.fn.constructor(this.element());\n $scrollContent.append($.fn.constructor('
')[0]);\n var context = ko.contextFor($element.get(0));\n var treeListController = this.option('treeListController');\n var options = ko.computed(() => {\n return {\n itemsProvider: this._itemsProvider(), onItemsVisibilityChanged: () => {\n if (self['_popup']) {\n self['_popup']._renderPosition();\n }\n }, selectedPath: selectedPath, treeListController: treeListController, path: this._path\n };\n });\n var childContext = context.createChildContext({ options });\n ko.applyBindingsToDescendants(childContext, $scrollContent.get(0));\n $.fn.constructor(this['_popup'].content()).append(element);\n }\n}\nregisterComponent('dxFieldListPicker', dxFieldListPicker);\n","/**\n* DevExpress Analytics (core\\widgets\\_popupEditorBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/_localization';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { Disposable } from '../../serializer/utils';\nexport class PopupEditorBase extends Disposable {\n constructor() {\n super();\n this.popupVisible = ko.observable(false);\n this.buttonItems = [];\n this._createMainPopupButtons();\n }\n _createMainPopupButtons() {\n var self = this;\n this._disposables.push(this._disableSaveButton = ko.pureComputed(() => !self.canSave()));\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: this.saveLocalization, type: 'default', stylingMode: 'contained', onClick: function (sender) { self.save(sender); }, disabled: this._disableSaveButton } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: this.cancelLocalization, type: 'normal', stylingMode: 'contained', onClick: function () { self.close(); } } }\n ];\n this._disposables.push(this._disableSaveButton);\n }\n canSave() {\n return true;\n }\n save(sender) {\n this.popupVisible(false);\n }\n close() {\n this.popupVisible(false);\n }\n get cancelLocalization() {\n return getLocalization('Cancel', StringId.DataAccessBtnCancel);\n }\n get saveLocalization() {\n return getLocalization('OK', StringId.DataAccessBtnOK);\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\_requiredNullableEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nimport { requiredValidationRules } from '../../property-grid/widgets/internal/_internal';\nimport { ValueEditorHelper } from '../../widgets/internal/_valueEditorHelper';\nexport class RequiredNullableEditor extends Editor {\n _getEditorValidationRules() {\n var _a;\n return (super._getEditorValidationRules() || []).concat(ko.unwrap((_a = this.editorOptions) === null || _a === void 0 ? void 0 : _a.showClearButton) ? [] : requiredValidationRules);\n }\n}\nexport function createNumericEditor(dotNetTypeFullName, specifics) {\n class DynamicNumberEditor extends RequiredNullableEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n }\n getOptions(templateOptions) {\n var options = super.getOptions(templateOptions);\n return ValueEditorHelper.getNumberEditorOptions(dotNetTypeFullName, specifics, options);\n }\n }\n return {\n header: 'dx-number-editor',\n editorType: DynamicNumberEditor\n };\n}\n","/**\n* DevExpress Analytics (dx-analytics-core-bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addToBindingsCache } from './property-grid/widgets/internal/_bindingsCache';\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-none\\', css: { \\'dxd-state-active\\': (!bottom() && !left() && !top() && !right()), \\'dxrd-disabled-button\\': disabled }, click: function() { setNone() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-none'; }, 'css': function () { return { 'dxd-state-active': (!$context.$data.bottom() && !$context.$data.left() && !$context.$data.top() && !$context.$data.right()), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setNone(); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-all\\', css: { \\'dxd-state-active\\': (bottom() && left() && top() && right()), \\'dxrd-disabled-button\\': disabled }, click: function() { setAll() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-all'; }, 'css': function () { return { 'dxd-state-active': ($context.$data.bottom() && $context.$data.left() && $context.$data.top() && $context.$data.right()), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setAll(); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-left\\', css: { \\'dxd-state-active\\': left(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'left\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-left'; }, 'css': function () { return { 'dxd-state-active': $context.$data.left(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('left'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-top\\', css: { \\'dxd-state-active\\': top(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'top\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-top'; }, 'css': function () { return { 'dxd-state-active': $context.$data.top(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('top'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-right\\', css: { \\'dxd-state-active\\': right(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'right\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-right'; }, 'css': function () { return { 'dxd-state-active': $context.$data.right(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('right'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-bottom\\', css: { \\'dxd-state-active\\': bottom(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'bottom\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-bottom'; }, 'css': function () { return { 'dxd-state-active': $context.$data.bottom(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('bottom'); }; } }; });\naddToBindingsCache('with: value', function ($context, $element) { return { 'with': function () { return $context.$data.value; } }; });\naddToBindingsCache('dxBorderEditor: { value: value, disabled: disabled }', function ($context, $element) { return { 'dxBorderEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('dxColorBox: { value: displayValue, placeholder: $root.getLocalization(\\'(Not set)\\', \\'ReportStringId.UD_PropertyGrid_NotSetText\\'), editAlphaChannel: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flipfit\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } }, inputAttr: { \\'aria-label\\': displayName } }', function ($context, $element) { return { 'dxColorBox': function () { return { 'value': $context.$data.displayValue, 'placeholder': $context.$root.getLocalization('(Not set)', 'ReportStringId.UD_PropertyGrid_NotSetText'), 'editAlphaChannel': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flipfit', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } }, 'inputAttr': { 'aria-label': $context.$data.displayName } }; } }; });\naddToBindingsCache('dxExpressionEditor: getOptions({ options: value, fieldListProvider: $root.dataBindingsProvider, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() })', function ($context, $element) { return { 'dxExpressionEditor': function () { return $context.$data.getOptions({ 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsProvider, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }); } }; });\naddToBindingsCache('if: $data.value()', function ($context, $element) { return { 'if': function () { return $context.$data.value(); } }; });\naddToBindingsCache('dxFieldListPicker: { path: path, acceptCustomValue: true, value: value, displayValue: $displayName, itemsProvider: $root.dataBindingsProvider, treeListController: treeListController, disabled: disabled }', function ($context, $element) { return { 'dxFieldListPicker': function () { return { 'path': $context.$data.path, 'acceptCustomValue': true, 'value': $context.$data.value, 'displayValue': $context.$data.$displayName, 'itemsProvider': $context.$root.dataBindingsProvider, 'treeListController': $context.$data.treeListController, 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('displayNameExtender: { path: path, dataMember: value }', function ($context, $element) { return { 'displayNameExtender': function () { return { 'path': $context.$data.path, 'dataMember': $context.$data.value }; } }; });\naddToBindingsCache('if: visible', function ($context, $element) { return { 'if': function () { return $context.$data.visible; } }; });\naddToBindingsCache('dxFilterEditor: { options: value, fieldListProvider: $root.dataBindingsProvider, getDisplayNameByPath: $root.getDisplayNameByPath, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() }', function ($context, $element) { return { 'dxFilterEditor': function () { return { 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsProvider, 'getDisplayNameByPath': $context.$root.getDisplayNameByPath, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }; } }; });\naddToBindingsCache('dxFilterEditor: { options: value, fieldListProvider: $root.dataBindingsGroupProvider, getDisplayNameByPath: $root.getDisplayNameByPath, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() }', function ($context, $element) { return { 'dxFilterEditor': function () { return { 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsGroupProvider, 'getDisplayNameByPath': $context.$root.getDisplayNameByPath, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }; } }; });\naddToBindingsCache('dxFormatEditor: { value: value, disabled: disabled, actions: $data.actions, customPatterns: $data.customPatterns }', function ($context, $element) { return { 'dxFormatEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'actions': $context.$data.actions, 'customPatterns': $context.$data.customPatterns }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: (validationRules || []) }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': ($context.$data.validationRules || []) }; } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: viewmodel }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data.viewmodel }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: ko.observable($data), level: $parent.level, textToSearch: $parent.textToSearch }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.ko.observable($context.$data), 'level': $context.$parent.level, 'textToSearch': $context.$parent.textToSearch }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: value, level: editor.level + 1, parentDisabled: editor.disabled }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.value, 'level': $context.$data.editor.level + 1, 'parentDisabled': $context.$data.editor.disabled }; } }; });\naddToBindingsCache('if: $data.visible() && $data.editorCreated()', function ($context, $element) { return { 'if': function () { return $context.$data.visible() && $context.$data.editorCreated(); } }; });\naddToBindingsCache('dxTextAlignmentEditor: { value: value, disabled: disabled }', function ($context, $element) { return { 'dxTextAlignmentEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('treelist: options', function ($context, $element) { return { 'treelist': function () { return $context.$data.options; } }; });\naddToBindingsCache('if: options', function ($context, $element) { return { 'if': function () { return $context.$data.options; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[0].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[0].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[1].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[1].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[2].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[2].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[3].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[3].transform() }; } }; });\naddToBindingsCache('template: templateName, click: function(_, e) { !$root.selection.disabled() && $root.selection.clickHandler($data, e); e.stopPropagation(); }', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; }, 'click': function () { return function (_, e) { !$context.$root.selection.disabled() && $context.$root.selection.clickHandler($context.$data, e); e.stopPropagation(); }; } }; });\naddToBindingsCache('cssArray: [surfaceClass($element), { \\'dx-accessibility\\': $data.accessibilityCompliant } ]', function ($context, $element) { return { 'cssArray': function () { return [$context.$data.surfaceClass($element), { 'dx-accessibility': $context.$data.accessibilityCompliant }]; } }; });\naddToBindingsCache('visible: (!$data.designMode || designMode()), cssArray: [$data.rootStyle, { \\'dx-rtl\\' : $data.rtl, \\'dx-ltr\\': !$data.rtl }]', function ($context, $element) { return { 'visible': function () { return (!$context.$data.designMode || $context.$data.designMode()); }, 'cssArray': function () { return [$context.$data.rootStyle, { 'dx-rtl': $context.$data.rtl, 'dx-ltr': !$context.$data.rtl }]; } }; });\naddToBindingsCache('ifnot: isLoading', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isLoading; } }; });\naddToBindingsCache('with: surface', function ($context, $element) { return { 'with': function () { return $context.$data.surface; } }; });\naddToBindingsCache('if: isLoading', function ($context, $element) { return { 'if': function () { return $context.$data.isLoading; } }; });\naddToBindingsCache('foreach: parts', function ($context, $element) { return { 'foreach': function () { return $context.$data.parts; } }; });\naddToBindingsCache('template: { name: templateName, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data.model }; } }; });\naddToBindingsCache('if: ($data.addOns)', function ($context, $element) { return { 'if': function () { return ($context.$data.addOns); } }; });\naddToBindingsCache('foreach: addOns', function ($context, $element) { return { 'foreach': function () { return $context.$data.addOns; } }; });\naddToBindingsCache('text: verticalString', function ($context, $element) { return { 'text': function () { return $context.$data.verticalString; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-top\\', css: { \\'dxd-state-active\\': top(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'top\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-top'; }, 'css': function () { return { 'dxd-state-active': $context.$data.top(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('top', 'Vertical'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-middle\\', css: { \\'dxd-state-active\\': middle(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'middle\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-middle'; }, 'css': function () { return { 'dxd-state-active': $context.$data.middle(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('middle', 'Vertical'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-bottom\\', css: { \\'dxd-state-active\\': bottom(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'bottom\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-bottom'; }, 'css': function () { return { 'dxd-state-active': $context.$data.bottom(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('bottom', 'Vertical'); }; } }; });\naddToBindingsCache('text: horizontalString', function ($context, $element) { return { 'text': function () { return $context.$data.horizontalString; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-left\\', css: { \\'dxd-state-active\\': left(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'left\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-left'; }, 'css': function () { return { 'dxd-state-active': $context.$data.left(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('left', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-center\\', css: { \\'dxd-state-active\\': center(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'center\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-center'; }, 'css': function () { return { 'dxd-state-active': $context.$data.center(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('center', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-right\\', css: { \\'dxd-state-active\\': right(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'right\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-right'; }, 'css': function () { return { 'dxd-state-active': $context.$data.right(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('right', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-justify\\', css: { \\'dxd-state-active\\': justify(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'justify\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-justify'; }, 'css': function () { return { 'dxd-state-active': $context.$data.justify(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('justify', 'Horizontal'); }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: togglePopoverVisible, disabled: disabled, icon: ko.unwrap($data.imageTemplateName), iconClass: ko.unwrap($data.imageClassName) }, attr: { id: id, title: text }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.togglePopoverVisible, 'disabled': $context.$data.disabled, 'icon': $context.ko.unwrap($context.$data.imageTemplateName), 'iconClass': $context.ko.unwrap($context.$data.imageClassName) }; }, 'attr': function () { return { 'id': $context.$data.id, 'title': $context.$data.text }; } }; });\naddToBindingsCache('dxPopup: { width: 235, height: \\'auto\\', position: { my: $root.rtl ? \\'left top\\': \\'right top\\', at: \\'bottom\\', of: (\\'#\\' + id) }, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, container: ($data.getContainer || function(_e, selector) { return selector; })($element, \\'.dxrd-action-items-container\\'), shading: false, visible: popoverVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 235, 'height': 'auto', 'position': { 'my': $context.$root.rtl ? 'left top' : 'right top', 'at': 'bottom', 'of': ('#' + $context.$data.id) }, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'container': ($context.$data.getContainer || function (_e, selector) { return selector; })($element, '.dxrd-action-items-container'), 'shading': false, 'visible': $context.$data.popoverVisible }; } }; });\naddToBindingsCache('dxclick: clickAction, css: { \\'dxrd-disabled-button\\': disabled }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.clickAction; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled }; } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: {name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('if: $data.contentTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.contentTemplate; } }; });\naddToBindingsCache('template: contentTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.contentTemplate; } }; });\naddToBindingsCache('if: !$data.contentTemplate', function ($context, $element) { return { 'if': function () { return !$context.$data.contentTemplate; } }; });\naddToBindingsCache('foreach: actions', function ($context, $element) { return { 'foreach': function () { return $context.$data.actions; } }; });\naddToBindingsCache('styleunit: { top: $data.top, left: $data.left, width: $data.width, height: $data.height }, css: { \\'dxrd-locked\\': $data.isLocked }', function ($context, $element) { return { 'styleunit': function () { return { 'top': $context.$data.top, 'left': $context.$data.left, 'width': $context.$data.width, 'height': $context.$data.height }; }, 'css': function () { return { 'dxrd-locked': $context.$data.isLocked }; } }; });\naddToBindingsCache('styleunit: { left: $data.left, top: $data.top, width: $data.width, height: $data.height }, css: $data.className', function ($context, $element) { return { 'styleunit': function () { return { 'left': $context.$data.left, 'top': $context.$data.top, 'width': $context.$data.width, 'height': $context.$data.height }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('template: { name: $data.template, data: $data.data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.template, 'data': $context.$data.data }; } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('text: text, attr: { title: text }', function ($context, $element) { return { 'text': function () { return $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('foreach: $data.controls()', function ($context, $element) { return { 'foreach': function () { return $context.$data.controls(); } }; });\naddToBindingsCache('with: $parent.customData()', function ($context, $element) { return { 'with': function () { return $context.$parent.customData(); } }; });\naddToBindingsCache('dxclick: function(e) { if(stopPropagation) { stopPropagation = false; } else { toggleAppMenu() } }, template: \\'dxrd-svg-menu-menu\\', css: {\\'dxd-state-active\\': appMenuVisible }', function ($context, $element) { return { 'dxclick': function () { return function (e) { if ($context.$data.stopPropagation) {\n $context.$data.stopPropagation = false;\n }\n else {\n $context.$data.toggleAppMenu();\n } }; }, 'template': function () { return 'dxrd-svg-menu-menu'; }, 'css': function () { return { 'dxd-state-active': $context.$data.appMenuVisible }; } }; });\naddToBindingsCache('dxPopup: { width: 250, wrapperAttr: { class: \\'dxd-menu-back-color dxd-back-primary2\\' }, height: \\'100%\\' , position: $data.rtl ? { my: \\'right top\\' , at: \\'left top\\' , offset: \\'-10 0\\' } : { my: \\'left top\\' , at: \\'right top\\' , offset: \\'10 0\\' }, showTitle: false, showCloseButton: false, container: getMenuPopupContainer($element), target: getMenuPopupTarget($element), animation: {}, hideOnOutsideClick: function(e) { var buttonClassName = \\'dxrd-menu-button-image\\'; var parentClassList = e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.classList; stopPropagation = (e.target.classList && e.target.classList.contains(buttonClassName)) || (parentClassList && parentClassList.contains(buttonClassName)); return true; }, shading: false, focusStateEnabled: false, visible: appMenuVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 250, 'wrapperAttr': { 'class': 'dxd-menu-back-color dxd-back-primary2' }, 'height': '100%', 'position': $context.$data.rtl ? { 'my': 'right top', 'at': 'left top', 'offset': '-10 0' } : { 'my': 'left top', 'at': 'right top', 'offset': '10 0' }, 'showTitle': false, 'showCloseButton': false, 'container': $context.$data.getMenuPopupContainer($element), 'target': $context.$data.getMenuPopupTarget($element), 'animation': {}, 'hideOnOutsideClick': function (e) { var buttonClassName = 'dxrd-menu-button-image'; var parentClassList = e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.classList; $context.$data.stopPropagation = (e.target.classList && e.target.classList.contains(buttonClassName)) || (parentClassList && parentClassList.contains(buttonClassName)); return true; }, 'shading': false, 'focusStateEnabled': false, 'visible': $context.$data.appMenuVisible }; } }; });\naddToBindingsCache('dxclick: function(e) { if(disabled && !disabled() || !disabled) { $root.toggleAppMenu(); clickAction($root.model(), e); }}, css: { \\'dxrd-disabled-button\\': disabled }, visible: visible', function ($context, $element) { return { 'dxclick': function () { return function (e) { if ($context.$data.disabled && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$root.toggleAppMenu();\n $context.$data.clickAction($context.$root.model(), e);\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled }; }, 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('text: $data.displayText && $data.displayText() || text, attr: { title: $data.displayText && $data.displayText() || text}', function ($context, $element) { return { 'text': function () { return $context.$data.displayText && $context.$data.displayText() || $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('visible: $data.hasSeparator', function ($context, $element) { return { 'visible': function () { return $context.$data.hasSeparator; } }; });\naddToBindingsCache('foreach: actionLists.menuItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.actionLists.menuItems; } }; });\naddToBindingsCache('dxdAccordion: { collapsed: collapsed }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed }; } }; });\naddToBindingsCache('css: { \\'dxrd-group-header-collapsed\\': collapsed() }', function ($context, $element) { return { 'css': function () { return { 'dxrd-group-header-collapsed': $context.$data.collapsed() }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-collapsed\\', css: { \\'dx-image-expanded\\': !collapsed() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-collapsed'; }, 'css': function () { return { 'dx-image-expanded': !$context.$data.collapsed() }; } }; });\naddToBindingsCache('text: $root.actionsGroupTitle()', function ($context, $element) { return { 'text': function () { return $context.$root.actionsGroupTitle(); } }; });\naddToBindingsCache('dxclick: function() { if($data.disabled && !$data.disabled() || !$data.disabled) { clickAction($root.editableObject()); } }, css: { \\'dxrd-disabled-button\\': $data.disabled && $data.disabled() }, visible: (ko.unwrap($data.visible) == undefined) || ko.unwrap($data.visible)', function ($context, $element) { return { 'dxclick': function () { return function () { if ($context.$data.disabled && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$data.clickAction($context.$root.editableObject());\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled && $context.$data.disabled() }; }, 'visible': function () { return ($context.ko.unwrap($context.$data.visible) == undefined) || $context.ko.unwrap($context.$data.visible); } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data }; } }; });\naddToBindingsCache('visible: items.some(x => !x.visible || ko.unwrap(x.visible))', function ($context, $element) { return { 'visible': function () { return $context.$data.items.some(x => !x.visible || $context.ko.unwrap(x.visible)); } }; });\naddToBindingsCache('text: group', function ($context, $element) { return { 'text': function () { return $context.$data.group; } }; });\naddToBindingsCache('if: popularVisible', function ($context, $element) { return { 'if': function () { return $context.$data.popularVisible; } }; });\naddToBindingsCache('foreach: (contextActions || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.contextActions || []); } }; });\naddToBindingsCache('if: $data.templateName', function ($context, $element) { return { 'if': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('template: templateName', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('if: !$data.templateName', function ($context, $element) { return { 'if': function () { return !$context.$data.templateName; } }; });\naddToBindingsCache('with: popularProperties', function ($context, $element) { return { 'with': function () { return $context.$data.popularProperties; } }; });\naddToBindingsCache('foreach: (groupActions || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.groupActions || []); } }; });\naddToBindingsCache('foreach: (items || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.items || []); } }; });\naddToBindingsCache('template: { name: $data.templateName, if: $data.templateName }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'if': $context.$data.templateName }; } }; });\naddToBindingsCache('css: { \\'dx-property-grid-search-collapsed\\': !isSearching() }', function ($context, $element) { return { 'css': function () { return { 'dx-property-grid-search-collapsed': !$context.$data.isSearching() }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': isSearching }, dxButtonWithTemplate: { onClick: switchSearchBox, icon: \\'dxrd-svg-properties-search\\', iconClass: \\'image-search\\' }, attr: { title: $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\') }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.isSearching }; }, 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.switchSearchBox, 'icon': 'dxrd-svg-properties-search', 'iconClass': 'image-search' }; }, 'attr': function () { return { 'title': $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header') }; } }; });\naddToBindingsCache('dxTextBox: { value: textToSearch, valueChangeEvent: \\'keyup\\', placeholder: searchPlaceholder(), showClearButton: true }, cacheElement: { action: function(element) { searchBox(element); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.textToSearch, 'valueChangeEvent': 'keyup', 'placeholder': $context.$data.searchPlaceholder(), 'showClearButton': true }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.searchBox(element); } }; } }; });\naddToBindingsCache('visible: active() && visible()', function ($context, $element) { return { 'visible': function () { return $context.$data.active() && $context.$data.visible(); } }; });\naddToBindingsCache('text: text', function ($context, $element) { return { 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('css: { \\'dx-property-grid-search-collapsed\\': isSearching }', function ($context, $element) { return { 'css': function () { return { 'dx-property-grid-search-collapsed': $context.$data.isSearching }; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: $root.controlsStore.dataSource, value: focusedItem, displayExpr: displayExpr, dropDownOptions: { container: $root.getPopupContainer($element) }, useItemTextAsTitle: true }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$root.controlsStore.dataSource, 'value': $context.$data.focusedItem, 'displayExpr': $context.$data.displayExpr, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'useItemTextAsTitle': true }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active dxd-state-no-hover\\': !isSortingByGroups() }, dxButtonWithTemplate: { onClick: function() { $data.isSortingByGroups(false); }, icon: \\'dxrd-svg-properties-sortingbyalphabet\\', iconClass: \\'image-sortingbyalphabet\\' }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active dxd-state-no-hover': !$context.$data.isSortingByGroups() }; }, 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.isSortingByGroups(false); }, 'icon': 'dxrd-svg-properties-sortingbyalphabet', 'iconClass': 'image-sortingbyalphabet' }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active dxd-state-no-hover\\': isSortingByGroups }, dxButtonWithTemplate: { onClick: function() { $data.isSortingByGroups(true); }, icon: \\'dxrd-svg-properties-sortingbygroups\\', iconClass: \\'image-sortingbygroups\\' }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active dxd-state-no-hover': $context.$data.isSortingByGroups }; }, 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.isSortingByGroups(true); }, 'icon': 'dxrd-svg-properties-sortingbygroups', 'iconClass': 'image-sortingbygroups' }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('visible: isSortingByGroups', function ($context, $element) { return { 'visible': function () { return $context.$data.isSortingByGroups; } }; });\naddToBindingsCache('visible: visible', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('text: displayName()', function ($context, $element) { return { 'text': function () { return $context.$data.displayName(); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: !editorsCreated() }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': !$context.$data.editorsCreated() }; } }; });\naddToBindingsCache('visible: editorsCreated', function ($context, $element) { return { 'visible': function () { return $context.$data.editorsCreated; } }; });\naddToBindingsCache('visible: !isSortingByGroups()', function ($context, $element) { return { 'visible': function () { return !$context.$data.isSortingByGroups(); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: !allEditorsCreated() }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': !$context.$data.allEditorsCreated() }; } }; });\naddToBindingsCache('visible: allEditorsCreated', function ($context, $element) { return { 'visible': function () { return $context.$data.allEditorsCreated; } }; });\naddToBindingsCache('dxPopup: { width: 250, height: \\'auto\\', position: $data.rtl ? { my: \\'left top\\', at: \\'right top\\', of: popupService.target, collision: \\'flipfit\\' } : { my: \\'right top\\', at: \\'left top\\', of: popupService.target, collision: \\'flipfit\\' }, container: $root.getPopupContainer($element), target: popupService.target, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, shading: false, visible: popupService.visible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 250, 'height': 'auto', 'position': $context.$data.rtl ? { 'my': 'left top', 'at': 'right top', 'of': $context.$data.popupService.target, 'collision': 'flipfit' } : { 'my': 'right top', 'at': 'left top', 'of': $context.$data.popupService.target, 'collision': 'flipfit' }, 'container': $context.$root.getPopupContainer($element), 'target': $context.$data.popupService.target, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'shading': false, 'visible': $context.$data.popupService.visible }; } }; });\naddToBindingsCache('text: popupService.title, visible: popupService.title', function ($context, $element) { return { 'text': function () { return $context.$data.popupService.title; }, 'visible': function () { return $context.$data.popupService.title; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxd-button-back-color\\' }, disabled: popupService.disabled, dataSource: popupService.actions, displayExpr: \\'title\\', cssClass: \\'dxrd-editor-menu\\', orientation: \\'vertical\\', showFirstSubmenuMode: \\'onHover\\', onSubmenuShowing: function(e) { e.submenu._overlay.option(\\'container\\', $root.getPopupContainer($element)) } }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxd-button-back-color' }, 'disabled': $context.$data.popupService.disabled, 'dataSource': $context.$data.popupService.actions, 'displayExpr': 'title', 'cssClass': 'dxrd-editor-menu', 'orientation': 'vertical', 'showFirstSubmenuMode': 'onHover', 'onSubmenuShowing': function (e) { e.submenu._overlay.option('container', $context.$root.getPopupContainer($element)); } }; } }; });\naddToBindingsCache('dxclick: action', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; } }; });\naddToBindingsCache('attr: { title: title }, text: title', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$data.title }; }, 'text': function () { return $context.$data.title; } }; });\naddToBindingsCache('visible: $data.items && $data.items.length', function ($context, $element) { return { 'visible': function () { return $context.$data.items && $context.$data.items.length; } }; });\naddToBindingsCache('if: $data.innerTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.innerTemplate; } }; });\naddToBindingsCache('template: $data.innerTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.innerTemplate; } }; });\naddToBindingsCache('with: model', function ($context, $element) { return { 'with': function () { return $context.$data.model; } }; });\naddToBindingsCache('if: $root.controlsStore.visible()', function ($context, $element) { return { 'if': function () { return $context.$root.controlsStore.visible(); } }; });\naddToBindingsCache('template: \\'dx-propertygrid-searchbox\\'', function ($context, $element) { return { 'template': function () { return 'dx-propertygrid-searchbox'; } }; });\naddToBindingsCache('template: { name: \\'dxrd-group-actions\\', data: { groupActions: $root.contextGroupActions } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-group-actions', 'data': { 'groupActions': $context.$root.contextGroupActions } }; } }; });\naddToBindingsCache('template: { name: \\'dxrd-top-grid\\', data: { contextActions: $root.contextActions, popularProperties: $root.popularProperties, collapsed: ko.observable(false), popularVisible: $root.popularVisible() && isSortingByGroups(), actionsGroupTitle: $root.actionsGroupTitle } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-top-grid', 'data': { 'contextActions': $context.$root.contextActions, 'popularProperties': $context.$root.popularProperties, 'collapsed': $context.ko.observable(false), 'popularVisible': $context.$root.popularVisible() && $context.$data.isSortingByGroups(), 'actionsGroupTitle': $context.$root.actionsGroupTitle } }; } }; });\naddToBindingsCache('foreach: groups', function ($context, $element) { return { 'foreach': function () { return $context.$data.groups; } }; });\naddToBindingsCache('ifnot: editorsCreated', function ($context, $element) { return { 'ifnot': function () { return $context.$data.editorsCreated; } }; });\naddToBindingsCache('if: $data.editorsRendered()', function ($context, $element) { return { 'if': function () { return $context.$data.editorsRendered(); } }; });\naddToBindingsCache('foreach: editors', function ($context, $element) { return { 'foreach': function () { return $context.$data.editors; } }; });\naddToBindingsCache('template: editorTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.editorTemplate; } }; });\naddToBindingsCache('if: ($index() === $parent.editors().length - 1 && $parent.editorsCreated(true))', function ($context, $element) { return { 'if': function () { return ($context.$index() === $context.$parent.editors().length - 1 && $context.$parent.editorsCreated(true)); } }; });\naddToBindingsCache('foreach: $data.getEditors()', function ($context, $element) { return { 'foreach': function () { return $context.$data.getEditors(); } }; });\naddToBindingsCache('if: ($index() === $parent._editors().length - 1 && $parent.allEditorsCreated(true))', function ($context, $element) { return { 'if': function () { return ($context.$index() === $context.$parent._editors().length - 1 && $context.$parent.allEditorsCreated(true)); } }; });\naddToBindingsCache('template: \\'dx-propertygrid-popupservice\\'', function ($context, $element) { return { 'template': function () { return 'dx-propertygrid-popupservice'; } }; });\naddToBindingsCache('if: $data.itemTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('template: $data.itemTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('ifnot: $data.itemTemplate', function ($context, $element) { return { 'ifnot': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('dxTemplate: { name: \\'content\\' }', function () { return { dxTemplate: { name: 'content' } }; });\naddToBindingsCache('dxTemplate: { name: \\'item\\' }', function () { return { dxTemplate: { name: 'item' } }; });\naddToBindingsCache('styleunit: { width: tabPanel.width }, css: tabPanel.cssClasses(), resizable: tabPanel.getResizableOptions($element, 1, $root.calculateWithZoomFactor(325))', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.tabPanel.width }; }, 'css': function () { return $context.$data.tabPanel.cssClasses(); }, 'resizable': function () { return $context.$data.tabPanel.getResizableOptions($element, 1, $context.$root.calculateWithZoomFactor(325)); } }; });\naddToBindingsCache('styleunit: { width: $data.headerWidth }, css: $data.cssClasses({\\'dx-tab-panel-collapsed\\':$data.collapsed }), accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.headerWidth }; }, 'css': function () { return $context.$data.cssClasses({ 'dx-tab-panel-collapsed': $context.$data.collapsed }); }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('css: $data.cssClasses()', function ($context, $element) { return { 'css': function () { return $context.$data.cssClasses(); } }; });\naddToBindingsCache('dxAction: { model: $data, action: function(s) { $parent.toggleTabVisibility({ model: s }); }}, css: { \\'dxd-state-active dxd-state-no-hover\\': active, \\'dxrd-tab-item-disabled\\': disabled }, attr: { title: $data.text, \\'aria-label\\': $data.text, \\'aria-expanded\\': $data.active }, visible: visible', function ($context, $element) { return { 'dxAction': function () { return { 'model': $context.$data, 'action': function (s) { $context.$parent.toggleTabVisibility({ 'model': s }); } }; }, 'css': function () { return { 'dxd-state-active dxd-state-no-hover': $context.$data.active, 'dxrd-tab-item-disabled': $context.$data.disabled }; }, 'attr': function () { return { 'title': $context.$data.text, 'aria-label': $context.$data.text, 'aria-expanded': $context.$data.active }; }, 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('styleunit: { width: $data.width }, css: $data.cssClasses(), resizable: $data.getResizableOptions($element, 50, 340)', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width }; }, 'css': function () { return $context.$data.cssClasses(); }, 'resizable': function () { return $context.$data.getResizableOptions($element, 50, 340); } }; });\naddToBindingsCache('foreach: tabPanel.tabs', function ($context, $element) { return { 'foreach': function () { return $context.$data.tabPanel.tabs; } }; });\naddToBindingsCache('lazy: { template: $data.template }', function ($context, $element) { return { 'lazy': function () { return { 'template': $context.$data.template }; } }; });\naddToBindingsCache('with: tabPanel', function ($context, $element) { return { 'with': function () { return $context.$data.tabPanel; } }; });\naddToBindingsCache('foreach: $data.tabs', function ($context, $element) { return { 'foreach': function () { return $context.$data.tabs; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-edit\\', iconClass: \\'dx-image-edit\\', disabled: disabled, onClick: toogle, hint: title }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-edit', 'iconClass': 'dx-image-edit', 'disabled': $context.$data.disabled, 'onClick': $context.$data.toogle, 'hint': $context.$data.title }; } }; });\naddToBindingsCache('template: {name: \\'dxrd-toolbar-tmplt\\', data: actionLists.toolbarItems }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-toolbar-tmplt', 'data': $context.$data.actionLists.toolbarItems }; } }; });\naddToBindingsCache('visible: visible, class: \\'dxrd-toolbar-item-\\' + $index(), css: {\\'dxrd-toolbar-item-with-separator dxd-border-primary\\': $data.hasSeparator }', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'class': function () { return 'dxrd-toolbar-item-' + $context.$index(); }, 'css': function () { return { 'dxrd-toolbar-item-with-separator dxd-border-primary': $context.$data.hasSeparator }; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $data.displayText && $data.displayText() || text, \\'aria-hidden\\': ko.unwrap($data.visible) ? \\'false\\' : \\'true\\', \\'aria-disabled\\': ko.unwrap($data.disabled) ? \\'true\\' : \\'false\\', \\'aria-checked\\': $data.selected ? ($data.selected() ? \\'true\\' : \\'false\\') : null }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$data.displayText && $context.$data.displayText() || $context.$data.text, 'aria-hidden': $context.ko.unwrap($context.$data.visible) ? 'false' : 'true', 'aria-disabled': $context.ko.unwrap($context.$data.disabled) ? 'true' : 'false', 'aria-checked': $context.$data.selected ? ($context.$data.selected() ? 'true' : 'false') : null }; } }; });\naddToBindingsCache('template: { name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}, attr: { class: \\'dxrd-toolbar-item-image dxd-state-normal dxd-icon-highlighted \\' + (ko.unwrap($data.imageClassName) || \\'\\'), title: $data.displayText && $data.displayText() || text }, }, dxclick: function() { if((typeof $data.disabled === \\'function\\') && !disabled() || !disabled) { clickAction($root.model && $root.model()); } }, css: {\\'dxrd-disabled-button\\': disabled, \\'dxd-button-back-color dxd-back-highlighted dxd-state-active\\': $data.selected }', function ($context, $element) { return { 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'class': 'dxrd-toolbar-item-image dxd-state-normal dxd-icon-highlighted ' + ($context.ko.unwrap($context.$data.imageClassName) || ''), 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; }, '}': function () { return undefined; }, 'dxclick': function () { return function () { if ((typeof $context.$data.disabled === 'function') && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$data.clickAction($context.$root.model && $context.$root.model());\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled, 'dxd-button-back-color dxd-back-highlighted dxd-state-active': $context.$data.selected }; } }; });\naddToBindingsCache('foreach: $data', function ($context, $element) { return { 'foreach': function () { return $context.$data; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data.contentData || $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data.contentData || $context.$data }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', scrollByContent: false, bounceEnabled: false, useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'scrollByContent': false, 'bounceEnabled': false, 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('attr: { title: displayName }', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, css: $data.imageClassName, draggable: $root.toolboxDragHandler', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'css': function () { return $context.$data.imageClassName; }, 'draggable': function () { return $context.$root.toolboxDragHandler; } }; });\naddToBindingsCache('foreach: toolboxItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.toolboxItems; } }; });\naddToBindingsCache('foreach: groupedToolboxItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.groupedToolboxItems; } }; });\naddToBindingsCache('foreach: items', function ($context, $element) { return { 'foreach': function () { return $context.$data.items; } }; });\naddToBindingsCache('dxSelectBox: { items: zoomLevels, value: $data.zoom, displayExpr: function(val) { return Math.round((val || this.option(\\'value\\')) * 100) + \\'%\\'; }, displayCustomValue: true, acceptCustomValue: true, onCustomItemCreating: onCustomItemCreating, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) }, useItemTextAsTitle: true }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'items': $context.$data.zoomLevels, 'value': $context.$data.zoom, 'displayExpr': function (val) { return Math.round((val || this.option('value')) * 100) + '%'; }, 'displayCustomValue': true, 'acceptCustomValue': true, 'onCustomItemCreating': $context.$data.onCustomItemCreating, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'useItemTextAsTitle': true }; } }; });\naddToBindingsCache('dxclick: function(_, element) { showPopup(_, element) }, css: editorMenuButtonCss, attr: { title: hint }', function ($context, $element) { return { 'dxclick': function () { return function (_, element) { $context.$data.showPopup(_, element); }; }, 'css': function () { return $context.$data.editorMenuButtonCss; }, 'attr': function () { return { 'title': $context.$data.hint }; } }; });\naddToBindingsCache('dxclick: function(_, element) { showPopup(_, element) }, attr: { title: hint }, css: editorMenuButtonCss', function ($context, $element) { return { 'dxclick': function () { return function (_, element) { $context.$data.showPopup(_, element); }; }, 'attr': function () { return { 'title': $context.$data.hint }; }, 'css': function () { return $context.$data.editorMenuButtonCss; } }; });\naddToBindingsCache('template: { name: $data.imageTemplateName, if: ko.unwrap($data.imageTemplateName) }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': $context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('if: $data.visible', function ($context, $element) { return { 'if': function () { return $context.$data.visible; } }; });\naddToBindingsCache('template: $data.templateName', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('ifnot: $data.templateName', function ($context, $element) { return { 'ifnot': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('if: !ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'if': function () { return !$context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('if: ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'if': function () { return $context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('dxdAccordion: { collapsed: collapsed, alwaysShow: alwaysShow }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed, 'alwaysShow': $context.$data.alwaysShow }; } }; });\naddToBindingsCache(', attr: {\\'aria-expanded\\': !collapsed() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { '': function () { return undefined; }, 'attr': function () { return { 'aria-expanded': !$context.$data.collapsed() ? 'true' : 'false' }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: up, disabled: isDisabledButton(\\'up\\'), icon: \\'dxrd-svg-operations-moveup\\', iconClass: \\'dx-image-moveup\\' }, attr: { title: getDisplayTextButton(\\'up\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.up, 'disabled': $context.$data.isDisabledButton('up'), 'icon': 'dxrd-svg-operations-moveup', 'iconClass': 'dx-image-moveup' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('up') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: down, disabled: isDisabledButton(\\'down\\'), icon: \\'dxrd-svg-operations-movedown\\', iconClass: \\'dx-image-movedown\\' }, attr: { title: getDisplayTextButton(\\'down\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.down, 'disabled': $context.$data.isDisabledButton('down'), 'icon': 'dxrd-svg-operations-movedown', 'iconClass': 'dx-image-movedown' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('down') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: add, disabled: isDisabledButton(\\'add\\'), icon: \\'dxrd-svg-operations-add\\', iconClass: \\'dx-image-add\\' }, attr: { title: getDisplayTextButton(\\'add\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.add, 'disabled': $context.$data.isDisabledButton('add'), 'icon': 'dxrd-svg-operations-add', 'iconClass': 'dx-image-add' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('add') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: remove, disabled: isDisabledButton(\\'delete\\'), icon: \\'dxrd-svg-operations-remove\\', iconClass: \\'dx-image-remove\\' }, attr: { title: getDisplayTextButton(\\'delete\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.remove, 'disabled': $context.$data.isDisabledButton('delete'), 'icon': 'dxrd-svg-operations-remove', 'iconClass': 'dx-image-remove' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('delete') }; } }; });\naddToBindingsCache('styleunit: { \\'paddingLeft\\': padding }', function ($context, $element) { return { 'styleunit': function () { return { 'paddingLeft': $context.$data.padding }; } }; });\naddToBindingsCache('text: displayName, attr: { title: displayName }', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('attr:{\\'aria-hidden\\': collapsed() ? \\'true\\' : \\'false\\'}', function ($context, $element) { return { 'attr': function () { return { 'aria-hidden': $context.$data.collapsed() ? 'true' : 'false' }; } }; });\naddToBindingsCache('visible: !disabled(), dxScrollView: { showScrollbar: \\'onHover\\', disabled: !showScroll, useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'visible': function () { return !$context.$data.disabled(); }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'disabled': !$context.$data.showScroll, 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('text: getDisplayTextEmptyArray()', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayTextEmptyArray(); } }; });\naddToBindingsCache('foreach: values', function ($context, $element) { return { 'foreach': function () { return $context.$data.values; } }; });\naddToBindingsCache('with: $parent.createCollectionItemWrapper($parents[1], $index, $element)', function ($context, $element) { return { 'with': function () { return $context.$parent.createCollectionItemWrapper($context.$parents[1], $context.$index, $element); } }; });\naddToBindingsCache('attr: { \\'aria-selected\\': $parents[1].selectedIndex() === $index() }, dxAction: { model: $data, action: $parents[1].select }, css: { \\'dxd-state-selected\\' : $parents[1].selectedIndex() === $index() }', function ($context, $element) { return { 'attr': function () { return { 'aria-selected': $context.$parents[1].selectedIndex() === $context.$index() }; }, 'dxAction': function () { return { 'model': $context.$data, 'action': $context.$parents[1].select }; }, 'css': function () { return { 'dxd-state-selected': $context.$parents[1].selectedIndex() === $context.$index() }; } }; });\naddToBindingsCache('if: showButtons', function ($context, $element) { return { 'if': function () { return $context.$data.showButtons; } }; });\naddToBindingsCache('if: isVisibleButton(\\'up\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('up'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'down\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('down'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'add\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('add'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'delete\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('delete'); } }; });\naddToBindingsCache('if: displayName', function ($context, $element) { return { 'if': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('if: values().length === 0 && showButtons', function ($context, $element) { return { 'if': function () { return $context.$data.values().length === 0 && $context.$data.showButtons; } }; });\naddToBindingsCache('if: values().length !== 0', function ($context, $element) { return { 'if': function () { return $context.$data.values().length !== 0; } }; });\naddToBindingsCache('dxCheckBox: getOptions({ value: value, disabled: disabled, elementAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxCheckBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'elementAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: [ { val: true, text: $root.getLocalization(\\'Yes\\', \\'AnalyticsCoreStringId.ParametersPanel_True\\') }, { val: false, text: $root.getLocalization(\\'No\\', \\'AnalyticsCoreStringId.ParametersPanel_False\\') }], inputAttr: { \\'aria-label\\': displayName }, valueExpr: \\'val\\', displayExpr: \\'text\\', value: value, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) } }, dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': [{ 'val': true, 'text': $context.$root.getLocalization('Yes', 'AnalyticsCoreStringId.ParametersPanel_True') }, { 'val': false, 'text': $context.$root.getLocalization('No', 'AnalyticsCoreStringId.ParametersPanel_False') }], 'inputAttr': { 'aria-label': $context.$data.displayName }, 'valueExpr': 'val', 'displayExpr': 'text', 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) } }; }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxCollectionEditor: { values: value, displayName: displayName, level: level, info: info }', function ($context, $element) { return { 'dxCollectionEditor': function () { return { 'values': $context.$data.value, 'displayName': $context.$data.displayName, 'level': $context.$data.level, 'info': $context.$data.info }; } }; });\naddToBindingsCache('text: $data.display, attr: { title: $data.display }', function ($context, $element) { return { 'text': function () { return $context.$data.display; }, 'attr': function () { return { 'title': $context.$data.display }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName }}, dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: $data.validationRules || [] })', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName } }; }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('dxLocalizedSelectBox: { items: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', disabled: disabled, acceptCustomValue: true, onCustomItemCreating: function(arg) { return { value: arg.text, displayValue: arg.text }; }, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName }, useLocalizedTextAsValue: true }', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'items': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'disabled': $context.$data.disabled, 'acceptCustomValue': true, 'onCustomItemCreating': function (arg) { return { 'value': arg.text, 'displayValue': arg.text }; }, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName }, 'useLocalizedTextAsValue': true }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: values, value: generateValue($root.undoEngine), valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) } }, dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: validationRules || [] })', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': $context.$data.values, 'value': $context.$data.generateValue($context.$root.undoEngine), 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) } }; }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('attr: { role: isComplexEditor && \\'tab\\', \\'id\\': isComplexEditor && getIdByDisplayName(\\'dxrd-accordion-trigger\\'), \\'aria-controls\\': isComplexEditor && getIdByDisplayName(\\'dxrd-accordion-pannel\\'), \\'aria-expanded\\': isComplexEditor && (!collapsed() ? \\'true\\' : \\'false\\') }, css: {\\'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented\\': isComplexEditor}', function ($context, $element) { return { 'attr': function () { return { 'role': $context.$data.isComplexEditor && 'tab', 'id': $context.$data.isComplexEditor && $context.$data.getIdByDisplayName('dxrd-accordion-trigger'), 'aria-controls': $context.$data.isComplexEditor && $context.$data.getIdByDisplayName('dxrd-accordion-pannel'), 'aria-expanded': $context.$data.isComplexEditor && (!$context.$data.collapsed() ? 'true' : 'false') }; }, 'css': function () { return { 'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented': $context.$data.isComplexEditor }; } }; });\naddToBindingsCache('styleunit: padding, css: { \\'dx-accordion-empty\\': templateName === \\'dx-emptyHeader\\' }', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-accordion-empty': $context.$data.templateName === 'dx-emptyHeader' }; } }; });\naddToBindingsCache('enable: templateName === \\'dx-emptyHeader\\'', function ($context, $element) { return { 'enable': function () { return $context.$data.templateName === 'dx-emptyHeader'; } }; });\naddToBindingsCache('searchHighlighting: { text: displayName, textToSearch: textToSearch }, attr: { \\'title\\': displayName }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayName, 'textToSearch': $context.$data.textToSearch }; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('text: displayName, attr: { \\'title\\': displayName }', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('searchHighlighting: { text: displayName, textToSearch: textToSearch }, attr: { \\'title\\': displayName }, css: { \\'dx-field-label-required\\': isRequired }, style: { fontWeight: isPropertyModified() ? \\'Bold\\' : \\'\\'}', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayName, 'textToSearch': $context.$data.textToSearch }; }, 'attr': function () { return { 'title': $context.$data.displayName }; }, 'css': function () { return { 'dx-field-label-required': $context.$data.isRequired }; }, 'style': function () { return { 'fontWeight': $context.$data.isPropertyModified() ? 'Bold' : '' }; } }; });\naddToBindingsCache('text: displayName, attr: { \\'title\\': displayName }, css: { \\'dx-property-required\\': isRequired }, style: { fontWeight: isPropertyModified() ? \\'Bold\\' : \\'\\'}', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName }; }, 'css': function () { return { 'dx-property-required': $context.$data.isRequired }; }, 'style': function () { return { 'fontWeight': $context.$data.isPropertyModified() ? 'Bold' : '' }; } }; });\naddToBindingsCache('css: { \\'dxd-border-accented\\': $data.isPropertyHighlighted }', function ($context, $element) { return { 'css': function () { return { 'dxd-border-accented': $context.$data.isPropertyHighlighted }; } }; });\naddToBindingsCache('service: { name: \\'createEditorAddOn\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createEditorAddOn' }; } }; });\naddToBindingsCache('attr:{\\'aria-labelledby\\': getIdByDisplayName(\\'dxrd-accordion-trigger\\'), \\'id\\': getIdByDisplayName(\\'dxrd-accordion-pannel\\'), \\'aria-hidden\\': collapsed() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'aria-labelledby': $context.$data.getIdByDisplayName('dxrd-accordion-trigger'), 'id': $context.$data.getIdByDisplayName('dxrd-accordion-pannel'), 'aria-hidden': $context.$data.collapsed() ? 'true' : 'false' }; } }; });\naddToBindingsCache('if: isComplexEditor', function ($context, $element) { return { 'if': function () { return $context.$data.isComplexEditor; } }; });\naddToBindingsCache('if: !!$data.textToSearch', function ($context, $element) { return { 'if': function () { return !!$context.$data.textToSearch; } }; });\naddToBindingsCache('ifnot: !!$data.textToSearch', function ($context, $element) { return { 'ifnot': function () { return !!$context.$data.textToSearch; } }; });\naddToBindingsCache('if: !isComplexEditor', function ($context, $element) { return { 'if': function () { return !$context.$data.isComplexEditor; } }; });\naddToBindingsCache('if: templateName !== \\'dx-emptyHeader\\'', function ($context, $element) { return { 'if': function () { return $context.$data.templateName !== 'dx-emptyHeader'; } }; });\naddToBindingsCache('lazy: { innerBindings: { template: templateName }, isResolved: $data.isRendered }', function ($context, $element) { return { 'lazy': function () { return { 'innerBindings': { 'template': $context.$data.templateName }, 'isResolved': $context.$data.isRendered }; } }; });\naddToBindingsCache('if: (!$data.editorCreated || editorCreated)', function ($context, $element) { return { 'if': function () { return (!$context.$data.editorCreated || $context.$data.editorCreated); } }; });\naddToBindingsCache('template: contentTemplateName', function ($context, $element) { return { 'template': function () { return $context.$data.contentTemplateName; } }; });\naddToBindingsCache('dxDateBox: getOptions({ value: value, closeOnValueChange: true, type: \\'datetime\\', disabled: disabled, inputAttr: { \\'aria-label\\': displayName }, dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flip\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxDateBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'closeOnValueChange': true, 'type': 'datetime', 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName }, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flip', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxFileImagePicker: { value: value, placeholderId: \\'File\\', disabled: disabled }', function ($context, $element) { return { 'dxFileImagePicker': function () { return { 'value': $context.$data.value, 'placeholderId': 'File', 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': bold(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { bold(!bold()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.bold(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.bold(!$context.$data.bold());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': italic(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { italic(!italic()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.italic(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.italic(!$context.$data.italic());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': underline(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { underline(!underline()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.underline(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.underline(!$context.$data.underline());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': strikeout(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { strikeout(!strikeout()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.strikeout(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.strikeout(!$context.$data.strikeout());\n } }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-bold\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-bold'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-italic\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-italic'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-underline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-underline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-strikeout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-strikeout'; } }; });\naddToBindingsCache('dxFileImagePicker: { value: value, placeholderId: \\'Image\\', accept: \\'image/*\\', type: \\'img\\', disabled: disabled }', function ($context, $element) { return { 'dxFileImagePicker': function () { return { 'value': $context.$data.value, 'placeholderId': 'Image', 'accept': 'image/*', 'type': 'img', 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('dxNumberBox: getOptions({ value:value, showSpinButtons:true, disabled:disabled, inputAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxNumberBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'showSpinButtons': true, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName }}), dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: validationRules || [] })', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName }})', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName } }); } }; });\naddToBindingsCache('value: value, disable: disabled', function ($context, $element) { return { 'value': function () { return $context.$data.value; }, 'disable': function () { return $context.$data.disabled; }, '_ko_property_writers': function () { return { 'value': function (_z) { $context.$data.value = _z; } }; } }; });\naddToBindingsCache('if: $data.validationRules', function ($context, $element) { return { 'if': function () { return $context.$data.validationRules; } }; });\naddToBindingsCache('if: !$data.validationRules', function ($context, $element) { return { 'if': function () { return !$context.$data.validationRules; } }; });\naddToBindingsCache('css: { \\'dx-rtl\\' : rtl }', function ($context, $element) { return { 'css': function () { return { 'dx-rtl': $context.$data.rtl }; } }; });\naddToBindingsCache('foreach: getEditors()', function ($context, $element) { return { 'foreach': function () { return $context.$data.getEditors(); } }; });\naddToBindingsCache('dxPopup: { showTitle: true, width: \\'750px\\', height: \\'475px\\', title: title(), rtlEnabled: rtl, visible: popupVisible, wrapperAttr: { class: className }, toolbarItems: buttonItems, showCloseButton: true, container: $root.getPopupContainer($element), position: { of: $root.getPopupContainer($element) }, }', function ($context, $element) { return { 'dxPopup': function () { return { 'showTitle': true, 'width': '750px', 'height': '475px', 'title': $context.$data.title(), 'rtlEnabled': $context.$data.rtl, 'visible': $context.$data.popupVisible, 'wrapperAttr': { 'class': $context.$data.className }, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$root.getPopupContainer($element), 'position': { 'of': $context.$root.getPopupContainer($element) } }; } }; });\naddToBindingsCache('dxDataGrid: queriesGrid', function ($context, $element) { return { 'dxDataGrid': function () { return $context.$data.queriesGrid; } }; });\naddToBindingsCache('dxDropDownButton: $data', function ($context, $element) { return { 'dxDropDownButton': function () { return $context.$data; } }; });\naddToBindingsCache('if: $data', function ($context, $element) { return { 'if': function () { return $context.$data; } }; });\naddToBindingsCache('template: { name: $data._queriesPopupHelper.template, data: _queriesPopupHelper }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data._queriesPopupHelper.template, 'data': $context.$data._queriesPopupHelper }; } }; });\naddToBindingsCache('foreach: $data.popupItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.popupItems; } }; });\naddToBindingsCache('template: { name: template, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.template, 'data': $context.$data.model }; } }; });\naddToBindingsCache('with: options', function ($context, $element) { return { 'with': function () { return $context.$data.options; } }; });\naddToBindingsCache('dxTextArea: { value: textAreaValue, isValid: isValid, spellcheck: false, onKeyUp: function() { isValid(true); } }, resizable: resizeHelper.resizable($root.resizeHandler, \\'s\\', $element)', function ($context, $element) { return { 'dxTextArea': function () { return { 'value': $context.$data.textAreaValue, 'isValid': $context.$data.isValid, 'spellcheck': false, 'onKeyUp': function () { $context.$data.isValid(true); } }; }, 'resizable': function () { return $context.$data.resizeHelper.resizable($context.$root.resizeHandler, 's', $element); } }; });\naddToBindingsCache('dxAceEditor: { value: textAreaValue, editorContainer: editorContainer, theme: theme, options: aceOptions, additionalOptions: additionalOptions, callbacks: callbacks }, resizable: resizeHelper.resizable($root.resizeHandler, \\'s\\', $element)', function ($context, $element) { return { 'dxAceEditor': function () { return { 'value': $context.$data.textAreaValue, 'editorContainer': $context.$data.editorContainer, 'theme': $context.$data.theme, 'options': $context.$data.aceOptions, 'additionalOptions': $context.$data.additionalOptions, 'callbacks': $context.$data.callbacks }; }, 'resizable': function () { return $context.$data.resizeHelper.resizable($context.$root.resizeHandler, 's', $element); } }; });\naddToBindingsCache('visible: visible, attr: { class: \\'dx-expressioneditor-tools-tab dxd-back-primary2 \\'+ ($data.templateName ? $data.templateName : \\'\\')}', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'attr': function () { return { 'class': 'dx-expressioneditor-tools-tab dxd-back-primary2 ' + ($context.$data.templateName ? $context.$data.templateName : '') }; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: displayValue, buttonAction: function() { popupVisible(true); }, disabled: disabled, isValid: modelValueValid, warningMessage: modelValueWarning }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.displayValue, 'buttonAction': function () { $context.$data.popupVisible(true); }, 'disabled': $context.$data.disabled, 'isValid': $context.$data.modelValueValid, 'warningMessage': $context.$data.modelValueWarning }; } }; });\naddToBindingsCache('dxPopup: { animation: { show: { type: \\'fadeIn\\', duration: 700 }, hide: { type: \\'fadeOut\\', duration: 700 } }, showTitle: true, wrapperAttr: { class: \\'dx-expressioneditor dx-popup-general\\' }, title: title(), visible: popupVisible, toolbarItems: buttonItems, showCloseButton: true, fullScreen: false, height: \\'615px\\', maxHeight: \\'90%\\', maxWidth: \\'90%\\', minHeight: 400, minWidth: 500, width: \\'645px\\', container: getPopupContainer($element), position: { of: getPopupContainer($element)}, onContentReady: onContentReady, onShowing: onShowing, onHiding: onHiding, onShown: onShown, resizeEnabled: true, onResize: function() { $data.resizeAceEditor() } }', function ($context, $element) { return { 'dxPopup': function () { return { 'animation': { 'show': { 'type': 'fadeIn', 'duration': 700 }, 'hide': { 'type': 'fadeOut', 'duration': 700 } }, 'showTitle': true, 'wrapperAttr': { 'class': 'dx-expressioneditor dx-popup-general' }, 'title': $context.$data.title(), 'visible': $context.$data.popupVisible, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'fullScreen': false, 'height': '615px', 'maxHeight': '90%', 'maxWidth': '90%', 'minHeight': 400, 'minWidth': 500, 'width': '645px', 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) }, 'onContentReady': $context.$data.onContentReady, 'onShowing': $context.$data.onShowing, 'onHiding': $context.$data.onHiding, 'onShown': $context.$data.onShown, 'resizeEnabled': true, 'onResize': function () { $context.$data.resizeAceEditor(); } }; } }; });\naddToBindingsCache('if: !aceAvailable', function ($context, $element) { return { 'if': function () { return !$context.$data.aceAvailable; } }; });\naddToBindingsCache('if: aceAvailable', function ($context, $element) { return { 'if': function () { return $context.$data.aceAvailable; } }; });\naddToBindingsCache('with: tools', function ($context, $element) { return { 'with': function () { return $context.$data.tools; } }; });\naddToBindingsCache('foreach: toolBox', function ($context, $element) { return { 'foreach': function () { return $context.$data.toolBox; } }; });\naddToBindingsCache('template: { name: $data.templateName }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName }; } }; });\naddToBindingsCache('template: \\'dx-expressioneditor-popup\\'', function ($context, $element) { return { 'template': function () { return 'dx-expressioneditor-popup'; } }; });\naddToBindingsCache('if: popupVisible', function ($context, $element) { return { 'if': function () { return $context.$data.popupVisible; } }; });\naddToBindingsCache('template: \"dx-expressioneditor-main\"', function ($context, $element) { return { 'template': function () { return 'dx-expressioneditor-main'; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }, resizable: $parents[1].resizeHelper.resizable($root.resizeHandler, \\'e\\')', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; }, 'resizable': function () { return $context.$parents[1].resizeHelper.resizable($context.$root.resizeHandler, 'e'); } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': content.isSelected }, text: displayName, dxclick: function() { $parent.click($data.content) }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.content.isSelected }; }, 'text': function () { return $context.$data.displayName; }, 'dxclick': function () { return function () { $context.$parent.click($context.$data.content); }; } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': $data.isSelected }, dxclick: function() { $data.updateContent($data.allItems(), $data.isSelected); $parent.click($data.content) }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.isSelected }; }, 'dxclick': function () { return function () { $context.$data.updateContent($context.$data.allItems(), $context.$data.isSelected); $context.$parent.click($context.$data.content); }; } }; });\naddToBindingsCache('text: displayName', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': isSelected }, text: $data.display, dxclick: function() { $parent.updateContent($data.data, $data.isSelected); $parents[1].click($parent.content); }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.isSelected }; }, 'text': function () { return $context.$data.display; }, 'dxclick': function () { return function () { $context.$parent.updateContent($context.$data.data, $context.$data.isSelected); $context.$parents[1].click($context.$parent.content); }; } }; });\naddToBindingsCache('foreach: content', function ($context, $element) { return { 'foreach': function () { return $context.$data.content; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; } }; });\naddToBindingsCache('text: content', function ($context, $element) { return { 'text': function () { return $context.$data.content; } }; });\naddToBindingsCache('treeListSearchPanel: { controllers: [ ko.unwrap($data.parameters) ? ko.unwrap($data.parameters).treeListController : ko.unwrap($data.parameters), ko.unwrap($data.fields) ? ko.unwrap($data.fields).treeListController : ko.unwrap($data.fields) ] }', function ($context, $element) { return { 'treeListSearchPanel': function () { return { 'controllers': [$context.ko.unwrap($context.$data.parameters) ? $context.ko.unwrap($context.$data.parameters).treeListController : $context.ko.unwrap($context.$data.parameters), $context.ko.unwrap($context.$data.fields) ? $context.ko.unwrap($context.$data.fields).treeListController : $context.ko.unwrap($context.$data.fields)] }; } }; });\naddToBindingsCache('treelist: fields', function ($context, $element) { return { 'treelist': function () { return $context.$data.fields; } }; });\naddToBindingsCache('treelist: parameters', function ($context, $element) { return { 'treelist': function () { return $context.$data.parameters; } }; });\naddToBindingsCache('visible: visible, event: { dblclick: function() { actions[0].clickAction($element); }}, styleunit: padding, css: { \\'dx-treelist-item-selected dxd-state-selected\\': isSelected }', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'event': function () { return { 'dblclick': function () { $context.$data.actions[0].clickAction($element); } }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-treelist-item-selected dxd-state-selected': $context.$data.isSelected }; } }; });\naddToBindingsCache('css: nodeImageClass, template: \\'dxrd-svg-collapsed\\', click: toggleCollapsed', function ($context, $element) { return { 'css': function () { return $context.$data.nodeImageClass; }, 'template': function () { return 'dxrd-svg-collapsed'; }, 'click': function () { return $context.$data.toggleCollapsed; } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: text }', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('click: toggleSelected', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; } }; });\naddToBindingsCache('if: fields', function ($context, $element) { return { 'if': function () { return $context.$data.fields; } }; });\naddToBindingsCache('if: $data.parameters', function ($context, $element) { return { 'if': function () { return $context.$data.parameters; } }; });\naddToBindingsCache('if: hasItems', function ($context, $element) { return { 'if': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('ifnot: hasItems', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('template: { name: \\'dx-treelist-item-text-content\\' }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist-item-text-content' }; } }; });\naddToBindingsCache('attr: { class: \\'dx-expressioneditor-tools-tab-item dxd-list-item-back-color dxd-text-primary dxd-back-highlighted \\' + ($data.class ? $data.class : \\'\\') }, text: $data.displayName || $data.text, css: { \\'dx-expressioneditor-state-selected dxd-state-selected\\': $parent.selectedItem() === $data }, dxclick: function() { $parent.selectedItem($data); $parents[2].click($data); }, event: { dblclick: function() { $parents[2].dblclick($data, $element); } }', function ($context, $element) { return { 'attr': function () { return { 'class': 'dx-expressioneditor-tools-tab-item dxd-list-item-back-color dxd-text-primary dxd-back-highlighted ' + ($context.$data.class ? $context.$data.class : '') }; }, 'text': function () { return $context.$data.displayName || $context.$data.text; }, 'css': function () { return { 'dx-expressioneditor-state-selected dxd-state-selected': $context.$parent.selectedItem() === $context.$data }; }, 'dxclick': function () { return function () { $context.$parent.selectedItem($context.$data); $context.$parents[2].click($context.$data); }; }, 'event': function () { return { 'dblclick': function () { $context.$parents[2].dblclick($context.$data, $element); } }; } }; });\naddToBindingsCache('dxTextBox: { value: textToSearch, showClearButton: true, valueChangeEvent: \\'keyup\\', placeholder: $parents[2].searchPlaceholder() }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.textToSearch, 'showClearButton': true, 'valueChangeEvent': 'keyup', 'placeholder': $context.$parents[2].searchPlaceholder() }; } }; });\naddToBindingsCache('css: { \\'dx-expressioneditor-state-selected dxd-state-selected\\': $parent.selectedItem() === $data }, dxclick: function() { $parent.selectedItem($data); $parents[2].click($data); }, event: { dblclick: function() { $parents[2].dblclick($data, $element); } }, searchHighlighting: { text: $data.displayName || $data.text, textToSearch: $parent.textToSearch }', function ($context, $element) { return { 'css': function () { return { 'dx-expressioneditor-state-selected dxd-state-selected': $context.$parent.selectedItem() === $context.$data }; }, 'dxclick': function () { return function () { $context.$parent.selectedItem($context.$data); $context.$parents[2].click($context.$data); }; }, 'event': function () { return { 'dblclick': function () { $context.$parents[2].dblclick($context.$data, $element); } }; }, 'searchHighlighting': function () { return { 'text': $context.$data.displayName || $context.$data.text, 'textToSearch': $context.$parent.textToSearch }; } }; });\naddToBindingsCache('with: content', function ($context, $element) { return { 'with': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: $data', function ($context, $element) { return { 'template': function () { return $context.$data; } }; });\naddToBindingsCache('foreach: availableItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.availableItems; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }, visible: textVisible', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; }, 'visible': function () { return $context.$data.textVisible; } }; });\naddToBindingsCache('dxCheckBox: { value: advancedMode, text: advancedModeText }', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.advancedMode, 'text': $context.$data.advancedModeText }; } }; });\naddToBindingsCache('style: { height: plainContentHeightPerc }', function ($context, $element) { return { 'style': function () { return { 'height': $context.$data.plainContentHeightPerc }; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }, style: { height: textContentHeightPerc }', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; }, 'style': function () { return { 'height': $context.$data.textContentHeightPerc }; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }, style: { height: treeContentHeightPerc }', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; }, 'style': function () { return { 'height': $context.$data.treeContentHeightPerc }; } }; });\naddToBindingsCache('dxTextArea: { value: displayValue, isValid: isValid, onInput: onInput, spellcheck: false }, cacheElement: { action: function(element) { cacheElement(element) } }', function ($context, $element) { return { 'dxTextArea': function () { return { 'value': $context.$data.displayValue, 'isValid': $context.$data.isValid, 'onInput': $context.$data.onInput, 'spellcheck': false }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.cacheElement(element); } }; } }; });\naddToBindingsCache('css: {\\'dx-invalid\\': !$data.isValid(), \\'dx-state-focused\\': textFocused }', function ($context, $element) { return { 'css': function () { return { 'dx-invalid': !$context.$data.isValid(), 'dx-state-focused': $context.$data.textFocused }; } }; });\naddToBindingsCache('dxAceEditor: { value: $data.displayValue, theme: helper.aceTheme, editorContainer: editorContainer, options: aceOptions, additionalOptions: additionalOptions }', function ($context, $element) { return { 'dxAceEditor': function () { return { 'value': $context.$data.displayValue, 'theme': $context.$data.helper.aceTheme, 'editorContainer': $context.$data.editorContainer, 'options': $context.$data.aceOptions, 'additionalOptions': $context.$data.additionalOptions }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', direction: \\'both\\' }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'direction': 'both' }; } }; });\naddToBindingsCache('dxclick: function() { $data.advancedMode(true); }', function ($context, $element) { return { 'dxclick': function () { return function () { $context.$data.advancedMode(true); }; } }; });\naddToBindingsCache('text: invalidMessage()', function ($context, $element) { return { 'text': function () { return $context.$data.invalidMessage(); } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-tree\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-tree'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-text\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-text'; } }; });\naddToBindingsCache('with: operandSurface', function ($context, $element) { return { 'with': function () { return $context.$data.operandSurface; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data, if: $parent.isSurfaceValid }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data, 'if': $context.$parent.isSurfaceValid }; } }; });\naddToBindingsCache('ifnot: isSurfaceValid', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isSurfaceValid; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: modelDisplayValue, isValid: modelValueIsValid, disabled: disabled, buttonAction: function() { popupVisible(true); } }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.modelDisplayValue, 'isValid': $context.$data.modelValueIsValid, 'disabled': $context.$data.disabled, 'buttonAction': function () { $context.$data.popupVisible(true); } }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.options().disabled() ? \\'none\\' : \\'\\' }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.options().disabled() ? 'none' : '' }; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-popup\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-popup'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-popups\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-popups'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-plain\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-plain'; } }; });\naddToBindingsCache('service: { name: \\'createChangeType\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeType' }; } }; });\naddToBindingsCache('dxclick: function() { $data.remove && $data.remove(); }', function ($context, $element) { return { 'dxclick': function () { return function () { $context.$data.remove && $context.$data.remove(); }; } }; });\naddToBindingsCache('visible: !!$data.canRemove', function ($context, $element) { return { 'visible': function () { return !!$context.$data.canRemove; } }; });\naddToBindingsCache('with: property', function ($context, $element) { return { 'with': function () { return $context.$data.property; } }; });\naddToBindingsCache('template: { name: templateName, data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data }; } }; });\naddToBindingsCache('if: $data.aggregatedExpression()', function ($context, $element) { return { 'if': function () { return $context.$data.aggregatedExpression(); } }; });\naddToBindingsCache('with: aggregatedExpression', function ($context, $element) { return { 'with': function () { return $context.$data.aggregatedExpression; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-remove'; } }; });\naddToBindingsCache('template: { name: \\'dx-filtereditor-aggregate-common\\' }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-filtereditor-aggregate-common' }; } }; });\naddToBindingsCache('with: condition', function ($context, $element) { return { 'with': function () { return $context.$data.condition; } }; });\naddToBindingsCache('with: begin', function ($context, $element) { return { 'with': function () { return $context.$data.begin; } }; });\naddToBindingsCache('with: end', function ($context, $element) { return { 'with': function () { return $context.$data.end; } }; });\naddToBindingsCache('with: leftOperand', function ($context, $element) { return { 'with': function () { return $context.$data.leftOperand; } }; });\naddToBindingsCache('with: rightOperand', function ($context, $element) { return { 'with': function () { return $context.$data.rightOperand; } }; });\naddToBindingsCache('if: $data.leftPart && $data.leftPart.condition', function ($context, $element) { return { 'if': function () { return $context.$data.leftPart && $context.$data.leftPart.condition; } }; });\naddToBindingsCache('with: leftPart', function ($context, $element) { return { 'with': function () { return $context.$data.leftPart; } }; });\naddToBindingsCache('css: css', function ($context, $element) { return { 'css': function () { return $context.$data.css; } }; });\naddToBindingsCache('text: displayType', function ($context, $element) { return { 'text': function () { return $context.$data.displayType; } }; });\naddToBindingsCache('service: { name: \\'createChangeValueType\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeValueType' }; } }; });\naddToBindingsCache('template: { name: $data.leftPart.templateName, data: $data.leftPart }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.leftPart.templateName, 'data': $context.$data.leftPart }; } }; });\naddToBindingsCache('foreach: rightPart', function ($context, $element) { return { 'foreach': function () { return $context.$data.rightPart; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data }; } }; });\naddToBindingsCache('service: { name: \\'createAddButton\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createAddButton' }; } }; });\naddToBindingsCache('foreach: operands', function ($context, $element) { return { 'foreach': function () { return $context.$data.operands; } }; });\naddToBindingsCache('dxclick: addValue', function ($context, $element) { return { 'dxclick': function () { return $context.$data.addValue; } }; });\naddToBindingsCache('with: criteriaOperator', function ($context, $element) { return { 'with': function () { return $context.$data.criteriaOperator; } }; });\naddToBindingsCache('if: $data.operands().length > 1', function ($context, $element) { return { 'if': function () { return $context.$data.operands().length > 1; } }; });\naddToBindingsCache('foreach: $data.operands()', function ($context, $element) { return { 'foreach': function () { return $context.$data.operands(); } }; });\naddToBindingsCache('if: $data.operands().length == 1', function ($context, $element) { return { 'if': function () { return $context.$data.operands().length == 1; } }; });\naddToBindingsCache('template: { name: $data.operands()[0].templateName, data: $data.operands()[0] }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.operands()[0].templateName, 'data': $context.$data.operands()[0] }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-add'; } }; });\naddToBindingsCache('service: { name: \\'createChangeParameter\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeParameter' }; } }; });\naddToBindingsCache('if: $data.canChange', function ($context, $element) { return { 'if': function () { return $context.$data.canChange; } }; });\naddToBindingsCache('service: { name: \\'createChangeProperty\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeProperty' }; } }; });\naddToBindingsCache('if: $data.operand().reverse', function ($context, $element) { return { 'if': function () { return $context.$data.operand().reverse; } }; });\naddToBindingsCache('template: {name: $data.operand().templateName, data: $data.operand() }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.operand().templateName, 'data': $context.$data.operand() }; } }; });\naddToBindingsCache('ifnot: $data.operand().reverse', function ($context, $element) { return { 'ifnot': function () { return $context.$data.operand().reverse; } }; });\naddToBindingsCache('with: operand', function ($context, $element) { return { 'with': function () { return $context.$data.operand; } }; });\naddToBindingsCache('visible: isEditable', function ($context, $element) { return { 'visible': function () { return $context.$data.isEditable; } }; });\naddToBindingsCache('dxTextBox: getStringEditorOptions($element), focus: { on: isEditable }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getStringEditorOptions($element); }, 'focus': function () { return { 'on': $context.$data.isEditable }; } }; });\naddToBindingsCache('focus: isEditable, dxLocalizedSelectBox: getBoolEditorOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxLocalizedSelectBox': function () { return $context.$data.getBoolEditorOptions($element, $context.$root); } }; });\naddToBindingsCache('focus: isEditable, dxDateBox: getDateEditorOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxDateBox': function () { return $context.$data.getDateEditorOptions($element, $context.$root); } }; });\naddToBindingsCache('dxTextBox: getNumberEditorOptions($element), focus: { on: isEditable }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getNumberEditorOptions($element); }, 'focus': function () { return { 'on': $context.$data.isEditable }; } }; });\naddToBindingsCache('focus: isEditable, dxSelectBox: getListEditOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxSelectBox': function () { return $context.$data.getListEditOptions($element, $context.$root); } }; });\naddToBindingsCache('visible: !isEditable()', function ($context, $element) { return { 'visible': function () { return !$context.$data.isEditable(); } }; });\naddToBindingsCache('text: value, click: function() { isEditable(true); }, css: { \\'default\\': $data.isDefaultDisplay() }', function ($context, $element) { return { 'text': function () { return $context.$data.value; }, 'click': function () { return function () { $context.$data.isEditable(true); }; }, 'css': function () { return { 'default': $context.$data.isDefaultDisplay() }; } }; });\naddToBindingsCache('if: $data.items.length === 0', function ($context, $element) { return { 'if': function () { return $context.$data.items.length === 0; } }; });\naddToBindingsCache('if: $data.specifics() === \"string\" || $data.specifics() === \"guid\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'string' || $context.$data.specifics() === 'guid'; } }; });\naddToBindingsCache('if: $data.specifics() === \"bool\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'bool'; } }; });\naddToBindingsCache('if: $data.specifics() === \"date\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'date'; } }; });\naddToBindingsCache('if: $data.specifics() !== \"string\" && $data.specifics() !== \"bool\" && $data.specifics() !== \"date\" && $data.specifics() !== \"guid\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() !== 'string' && $context.$data.specifics() !== 'bool' && $context.$data.specifics() !== 'date' && $context.$data.specifics() !== 'guid'; } }; });\naddToBindingsCache('if: $data.items.length > 0', function ($context, $element) { return { 'if': function () { return $context.$data.items.length > 0; } }; });\naddToBindingsCache('dxPopup: { animation: { show: { type: \\'fadeIn\\', duration: 700 }, hide: { type: \\'fadeOut\\', duration: 700 } }, showTitle: true, wrapperAttr: { class: \\'dx-filtereditor dx-popup-general\\' }, resizeEnabled: true, onResize: function() { $data.resizeAceEditor() }, width: 700, height: 500, maxHeight: \\'95%\\', maxWidth: \\'95%\\', minHeight: 300, minWidth: 400, title: options() && options().title(), visible: popupVisible, onShown: function() { $data.focusText() }, toolbarItems: buttonItems, showCloseButton: true, container: getPopupContainer($element), position: { of: getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'animation': { 'show': { 'type': 'fadeIn', 'duration': 700 }, 'hide': { 'type': 'fadeOut', 'duration': 700 } }, 'showTitle': true, 'wrapperAttr': { 'class': 'dx-filtereditor dx-popup-general' }, 'resizeEnabled': true, 'onResize': function () { $context.$data.resizeAceEditor(); }, 'width': 700, 'height': 500, 'maxHeight': '95%', 'maxWidth': '95%', 'minHeight': 300, 'minWidth': 400, 'title': $context.$data.options() && $context.$data.options().title(), 'visible': $context.$data.popupVisible, 'onShown': function () { $context.$data.focusText(); }, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) } }; } }; });\naddToBindingsCache('dxclick: showPopup', function ($context, $element) { return { 'dxclick': function () { return $context.$data.showPopup; } }; });\naddToBindingsCache('text: target.displayType, dxclick: showPopup, css: target.css', function ($context, $element) { return { 'text': function () { return $context.$data.target.displayType; }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return $context.$data.target.css; } }; });\naddToBindingsCache('text: target.parameterName(), dxclick: showPopup, css: { \\'dxd-state-selected\\': target.isSelected }', function ($context, $element) { return { 'text': function () { return $context.$data.target.parameterName(); }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return { 'dxd-state-selected': $context.$data.target.isSelected }; } }; });\naddToBindingsCache('text: target.displayName, dxclick: showPopup, css: { \\'dxd-state-selected\\': target.isSelected }', function ($context, $element) { return { 'text': function () { return $context.$data.target.displayName; }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return { 'dxd-state-selected': $context.$data.target.isSelected }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-edit'; } }; });\naddToBindingsCache('dxPopupWithAutoHeight: { minWidth:\\'170px\\', maxWidth:\\'500px\\', width: \\'auto\\', height: \\'300px\\', wrapperAttr: { class: \\'dx-selectbox-popup-wrapper dx-dropdownlist-popup-wrapper dx-filtereditor-criteriaoperator-popup dx-dropdowneditor-overlay\\' }, focusStateEnabled: false, position: $data.rtl ? { my: \\'right top\\', at: \\'right bottom\\', of: popupService.target} : { my: \\'left top\\', at: \\'left bottom\\', of: popupService.target }, container: $data.getPopupContainer($element), target: popupService.target, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, shading: false, visible: popupService.visible }', function ($context, $element) { return { 'dxPopupWithAutoHeight': function () { return { 'minWidth': '170px', 'maxWidth': '500px', 'width': 'auto', 'height': '300px', 'wrapperAttr': { 'class': 'dx-selectbox-popup-wrapper dx-dropdownlist-popup-wrapper dx-filtereditor-criteriaoperator-popup dx-dropdowneditor-overlay' }, 'focusStateEnabled': false, 'position': $context.$data.rtl ? { 'my': 'right top', 'at': 'right bottom', 'of': $context.$data.popupService.target } : { 'my': 'left top', 'at': 'left bottom', 'of': $context.$data.popupService.target }, 'container': $context.$data.getPopupContainer($element), 'target': $context.$data.popupService.target, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'shading': false, 'visible': $context.$data.popupService.visible }; } }; });\naddToBindingsCache('dxTextBox: { placeholder: searchPlaceholder(), value: ($data.value || $data.filterString), height: \\'100%\\', width: \\'100%\\', stylingMode: \\'underlined\\', valueChangeEvent: \\'keyup\\' }', function ($context, $element) { return { 'dxTextBox': function () { return { 'placeholder': $context.$data.searchPlaceholder(), 'value': ($context.$data.value || $context.$data.filterString), 'height': '100%', 'width': '100%', 'stylingMode': 'underlined', 'valueChangeEvent': 'keyup' }; } }; });\naddToBindingsCache('template: { name: \\'dx-filtereditor-search-panel\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-filtereditor-search-panel', 'data': $context.$data }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }, css: { \\'dx-filtereditor-filtered\\': isFiltered }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; }, 'css': function () { return { 'dx-filtereditor-filtered': $context.$data.isFiltered }; } }; });\naddToBindingsCache('text: $data.displayText || $data.name, click: function() { $parent.click($data); }, attr: {\\'title\\': $data.displayText || $data.name }', function ($context, $element) { return { 'text': function () { return $context.$data.displayText || $context.$data.name; }, 'click': function () { return function () { $context.$parent.click($context.$data); }; }, 'attr': function () { return { 'title': $context.$data.displayText || $context.$data.name }; } }; });\naddToBindingsCache('searchHighlighting: { text: $data.displayText || $data.name, textToSearch: $parent.filterString }, click: function() { $parent.click($data); }, attr: {\\'title\\': $data.displayText || $data.name }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayText || $context.$data.name, 'textToSearch': $context.$parent.filterString }; }, 'click': function () { return function () { $context.$parent.click($context.$data); }; }, 'attr': function () { return { 'title': $context.$data.displayText || $context.$data.name }; } }; });\naddToBindingsCache('treeListSearchPanel: { controllers: data().treeListController, template: \\'dx-filtereditor-search-panel\\' }', function ($context, $element) { return { 'treeListSearchPanel': function () { return { 'controllers': $context.$data.data().treeListController, 'template': 'dx-filtereditor-search-panel' }; } }; });\naddToBindingsCache('treelist: data', function ($context, $element) { return { 'treelist': function () { return $context.$data.data; } }; });\naddToBindingsCache('with: popupService', function ($context, $element) { return { 'with': function () { return $context.$data.popupService; } }; });\naddToBindingsCache('with: data', function ($context, $element) { return { 'with': function () { return $context.$data.data; } }; });\naddToBindingsCache('template: template', function ($context, $element) { return { 'template': function () { return $context.$data.template; } }; });\naddToBindingsCache('if: $data.isFiltered', function ($context, $element) { return { 'if': function () { return $context.$data.isFiltered; } }; });\naddToBindingsCache('foreach: data', function ($context, $element) { return { 'foreach': function () { return $context.$data.data; } }; });\naddToBindingsCache('if: !$data.hidden', function ($context, $element) { return { 'if': function () { return !$context.$data.hidden; } }; });\naddToBindingsCache('ifnot: $parent.isFiltered', function ($context, $element) { return { 'ifnot': function () { return $context.$parent.isFiltered; } }; });\naddToBindingsCache('if: $parent.isFiltered', function ($context, $element) { return { 'if': function () { return $context.$parent.isFiltered; } }; });\naddToBindingsCache('dxList: { items: $data.items, selectedItems: $data.selectedItems, onItemClick: $data.action, selectionMode: \\'single\\', activeStateEnabled: false }', function ($context, $element) { return { 'dxList': function () { return { 'items': $context.$data.items, 'selectedItems': $context.$data.selectedItems, 'onItemClick': $context.$data.action, 'selectionMode': 'single', 'activeStateEnabled': false }; } }; });\naddToBindingsCache('click: $parent.removeItem, visible: $data.canRemove', function ($context, $element) { return { 'click': function () { return $context.$parent.removeItem; }, 'visible': function () { return $context.$data.canRemove; } }; });\naddToBindingsCache('text: $data.displayName', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('text: getDisplayText(\\'types\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('types'); } }; });\naddToBindingsCache('dxButton:{ onClick: addCustomFormat, text: getDisplayText(\\'add\\'), disabled: !canAddCustomFormat() }', function ($context, $element) { return { 'dxButton': function () { return { 'onClick': $context.$data.addCustomFormat, 'text': $context.$data.getDisplayText('add'), 'disabled': !$context.$data.canAddCustomFormat() }; } }; });\naddToBindingsCache('dxTextBox: { value: formatResult, onInput: function(e) { updateInputText(\\'formatResult\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatResult, 'onInput': function (e) { $context.$data.updateInputText('formatResult', e.component); } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'prefix\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('prefix'); } }; });\naddToBindingsCache('dxTextBox: { value: formatPrefix, onInput: function(e) { updateInputText(\\'formatPrefix\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatPrefix, 'onInput': function (e) { $context.$data.updateInputText('formatPrefix', e.component); } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'suffix\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('suffix'); } }; });\naddToBindingsCache('dxTextBox: { value: formatSuffix, onInput: function(e) { updateInputText(\\'formatSuffix\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatSuffix, 'onInput': function (e) { $context.$data.updateInputText('formatSuffix', e.component); } }; } }; });\naddToBindingsCache('template: { name: \\'dx-format-string-list\\', data: { items: patternList, action: setFormat, removeItem: removeCustomFormat, selectedItems: selectedFormats } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-format-string-list', 'data': { 'items': $context.$data.patternList, 'action': $context.$data.setFormat, 'removeItem': $context.$data.removeCustomFormat, 'selectedItems': $context.$data.selectedFormats } }; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: value, disabled: disabled, buttonAction: function() { popupVisible(true); } }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'buttonAction': function () { $context.$data.popupVisible(true); } }; } }; });\naddToBindingsCache('dxPopup: { wrapperAttr: { class: \\'dx-format-string dx-popup-general\\' }, showTitle: true, width: \\'95%\\', height: \\'95%\\', minWidth: 650, title: getDisplayText(\\'title\\'), visible: popupVisible, toolbarItems: buttonItems, showCloseButton: true, container: getPopupContainer($element), position: { of: getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'wrapperAttr': { 'class': 'dx-format-string dx-popup-general' }, 'showTitle': true, 'width': '95%', 'height': '95%', 'minWidth': 650, 'title': $context.$data.getDisplayText('title'), 'visible': $context.$data.popupVisible, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'category\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('category'); } }; });\naddToBindingsCache('css: { \\'dx-format-general\\': isGeneralType }', function ($context, $element) { return { 'css': function () { return { 'dx-format-general': $context.$data.isGeneralType }; } }; });\naddToBindingsCache('text: getDisplayText(\\'preview\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('preview'); } }; });\naddToBindingsCache('text: previewString', function ($context, $element) { return { 'text': function () { return $context.$data.previewString; } }; });\naddToBindingsCache('template: { name: \\'dx-format-string-list\\', data: { items: types, action: setType, selectedItems: selectedTypes } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-format-string-list', 'data': { 'items': $context.$data.types, 'action': $context.$data.setType, 'selectedItems': $context.$data.selectedTypes } }; } }; });\naddToBindingsCache('if: !isGeneralType', function ($context, $element) { return { 'if': function () { return !$context.$data.isGeneralType; } }; });\naddToBindingsCache('template: \\'dx-format-string-edit-area\\'', function ($context, $element) { return { 'template': function () { return 'dx-format-string-edit-area'; } }; });\naddToBindingsCache('if: isGeneralType', function ($context, $element) { return { 'if': function () { return $context.$data.isGeneralType; } }; });\naddToBindingsCache('template: \\'dx-format-string-edit-area-general\\'', function ($context, $element) { return { 'template': function () { return 'dx-format-string-edit-area-general'; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: function() { clickAction($parent); }, icon: ko.unwrap($data.imageTemplateName), iconClass: $data.imageClassName, visible: (ko.unwrap($data.visible) == undefined) || ko.unwrap($data.visible), disabled: $data.disabled && $data.disabled() }, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.clickAction($context.$parent); }, 'icon': $context.ko.unwrap($context.$data.imageTemplateName), 'iconClass': $context.$data.imageClassName, 'visible': ($context.ko.unwrap($context.$data.visible) == undefined) || $context.ko.unwrap($context.$data.visible), 'disabled': $context.$data.disabled && $context.$data.disabled() }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-edit\\', iconClass: \\'dx-image-edit\\', onClick: function() { $parent.collapsed(!$parent.collapsed()); } }, visible: $parent.hasContent, attr: { title: $data.displayText() }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-edit', 'iconClass': 'dx-image-edit', 'onClick': function () { $context.$parent.collapsed(!$context.$parent.collapsed()); } }; }, 'visible': function () { return $context.$parent.hasContent; }, 'attr': function () { return { 'title': $context.$data.displayText() }; } }; });\naddToBindingsCache('template: { name: \\'dx-treelist-edit-action\\', data: treeListEditAction() }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist-edit-action', 'data': $context.$data.treeListEditAction() }; } }; });\naddToBindingsCache('template: \\'dx-treelist-item-actions\\'', function ($context, $element) { return { 'template': function () { return 'dx-treelist-item-actions'; } }; });\naddToBindingsCache('styleunit: padding, click: renderNext', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'click': function () { return $context.$data.renderNext; } }; });\naddToBindingsCache('text: $data.text()', function ($context, $element) { return { 'text': function () { return $context.$data.text(); } }; });\naddToBindingsCache('dxdAccordionExt: { collapsed: collapsed, lazyContentRendering: true }', function ($context, $element) { return { 'dxdAccordionExt': function () { return { 'collapsed': $context.$data.collapsed, 'lazyContentRendering': true }; } }; });\naddToBindingsCache('visible: isSelected() || isHovered()', function ($context, $element) { return { 'visible': function () { return $context.$data.isSelected() || $context.$data.isHovered(); } }; });\naddToBindingsCache('event: { dblclick: function() { $data.dblClickHandler ? $data.dblClickHandler($data) : $data.toggleCollapsed() }, mouseenter: mouseenter, mouseleave: mouseleave }, styleunit: padding, css: $data.getCssRules(), attr: { \\'aria-expanded\\': (hasItems && (!collapsed() ? \\'true\\' : \\'false\\')), \\'aria-selected\\': (isSelected() || isMultiSelected()) ? \\'true\\' : \\'false\\', \\'aria-level\\':level + 1, \\'aria-label\\': text, \\'aria-setsize\\': parent ? parent.items().length : 0, \\'aria-posinset\\': parent ? parent.items.indexOf($data) + 1 : 0 }', function ($context, $element) { return { 'event': function () { return { 'dblclick': function () { $context.$data.dblClickHandler ? $context.$data.dblClickHandler($context.$data) : $context.$data.toggleCollapsed(); }, 'mouseenter': $context.$data.mouseenter, 'mouseleave': $context.$data.mouseleave }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return $context.$data.getCssRules(); }, 'attr': function () { return { 'aria-expanded': ($context.$data.hasItems && (!$context.$data.collapsed() ? 'true' : 'false')), 'aria-selected': ($context.$data.isSelected() || $context.$data.isMultiSelected()) ? 'true' : 'false', 'aria-level': $context.$data.level + 1, 'aria-label': $context.$data.text, 'aria-setsize': $context.$data.parent ? $context.$data.parent.items().length : 0, 'aria-posinset': $context.$data.parent ? $context.$data.parent.items.indexOf($context.$data) + 1 : 0 }; } }; });\naddToBindingsCache('style: { \\'padding-left\\': $data.hasItems ? \\'0px\\': \\'18px\\' }', function ($context, $element) { return { 'style': function () { return { 'padding-left': $context.$data.hasItems ? '0px' : '18px' }; } }; });\naddToBindingsCache('click: toggleSelected, draggable: dragDropHandler', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; }, 'draggable': function () { return $context.$data.dragDropHandler; } }; });\naddToBindingsCache('searchHighlighting: { text: text, textToSearch: treeListController.textToSearch, searchOptions: treeListController.searchOptions }, attr: { title: text }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.text, 'textToSearch': $context.$data.treeListController.textToSearch, 'searchOptions': $context.$data.treeListController.searchOptions }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('if: treeListController.searchEnabled', function ($context, $element) { return { 'if': function () { return $context.$data.treeListController.searchEnabled; } }; });\naddToBindingsCache('ifnot: treeListController.searchEnabled', function ($context, $element) { return { 'ifnot': function () { return $context.$data.treeListController.searchEnabled; } }; });\naddToBindingsCache('if: hasContent', function ($context, $element) { return { 'if': function () { return $context.$data.hasContent; } }; });\naddToBindingsCache('template: templates.accordionItem', function ($context, $element) { return { 'template': function () { return $context.$data.templates.accordionItem; } }; });\naddToBindingsCache('ifnot: hasContent', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hasContent; } }; });\naddToBindingsCache('template: templates.headerItem', function ($context, $element) { return { 'template': function () { return $context.$data.templates.headerItem; } }; });\naddToBindingsCache('template: { name: contenttemplate }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contenttemplate }; } }; });\naddToBindingsCache('template: actionsTemplate()', function ($context, $element) { return { 'template': function () { return $context.$data.actionsTemplate(); } }; });\naddToBindingsCache('if: $data.hasItems', function ($context, $element) { return { 'if': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('if: actions && actions.length > 0', function ($context, $element) { return { 'if': function () { return $context.$data.actions && $context.$data.actions.length > 0; } }; });\naddToBindingsCache('template: templates.actionsContainer', function ($context, $element) { return { 'template': function () { return $context.$data.templates.actionsContainer; } }; });\naddToBindingsCache('if: isDraggable', function ($context, $element) { return { 'if': function () { return $context.$data.isDraggable; } }; });\naddToBindingsCache('template: templates.headerItemContent', function ($context, $element) { return { 'template': function () { return $context.$data.templates.headerItemContent; } }; });\naddToBindingsCache('ifnot: isDraggable', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isDraggable; } }; });\naddToBindingsCache('template: templates.itemTextContent', function ($context, $element) { return { 'template': function () { return $context.$data.templates.itemTextContent; } }; });\naddToBindingsCache('event: { dblclick: function() { $data.dblClickHandler ? $data.dblClickHandler($data) : $data.toggleCollapsed() }, mouseenter: mouseenter, mouseleave: mouseleave }, styleunit: padding, css: { \\'dx-treelist-item-selected dxd-state-selected dxd-back-secondary\\': isSelected() || isMultiSelected() }', function ($context, $element) { return { 'event': function () { return { 'dblclick': function () { $context.$data.dblClickHandler ? $context.$data.dblClickHandler($context.$data) : $context.$data.toggleCollapsed(); }, 'mouseenter': $context.$data.mouseenter, 'mouseleave': $context.$data.mouseleave }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-treelist-item-selected dxd-state-selected dxd-back-secondary': $context.$data.isSelected() || $context.$data.isMultiSelected() }; } }; });\naddToBindingsCache('css: nodeImageClass, template: \\'dxrd-svg-collapsed\\', click: toggleCollapsed, style: { \\'visibility\\': hasItems ? \\'visible\\' : \\'hidden\\' }', function ($context, $element) { return { 'css': function () { return $context.$data.nodeImageClass; }, 'template': function () { return 'dxrd-svg-collapsed'; }, 'click': function () { return $context.$data.toggleCollapsed; }, 'style': function () { return { 'visibility': $context.$data.hasItems ? 'visible' : 'hidden' }; } }; });\naddToBindingsCache('visible: $data.isSelected() || $data.isHovered()', function ($context, $element) { return { 'visible': function () { return $context.$data.isSelected() || $context.$data.isHovered(); } }; });\naddToBindingsCache('click: toggleSelected, draggable: isDraggable ? dragDropHandler : null', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; }, 'draggable': function () { return $context.$data.isDraggable ? $context.$data.dragDropHandler : null; } }; });\naddToBindingsCache('template: \"dx-treelist-accordion-item-with-hover\"', function ($context, $element) { return { 'template': function () { return 'dx-treelist-accordion-item-with-hover'; } }; });\naddToBindingsCache('template: \"dx-treelist-header-item-with-hover\"', function ($context, $element) { return { 'template': function () { return 'dx-treelist-header-item-with-hover'; } }; });\naddToBindingsCache('dxTextBox: { mode: \\'search\\', value:value, valueChangeEvent: \\'keyup\\', showClearButton: true, placeholder: searchPlaceholder()}', function ($context, $element) { return { 'dxTextBox': function () { return { 'mode': 'search', 'value': $context.$data.value, 'valueChangeEvent': 'keyup', 'showClearButton': true, 'placeholder': $context.$data.searchPlaceholder() }; } }; });\naddToBindingsCache('template: $data.visibleItems !== undefined ? \\'dx-treelist-paginate\\' : \\'dx-treelist-common\\'', function ($context, $element) { return { 'template': function () { return $context.$data.visibleItems !== undefined ? 'dx-treelist-paginate' : 'dx-treelist-common'; } }; });\naddToBindingsCache('lazy: { resolver: resolver, innerBindings: { template: templateName } }', function ($context, $element) { return { 'lazy': function () { return { 'resolver': $context.$data.resolver, 'innerBindings': { 'template': $context.$data.templateName } }; } }; });\naddToBindingsCache('if: !$data.collapsed()', function ($context, $element) { return { 'if': function () { return !$context.$data.collapsed(); } }; });\naddToBindingsCache('template: { name: \\'dx-treelist\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist', 'data': $context.$data }; } }; });\naddToBindingsCache('foreach: visibleItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.visibleItems; } }; });\n","/**\n* DevExpress Analytics (dx-analytics-core-svg-bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addToBindingsCache } from './property-grid/widgets/internal/_bindingsCache';\naddToBindingsCache('template: \\'dxrd-svg-collapsed\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-collapsed'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-ellipsis\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-ellipsis'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-addition\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-addition'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-and\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-and'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-division\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-division'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-greater\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-greater'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-greater_or_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-greater_or_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-less\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-less'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-less_or_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-less_or_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-modulus\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-modulus'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-multiplication\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-multiplication'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-not\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-not'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-not_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-not_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-or\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-or'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-parenthesis\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-parenthesis'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-subtraction\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-subtraction'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-array\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-array'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bitearray\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bitearray'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bool\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bool'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-booleanfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-booleanfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-column\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-column'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-date\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-date'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-datetimefield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-datetimefield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-doublefield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-doublefield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-enum\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-enum'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-float\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-float'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-guid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-guid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-integer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-integer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-integerfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-integerfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-listsource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-listsource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parameters\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parameters'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-range\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-range'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-string\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-string'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-stringfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-stringfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-table\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-table'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-view\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-view'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-add'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-remove'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-bold\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-bold'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-italic\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-italic'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-strikeout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-strikeout'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-underline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-underline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-menu\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-menu'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-open\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-open'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-save\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-save'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-saveas\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-saveas'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_calcfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_calcfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_query\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_query'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-ascending\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-ascending'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-descending\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-descending'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-movedown\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-movedown'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveleft_all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveleft_all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveright_all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveright_all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-rebuild_schema\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-rebuild_schema'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-recycle_bin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-recycle_bin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-recycle_bin_xl\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-recycle_bin_xl'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-remove'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-rename\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-rename'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-unsorted\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-unsorted'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-bottom\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-bottom'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-top\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-top'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-propertyexpression\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-propertyexpression'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-sortingbyalphabet\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-sortingbyalphabet'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-sortingbygroups\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-sortingbygroups'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-bottom\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-bottom'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-justify\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-justify'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-middle\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-middle'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-top\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-top'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-aggregate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-aggregate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-data_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-data_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-group_by\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-group_by'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-select_statment\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-select_statment'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-sorting_asc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-sorting_asc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-sorting_desc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-sorting_desc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-properties\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-properties'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-copy\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-copy'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-cut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-cut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-delete\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-delete'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-paste\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-paste'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-redo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-redo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-undo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-undo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-validate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-validate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-zoomin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-zoomin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-zoomout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-zoomout'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-Download\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-Download'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-expressions\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-expressions'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-FederationDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-FederationDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-JsonDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-JsonDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-NoDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-NoDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-ObjectDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-ObjectDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-SqlDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-SqlDataSource'; } }; });\n","/**\n* DevExpress Analytics (dx-analytics-core-svg-templates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from './property-grid/widgets/internal/_svgTemplateEngine';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-svg-collapsed': '',\n 'dxrd-svg-ellipsis': '',\n 'dxrd-svg-expressioneditor-addition': '',\n 'dxrd-svg-expressioneditor-and': '',\n 'dxrd-svg-expressioneditor-division': '',\n 'dxrd-svg-expressioneditor-edit': '',\n 'dxrd-svg-expressioneditor-equal': '',\n 'dxrd-svg-expressioneditor-greater': '',\n 'dxrd-svg-expressioneditor-greater_or_equal': '',\n 'dxrd-svg-expressioneditor-less': '',\n 'dxrd-svg-expressioneditor-less_or_equal': '',\n 'dxrd-svg-expressioneditor-modulus': '',\n 'dxrd-svg-expressioneditor-multiplication': '',\n 'dxrd-svg-expressioneditor-not': '',\n 'dxrd-svg-expressioneditor-not_equal': '',\n 'dxrd-svg-expressioneditor-or': '',\n 'dxrd-svg-expressioneditor-parenthesis': '',\n 'dxrd-svg-expressioneditor-subtraction': '',\n 'dxrd-svg-fieldlist-array': '',\n 'dxrd-svg-fieldlist-bitearray': '',\n 'dxrd-svg-fieldlist-bool': '',\n 'dxrd-svg-fieldlist-booleanfield': '',\n 'dxrd-svg-fieldlist-column': '',\n 'dxrd-svg-fieldlist-datasource': '',\n 'dxrd-svg-fieldlist-date': '',\n 'dxrd-svg-fieldlist-datetimefield': '',\n 'dxrd-svg-fieldlist-doublefield': '',\n 'dxrd-svg-fieldlist-enum': '',\n 'dxrd-svg-fieldlist-float': '',\n 'dxrd-svg-fieldlist-guid': '',\n 'dxrd-svg-fieldlist-integer': '',\n 'dxrd-svg-fieldlist-integerfield': '',\n 'dxrd-svg-fieldlist-listsource': '',\n 'dxrd-svg-fieldlist-none': '',\n 'dxrd-svg-fieldlist-parameters': '',\n 'dxrd-svg-fieldlist-range': '',\n 'dxrd-svg-fieldlist-string': '',\n 'dxrd-svg-fieldlist-stringfield': '',\n 'dxrd-svg-fieldlist-table': '',\n 'dxrd-svg-fieldlist-view': '',\n 'dxrd-svg-filtereditor-add': '',\n 'dxrd-svg-filtereditor-edit': '',\n 'dxrd-svg-filtereditor-remove': '',\n 'dxrd-svg-fontstyle-bold': '',\n 'dxrd-svg-fontstyle-italic': '',\n 'dxrd-svg-fontstyle-strikeout': '',\n 'dxrd-svg-fontstyle-underline': '',\n 'dxrd-svg-menu-menu': '',\n 'dxrd-svg-menu-open': '',\n 'dxrd-svg-menu-save': '',\n 'dxrd-svg-menu-saveas': '',\n 'dxrd-svg-operations-add': '',\n 'dxrd-svg-operations-add_calcfield': '',\n 'dxrd-svg-operations-add_datasource': '',\n 'dxrd-svg-operations-add_query': '',\n 'dxrd-svg-operations-ascending': '',\n 'dxrd-svg-operations-descending': '',\n 'dxrd-svg-operations-edit': '\\',\n 'dxrd-svg-operations-movedown': '',\n 'dxrd-svg-operations-moveleft': '',\n 'dxrd-svg-operations-moveleft_all': '',\n 'dxrd-svg-operations-moveright': '',\n 'dxrd-svg-operations-moveright_all': '',\n 'dxrd-svg-operations-moveup': '',\n 'dxrd-svg-operations-rebuild_schema': '',\n 'dxrd-svg-operations-recycle_bin': '',\n 'dxrd-svg-operations-recycle_bin_xl': '',\n 'dxrd-svg-operations-remove': '',\n 'dxrd-svg-operations-rename': '',\n 'dxrd-svg-operations-unsorted': '',\n 'dxrd-svg-properties-borders-all': '',\n 'dxrd-svg-properties-borders-bottom': '',\n 'dxrd-svg-properties-borders-left': '',\n 'dxrd-svg-properties-borders-none': '',\n 'dxrd-svg-properties-borders-right': '',\n 'dxrd-svg-properties-borders-top': '',\n 'dxrd-svg-properties-propertyexpression': '',\n 'dxrd-svg-properties-search': '',\n 'dxrd-svg-properties-sortingbyalphabet': '',\n 'dxrd-svg-properties-sortingbygroups': '',\n 'dxrd-svg-properties-textAlignment-bottom': '',\n 'dxrd-svg-properties-textAlignment-center': '',\n 'dxrd-svg-properties-textAlignment-justify': '',\n 'dxrd-svg-properties-textAlignment-left': '',\n 'dxrd-svg-properties-textAlignment-middle': '',\n 'dxrd-svg-properties-textAlignment-right': '',\n 'dxrd-svg-properties-textAlignment-top': '',\n 'dxrd-svg-queryBuilder-aggregate': '',\n 'dxrd-svg-queryBuilder-data_preview': '',\n 'dxrd-svg-queryBuilder-group_by': '',\n 'dxrd-svg-queryBuilder-select_statment': '',\n 'dxrd-svg-queryBuilder-sorting_asc': '',\n 'dxrd-svg-queryBuilder-sorting_desc': '',\n 'dxrd-svg-tabs-properties': '',\n 'dxrd-svg-toolbar-copy': '',\n 'dxrd-svg-toolbar-cut': '',\n 'dxrd-svg-toolbar-delete': '',\n 'dxrd-svg-toolbar-paste': '',\n 'dxrd-svg-toolbar-redo': '',\n 'dxrd-svg-toolbar-undo': '',\n 'dxrd-svg-toolbar-validate': '',\n 'dxrd-svg-toolbar-zoomin': '',\n 'dxrd-svg-toolbar-zoomout': '',\n 'dxrd-svg-wizard-Download': '',\n 'dxrd-svg-wizard-expressions': '',\n 'dxrd-svg-wizard-FederationDataSource': '',\n 'dxrd-svg-wizard-JsonDataSource': '',\n 'dxrd-svg-wizard-NoDataSource': '',\n 'dxrd-svg-wizard-ObjectDataSource': '',\n 'dxrd-svg-wizard-SqlDataSource': '',\n});\n","/**\n* DevExpress Analytics (dx-analytics-core-templates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from './property-grid/widgets/internal/_svgTemplateEngine';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-bordereditor': '

',\n 'dxrd-borders': '
',\n 'dxrd-colorpicker': '
',\n 'dxrd-expressionstring': '
',\n 'dxrd-field': '
',\n 'dxrd-filterstring': '
',\n 'dxrd-filterstringgroup': '
',\n 'dxrd-formatstring': '
',\n 'dxrd-guid': '
',\n 'dxrd-emptyHeader': '',\n 'dxrd-objectEditorContent': '
',\n 'dxrd-objectEditor': '
',\n 'dxrd-commonCollectionItem': '
',\n 'dxrd-textalignment': '
',\n 'dxrd-objectVisitor': '
',\n 'dxd-snap-lines-holder': '
',\n 'dxrd-surface-template-base': '
',\n 'dxrd-designer': '
',\n 'dxrd-textalignment-editor': '

',\n 'dxrd-collectionactions-template': '
',\n 'dxrd-drag-helper-source': '
',\n 'dxrd-drag-helper-source-reorder-treelist': '
',\n 'dxrd-menubutton-template-base': '
',\n 'dxrd-top-grid': '
',\n 'dxrd-group-actions': '
!x.visible || ko.unwrap(x.visible))\">
',\n 'dx-propertygrid-searchbox': '
',\n 'dxrd-propertiestab': '
',\n 'dx-propertygrid-popupservice': '
',\n 'dx-right-panel-lightweight': '
',\n 'dxrd-right-panel-template-base': '
',\n 'dx-right-panel-switcher': '
',\n 'dxrd-toolbar-template-base': '
',\n 'dxrd-toolbar-tmplt': '
',\n 'dxrd-toolbox-template-base': '
',\n 'dxrd-grouped-toolbox-template-base': '
',\n 'dxrd-zoom-select-template': '
',\n 'dx-editor-addons': '
',\n 'dx-collectioneditor': '
',\n 'dx-boolean': '
',\n 'dx-boolean-select': '
',\n 'dx-commonCollection': '
',\n 'dx-commonCollectionItem': '
',\n 'item-with-title': '
',\n 'dx-combobox': '
',\n 'dx-combobox-editable': '
',\n 'dx-combobox-undo': '
',\n 'dx-property-editor': '
',\n 'dx-emptyHeader': '',\n 'dx-date': '
',\n 'dx-file': '
',\n 'dx-modificators': '
',\n 'dx-image': '
',\n 'dx-numeric': '
',\n 'dx-number-editor': '
',\n 'dx-text': '
',\n 'dx-string-array': '
',\n 'dx-propertieseditor': '
',\n 'dx-objectEditorContent': '
',\n 'dxrd-federated-manageQueries-editor': '
',\n 'dx-querybuilder-federation-popup-templates': ' ',\n 'dxrd-managequeries-selectbox': '
',\n 'dx-expressioneditor-main': '
',\n 'dx-expressioneditor': '
',\n 'dx-expressioneditor-popup': '
',\n 'dx-expressioneditor-categories': '
',\n 'dx-expressioneditor-category-accordion': '
',\n 'dx-expressioneditor-description': '
',\n 'dx-expressioneditor-fields': '
',\n 'dx-ee-treelist-item': '
',\n 'dx-expressioneditor-selectedcontent': ' ',\n 'dx-expressioneditor-collection': '
',\n 'dx-expressioneditor-collection-function': '
',\n 'dx-filtereditor-content': '
',\n 'dx-filtereditor-content-plain': '
',\n 'dx-filtereditor-content-text': '
',\n 'dx-filtereditor-content-tree': '
',\n 'dx-filtereditor': '
',\n 'dx-filtereditor-advanced': '
',\n 'dx-filtereditor-plain': '
',\n 'dx-filtereditor-aggregate-common': '
(
)
',\n 'dx-filtereditor-aggregate': '
',\n 'dx-filtereditor-between': '
and
',\n 'dx-filtereditor-binary': '
',\n 'dx-filtereditor-common': '
',\n 'dx-filtereditor-function-lightweight': '
',\n 'dx-filtereditor-function': '
',\n 'dx-filtereditor-group': '
',\n 'dx-filtereditor-in': '
(
,
)
',\n 'dx-filtereditor-parameter': '
',\n 'dx-filtereditor-property': '
',\n 'dx-filtereditor-unary': '
',\n 'dx-filtereditor-not': ' ',\n 'dx-filtereditor-value': '
',\n 'dx-filtereditor-popup': '
',\n 'dx-filtereditor-create': '
',\n 'dx-filtereditor-change': '
',\n 'dx-filtereditor-changeParameter': '
',\n 'dx-filtereditor-changeProperty': '
',\n 'dx-filtereditor-changeValueType': '
',\n 'dx-filtereditor-content-popups': '
',\n 'dx-filtereditor-search-panel': '
',\n 'dx-filtereditor-popup-common': '
',\n 'dx-filtereditor-popup-treelist': '
',\n 'dx-format-string-list': '
',\n 'dx-format-string-edit-area': '
',\n 'dx-format-string-edit-area-general': '
',\n 'dx-format-string': '
',\n 'dx-treelist-item-actions': '
',\n 'dx-treelist-edit-action': '
',\n 'dx-treelist-item-actions-with-edit': ' ',\n 'dx-treelist-item-ellipsis': '
',\n 'dx-treelist-item': ' ',\n 'dx-treelist-accordion-item': '
',\n 'dx-treelist-item-actions-container': '
',\n 'dx-treelist-header-item': '
',\n 'dx-treelist-item-text-content': '
',\n 'dx-treelist-header-item-caption-content': '
',\n 'dx-treelist-item-with-hover': '
',\n 'dx-treelist-accordion-item-with-hover': '
',\n 'dx-treelist-header-item-with-hover': '
',\n 'dx-treelist': '
',\n 'dx-treelist-search-panel': '
',\n 'dx-treelist-common': ' ',\n 'dx-treelist-paginate': ' '\n});\n","/**\n* DevExpress Analytics (property-grid\\widgets\\collectioneditor\\_editor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { propertiesGridEditorsPaddingLeft } from '../internal/_internal';\nimport { getLocalization } from '../../localization/localization_utils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { ListKeyboardHelper } from '../../../accessibility/_listKeyboardHelper';\nexport class CollectionItemWrapper extends Disposable {\n constructor(editor, array, index, displayNameField = '') {\n super();\n this.collapsed = ko.observable(true);\n this.selected = ko.observable(false);\n this._disposables.push(this.value = ko.computed({\n read: () => {\n return array.peek()[index()];\n },\n write: (val) => {\n array.peek()[index()] = val;\n }\n }));\n this.editor = editor;\n this.index = index;\n this._disposables.push(this.name = ko.computed(() => {\n return displayNameField && this.value() && this.value()[displayNameField] ? ko.unwrap(this.value()[displayNameField]) : index();\n }));\n }\n}\nexport class CollectionEditorViewModel extends Disposable {\n constructor(options, disabled = ko.observable(false)) {\n super();\n this.buttonMap = {\n 'delete': { text: 'Delete', localizationId: 'AnalyticsCoreStringId.Cmd_Delete' },\n 'add': { text: 'Add', localizationId: 'DataAccessUIStringId.Button_Add' },\n 'down': { text: 'Move Down', localizationId: 'AnalyticsCoreStringId.Cmd_MoveDown' },\n 'up': { text: 'Move Up', localizationId: 'AnalyticsCoreStringId.Cmd_MoveUp' }\n };\n this.selectedIndex = ko.observable(null);\n this.alwaysShow = ko.observable(false);\n this.collapsed = ko.observable(options.collapsed !== false);\n var addHandler = () => (options.addHandler || options.info && options.info() && options.info()['addHandler']).call(this);\n var removeHandler = options.removeHandler;\n var hideButtons = options.hideButtons || options.info && options.info() && options.info()['hideButtons'];\n this._textEmptyArray = options.textEmptyArray || { text: 'To create an item click the Add button.', localizationId: 'AnalyticsCoreStringId.SqlDSWizard_PageConfigureParametersEmpty' };\n this.displayPropertyName = options.info && options.info() && options.info()['displayPropertyName'] || options.displayName;\n this._disposables.push(this.showButtons = ko.computed(() => {\n return !ko.unwrap(hideButtons) && !this.collapsed();\n }));\n this.showScroll = !!options.showScroll;\n var _isDisabled = (selectedIndex, name) => {\n if (options.isDisabledButton) {\n return options.isDisabledButton(selectedIndex, name);\n }\n else if (name === 'delete') {\n return selectedIndex === null;\n }\n else if (name === 'add') {\n return false;\n }\n else if (name === 'up') {\n return selectedIndex === null || selectedIndex === 0;\n }\n else if (name === 'down') {\n return selectedIndex === null || selectedIndex === (this.values().length - 1);\n }\n };\n this.isDisabledButton = (name) => {\n return disabled() || _isDisabled(this.selectedIndex(), name);\n };\n this.isVisibleButton = (name) => {\n if (!this.showButtons()) {\n return false;\n }\n else\n return options.isVisibleButton ? options.isVisibleButton(this.selectedIndex(), name) : true;\n };\n this.padding = options.level !== void 0 ? options.level * propertiesGridEditorsPaddingLeft() : 0;\n this.displayName = (options.info && options.info()) ? getLocalization(options.info().displayName, options.info().localizationId) : options.displayName;\n this.options = options;\n if (!options.displayName) {\n this.collapsed(false);\n this.alwaysShow(true);\n }\n if (options.alwaysShow)\n this.alwaysShow(true);\n this._disposables.push(this.values = ko.computed(() => {\n this._timeoutItemRendered && clearTimeout(this._timeoutItemRendered);\n this._timeoutItemRendered = setTimeout(() => {\n this.listKeyboardHelper && this.listKeyboardHelper.initialize();\n }, 100);\n return ko.unwrap(options.values());\n }));\n var selectedItem = ko.unwrap(options.selectedItem);\n if (selectedItem) {\n this._setSelectedIndex(selectedItem);\n this._disposables.push(options.selectedItem.subscribe((newVal) => {\n this._setSelectedIndex(newVal);\n }));\n }\n this.add = (model) => {\n model.event.stopPropagation();\n options.undoEngine && options.undoEngine().start();\n var item = addHandler();\n if (!item)\n return;\n var index = options.values().push(item);\n options.undoEngine && options.undoEngine().end();\n if (options.selectedItem) {\n this.select({ index: () => index - 1 });\n }\n };\n this.up = (model) => {\n this._move(options.values(), -1);\n model.event.stopPropagation();\n };\n this.down = (model) => {\n this._move(options.values(), 1);\n model.event.stopPropagation();\n };\n this.remove = (model) => {\n model.event.stopPropagation();\n if (this.selectedIndex() < 0)\n return;\n if (removeHandler) {\n options.undoEngine && options.undoEngine().start();\n var selectedItem = options.values()()[this.selectedIndex()];\n removeHandler(selectedItem);\n options.undoEngine && options.undoEngine().end();\n }\n else {\n options.values().splice(this.selectedIndex(), 1);\n }\n var valuesCount = options.values()().length;\n if (valuesCount > 0) {\n this.select({\n index: () => this.selectedIndex() >= valuesCount ? valuesCount - 1 : this.selectedIndex()\n }, true);\n }\n else {\n this.select({ index: () => null }, true);\n }\n };\n this.select = (model, force = false) => {\n if (this.selectedIndex() === model.index() && !force)\n return;\n this.selectedIndex(model.index());\n if (options.selectedItem) {\n options.selectedItem(this.selectedIndex() !== null ? this.values()[this.selectedIndex()] : null);\n }\n };\n this.disabled = disabled;\n this.listKeyboardHelper = new ListKeyboardHelper();\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n _move(array, offset) {\n if (this.selectedIndex() >= 0) {\n var old_index = this.selectedIndex(), new_index = old_index + offset;\n if ((new_index >= array().length) || (new_index < 0)) {\n return;\n }\n array.splice(new_index, 0, array.splice(old_index, 1)[0]);\n this.selectedIndex(new_index);\n }\n }\n _setSelectedIndex(selectedItem) {\n var index = this.values().indexOf(selectedItem);\n this.selectedIndex(index === -1 ? null : index);\n }\n getDisplayTextButton(key) {\n return getLocalization(this.buttonMap[key].text, this.buttonMap[key].localizationId);\n }\n getDisplayTextEmptyArray() {\n return getLocalization(this._textEmptyArray.text, this._textEmptyArray.localizationId);\n }\n createCollectionItemWrapper(grandfather, index, element) {\n var wrapper = new CollectionItemWrapper(grandfather, this.values, index, this.displayPropertyName);\n addDisposeCallback(element, () => wrapper.dispose());\n return wrapper;\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\collectioneditor\\_bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { CollectionEditorViewModel } from './_editor';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { getTemplate } from '../templateUtils';\nko.bindingHandlers['dxCollectionEditor'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var values = valueAccessor(), gridViewModel = new CollectionEditorViewModel(values, viewModel.disabled), templateHtml = getTemplate(values.editorTemplate || '#dx-collectioneditor'), $templateHtml = $.fn.constructor(templateHtml), itemTemplateName = values.info && values.info() && values.info()['template'] || values.template;\n if (itemTemplateName) {\n var itemTemplateHtml = getTemplate(itemTemplateName);\n $templateHtml.find('.dx-collection-item').append($.fn.constructor(itemTemplateHtml));\n }\n else {\n $templateHtml.find('.dx-collection-item').append($.fn.constructor(element).children());\n }\n var $element = $.fn.constructor(element).append($templateHtml);\n var childContext = bindingContext.createChildContext(gridViewModel);\n ko.applyBindings(childContext, $element.children()[0]);\n addDisposeCallback(element, () => gridViewModel.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress Analytics (property-grid\\widgets\\ellipsiseditor\\_editor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/text_box';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { SvgTemplatesEngine } from '../internal/_svgTemplateEngine';\nimport { KeyboardEnum } from '../internal/_utils';\nvar editor_prefix = 'dx-ellipsiseditor', EDITOR_CLASS = editor_prefix + ' dx-dropdowneditor', EDITOR_BUTTON_CLASS = editor_prefix + '-button dx-widget dx-button-normal dx-dropdowneditor-button dx-ellipsis-button', EDITOR_BUTTON_ICON_CLASS = editor_prefix + '-icon dx-ellipsis-image dx-dropdowneditor-icon', EDITOR_BUTTON_ICON_TEMPLATE = 'dxrd-svg-ellipsis', EDITOR_WARNING_STATE_CLASS = 'dx-ellipsiseditor-warning';\nexport class dxEllipsisEditor extends dxTextBox {\n constructor(element, options) {\n super(element, options);\n }\n _init() {\n super['_init'].apply(this);\n if (!this._$element) {\n this._$element = $.fn.constructor(this.element());\n }\n this._$element.addClass(EDITOR_CLASS);\n this._koContext = ko.contextFor(this._$element.get(0));\n }\n _render() {\n super['_render'].apply(this);\n this._renderButton();\n this._updateWarningState();\n this._attachInputEvents();\n }\n _updateWarningState(value = this.option('warningMessage')) {\n if (value) {\n this._$element.attr('title', value.toString());\n this._$element.addClass(EDITOR_WARNING_STATE_CLASS);\n }\n else {\n this._$element.removeAttr('title');\n this._$element.removeClass(EDITOR_WARNING_STATE_CLASS);\n }\n }\n _renderButton() {\n this._$button = $.fn.constructor('
').addClass(EDITOR_BUTTON_CLASS);\n this._attachButtonEvents();\n this._$buttonIcon = $.fn.constructor('
').addClass(EDITOR_BUTTON_ICON_CLASS).height('100%').append(SvgTemplatesEngine.templates[EDITOR_BUTTON_ICON_TEMPLATE]).appendTo(this._$button);\n ko.applyBindingsToDescendants(this._koContext, this._$buttonIcon[0]);\n var buttonsContainer = this['_buttonsContainer']();\n this._$button.appendTo(buttonsContainer);\n }\n _updateButtonSize() {\n this._$buttonIcon.height($.fn.constructor(this.element()).height());\n }\n _attachButtonEvents() {\n var subscribeElements = [];\n if (!this._$input)\n this._$input = $.fn.constructor(this['_input']());\n this._$button.off('click');\n this._$input.off('click');\n if (!this.option('disabled'))\n subscribeElements.push(this._$button);\n if (this.option('openOnFieldClick'))\n subscribeElements.push(this._$input);\n subscribeElements.forEach(($element) => {\n $element.on('click', this.buttonAction.bind(this));\n });\n }\n _attachInputEvents() {\n var input = this['_input']()[0];\n if (!input)\n return;\n var handler = (e) => {\n if (e.key == KeyboardEnum.Enter || (e.key == KeyboardEnum.ArrowDown && e.altKey)) {\n this.buttonAction(e);\n }\n };\n input.addEventListener('keydown', handler);\n addDisposeCallback(input, function () {\n input.removeEventListener('keydown', handler);\n });\n }\n _optionChanged(args) {\n switch (args.name) {\n case 'disabled':\n this._attachButtonEvents();\n break;\n case 'warningMessage':\n this._updateWarningState(args.value);\n break;\n }\n super['_optionChanged'].apply(this, arguments);\n }\n buttonAction(e) {\n if (this.option('buttonAction')) {\n this.option('buttonAction')();\n e.stopPropagation();\n }\n }\n}\nregisterComponent('dxEllipsisEditor', dxEllipsisEditor);\n","/**\n* DevExpress Analytics (property-grid\\widgets\\fileimageeditor\\_editor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../../localization/localization_utils';\nimport { dxEllipsisEditor } from '../ellipsiseditor/_editor';\nimport { uploadFile } from '../internal/_utils';\nvar editor_prefix = 'dx-fileimage', EDITOR_INPUT_WRAPPER_CLASS = editor_prefix + '-input-wrapper';\nexport class dxFileImagePicker extends dxEllipsisEditor {\n constructor(element, options) {\n options.placeholder = options.placeholder || getLocalization('(none)', 'DxDesignerStringId.None');\n super(element, options);\n }\n _getDisplayValue() {\n var knownPlaceholders = {\n 'Image': 'AnalyticsCoreStringId.ImagePicker_Placeholder',\n 'File': 'AnalyticsCoreStringId.FilePicker_Placeholder'\n };\n var placeholderId = this.option('placeholderId');\n if (this.option('value') && placeholderId)\n return getLocalization(placeholderId, knownPlaceholders[placeholderId]);\n else\n return this.option('value');\n }\n _handleResult(result) {\n if (this.option('useFormat')) {\n this.option('format', result.format);\n }\n this.option('value', result.content);\n }\n _renderInput(inputContainer) {\n var $inputContainer = inputContainer && $.fn.constructor(inputContainer) || $.fn.constructor('
');\n $inputContainer.addClass(EDITOR_INPUT_WRAPPER_CLASS);\n this['_inputContainer'] = $inputContainer.get(0);\n $.fn.constructor(this.element()).append(this['_inputContainer']);\n super['_renderInput'].apply(this, [inputContainer]);\n }\n _attachButtonEvents() {\n this._$button.off('click');\n if (!this.option('disabled')) {\n this._$button.on('click', (e) => {\n var _a, _b;\n e.stopPropagation();\n e.preventDefault();\n uploadFile({\n accept: ((_a = this.option('accept')) === null || _a === void 0 ? void 0 : _a.toString()) || 'image/*',\n readMode: (_b = this.option('readMode')) === null || _b === void 0 ? void 0 : _b.toString()\n }).done((result) => {\n this._handleResult(result);\n });\n });\n }\n }\n _renderValue() {\n this.option('text', this._getDisplayValue());\n super['_renderValue'].apply(this);\n }\n}\nregisterComponent('dxFileImagePicker', dxFileImagePicker);\n","/**\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\_model.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { defaultFontSerialization } from '../internal/_internal';\nexport var availableUnits = [\n { value: 'pt', displayValue: 'Point', localizationId: 'DevExpress.ReportDesigner_FontOptions_Unit_Point' },\n { value: 'world', displayValue: 'World', localizationId: 'AnalyticsCoreStringId.FontOptions_Unit_World' },\n { value: 'px', displayValue: 'Pixel', localizationId: 'AnalyticsCoreStringId.FontOptions_Unit_Pixel' },\n { value: 'in', displayValue: 'Inch', localizationId: 'AnalyticsCoreStringId.Wizard_Inch' },\n { value: 'doc', displayValue: 'Document', localizationId: 'PreviewStringId.ReportDesigner_FontOptions_Unit_Document' },\n { value: 'mm', displayValue: 'Millimetr', localizationId: 'AnalyticsCoreStringId.Wizard_Millimeter' }\n];\nexport class FontModel extends Disposable {\n constructor(value) {\n super();\n this.family = ko.observable(null);\n this.unit = ko.observable(null);\n this.isUpdateModel = false;\n this.size = ko.observable(null);\n this.modificators = {\n bold: ko.observable(false),\n italic: ko.observable(false),\n strikeout: ko.observable(false),\n underline: ko.observable(false)\n };\n this.updateModel(value());\n this._disposables.push(value.subscribe((newVal) => {\n this.isUpdateModel = true;\n this.updateModel(newVal);\n this.isUpdateModel = false;\n }));\n this._disposables.push(this.modificators.bold.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.italic.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.strikeout.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.underline.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.family.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.size.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.unit.subscribe((newVal) => this.updateValue(value)));\n }\n _toString() {\n var leftPart = [this.family(), this.size() + this.unit()].join(', ');\n var modificators = [];\n if (this.modificators.bold())\n modificators.push('Bold');\n if (this.modificators.italic())\n modificators.push('Italic');\n if (this.modificators.underline())\n modificators.push('Underline');\n if (this.modificators.strikeout())\n modificators.push('Strikeout');\n var rightPart = modificators.join(', ');\n return !!rightPart ? [leftPart, rightPart].join(', style=') : leftPart;\n }\n updateModel(value) {\n if (!value)\n value = defaultFontSerialization();\n var components = value.split(',');\n this.family(components[0]);\n var self = this;\n availableUnits.forEach(function (element) {\n if (components[1].trim().indexOf(element.value) != -1) {\n self.size(parseFloat(components[1].split(element.value)[0]));\n self.unit(element.value);\n }\n });\n this.modificators.bold(value.indexOf('Bold') !== -1);\n this.modificators.italic(value.indexOf('Italic') !== -1);\n this.modificators.underline(value.indexOf('Underline') !== -1);\n this.modificators.strikeout(value.indexOf('Strikeout') !== -1);\n }\n updateValue(value) {\n if (!this.isUpdateModel) {\n value(this._toString());\n }\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\internal\\_extendedSvgTemplates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from './_svgTemplateEngine';\nexport var extendedTemplates = (templates) => ({\n 'dxrd-svg-fieldlist-list': templates['dxrd-svg-fieldlist-table'],\n 'dxrd-svg-fieldlist-default': templates['dxrd-svg-fieldlist-column']\n});\nSvgTemplatesEngine.addTemplates(extendedTemplates(SvgTemplatesEngine.templates));\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_validator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { ConstantValue } from '../../criteria/operators/constant';\nimport { UnaryOperator } from '../../criteria/operators/unary';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { GroupOperator } from '../../criteria/operators/group';\nexport var CriteriaSurfaceValidatorState;\n(function (CriteriaSurfaceValidatorState) {\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Left\"] = 0] = \"Left\";\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Right\"] = 1] = \"Right\";\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Unary\"] = 2] = \"Unary\";\n})(CriteriaSurfaceValidatorState || (CriteriaSurfaceValidatorState = {}));\nexport class CriteriaSurfaceValidator {\n customValidate(operator, from) {\n return false;\n }\n checkLeftPart(leftPart) {\n return leftPart instanceof OperandProperty || this.customValidate(leftPart, CriteriaSurfaceValidatorState.Left);\n }\n _checkRightPart(criteriaOperator) {\n return criteriaOperator instanceof OperandProperty\n || criteriaOperator instanceof OperandParameter\n || criteriaOperator instanceof OperandValue\n || criteriaOperator instanceof ConstantValue\n || (criteriaOperator instanceof UnaryOperator && this._checkRightPart(criteriaOperator.operand))\n || this.customValidate(criteriaOperator, CriteriaSurfaceValidatorState.Right);\n }\n checkRightPart(rigthPart) {\n if (Array.isArray(rigthPart)) {\n for (var i = 0; i < rigthPart.length; i++) {\n if (!this._checkRightPart(rigthPart[i])) {\n return false;\n }\n }\n return true;\n }\n else {\n return this._checkRightPart(rigthPart);\n }\n }\n aggregateIsValid(criteriaOperator) {\n return this.checkLeftPart(criteriaOperator.leftPart)\n && this.validateModel(criteriaOperator.condition)\n && (!!criteriaOperator.aggregatedExpression ?\n (criteriaOperator.aggregatedExpression instanceof OperandProperty ||\n this.validateModel(criteriaOperator.aggregatedExpression))\n : true);\n }\n commonOperandValid(criteriaOperator) {\n return criteriaOperator.leftPart instanceof AggregateOperand ?\n this.validateModel(criteriaOperator.leftPart) : this.checkLeftPart(criteriaOperator.leftPart)\n && this.checkRightPart(criteriaOperator.rightPart);\n }\n groupIsValid(criteriaOperator) {\n for (var i = 0; i < criteriaOperator.operands.length; i++) {\n if (!this.validateModel(criteriaOperator.operands[i])) {\n return false;\n }\n }\n return true;\n }\n unaryIsValid(criteriaOperator) {\n return criteriaOperator.operand instanceof OperandProperty || this.validateModel(criteriaOperator.operand) || this.customValidate(criteriaOperator.operand, CriteriaSurfaceValidatorState.Unary);\n }\n validateModel(criteriaOperator) {\n if (criteriaOperator instanceof AggregateOperand) {\n return this.aggregateIsValid(criteriaOperator);\n }\n else if (criteriaOperator instanceof GroupOperator) {\n return this.groupIsValid(criteriaOperator);\n }\n else if (criteriaOperator instanceof UnaryOperator) {\n return this.unaryIsValid(criteriaOperator);\n }\n else {\n return this.commonOperandValid(criteriaOperator);\n }\n }\n}\n","/**\n* DevExpress Analytics (widgets\\ace\\_ace-available.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport ace from 'ace-builds/src-noconflict/ace';\nexport var aceAvailable = createGlobalAceVariableFunc();\nfunction createGlobalAceVariableFunc() {\n var currentValue;\n return (newVal) => {\n if (newVal !== undefined)\n currentValue = newVal;\n return currentValue === undefined ? !!ace : currentValue;\n };\n}\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_tools.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { searchPlaceholder } from '../../../property-grid/localization/_localization';\nimport { findMatchesInString } from '../../../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../../../serializer/utils';\nimport { createExpressionEditorCollectionToolOptions } from '../_expressioneditor';\nimport { functionDisplay } from './_functions';\nimport { operatorNames } from './_operatorNames';\nexport class Tools extends Disposable {\n constructor(onClick, parametersOptions, options, fieldListOptions) {\n super();\n this.searchPlaceholder = () => searchPlaceholder();\n this._categories = ko.observableArray([]);\n this.toolBox = [];\n this.description = ko.observable();\n this._defaultClick = onClick;\n operatorNames.filter((item) => { return !!item.descriptionStringId; }).forEach(item => this._initDescription(item));\n var functionGroups = ko.computed(() => {\n return options() && ko.unwrap(options().functions) || functionDisplay();\n }), functions = ko.computed(() => {\n return functionGroups().map((funtionGroup) => {\n return this._createFunctionsCategoryItem(funtionGroup.items, getLocalization(funtionGroup.display, funtionGroup.localizationId));\n });\n }), createDefaultCategories = () => {\n return [\n this._createFieldsCategory(fieldListOptions, parametersOptions),\n this._createConstantCategory(),\n this._createFunctionsCategory(functions),\n this._createOperatorsCategory(operatorNames)\n ];\n }, selectedContent = ko.observable(null), resetCategoriesSelection = () => {\n var firstItem = this._categories()[0].content;\n selectedContent() && selectedContent().isSelected(false);\n selectedContent(firstItem);\n firstItem.isSelected(true);\n }, updateCategories = (newOptions) => {\n this._disposeCategories();\n var defaultCategories = createDefaultCategories();\n newOptions && newOptions.customizeCategories && newOptions.customizeCategories(this, defaultCategories, onClick);\n this._categories(defaultCategories);\n resetCategoriesSelection();\n };\n this.resetCategoriesSelection = resetCategoriesSelection;\n [functionGroups, functions].forEach(x => this._disposables.push(x));\n this._disposables.push(options.subscribe((newOptions) => {\n updateCategories(newOptions);\n }));\n updateCategories(options());\n this._disposables.push(this.showDescription = ko.computed(() => { return selectedContent() && selectedContent().showDescription; }));\n this.toolBox = [\n this._generateTab(this._categories, 'dx-expressioneditor-categories', (item) => {\n if (item.data && item.data.selectedItem && item.data.selectedItem() && item.data.items.indexOf(item.data.selectedItem()) !== -1) {\n var contentItem = item.data.selectedItem();\n this.description(this._localizedExpressionEditorItem(contentItem));\n }\n else {\n this.description(undefined);\n }\n if (selectedContent() === item)\n return;\n selectedContent().isSelected(false);\n item.isSelected(true);\n selectedContent(item);\n }),\n this._generateTab(selectedContent, 'dx-expressioneditor-selectedcontent', (item) => { this.description(this._localizedExpressionEditorItem(item)); }, this._defaultClick),\n this._generateTab(this.description, 'dx-expressioneditor-description', undefined, undefined, this.showDescription)\n ];\n }\n _generateTab(content, templateName = null, click, dblclick, visible) {\n return {\n templateName,\n content,\n click,\n dblclick,\n visible: visible || true\n };\n }\n _localizedExpressionEditorItem(item) {\n return item.descriptionStringId ? getLocalization(item.text, item.descriptionStringId) : item.description ? item.description : item.text;\n }\n _initDescription(expressionEditorItem) {\n expressionEditorItem.description = this._localizedExpressionEditorItem(expressionEditorItem);\n }\n _createFieldsCategory(fields, parameters) {\n var category = {\n displayName: getLocalization('Fields', 'AnalyticsCoreStringId.ExpressionEditor_ItemInfo_Fields'),\n content: {\n showDescription: false,\n isSelected: ko.observable(false),\n data: { fields, parameters },\n name: 'dx-expressioneditor-fields'\n },\n dispose: () => void 0\n };\n return category;\n }\n _createConstantCategory() {\n var items = [\n { text: '?', descriptionStringId: 'ExpressionEditorStringId.Constant_Null' },\n { text: 'False', descriptionStringId: 'ExpressionEditorStringId.Constant_False' },\n { text: 'True', descriptionStringId: 'ExpressionEditorStringId.Constant_True' }\n ];\n return createExpressionEditorCollectionToolOptions(items, 'Constants', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Constants', true);\n }\n _createOperatorsCategory(data) {\n return createExpressionEditorCollectionToolOptions(data, 'Operators', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Operators', true);\n }\n _createFunctionsCategoryContent(textToSearch, isSelected, items) {\n return {\n showDescription: true,\n isSelected,\n data: {\n textToSearch,\n items,\n availableItems: ko.observableArray(items),\n selectedItem: ko.observable(null)\n },\n name: 'dx-expressioneditor-collection-function',\n };\n }\n _createFunctionsCategoryItem(functions, display) {\n var result = {\n display,\n isSelected: ko.observable(false),\n data: [],\n name: 'dx-expressioneditor-collection-function',\n };\n $.map(functions, (item => {\n if (item) {\n item.forEach((functionItem) => {\n this._initDescription(functionItem);\n result.data.push(functionItem);\n });\n }\n }));\n return result;\n }\n _createFunctionsCategory(items) {\n var textToSearch = ko.observable(''), disposables = [], isSelected = ko.observable(false), timeout = null, allItems = ko.computed(() => [].concat(...items().map(x => x.data))), content = this._createFunctionsCategoryContent(textToSearch, isSelected, allItems()), category = {\n displayName: getLocalization('Functions', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Functions'),\n items, allItems, isSelected, content,\n collapsed: ko.observable(true),\n updateContent: (items, isSelected) => {\n content.isSelected && content.isSelected(false);\n content.isSelected = isSelected;\n content.isSelected(true);\n content.data.items = items;\n content.data.availableItems(content.data.items.filter(x => !!findMatchesInString(x.text, textToSearch())));\n },\n templateName: 'dx-expressioneditor-category-accordion',\n dispose: () => {\n disposables.forEach(x => x.dispose());\n disposables.splice(0, disposables.length);\n }\n };\n disposables.push(allItems);\n disposables.push(textToSearch.subscribe((newVal) => {\n timeout && clearTimeout(timeout);\n timeout = setTimeout(() => {\n category.content.data.availableItems(category.content.data.items.filter(x => !!findMatchesInString(x.text, newVal)));\n }, 150);\n }));\n return category;\n }\n _disposeCategories() {\n this._categories().forEach(category => category.dispose && category.dispose());\n }\n dispose() {\n super.dispose();\n this._disposeCategories();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\treelist\\_treelistController.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport class TreeListController {\n constructor() {\n this.selectedItem = null;\n }\n dispose() {\n this.selectedItem = null;\n }\n itemsFilter(item, path) {\n return true;\n }\n hasItems(item) {\n return item.specifics !== 'none' && (item.specifics === 'List' || item.specifics === 'ListSource' || item.isList === true);\n }\n canSelect(value) {\n return !value.hasItems;\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem && this.selectedItem.isSelected(false);\n this.selectedItem = value;\n value.isSelected(true);\n }\n }\n isDraggable(item) {\n return false;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_treeListControllers.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport { TreeListController } from '../../treelist/_treelistController';\nexport class ExpressionEditorTreeListController extends TreeListController {\n constructor(fieldName, putSelectionHandler, selectionHandler, customFilter) {\n super();\n this.fieldName = fieldName;\n this.putSelectionHandler = putSelectionHandler;\n this.selectionHandler = selectionHandler;\n this.customFilter = customFilter;\n }\n itemsFilter(item, path) {\n return item.specifics !== 'none' && item.name !== 'ReportItems' && (!this.customFilter || this.customFilter(path));\n }\n select(value) {\n if (this.selectionHandler)\n this.selectionHandler(value);\n else\n super.select(value);\n }\n getActions(item) {\n return [{ clickAction: (element) => this.putSelectionHandler(item, $.fn.constructor(element)) }];\n }\n canSelect(value) {\n return true;\n }\n}\nexport class ExpressionEditorParametersTreeListController extends TreeListController {\n constructor(customFilter, putSelectionHandler, selectionHandler) {\n super();\n this.customFilter = customFilter;\n this.putSelectionHandler = putSelectionHandler;\n this.selectionHandler = selectionHandler;\n }\n itemsFilter(item) {\n return item.specifics !== 'none' && (!this.customFilter || this.customFilter(item));\n }\n select(value) {\n this.selectionHandler(value);\n }\n getActions(item) {\n return [{\n clickAction: (element) => {\n if (item && !item.hasItems)\n this.putSelectionHandler(item.path, $.fn.constructor(element));\n }\n }];\n }\n canSelect(value) {\n return true;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_addon.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { searchPlaceholder } from '../../../property-grid/localization/_localization';\nexport class FilterEditorAddOn extends Disposable {\n constructor(criteria, popupService, action, propertyName, templateName) {\n super();\n this._filterPlaceHolder = searchPlaceholder();\n this.showPopup = (_, element) => {\n this.dispose();\n this._disposables.splice(0);\n this._popupService.title('');\n this.target.isSelected(true);\n this._updateActions(this.target);\n this._popupService.target(element);\n setTimeout(() => {\n this._popupService.visible(true);\n }, 10);\n };\n this.popupContentTemplate = 'dx-filtereditor-popup-common';\n this.filterString = ko.observable('');\n this.isFiltered = ko.observable(false);\n this.target = criteria;\n this._action = action;\n this.propertyName = propertyName;\n this._popupService = popupService;\n this.popupContentTemplate = templateName || this.popupContentTemplate;\n }\n _updateActions(viewModel) {\n this._popupService.data(null);\n if (viewModel) {\n this._disposables.push(this._popupService.visible.subscribe((newVal) => {\n this.target.isSelected(newVal);\n this.filterString('');\n }));\n this._popupService['viewModel'] = viewModel;\n var data = viewModel[this.propertyName];\n this.isFiltered(false);\n if (data && data.length > 10) {\n this.isFiltered(true);\n this._disposables.push(data = ko.pureComputed(() => {\n if (!this.filterString())\n return viewModel[this.propertyName];\n return viewModel[this.propertyName].filter(x => (x.displayText || x.name).toLocaleLowerCase().indexOf(this.filterString().toLocaleLowerCase()) != -1);\n }));\n }\n this._popupService.data({\n data: data,\n template: this.popupContentTemplate,\n click: (data) => {\n viewModel[this._action](data);\n this._popupService.visible(false);\n },\n isFiltered: this.isFiltered,\n filterString: this.filterString,\n searchPlaceholder: () => searchPlaceholder()\n });\n }\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\criteriaOperatorSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class CriteriaOperatorSurface extends Disposable {\n constructor(operator, parent, fieldListProvider, path) {\n super();\n this.isUpdated = ko.observable(false);\n this.canRemove = true;\n this.operatorType = ko.observable(null);\n this.templateName = 'dx-filtereditor-common';\n this.isSelected = ko.observable(false);\n this.operatorClass = 'criteria-operator-item-operator dxd-filter-editor-operator-back-color dxd-filter-editor-text-color';\n this.popupService = parent.popupService || { visible: ko.observable(false) };\n this.model = operator;\n this.helper = parent.helper;\n this.fieldListProvider = fieldListProvider;\n this.path = path;\n this.parent = parent;\n this.operatorType(operator.operatorType);\n this._disposables.push(this.operatorType.subscribe((newVal) => {\n this.model.assignType(newVal);\n }));\n }\n _createLeftPartProperty(value) {\n if (value instanceof OperandProperty) {\n var surface = this.createChildSurface(value);\n }\n else {\n var surface = this.createChildSurface(value);\n var specifics = Object.keys(this.helper.filterEditorOperators).reduce((key, value) => {\n if (value !== '_common' && key === 'integer'\n && !!this.helper._getFilterEditorOperator(this.model, this.helper.filterEditorOperators[value], this.reverse)) {\n key = value;\n }\n return key;\n }, 'integer');\n surface.specifics = surface.specifics || ko.observable(specifics);\n }\n surface['canChange'] = false;\n surface.canRemove = false;\n if (surface && surface.model.type === 'aggregate') {\n this.specifics = ko.computed(() => {\n return surface['aggregatedExpression']() && surface['aggregatedExpression']().specifics() || 'integer';\n });\n this.dataType = ko.computed(() => {\n return surface['aggregatedExpression']() && surface['aggregatedExpression']().dataType() || 'integer';\n });\n this._disposables.push(this.specifics);\n this._disposables.push(this.dataType);\n }\n else {\n this.specifics = surface.specifics;\n this.dataType = surface.dataType;\n }\n this.isUpdated = surface.isUpdated;\n return surface;\n }\n createChildSurface(item, path, actions) {\n return new this.helper.mapper[item.type](item, this, this.fieldListProvider, path || this.path);\n }\n getDisplayType() {\n var type = this.operatorType && this.operatorType() || '';\n var item = this.helper._getFilterEditorOperator(this.model, this.items, this.reverse);\n return item && item.name && (item.displayText || getLocalization(item.name, item.localizationId)) || this.model.displayType || type;\n }\n get items() {\n return this.helper.filterEditorOperators[this.specifics()] || this.helper.filterEditorOperators._common;\n }\n get displayType() {\n return this.getDisplayType();\n }\n get leftPart() {\n return null;\n }\n get rightPart() {\n return null;\n }\n get css() {\n return this.operatorClass + (this.isSelected() ? ' selected' : '');\n }\n change(type, surface) {\n if (!surface && type && this.model.enumType === type.type && this.reverse === type.reverse && type.type !== FunctionOperatorType) {\n this.operatorType(type.value);\n }\n else {\n this.parent.change(type, this);\n }\n this.helper.onChange();\n }\n remove(surface) {\n this.parent.remove(this);\n this.helper.onChange();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\unaryOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { GroupOperator } from '../../criteria/operators/group';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nexport class UnaryOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-unary';\n this.operand = ko.observable(null);\n var operand = this.createChildSurface(operator.operand);\n if (operator.operatorType === UnaryOperatorType.Not) {\n this.templateName = 'dx-filtereditor-not';\n operand.reverse = true;\n this.specifics = operand.specifics;\n }\n else {\n operand.dispose();\n operand = this._createLeftPartProperty(operator.operand);\n }\n this.operand(operand);\n }\n get leftPart() {\n var leftPart = this.operand();\n if (this.operand() && this.operand().reverse && this.operand().leftPart) {\n leftPart = this.operand().leftPart;\n }\n return leftPart;\n }\n get rightPart() {\n return this.operand() && this.operand().reverse ? this.operand().rightPart : null;\n }\n createChildSurface(item, path, actions) {\n if (this.operatorType() === UnaryOperatorType.Not && !this.helper._getFilterEditorOperator(item, this.helper._allFilterEditorOperators, true)) {\n this.model.operand = new GroupOperator(GroupOperatorType.And, [item]);\n }\n return super.createChildSurface(this.model.operand, path, actions);\n }\n dispose() {\n this.operand().dispose();\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\aggregateOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nexport class AggregateOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-aggregate';\n this.property = ko.observable(null);\n this.aggregatedExpression = ko.observable(null);\n this.condition = ko.observable(null);\n this.property(this._createLeftPartProperty(operator.property));\n var childPath = ko.computed(() => {\n return this.path() + '.' + this.property().propertyName();\n });\n this._disposables.push(childPath);\n if (operator.aggregatedExpression) {\n this.aggregatedExpression(this.createChildSurface(operator.aggregatedExpression, childPath));\n this.templateName = 'dx-filtereditor-aggregate-common';\n }\n if (operator.operatorType === 'Count') {\n this.templateName = 'dx-filtereditor-aggregate-common';\n }\n var surface = this.createChildSurface(operator.condition, childPath);\n surface.canRemove = false;\n if (surface instanceof UnaryOperandSurface) {\n surface.operand().canRemove = false;\n }\n this.condition(surface);\n this.change = (type, surface) => {\n if (surface) {\n var newModel = this.model.change(type, surface.model);\n var condition = this.createChildSurface(newModel, childPath);\n condition.canRemove = false;\n if (condition instanceof UnaryOperandSurface) {\n condition.operand().canRemove = false;\n }\n this.condition(condition);\n }\n else {\n if (this.operatorType() === 'Exists' || this.operatorType() === 'Count') {\n this.parent.change(type, this);\n }\n else {\n if (type && (type.value === 'Exists' || type.value === 'Count')) {\n this.parent.change(type, this);\n }\n else {\n super.change(type, surface);\n }\n }\n }\n this.helper.onChange();\n };\n }\n get leftPart() {\n return this.property && this.property();\n }\n get rightPart() {\n return this.aggregatedExpression();\n }\n dispose() {\n this.property().dispose();\n this.condition().dispose();\n this.aggregatedExpression() && this.aggregatedExpression().dispose();\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\betweenOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nexport class BetweenOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.property = ko.observable(null);\n this.end = ko.observable(null);\n this.begin = ko.observable(null);\n this.contentTemplateName = 'dx-filtereditor-between';\n this.property(this._createLeftPartProperty(operator.property));\n this.begin(this.createChildSurface(operator.begin));\n this.end(this.createChildSurface(operator.end));\n }\n get leftPart() {\n return this.property && this.property();\n }\n get rightPart() {\n return [this.begin(), this.end()];\n }\n dispose() {\n this.property().dispose();\n this.begin().dispose();\n this.end().dispose();\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\binaryOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nexport class BinaryOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-binary';\n this.leftOperand = ko.observable(null);\n this.rightOperand = ko.observable(null);\n this.leftOperand(this._createLeftPartProperty(operator.leftOperand));\n this.rightOperand(this.createChildSurface(operator.rightOperand));\n }\n get leftPart() {\n return this.leftOperand();\n }\n get rightPart() {\n return this.rightOperand();\n }\n dispose() {\n this.leftOperand().dispose();\n this.rightOperand().dispose();\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_helper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nexport function initDisplayText(object) {\n object.displayText = getLocalization(object.name, object.localizationId);\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandSurfaceBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { initDisplayText } from '../helpers/_helper';\nexport class OperandSurfaceBase extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.canChange = true;\n this.canRemove = false;\n this.changeValueType = (type) => {\n var parent = this.getRealParent(this.parent);\n var property = this.getRealProperty(this);\n var propertyLocation = this.getPropertyName(parent, property);\n var model = parent.model.changeValueType(type.instance, propertyLocation);\n if (propertyLocation.index !== null) {\n parent[propertyLocation.name]()[propertyLocation.index].dispose();\n parent[propertyLocation.name].splice(propertyLocation.index, 1, parent.createChildSurface(model));\n }\n else {\n parent[propertyLocation.name]().dispose();\n parent[propertyLocation.name](parent.createChildSurface(model));\n }\n this.helper.onChange();\n };\n }\n getRealParent(parent) {\n if (parent instanceof UnaryOperandSurface) {\n return this.getRealParent(parent.parent);\n }\n else {\n return parent;\n }\n }\n getRealProperty(property) {\n if (property.parent instanceof UnaryOperandSurface) {\n return this.getRealProperty(property.parent);\n }\n else {\n return property;\n }\n }\n getPropertyName(parent, searchProperty) {\n var position = null;\n var name = null;\n $.each(parent, (propertyName, property) => {\n if (Array.isArray(ko.unwrap(property)) && ko.isObservable(property)) {\n var index = ko.unwrap(property).indexOf(searchProperty);\n if (index > -1) {\n position = index;\n name = propertyName;\n return;\n }\n }\n else if (searchProperty === ko.unwrap(property) && ko.isObservable(property)) {\n name = propertyName;\n return;\n }\n });\n return { index: position, name: name };\n }\n getConvertableParameters(destinationSpecifics) {\n if (!this.helper.parameters())\n return [];\n return this.helper.parameters().filter((item) => {\n var sourceSpecifics = item.specifics && item.specifics.toLowerCase();\n if (sourceSpecifics == null || destinationSpecifics == null)\n return false;\n if (sourceSpecifics === destinationSpecifics)\n return true;\n if (destinationSpecifics === 'default')\n return true;\n if (destinationSpecifics === 'string')\n return true;\n if (destinationSpecifics === 'float')\n return sourceSpecifics === 'integer';\n if (destinationSpecifics === 'enum')\n return sourceSpecifics === 'integer' || sourceSpecifics === 'string';\n return false;\n });\n }\n get changeTypeItems() {\n var items = [{ name: 'Value', instance: OperandValue, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Value' }];\n if (this.helper.canChoiceProperty) {\n items.push({ name: 'Property', instance: OperandProperty, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Property' });\n }\n if (this.helper.canChoiceParameters && (this.getConvertableParameters(this.parent.specifics()).length > 0 || this.helper.canCreateParameters)) {\n items.push({ name: 'Parameter', instance: OperandParameter, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Parameter' });\n }\n items.forEach(initDisplayText);\n return items;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\functionOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class FunctionOperandSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.canRemove = true;\n this.contentTemplateName = 'dx-filtereditor-function';\n this.operands = ko.observableArray([]);\n if (operator.operands.length === 0) {\n if (parent instanceof UnaryOperandSurface) {\n this.specifics = parent.parent.specifics;\n }\n else {\n this.specifics = parent.specifics;\n }\n this.contentTemplateName = 'dx-filtereditor-function-lightweight';\n this.canRemove = false;\n }\n else {\n this.operands.push(this._createLeftPartProperty(operator.operands[0]));\n for (var i = 1; i < operator.operands.length; i++) {\n this.operands.push(this.createChildSurface(operator.operands[i]));\n }\n }\n }\n get leftPart() {\n return this.operands && this.operands()[0];\n }\n get rightPart() {\n return this.operands && this.operands().filter((_, index) => { return index !== 0; });\n }\n get displayType() {\n var item = this.items.filter((item) => { return this.operatorType() === item.value && this.reverse === item.reverse && this.model.enumType === item.type; })[0];\n if (item && item.name) {\n return item.displayText || getLocalization(item.name, item.localizationId);\n }\n else {\n if (!isNaN(parseInt(this.operatorType()))) {\n return FunctionOperatorType[this.operatorType()];\n }\n else {\n return this.operatorType() || '';\n }\n }\n }\n dispose() {\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\groupOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { initDisplayText } from '../helpers/_helper';\nimport { AggregateOperandSurface } from './aggregateOperandSurface';\nimport { OperandProperty } from '../../criteria/operators/property';\nexport class GroupOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.templateName = 'dx-filtereditor-group';\n this.operatorClass = 'criteria-operator-item-group dxd-filter-editor-group-back-color dxd-filter-editor-text-color';\n this.operands = ko.observableArray([]);\n this.createItems = null;\n this.createItems = [\n { name: 'Add group', value: true, localizationId: 'StringId.FilterMenuGroupAdd' },\n { name: 'Add condition', value: false, localizationId: 'StringId.FilterMenuConditionAdd' }\n ];\n this.createItems.forEach(initDisplayText);\n this.operands((operator.operands || []).map((operand) => {\n return this.createChildSurface(operand);\n }));\n this.specifics = ko.observable('group');\n }\n change(type, surface) {\n if (surface) {\n var specifics = surface.specifics() || 'integer';\n var operators = this.helper.filterEditorOperators[specifics] || this.helper.filterEditorOperators._common;\n if (!type) {\n var item = operators.filter((item) => {\n return surface.operatorType() === item.value && surface.reverse === item.reverse && surface.model.enumType === item.type;\n })[0];\n if (item) {\n type = item;\n }\n else {\n type = operators[0];\n }\n }\n var newModel = this.model.change(type, surface.model, surface.leftPart instanceof AggregateOperandSurface && surface.leftPart.leftPart.specifics() !== 'list');\n var position = this.operands().indexOf(surface);\n var operand = this.createChildSurface(newModel);\n this.operands()[position].dispose();\n this.operands.splice(position, 1, operand);\n }\n else {\n super.change(type, surface);\n }\n this.helper.onChange();\n }\n remove(surface) {\n if (surface) {\n this.model.remove(surface.model);\n this.operands.remove(surface);\n surface.dispose();\n }\n else {\n this.parent.remove(this);\n this.dispose();\n }\n this.helper.onChange();\n }\n create(type) {\n var newModel = this.model.create(type.value, new OperandProperty());\n this.operands.push(this.createChildSurface(newModel));\n this.helper.onChange();\n }\n get rightPart() {\n return this.operands();\n }\n dispose() {\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\inOperandSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { OperandValue } from '../../criteria/operators/value';\nexport class InOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-in';\n this.operands = ko.observableArray([]);\n this.criteriaOperator = ko.observable(null);\n this.criteriaOperator(this._createLeftPartProperty(operator.criteriaOperator));\n this.operands((operator.operands || []).map((operand) => {\n return this.createChildSurface(operand);\n }));\n this.addValue = () => {\n var value = new OperandValue(null);\n this.model.operands.push(value);\n this.operands.push(this.createChildSurface(value));\n };\n }\n get leftPart() {\n return this.criteriaOperator();\n }\n get rightPart() {\n return this.operands();\n }\n dispose() {\n this.criteriaOperator().dispose();\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandParameterSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nexport class OperandParameterSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.changeParameter = (item) => {\n this.model.parameterName = item.name;\n this.parameterName(item.name);\n this.helper.onChange();\n };\n this.operatorClass = 'criteria-operator-item-parameter dxd-filter-editor-parameter-back-color dxd-filter-editor-text-color';\n this.parameterName = ko.observable('');\n this.templateName = 'dx-filtereditor-parameter';\n this.specifics = parent.specifics;\n this.parameterName(operator.parameterName);\n if (!this.parameterName() && this.items.length > 0) {\n this.changeParameter(this.items[0]);\n }\n this.specifics && this._disposables.push(this.specifics.subscribe((newVal) => {\n if (this.items.filter(x => ko.unwrap(x.name) == this.parameterName()).length == 0)\n this.items.length > 0 ? this.changeParameter(this.items[0]) : this.changeParameter({ name: '' });\n }));\n }\n get items() {\n return this.getConvertableParameters(this.specifics());\n }\n get displayType() {\n return null;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandPropertySurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { PathRequest } from '../../common/pathRequest';\nexport class OperandPropertySurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this._displayName = ko.observable('');\n this.propertyName = ko.observable('');\n this.specifics = ko.observable('integer');\n this.dataType = ko.observable('');\n this.valueType = ko.observable('');\n this.changeProperty = (item) => {\n this.fieldsOptions().selected(item);\n };\n this.templateName = 'dx-filtereditor-property';\n this.operatorClass = 'criteria-operator-item-field dxd-filter-editor-field-back-color dxd-filter-editor-field-back-color dxd-filter-editor-text-color';\n this.propertyName(operator.propertyName);\n var options = this.helper.generateTreelistOptions(fieldListProvider, path);\n if (options.options && options.subscription) {\n this.fieldsOptions = options.options;\n this._disposables.push(options.subscription);\n }\n else {\n this.fieldsOptions = options;\n }\n this._disposables.push(this.fieldsOptions().selectedPath.subscribe((newVal) => {\n var realName = this.fieldsOptions().selectedPath().substr(this.path && this.path().length > 0 ? this.path().length + 1 : 0);\n this.propertyName(realName);\n this.model.propertyName = realName;\n this.popupService.visible(false);\n }));\n this._disposables.push(this.fieldsOptions().selected.subscribe((newVal) => {\n this._updateDisplayName(path, this.propertyName(), newVal.displayName);\n var specifics = newVal.specifics.toLowerCase();\n if (specifics.indexOf('calc') === 0) {\n specifics = specifics.split('calc')[1];\n }\n if (this.specifics() !== specifics || this.dataType() !== newVal.dataType) {\n this.specifics(specifics);\n this.dataType(newVal.dataType);\n this.parent.change();\n }\n this.helper.onChange();\n }));\n this.fieldsOptions().selectedPath(this.path && !!ko.unwrap(this.path) ? [ko.unwrap(this.path), this.propertyName()].join('.') : this.propertyName());\n this._updateSpecifics();\n this._disposables.push(this.displayName = ko.computed(() => {\n return this._displayName() || this.propertyName();\n }));\n }\n _updateDisplayName(path, propertyName, displayName) {\n if (!!this.helper.getDisplayPropertyName) {\n this.helper.getDisplayPropertyName(ko.unwrap(path), propertyName).done((newVal) => {\n this._displayName(newVal);\n });\n }\n else {\n this._displayName(displayName);\n }\n }\n _updateSpecifics() {\n var self = this;\n var propertyPath = this.propertyName().split('.');\n var realPropertyName = propertyPath.pop();\n if (ko.unwrap(this.fieldsOptions).itemsProvider) {\n this.isUpdated(true);\n ko.unwrap(this.fieldsOptions).itemsProvider.getItems(new PathRequest([this.path()].concat(propertyPath).join('.'))).done((result) => {\n var notListProperties = result.filter((item) => { return item.specifics !== 'List' && !item.isList; });\n if (!this.propertyName() && notListProperties.length > 0) {\n this.model.propertyName = notListProperties[0].name;\n this.propertyName(notListProperties[0].name);\n realPropertyName = notListProperties[0].name;\n }\n var item = result.filter((item) => { return item.name === realPropertyName; })[0];\n if (item) {\n var specifics = item.specifics.toLowerCase();\n if (specifics.indexOf('calc') === 0) {\n specifics = specifics.split('calc')[1];\n }\n this.specifics(specifics);\n this.dataType(item.dataType);\n this._updateDisplayName(this.path, this.propertyName(), item.displayName);\n }\n }).always(() => {\n this.isUpdated(false);\n });\n }\n }\n get items() {\n return this.fieldsOptions;\n }\n get displayType() {\n return null;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandValueSurface.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport DataSource from 'devextreme/data/data_source';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { formatDate } from '../../../property-grid/localization/_localization';\nimport { PathRequest } from '../../common/pathRequest';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { ValueEditorHelper } from '../../internal/_valueEditorHelper';\nimport { isNullOrEmptyString } from '../../_utils';\nimport { OperandPropertySurface } from './operandPropertySurface';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nexport class OperandValueSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this._value = ko.observable(null);\n this._scroll = null;\n this._updateDate = function (specifics) {\n if (specifics === 'date') {\n if (!(this._value() instanceof Date)) {\n this._value(new Date(new Date().setHours(0, 0, 0, 0)));\n }\n }\n else {\n this._value('');\n }\n };\n this.changeValue = () => {\n var parent = this.getRealParent(this.parent);\n var property = this.getRealProperty(this);\n var propertyLocation = this.getPropertyName(parent, property);\n var model = parent.model.changeValue(this.model, this.reverse, propertyLocation);\n if (propertyLocation.index !== null) {\n parent[propertyLocation.name]()[propertyLocation.index].dispose();\n parent[propertyLocation.name].splice(propertyLocation.index, 1, parent.createChildSurface(model));\n }\n else {\n parent[propertyLocation.name]().dispose();\n parent[propertyLocation.name](parent.createChildSurface(model));\n }\n };\n this.dataType = ko.observable('');\n this.values = ko.observable([]);\n this.isEditable = ko.observable(false);\n this.templateName = 'dx-filtereditor-value';\n this._getBaseOptions = (element) => {\n return {\n value: this._value,\n onFocusOut: () => this.isEditable(false),\n onFocusIn: () => this.scrollTo(element)\n };\n };\n this.getNumberEditorOptions = (element) => {\n return ValueEditorHelper.getNumberEditorOptions(this.dataType(), this.specifics(), this._getBaseOptions(element));\n };\n this.getStringEditorOptions = (element) => {\n return this._getBaseOptions(element);\n };\n this.getBoolEditorOptions = (element, $root) => {\n return Object.assign({ dataSource: [\n { val: 'True', text: 'Yes', localizationId: 'AnalyticsCoreStringId.ParametersPanel_True' },\n { val: 'False', text: 'No', localizationId: 'AnalyticsCoreStringId.ParametersPanel_False' }\n ], valueExpr: 'val', displayExpr: 'text', dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n this.getDateEditorOptions = (element, $root) => {\n return Object.assign({ closeOnValueChange: true, type: 'date', dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n this.getListEditOptions = (element, $root) => {\n var isCustomValue = typeof this.items[0] !== 'object';\n return Object.assign({ dataSource: this.dataSource, acceptCustomValue: isCustomValue, valueExpr: !isCustomValue ? 'value' : undefined, displayExpr: !isCustomValue ? 'display' : undefined, useItemTextAsTitle: true, searchEnabled: true, dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n var dataSource = null;\n this._disposables.push(this.dataSource = ko.computed(() => {\n dataSource && dataSource.dispose();\n dataSource = new DataSource({\n store: this.values(),\n paginate: this.values().length > 200,\n pageSize: 100\n });\n return dataSource;\n }));\n if (parent instanceof UnaryOperandSurface) {\n this.specifics = parent.parent.specifics;\n this.isUpdated = parent.parent.isUpdated;\n this.dataType = parent.parent.dataType;\n if (parent.model.operatorType === UnaryOperatorType.Minus) {\n this.reverse = true;\n }\n }\n else {\n this.specifics = parent.specifics;\n this.isUpdated = parent.isUpdated;\n this.dataType = parent.dataType;\n }\n if (operator.specifics && ko.isWritableObservable(this.specifics))\n this.specifics(operator.specifics);\n this._disposables.push(this.specifics.subscribe((newVal) => {\n if (!this.isUpdated || !this.isUpdated()) {\n operator.specifics = newVal;\n this._updateDate(newVal);\n }\n }));\n this._value(operator.value);\n this._disposables.push(this._value.subscribe((newVal) => {\n this.model.value = newVal;\n this.helper.onChange();\n }));\n if (isNullOrEmptyString(this._value())) {\n this._updateDate(this.specifics());\n }\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var value = this._value();\n if (value instanceof Date) {\n value = formatDate(value);\n }\n if (this.items.length > 0) {\n var result = this.items.filter((item) => { return String(item.value) === String(value); })[0];\n if (result) {\n return result.display;\n }\n }\n if (this.reverse) {\n value = '-' + value;\n }\n return value !== null && value !== undefined && value !== '' ? value : this.getDefaultValue();\n },\n write: (newVal) => {\n if (newVal > 0 && !this.reverse || newVal < 0 && this.reverse) {\n this._value(newVal);\n }\n else if (newVal > 0 && this.reverse || newVal < 0 && !this.reverse) {\n this.reverse = !this.reverse;\n this._value(newVal < 0 ? ('' + newVal).substring(1) : newVal);\n this.changeValue();\n }\n }\n }));\n this._disposables.push(ko.computed(() => {\n var itemsProvider = ko.unwrap(fieldListProvider);\n if (itemsProvider && itemsProvider.getValues && this.parent.leftPart instanceof OperandPropertySurface) {\n if (this.parent.leftPart.propertyName()) {\n itemsProvider.getValues(new PathRequest(ko.unwrap(this.path) + '.' + this.parent.leftPart.propertyName())).done((result) => {\n this.values(result);\n });\n }\n }\n }));\n operator.specifics = this.specifics();\n }\n get items() {\n return this.values();\n }\n get displayType() {\n return null;\n }\n isDefaultDisplay() {\n return this.value() === this.getDefaultValue();\n }\n getDefaultValue() {\n return OperandValueSurface._defaultValue ? OperandValueSurface._defaultValue :\n OperandValueSurface._defaultValue = getLocalization('Enter a value', 'StringId.FilterEmptyEnter');\n }\n scrollTo(element) {\n if (!this._scroll) {\n var scrollElement = element.closest('.dx-filtereditor-tree');\n this._scroll = dxScrollView.getInstance(scrollElement);\n }\n this._scroll.scrollToElement(element);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_treelistController.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { TreeListController } from '../../treelist/_treelistController';\nexport class FilterEditorTreeListController extends TreeListController {\n constructor(selectedItem) {\n super();\n this.selectedItem = selectedItem;\n }\n itemsFilter(item) {\n return true;\n }\n hasItems(item) {\n return item.specifics !== 'none' && (item.specifics !== 'List' && item.isList === true);\n }\n canSelect(value) {\n return !value.data.isList || (value.data.isList === true && value.data.specifics === 'List');\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem(value.data);\n value.isSelected(true);\n }\n }\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\helper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { BetweenOperator } from '../../criteria/operators/between';\nimport { InOperator } from '../../criteria/operators/in';\nimport { BinaryOperatorType } from '../../criteria/operators/options/binary';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { AggregateOperandSurface } from '../operators/aggregateOperandSurface';\nimport { BetweenOperandSurface } from '../operators/betweenOperandSurface';\nimport { BinaryOperandSurface } from '../operators/binaryOperandSurface';\nimport { CriteriaOperatorSurface } from '../operators/criteriaOperatorSurface';\nimport { FunctionOperandSurface } from '../operators/functionOperandSurface';\nimport { GroupOperandSurface } from '../operators/groupOperandSurface';\nimport { InOperandSurface } from '../operators/inOperandSurface';\nimport { OperandParameterSurface } from '../operators/operandParameterSurface';\nimport { OperandPropertySurface } from '../operators/operandPropertySurface';\nimport { OperandValueSurface } from '../operators/operandValueSurface';\nimport { UnaryOperandSurface } from '../operators/unaryOperandSurface';\nimport { FilterEditorAddOn } from './_addon';\nimport { initDisplayText } from './_helper';\nimport { FilterEditorSerializer } from './_serializer';\nimport { FilterEditorTreeListController } from './_treelistController';\nimport { CriteriaSurfaceValidator } from './_validator';\nexport class FilterEditorHelper {\n constructor(serializer) {\n this.rtl = false;\n this.parameters = ko.observable([]);\n this.canSelectLists = true;\n this.canCreateParameters = false;\n this.canChoiceParameters = true;\n this.canChoiceProperty = true;\n this.criteriaTreeValidator = new CriteriaSurfaceValidator();\n this.filterEditorOperators = {\n _common: [\n { name: 'Equals', _type: 'binary', insertVal: '==', value: BinaryOperatorType.Equal, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseEquals' },\n { name: 'Does not equal', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.Equal, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseDoesNotEqual' },\n { name: 'Does not equal', _type: 'binary', insertVal: '!=', value: BinaryOperatorType.NotEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseDoesNotEqual' },\n { name: 'Equals', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.NotEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseEquals' },\n { name: 'Is greater than', _type: 'binary', insertVal: '>', value: BinaryOperatorType.Greater, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is less than or equal to', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.Greater, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is greater than or equal to', _type: 'binary', insertVal: '>=', value: BinaryOperatorType.GreaterOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreaterOrEqual' },\n { name: 'Is less than', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.GreaterOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLess' },\n { name: 'Is less than', _type: 'binary', insertVal: '<', value: BinaryOperatorType.Less, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLess' },\n { name: 'Is greater than or equal to', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.Less, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreaterOrEqual' },\n { name: 'Is less than or equal to', _type: 'binary', insertVal: '<=', value: BinaryOperatorType.LessOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLessOrEqual' },\n { name: 'Is greater than', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.LessOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is between', _type: 'between', value: 'Between', insertVal: 'Between(, )', paramCount: 1, type: BetweenOperator, localizationId: 'StringId.FilterClauseBetween' },\n { name: 'Is not between', _type: 'between', value: 'Between', insertVal: 'Between(, )', paramCount: 1, type: BetweenOperator, reverse: true, localizationId: 'StringId.FilterClauseNotBetween' }\n ],\n string: [],\n guid: [],\n integer: [],\n float: [],\n date: [],\n list: [],\n group: [],\n bool: []\n };\n this.onChange = () => { };\n this.onEditorFocusOut = (criteria) => { };\n this.onSave = (criteria) => { };\n this.onClosing = () => { };\n this.handlers = {\n create: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'create', 'createItems'),\n templateName: 'dx-filtereditor-create'\n };\n },\n change: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'change', 'items'),\n templateName: 'dx-filtereditor-change'\n };\n },\n changeProperty: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeProperty', 'items', 'dx-filtereditor-popup-treelist'),\n templateName: 'dx-filtereditor-changeProperty'\n };\n },\n changeValueType: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeValueType', 'changeTypeItems'),\n templateName: 'dx-filtereditor-changeValueType'\n };\n },\n changeParameter: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeParameter', 'items'),\n templateName: 'dx-filtereditor-changeParameter'\n };\n }\n };\n this.mapper = {\n aggregate: AggregateOperandSurface,\n property: OperandPropertySurface,\n parameter: OperandParameterSurface,\n value: OperandValueSurface,\n group: GroupOperandSurface,\n between: BetweenOperandSurface,\n binary: BinaryOperandSurface,\n function: FunctionOperandSurface,\n in: InOperandSurface,\n unary: UnaryOperandSurface,\n default: CriteriaOperatorSurface\n };\n this.serializer = serializer || new FilterEditorSerializer();\n this.filterEditorOperators.string = [].concat(this.filterEditorOperators._common, [\n { name: 'Contains', _type: 'function', insertVal: 'Contains(, )', value: FunctionOperatorType.Contains, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseContains' },\n { name: 'Does not contain', _type: 'function', value: FunctionOperatorType.Contains, type: FunctionOperatorType, reverse: true, localizationId: 'StringId.FilterClauseDoesNotContain' },\n { name: 'Begins with', _type: 'function', insertVal: 'StartsWith(, )', value: FunctionOperatorType.StartsWith, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseBeginsWith' },\n { name: 'Ends with', _type: 'function', insertVal: 'StartsWith(, )', value: FunctionOperatorType.EndsWith, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseEndsWith' },\n { name: 'Is like', _type: 'binary', insertVal: 'Like', value: BinaryOperatorType.Like, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLike' },\n { name: 'Is not like', _type: 'binary', insertVal: 'Not Like', value: BinaryOperatorType.Like, type: BinaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseNotLike' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', paramCount: 1, type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n { name: 'Is blank', _type: 'function', insertVal: 'IsNullOrEmpty()', emptyRightPart: true, value: FunctionOperatorType.IsNullOrEmpty, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseIsNullOrEmpty' },\n { name: 'Is not blank', _type: 'function', insertVal: 'Not IsNullOrEmpty()', emptyRightPart: true, value: FunctionOperatorType.IsNullOrEmpty, type: FunctionOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNullOrEmpty' }\n ]);\n this.filterEditorOperators.guid = this.filterEditorOperators.string;\n this.filterEditorOperators.integer = [].concat(this.filterEditorOperators._common, [\n { name: 'Is null', _type: 'unary', insertVal: 'Is Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, localizationId: 'StringId.FilterClauseIsNull' },\n { name: 'Is not null', _type: 'unary', insertVal: 'Is Not Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNull' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', paramCount: 1, type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n ]);\n this.filterEditorOperators.float = this.filterEditorOperators.integer;\n this.filterEditorOperators.bool = this.filterEditorOperators.integer;\n this.filterEditorOperators.date = [].concat(this.filterEditorOperators._common, [\n { name: 'Is null', _type: 'unary', insertVal: 'Is Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, localizationId: 'StringId.FilterClauseIsNull' },\n { name: 'Is not null', _type: 'unary', insertVal: 'Is Not Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNull' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n { name: 'Is beyond this year', _type: 'function', insertVal: 'IsOutlookIntervalBeyondThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalBeyondThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalBeyondThisYear' },\n { name: 'Is next week', _type: 'function', insertVal: 'IsOutlookIntervalNextWeek()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalNextWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalNextWeek' },\n { name: 'Is tomorrow', _type: 'function', insertVal: 'IsOutlookIntervalTomorrow()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalTomorrow, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalTomorrow' },\n { name: 'Is today', _type: 'function', insertVal: 'IsOutlookIntervalToday()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalToday, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalToday' },\n { name: 'Is yesterday', _type: 'function', insertVal: 'IsOutlookIntervalYesterday()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalYesterday, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalYesterday' },\n { name: 'Is last week', _type: 'function', insertVal: 'IsOutlookIntervalLastWeek()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalLastWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLastWeek' },\n { name: 'Is prior this year', _type: 'function', insertVal: 'IsOutlookIntervalPriorThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalPriorThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalPriorThisYear' },\n { name: 'Is same day', _type: 'function', insertVal: 'IsSameDay(, )', value: FunctionOperatorType.IsSameDay, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsSameDay' },\n { name: 'Is this month', _type: 'function', insertVal: 'IsThisMonth()', emptyRightPart: true, value: FunctionOperatorType.IsThisMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisMonth' },\n { name: 'Is this week', _type: 'function', insertVal: 'IsThisWeek()', emptyRightPart: true, value: FunctionOperatorType.IsThisWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisWeek' },\n { name: 'Is this year', _type: 'function', insertVal: 'IsThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisYear' },\n { name: 'Is next month', _type: 'function', insertVal: 'IsNextMonth', emptyRightPart: true, value: FunctionOperatorType.IsNextMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNextMonth' },\n { name: 'Is next year', _type: 'function', insertVal: 'IsNextYear()', emptyRightPart: true, value: FunctionOperatorType.IsNextYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNextYear' },\n { name: 'Is last month', _type: 'function', insertVal: 'IsLastMonth()', emptyRightPart: true, value: FunctionOperatorType.IsLastMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsLastMonth' },\n { name: 'Is last year', _type: 'function', insertVal: 'IsLastYear()', emptyRightPart: true, value: FunctionOperatorType.IsLastYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsLastYear' },\n { name: 'Is the year-to-date period', _type: 'function', insertVal: 'IsYearToDate()', emptyRightPart: true, value: FunctionOperatorType.IsYearToDate, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsYearToDate' },\n { name: 'Is January', _type: 'function', insertVal: 'IsJanuary()', emptyRightPart: true, value: FunctionOperatorType.IsJanuary, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJanuary' },\n { name: 'Is February', _type: 'function', insertVal: 'IsFebruary()', emptyRightPart: true, value: FunctionOperatorType.IsFebruary, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsFebruary' },\n { name: 'Is March', _type: 'function', insertVal: 'IsMarch()', emptyRightPart: true, value: FunctionOperatorType.IsMarch, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsMarch' },\n { name: 'Is April', _type: 'function', insertVal: 'IsApril()', emptyRightPart: true, value: FunctionOperatorType.IsApril, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsApril' },\n { name: 'Is May', _type: 'function', insertVal: 'IsMay()', emptyRightPart: true, value: FunctionOperatorType.IsMay, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsMay' },\n { name: 'Is June', _type: 'function', insertVal: 'IsJune()', emptyRightPart: true, value: FunctionOperatorType.IsJune, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJune' },\n { name: 'Is July', _type: 'function', insertVal: 'IsJuly()', emptyRightPart: true, value: FunctionOperatorType.IsJuly, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJuly' },\n { name: 'Is August', _type: 'function', insertVal: 'IsAugust()', emptyRightPart: true, value: FunctionOperatorType.IsAugust, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsAugust' },\n { name: 'Is September', _type: 'function', insertVal: 'IsSeptember()', emptyRightPart: true, value: FunctionOperatorType.IsSeptember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsSeptember' },\n { name: 'Is October', _type: 'function', insertVal: 'IsOctober()', emptyRightPart: true, value: FunctionOperatorType.IsOctober, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOctober' },\n { name: 'Is November', _type: 'function', insertVal: 'IsNovember()', emptyRightPart: true, value: FunctionOperatorType.IsNovember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNovember' },\n { name: 'Is December', _type: 'function', insertVal: 'IsDecember()', emptyRightPart: true, value: FunctionOperatorType.IsDecember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsDecember' },\n ]);\n this.filterEditorOperators.list = [\n { name: 'Exists', _type: 'aggregate', value: 'Exists', insertVal: 'Exists()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateExists' },\n { name: 'Count', _type: 'aggregate', value: 'Count', insertVal: 'Count()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateCount' },\n { name: 'Max', _type: 'aggregate', value: 'Max', insertVal: 'Max()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateMax' },\n { name: 'Min', _type: 'aggregate', value: 'Min', insertVal: 'Min()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateMin' },\n { name: 'Sum', _type: 'aggregate', value: 'Sum', insertVal: 'Sum()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateSum' },\n { name: 'Avg', _type: 'aggregate', value: 'Avg', insertVal: 'Avg()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateAvg' }\n ];\n this.filterEditorOperators.group = [\n { name: 'And', _type: 'group', insertVal: 'And', value: GroupOperatorType.And, type: GroupOperatorType, localizationId: 'StringId.FilterGroupAnd' },\n { name: 'Or', _type: 'group', insertVal: 'Or', value: GroupOperatorType.Or, type: GroupOperatorType, localizationId: 'StringId.FilterGroupOr' },\n { name: 'Not And', _type: 'group', value: GroupOperatorType.And, reverse: true, type: GroupOperatorType, localizationId: 'StringId.FilterGroupNotAnd' },\n { name: 'Not Or', _type: 'group', value: GroupOperatorType.Or, reverse: true, type: GroupOperatorType, localizationId: 'StringId.FilterGroupNotOr' },\n ];\n this._initDisplayText();\n }\n get _allFilterEditorOperators() {\n var operators = [];\n Object.keys(this.filterEditorOperators).forEach(propertyName => {\n operators.push(...this.filterEditorOperators[propertyName]);\n });\n return operators;\n }\n _getFilterEditorOperator(item, items, reverse) {\n return items.filter(x => x.value === item.operatorType && x.type === item.enumType && x.reverse === reverse)[0];\n }\n _initDisplayText() {\n Object.keys(this.filterEditorOperators).forEach(specific => {\n this.filterEditorOperators[specific].forEach(initDisplayText);\n });\n }\n registrateOperator(specific, targetEnum, value, name, opreatorType = 'function', reverse = false, localizationId) {\n if (this.filterEditorOperators[specific]) {\n if (!targetEnum[value]) {\n var maxNumber = 0;\n var index = 0;\n $.each(targetEnum, (name, _) => {\n index = parseInt(name);\n if (!isNaN(index) && maxNumber < index) {\n maxNumber = index;\n }\n });\n maxNumber++;\n targetEnum[maxNumber] = value;\n targetEnum[value] = maxNumber;\n }\n var newOperator = { name: name, value: targetEnum[value], type: targetEnum, _type: opreatorType, reverse: reverse, displayText: getLocalization(name, localizationId) };\n this.filterEditorOperators[specific].push(newOperator);\n }\n }\n generateTreelistOptions(fieldListProvider, path) {\n var treeListOptions = ko.observable(null);\n var selected = ko.observable(null);\n return {\n subscription: ko.computed(() => {\n treeListOptions({\n itemsProvider: ko.unwrap(fieldListProvider),\n selectedPath: ko.observable(''),\n selected: selected,\n path: ko.unwrap(path),\n treeListController: new FilterEditorTreeListController(selected),\n rtl: this.rtl\n });\n }),\n options: treeListOptions\n };\n }\n}\nexport var DefaultFilterEditorHelper = createGlobalModuleVariableFunc(FilterEditorHelper);\nexport function _setDefaultFilterEditorHelper(helperType) {\n DefaultFilterEditorHelper(helperType);\n}\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_codeCompletor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CodeCompletor, createFunctionCompletion } from '../../common/_codeCompletor';\nimport { FilterEditorHelper } from './helper';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class FilterEditorCodeCompletor extends CodeCompletor {\n constructor(options) {\n super(options);\n var helper = new FilterEditorHelper();\n var functions = [];\n var aggregate = [];\n var operators = [];\n var groups = Object.keys(helper.filterEditorOperators);\n groups.forEach((groupName) => {\n helper.filterEditorOperators[groupName].forEach((operator) => {\n if (operator.insertVal) {\n var name = operator.name, insertVal = operator.insertVal, paramCount = operator.paramCount;\n if (operator.type === FunctionOperatorType && functions.filter(x => x.name === name).length === 0) {\n functions.push({ name: name, insertVal: insertVal });\n }\n else if (operator.type === AggregateOperand && aggregate.filter(x => x.name === name).length === 0) {\n aggregate.push({ name: name, insertVal: insertVal });\n }\n else if (operator.type !== AggregateOperand && operator.type !== FunctionOperatorType && operators.filter(x => x.name === name).length === 0) {\n operators.push({ name: name, insertVal: insertVal, paramCount: paramCount });\n }\n }\n });\n });\n this.filterEditorAvailable = { operators, aggregate, functions };\n }\n getFunctionsCompletions() {\n var functions = [];\n this.filterEditorAvailable.functions.forEach(funcItem => {\n functions.push(createFunctionCompletion({ text: funcItem.name, paramCount: funcItem.insertVal.split(',').length }, funcItem.insertVal, funcItem.insertVal));\n });\n return functions;\n }\n getAggregateCompletions() {\n var functions = [];\n this.filterEditorAvailable.aggregate.forEach(funcItem => {\n functions.push(createFunctionCompletion({ text: funcItem.name, paramCount: 0 }, funcItem.insertVal, funcItem.insertVal));\n });\n return functions;\n }\n getOperatorCompletions(prefix) {\n var operators = [];\n this.filterEditorAvailable.operators.forEach(operator => {\n operators.push((operator.insertVal.match(new RegExp('\\\\([^\\\\(\\\\)]*\\\\)', 'g'))) ?\n createFunctionCompletion({ text: operator.name, paramCount: operator.paramCount || operator.insertVal.split(',').length }, operator.insertVal, operator.insertVal) :\n { caption: operator.insertVal, snippet: prefix + operator.insertVal, meta: 'operator' });\n });\n return operators;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\formatstring\\_patterns.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var formatStringStandardPatterns = {\n 'DateTime': { type: 'System.DateTime', value: new Date(Date.now()), patterns: [] },\n 'Number': { type: 'System.Int32', value: '123456789', patterns: ['#.00', '#,#', '0.E+0.0', '0.e+0.0', 'n', 'n1', 'n2', 'e', 'e1', 'f', 'f1'] },\n 'Percent': { type: 'System.Int32', value: '100', patterns: ['0.00%', '0%'] },\n 'Currency': { type: 'System.Int32', value: '100', patterns: ['$0.00', '$0', 'c', 'c1', 'c2'] },\n 'Special': { type: 'System.Int32', value: '123456789', patterns: ['(###) ### - ####', '### - ## - ####'] },\n 'General': { type: 'System.String', value: '', patterns: ['General format have no specific number format'] }\n};\n","/**\n* DevExpress Analytics (widgets\\internal\\_popupComponentBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class PopupComponentBase extends Disposable {\n constructor() {\n super(...arguments);\n this._component = ko.observable();\n this.onContentReady = (e) => {\n this._component(e.component);\n };\n this.hideOnOutsideClick = (e) => {\n var component = this.getComponent();\n var $content = component && $.fn.constructor(component.content());\n return !$content || !($content.has(e.target).length || $content.is(e.target));\n };\n }\n getComponent() {\n return ko.unwrap(this._component);\n }\n dispose() {\n super.dispose();\n var component = this._component();\n component && component.dispose();\n this._component(null);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\internal\\_popupwithautoheight.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport dxPopup from 'devextreme/ui/popup';\nexport class dxPopupWithAutoHeight extends dxPopup {\n _setContentHeight() {\n this['_$popupContent'].css({\n height: '100%'\n });\n }\n}\nregisterComponent('dxPopupWithAutoHeight', dxPopupWithAutoHeight);\n","/**\n* DevExpress Analytics (widgets\\internal\\_resizeHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend } from '../../serializer/_utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class ResizeHelper {\n constructor(options = {}) {\n this.options = options;\n this._resize = (deltaWidth, deltaHeight, oldDelta, element) => {\n if (this.options.resultSize) {\n this.options.resultSize(this.options.resultSize() - (deltaWidth || deltaHeight) + oldDelta);\n }\n else {\n if (element) {\n if (deltaWidth) {\n const newWidth = element.offsetWidth - deltaWidth + oldDelta;\n element.style.width = `${newWidth}px`;\n }\n else if (deltaHeight) {\n const newHeight = element.offsetHeight + deltaHeight - oldDelta;\n element.style.height = `${newHeight}px`;\n }\n }\n }\n return deltaWidth || deltaHeight;\n };\n }\n resizable(resizeHandler, handles) {\n if (!resizeHandler)\n resizeHandler = { starting: () => { }, stopped: () => { } };\n var oldDelta = 0;\n return extend({}, resizeHandler, {\n handles: handles,\n $selectedNodes: $.fn.constructor(),\n stopped: () => { oldDelta = 0; },\n resize: (event, element, boundsDiff) => {\n oldDelta = this._resize(-boundsDiff.width, boundsDiff.height, oldDelta, element);\n this.options.onResize && this.options.onResize();\n },\n handleClassName: 'dxd-back-secondary',\n disabled: this.options.disabled || ko.observable(false)\n });\n }\n}\n","/**\n* DevExpress Analytics (widgets\\treelist\\options.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nexport var LoadChildItemsForCollapsedNodes = createGlobalModuleVariableFunc(true);\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\pictureEditMode.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var PictureEditMode;\n(function (PictureEditMode) {\n PictureEditMode[PictureEditMode[\"Image\"] = 0] = \"Image\";\n PictureEditMode[PictureEditMode[\"Signature\"] = 1] = \"Signature\";\n PictureEditMode[PictureEditMode[\"ImageAndSignature\"] = 2] = \"ImageAndSignature\";\n})(PictureEditMode || (PictureEditMode = {}));\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorTypes.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var PictureEditorActionId;\n(function (PictureEditorActionId) {\n PictureEditorActionId[PictureEditorActionId[\"OpenFile\"] = 0] = \"OpenFile\";\n PictureEditorActionId[PictureEditorActionId[\"PickImage\"] = 1] = \"PickImage\";\n PictureEditorActionId[PictureEditorActionId[\"Alignment\"] = 2] = \"Alignment\";\n PictureEditorActionId[PictureEditorActionId[\"Brush\"] = 3] = \"Brush\";\n PictureEditorActionId[PictureEditorActionId[\"Clear\"] = 4] = \"Clear\";\n PictureEditorActionId[PictureEditorActionId[\"Reset\"] = 5] = \"Reset\";\n})(PictureEditorActionId || (PictureEditorActionId = {}));\n","/**\n* DevExpress Analytics (widgets\\treelist\\_treelistItem.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { CodeResolver } from '../../property-grid/internal/_codeResolver';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { SvgTemplatesEngine } from '../../property-grid/widgets/internal/_svgTemplateEngine';\nimport { Disposable } from '../../serializer/utils';\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nimport { PathRequest } from '../common/pathRequest';\nimport { LoadChildItemsForCollapsedNodes } from './options';\nexport var maxSearchLevel = createGlobalModuleVariableFunc(5);\nexport var treeListEditAction = {\n templateName: 'dx-treelist-edit-action',\n imageClassName: '',\n text: 'Edit',\n clickAction: $.noop,\n displayText: () => getLocalization('Edit', 'AnalyticsCoreStringId.Group_Edit')\n};\nexport class DefaultTreeListItemFactory {\n createRootItem(options, path, onItemsVisibilityChanged, rtl) {\n return new TreeListRootItemViewModel(options, path, onItemsVisibilityChanged, rtl);\n }\n createItem(options, path, onItemsVisibilityChanged, rtl, resolver) {\n return new TreeListItemViewModel(options, path, onItemsVisibilityChanged, rtl, resolver);\n }\n}\nexport class TreeListEllipsisButton {\n constructor(_availableItemsCount, padding, pageSize) {\n this._availableItemsCount = _availableItemsCount;\n this.padding = padding;\n this.pageSize = pageSize;\n this.templateName = 'dx-treelist-item-ellipsis';\n this.collapsed = () => true;\n this.visibleItems = () => [];\n this.text = () => getLocalization('Show more...', 'AnalyticsCoreStringId.QueryBuilder_Tables_ShowMore');\n }\n renderNext() {\n this._availableItemsCount(this._availableItemsCount() + this.pageSize);\n }\n}\nexport class TreeListItemViewModel extends Disposable {\n constructor(options, path = [], onItemsVisibilityChanged = $.noop, rtl = false, resolver = new CodeResolver()) {\n super();\n this.resolver = resolver;\n this._rtl = false;\n this._data = ko.observable(null);\n this._actions = ko.observable([]);\n this._isVisible = ko.observable(true);\n this._pageSize = -1;\n this._walkCallback = null;\n this._isLoaded = ko.observable(false);\n this._actionsSubscription = null;\n this._subscriptions = [];\n this._visibleItemsCount = ko.observable(0);\n this._iconName = () => (ko.unwrap((this.data && this.data.icon) || (this.data && this.data.specifics)) || 'default').split('.').join('_').toLowerCase();\n this._nodeIsLocked = false;\n this.level = -1;\n this.items = ko.observableArray();\n this.collapsed = ko.observable(true);\n this.isSelected = ko.observable(false);\n this.isHovered = ko.observable(false);\n this.isMultiSelected = ko.observable(false);\n this.templates = {\n accordionItem: 'dx-treelist-accordion-item',\n headerItem: 'dx-treelist-header-item',\n headerItemContent: 'dx-treelist-header-item-caption-content',\n itemTextContent: 'dx-treelist-item-text-content',\n actionsContainer: 'dx-treelist-item-actions-container',\n };\n this._pageSize = options.pageSize || -1;\n this._path = path;\n this._rtl = rtl;\n if ('loadChildItemsForCollapsedNodes' in options)\n this._loadChildItemsForCollapsedNodes = options.loadChildItemsForCollapsedNodes;\n this._factory = options.factory || new DefaultTreeListItemFactory();\n this._treeListController = options.treeListController;\n this._templateName = options.templateName;\n this._onItemsVisibilityChanged = onItemsVisibilityChanged;\n this.dragDropHandler = options.treeListController.dragDropHandler;\n this._onItemsChangedCallback = options.onItemsChanged;\n this._visible = ko.computed(() => {\n if (this.data && this._treeListController.itemsFilter && !this._treeListController.itemsFilter(this.data, this.path, this))\n return false;\n return this._isVisible();\n });\n this.getItems = () => {\n if (this.items().length > 0)\n return $.Deferred().resolve(this.items()).promise();\n return this._loadItems(options);\n };\n this._initPaginate();\n this.toggleSelected = (_, event) => {\n if (event && (event.shiftKey || event.ctrlKey || event.metaKey) && this.selectedItems().length > 0 && this._treeListController.canMultiSelect && this._treeListController.canMultiSelect(this)) {\n options.selectedPath('');\n this._treeListController.multiSelect(this, event.shiftKey, event.ctrlKey || event.metaKey);\n }\n else if (this._treeListController.canSelect(this)) {\n options.treeListController.clickHandler && options.treeListController.clickHandler(this);\n options.selectedPath(this.path);\n }\n };\n if (options.treeListController.dblClickHandler) {\n this.dblClickHandler = (item) => {\n options.treeListController.dblClickHandler && options.treeListController.dblClickHandler(item);\n };\n }\n this.toggleCollapsed = () => {\n if (this.hasItems) {\n this.collapsed(!this.collapsed.peek());\n if (!this.collapsed.peek() && this.items().length === 0) {\n this._loadItems(options, this._getLoadChildItemsForCollapsedNodes()).always(() => { onItemsVisibilityChanged(); });\n }\n else if (this._getLoadChildItemsForCollapsedNodes()) {\n this.items().forEach((item) => {\n item._treeListController.hasItems(item.data) && item.items().length === 0 && item._loadItems(options);\n });\n onItemsVisibilityChanged();\n }\n }\n };\n this.nodeImageClass = this._getNodeImageClassName();\n this._subscriptions.push(this._visible.subscribe((newValue) => this._updataParentItemsVisibilityCount(newValue)));\n }\n _equal(obj1, obj2) {\n var ignore = ['innerActions', 'noDragable', 'dragData'];\n if (obj2 === obj1)\n return true;\n return Object.keys(obj2).filter(key => ignore.indexOf(key) === -1).every((key) => {\n return obj2[key] === obj1[key];\n });\n }\n _getImageClassName(showIcon) {\n return ko.computed(() => {\n return 'dx-image-fieldlist-'\n + this._iconName()\n + (!showIcon ? ' dx-treelist-image-empty' : '');\n });\n }\n _getImageTemplateName() {\n return ko.computed(() => {\n var _templateName = 'dxrd-svg-fieldlist-' + this._iconName();\n return SvgTemplatesEngine.getExistingTemplate(_templateName);\n });\n }\n _getNodeImageClassName() {\n return ko.computed({\n read: () => {\n var result = 'dx-collapsing-image';\n if (!this.hasItems) {\n return 'dx-image-leaf-node';\n }\n if (!this.collapsed())\n result += ' dx-image-expanded';\n return result;\n }\n });\n }\n _createItemsObj(items) {\n var obj = {};\n for (var i = 0; i < items.length; i++) {\n obj[items[i].name] = { item: items[i], index: i };\n }\n return obj;\n }\n _loadItems(options, loadInnerItems = false) {\n var deferred = $.Deferred();\n if (this._loader) {\n this._loader.dispose();\n }\n this._disposables.reverse().forEach(x => x.dispose && x.dispose());\n this._disposables.splice(0);\n var promise = ko.observable();\n var subscription = promise.subscribe((value) => {\n if (!value)\n return;\n value.done((data) => {\n if (this.isDisposing) {\n deferred.reject();\n return;\n }\n this._isLoaded(true);\n var _data = data;\n var items = this.items.peek();\n var dataObj = this._createItemsObj(_data);\n var isMutated = false;\n var splicedItems = 0;\n var tempItems = [].concat.apply([], items);\n for (var i = 0; i < tempItems.length; i++) {\n if (!dataObj[tempItems[i].data.name]) {\n tempItems[i].dispose();\n items.splice(i - splicedItems, 1);\n splicedItems++;\n isMutated = true;\n }\n }\n this._visibleItemsCount(this._visibleItemsCount() - splicedItems);\n var itemsObj = this._createItemsObj(items);\n var resorted = false;\n var showIconsForChildItems = !this._treeListController.showIconsForChildItems || this._treeListController.showIconsForChildItems(this);\n var showIconTemplate = this._treeListController.showIconsForChildItems && this._treeListController.showIconsForChildItems(this);\n var visibleItemsCount = this._visibleItemsCount();\n _data.forEach((d, index) => {\n var currentItem = itemsObj[d.name];\n if (!currentItem) {\n isMutated = true;\n var newItem = this._factory.createItem(options, this.pathParts, this._onItemsVisibilityChanged, this._rtl, this.resolver);\n newItem.data = d;\n newItem.level = this.level + 1;\n newItem.parent = this;\n newItem.visible && (visibleItemsCount += 1);\n newItem.padding = this._applyPadding(this._rtl ? 'right' : 'left', 20 * newItem.level + 12);\n newItem.imageClassName = newItem._getImageClassName(showIconsForChildItems);\n newItem.imageTemplateName = newItem._getImageTemplateName();\n newItem.showIcon = showIconTemplate;\n items.splice(index, 0, newItem);\n itemsObj[d.name] = { item: newItem, index: index };\n this._walkCallback && this._walkCallback(newItem);\n }\n else {\n if (!this._equal(d, currentItem.item.data))\n currentItem.item.data = d;\n if (!resorted)\n resorted = currentItem.index !== index;\n }\n });\n this._visibleItemsCount(visibleItemsCount);\n this._walkCallback = null;\n if (resorted) {\n var index = items.reduce((acc, x, index) => {\n var max = Math.abs(index - (dataObj[x.data.name] ? dataObj[x.data.name].index : -1));\n if (!acc || acc.max < max) {\n return { max, index };\n }\n return acc;\n }, null).index;\n var curItem = items[index];\n items.splice(index, 1);\n items.splice(dataObj[curItem.data.name] ? dataObj[curItem.data.name].index : -1, 0, curItem);\n isMutated = true;\n }\n dataObj = null;\n itemsObj = null;\n if (isMutated) {\n this.items.valueHasMutated();\n this._onItemsChanged();\n }\n if (!this.collapsed() || loadInnerItems) {\n var condition = (item) => item._treeListController.hasItems(item.data);\n if (this._loadChildItemsForCollapsedNodes !== undefined)\n condition = (item) => (!item.collapsed() || loadInnerItems) && item._treeListController.hasItems(item.data);\n this.items().forEach(item => {\n if (condition(item)) {\n item._loadItems(options);\n }\n });\n }\n deferred.resolve(this.items.peek());\n var selectedPath = options.selectedPath.peek();\n if (selectedPath) {\n var item2Select = this.items.peek().filter(item => { return selectedPath.indexOf(item.path) === 0; })[0];\n if (item2Select) {\n this._selectItem(item2Select.name + selectedPath.substring(item2Select.path.length));\n }\n }\n });\n });\n this._disposables.push({\n dispose: () => {\n subscription.dispose();\n promise(null);\n }\n });\n this._disposables.push(this._loader = ko.computed(() => {\n promise(options.itemsProvider.getItems(new PathRequest(this.path, this.pathParts)));\n }));\n return deferred.promise();\n }\n _onItemsChanged() {\n if (this._onItemsChangedCallback)\n this._onItemsChangedCallback(this.items());\n }\n _getTemplateName() {\n return this._templateName || this.data && this.data.templateName || 'dx-treelist-item';\n }\n _selectItem(itemPath) {\n if (!this.hasItems) {\n return;\n }\n var selectItemDelegate = () => {\n this._find(itemPath);\n if (this.collapsed.peek()) {\n this.toggleCollapsed();\n }\n };\n if (this.items.peek().length === 0) {\n this.getItems().done((items) => {\n selectItemDelegate();\n });\n }\n else {\n selectItemDelegate();\n }\n }\n _find(itemPath) {\n var item = itemPath && this.items.peek().filter(childItem => itemPath === childItem.name\n || itemPath.indexOf(childItem.name) === 0 && itemPath[childItem.name.length] === '.')[0];\n if (item) {\n if (itemPath.length > item.name.length) {\n item._selectItem(itemPath.substr(item.name.length + 1));\n }\n else {\n this._treeListController.select(item);\n }\n }\n }\n _getItemsWithLock() {\n var deffered = $.Deferred();\n if (this._nodeIsLocked)\n return deffered.reject().promise();\n this._nodeIsLocked = true;\n this.getItems().done(result => {\n this._nodeIsLocked = false;\n deffered.resolve(result);\n }).fail(() => {\n this._nodeIsLocked = false;\n deffered.reject();\n });\n return deffered.promise();\n }\n _applyPadding(position, value) {\n var padding = {};\n padding['padding-' + position] = value;\n return padding;\n }\n _getLoadChildItemsForCollapsedNodes() {\n return this._loadChildItemsForCollapsedNodes !== undefined ?\n this._loadChildItemsForCollapsedNodes : LoadChildItemsForCollapsedNodes();\n }\n _initPaginate() {\n if (this._pageSize === -1)\n return;\n this.maxItemsCount = ko.observable(this._pageSize);\n this.visibleItems = ko.computed(() => {\n if (this.items().length === 0)\n return [];\n var result = this.items().filter(x => x._isVisible.peek());\n if (result.length > this.maxItemsCount()) {\n result = result.slice(0, this.maxItemsCount());\n result.push(new TreeListEllipsisButton(this.maxItemsCount, result[0].padding, this._pageSize));\n }\n return result;\n });\n }\n _updataParentItemsVisibilityCount(visible) {\n var _a, _b;\n visible ? (_a = this.parent) === null || _a === void 0 ? void 0 : _a._visibleItemsCount(this.parent._visibleItemsCount() + 1)\n : (_b = this.parent) === null || _b === void 0 ? void 0 : _b._visibleItemsCount(Math.max(this.parent._visibleItemsCount() - 1, 0));\n }\n get hasItems() {\n if (!this.data) {\n return true;\n }\n var hasItems = this._treeListController.hasItems(this.data);\n if (this._loadChildItemsForCollapsedNodes != undefined) {\n return this._isLoaded() ?\n hasItems && this._visibleItemsCount() > 0 :\n hasItems;\n }\n return LoadChildItemsForCollapsedNodes() ?\n hasItems && this._visibleItemsCount() > 0 :\n hasItems;\n }\n get data() {\n return this._data();\n }\n set data(newVal) {\n this._data(newVal);\n this._actionsSubscription && this._actionsSubscription.dispose();\n this._actionsSubscription = ko.computed(() => {\n this._actions(this._treeListController && this._treeListController.getActions ? this._treeListController.getActions(this) : []);\n });\n }\n get name() {\n return ko.unwrap(this.data && this.data.name);\n }\n get path() {\n return this.pathParts.join('.');\n }\n get pathParts() {\n if (this.name) {\n return (ko.unwrap(this._path) || []).concat([this.name]);\n }\n else {\n return ko.unwrap(this._path);\n }\n }\n get text() {\n return this.data && this.data.displayName;\n }\n get templateName() {\n return this._getTemplateName();\n }\n actionsTemplate() {\n return this.data && ko.unwrap(this.data['actionsTemplate']) || 'dx-treelist-item-actions-with-edit';\n }\n treeListEditAction() {\n return treeListEditAction;\n }\n get hasContent() {\n return this.data && this.data['contenttemplate'];\n }\n get actions() {\n return this._actions();\n }\n get isDraggable() {\n if (this.data && this.data['dragData']) {\n return !this.data['dragData'].noDragable;\n }\n if (this._treeListController.isDraggable) {\n return this._treeListController.isDraggable(this);\n }\n return false;\n }\n get treeListController() {\n return this._treeListController;\n }\n dispose() {\n super.dispose();\n this._actions([]);\n this.visibleItems && this.visibleItems.dispose();\n this._actionsSubscription && this._actionsSubscription.dispose();\n this.disposeObservableArray(this.items);\n this.resetObservableArray(this.items);\n this._visibleItemsCount(0);\n this.parent = null;\n this._subscriptions.forEach(x => x.dispose());\n this._walkCallback = null;\n this._visible.dispose();\n }\n get visible() {\n return this._visible();\n }\n setVisible(value) {\n this._isVisible(value);\n if (value && this.parent && !this.parent.visible)\n this.parent.setVisible(true);\n }\n getCssRules() {\n return {\n 'dx-treelist-item-selected dxd-state-selected': this.isSelected() || this.isMultiSelected()\n };\n }\n mouseenter() {\n this.isHovered(true);\n }\n mouseleave() {\n this.isHovered(false);\n }\n selectedItems() {\n return this._treeListController.selectedItems && this._treeListController.selectedItems() || [];\n }\n}\nexport class TreeListRootItemViewModel extends TreeListItemViewModel {\n constructor(_options, path = [], onItemsVisibilityChanged = $.noop, rtl = false) {\n super(_options, path, onItemsVisibilityChanged, rtl);\n this._options = _options;\n this._resolver = new CodeResolver();\n this._selectedPathSubscription = null;\n this.resolver.done(() => {\n onItemsVisibilityChanged();\n });\n this._selectedPathSubscription = _options.selectedPath.subscribe((newPath) => {\n this._selectItem(!!this.path ? newPath.substr(this.path.length + 1) : newPath);\n });\n this._selectItem(!!this.path ? this.path + '.' + _options.selectedPath() : _options.selectedPath());\n }\n dispose() {\n super.dispose();\n this._resolver.clear();\n if (this._selectedPathSubscription) {\n this._selectedPathSubscription.dispose();\n this._selectedPathSubscription = null;\n }\n }\n walkOnTree(walkCallBack) {\n this._resolver.clear();\n this._visitNextNode(this, walkCallBack);\n if (this['_pageSize'] != -1)\n this._resolver.doneOnce(() => this.items.valueHasMutated());\n return { stop: () => this._resolver.clear() };\n }\n _visitNextNode(item, walkCallback = (_item) => { }) {\n var _a;\n if (item.data && !item.data.specifics)\n throw new Error('Specific should be set');\n if (item.level >= maxSearchLevel())\n return;\n var processItemsFunc = null;\n if (item.items().length > 0) {\n processItemsFunc = () => item.items().forEach(node => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n });\n }\n else if (!item.data || item.treeListController.hasItems(item.data)) {\n if ((_a = item.treeListController.searchOptions) === null || _a === void 0 ? void 0 : _a.autoLoadItems) {\n processItemsFunc = () => item._getItemsWithLock().done(result => {\n result.forEach((node) => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n });\n });\n }\n else {\n item['_walkCallback'] = (node) => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n };\n }\n }\n if (processItemsFunc)\n this._resolver.execute(processItemsFunc, 1);\n }\n _onItemsChanged() {\n if (this._options.expandRootItems)\n this.items().forEach(item => {\n item.collapsed(false);\n });\n super._onItemsChanged();\n }\n}\n","/**\n* DevExpress Analytics (widgets\\treelist\\_treeListSearchViewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { SearchMode, findMatchesInString } from '../../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../../serializer/utils';\nimport { searchPlaceholder } from '../../property-grid/localization/_localization';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nexport class TreeListSearchOptions {\n constructor() {\n this.globalMatch = true;\n this.autoLoadItems = true;\n this.canUseRegex = false;\n this.caseSensitive = false;\n this.searchMode = SearchMode.contains;\n this.searchTimeout = 500;\n this.searchExpr = 'displayName';\n this.searchBoxTemplate = 'dx-treelist-searchbox';\n }\n}\nexport class TreeListSearchViewModel extends Disposable {\n constructor() {\n super();\n this._processedNodes = [];\n this._currentProcess = [];\n this.searchTimeout = 500;\n this._roots = [];\n this.searchPlaceholder = () => searchPlaceholder();\n var _textToSearch = ko.observable('');\n var timeout = null;\n this._disposables.push(this.value = ko.computed({\n read: () => _textToSearch(),\n write: (newVal) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n _textToSearch(newVal);\n }, this.searchTimeout);\n }\n }));\n this._disposables.push(this.value.subscribe((newValue) => this.valueChanged(newValue)));\n }\n static createController(element, controllers, modelType = TreeListSearchViewModel, templateName = 'dx-treelist-search-panel') {\n var model = new modelType();\n var $element = $.fn.constructor(element);\n var subscriptions = [];\n controllers.forEach((controller) => {\n if (!controller)\n return;\n controller.root = controller.root || ko.observable();\n subscriptions.push(controller.root.subscribe((newRoot) => {\n model.addController(newRoot);\n model.valueChanged('');\n }));\n });\n model._disposables.push({\n dispose: () => {\n controllers.forEach(controller => {\n if (controller) {\n controller.root(null);\n delete controller.root;\n }\n });\n }\n });\n var template = getTemplate(templateName);\n $element.addClass('dxrd-treelist-search-panel-container').addClass('dxd-border-primary');\n $element.children().remove();\n $element.append(template);\n ko.cleanNode($element.children()[0]);\n ko.applyBindings(model, $element.children()[0]);\n var disposeCallback = () => {\n subscriptions.forEach(x => x.dispose());\n model && model.dispose();\n ko.utils.domNodeDisposal.removeDisposeCallback(element, disposeCallback);\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, disposeCallback);\n }\n dispose() {\n super.dispose();\n this.clearProcess();\n }\n clearProcess() {\n this._currentProcess.forEach(x => x.stop && x.stop());\n this._currentProcess = [];\n this._processedNodes = [];\n }\n valueChanged(newValue) {\n if (!newValue)\n this._processedNodes.forEach(x => x.setVisible(true));\n this.clearProcess();\n this._roots.forEach((root) => {\n root.treeListController.textToSearch(newValue);\n if (newValue) {\n this._currentProcess.push(root.walkOnTree((node) => {\n var regexResult = findMatchesInString(node.data[root.treeListController.searchOptions.searchExpr], newValue, root.treeListController.searchOptions);\n this._processedNodes.push(node);\n node.setVisible(!!regexResult);\n regexResult && this._collapseTreeBranch(node);\n }));\n }\n else {\n root.items.valueHasMutated();\n }\n });\n }\n _collapseTreeBranch(node) {\n if (node.parent) {\n if (node.parent.collapsed())\n node.parent.toggleCollapsed();\n this._collapseTreeBranch(node.parent);\n }\n }\n addController(root) {\n this._roots = this._roots.filter((a) => !a.isDisposing);\n root.treeListController.textToSearch = root.treeListController.textToSearch || ko.observable('');\n if (this._roots.indexOf(root) === -1)\n this._roots.push(root);\n this.searchTimeout = Math.max.apply(Math, this._roots.map(x => x.treeListController.searchOptions.searchTimeout)) || 500;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\treelist\\_binding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { DefaultTreeListItemFactory } from './_treelistItem';\nimport { TreeListController } from './_treelistController';\nimport { TreeListSearchOptions, TreeListSearchViewModel } from './_treeListSearchViewModel';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport { extend } from '../../serializer/_utils';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nko.bindingHandlers['treelist'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var treeListViewModel = null;\n var childContext = null;\n var callback = null;\n var values = valueAccessor(), options = ko.unwrap(values), pathArray, updateScrollBar = () => {\n var options = ko.unwrap(values);\n var scrollViewElt = $.fn.constructor(element).closest('.dx-scrollview').get(0);\n var scrollView = scrollViewElt && dxScrollView.getInstance(scrollViewElt);\n scrollView && scrollView['update']();\n if (options.onItemsVisibilityChanged) {\n options.onItemsVisibilityChanged();\n }\n }, updateTreeList = (options) => {\n pathArray && pathArray.dispose();\n var treeListController = options.treeListController || new TreeListController();\n options.treeListController = treeListController;\n treeListController.dragDropHandler = treeListController.dragDropHandler || bindingContext.$root.fieldDragHandler;\n options.factory = options.factory || new DefaultTreeListItemFactory();\n options.itemsProvider = ko.unwrap(options.itemsProvider);\n options.pageSize = options.pageSize || -1;\n treeListViewModel && treeListViewModel.dispose();\n if (!options || !options.itemsProvider)\n return;\n if (!options.rtl) {\n options.rtl = $.fn.constructor(element).closest('.dx-rtl').length > 0;\n }\n pathArray = ko.computed(() => {\n var result = ko.unwrap(options.path);\n if (!Array.isArray(result)) {\n return !!result ? result.split('.') : [];\n }\n return result;\n });\n treeListViewModel = options.factory.createRootItem(options, pathArray, updateScrollBar, options.rtl);\n var treeListTemplate = options.templateHtml || getTemplate('dx-treelist');\n if (treeListController.root) {\n treeListController.searchEnabled = true;\n treeListController.searchOptions = treeListController.searchOptions || new TreeListSearchOptions();\n treeListController.root(treeListViewModel);\n }\n var $element = $.fn.constructor(element).html(treeListTemplate);\n childContext = bindingContext.createChildContext(treeListViewModel);\n ko.applyBindings(childContext, $element.children()[0]);\n callback && ko.utils.domNodeDisposal.removeDisposeCallback(element, callback);\n callback = function () {\n treeListViewModel && treeListViewModel.dispose();\n treeListViewModel = null;\n subscription && subscription.dispose();\n pathArray && pathArray.dispose();\n callback = null;\n ko.utils.domNodeDisposal.removeDisposeCallback(element, callback);\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, callback);\n };\n updateTreeList(extend({}, options));\n var subscription = null;\n if (ko.isSubscribable(values)) {\n subscription = values.subscribe((newValue) => {\n newValue && updateTreeList(extend({}, newValue));\n });\n }\n else if (ko.isSubscribable(values.itemsProvider)) {\n subscription = values.itemsProvider.subscribe((newValue) => {\n newValue && updateTreeList(extend({}, values));\n });\n }\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['treeListSearchPanel'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var template = ko.unwrap(values.template);\n var modelType = ko.unwrap(values.modelType);\n var controllers = ko.unwrap(values.controllers);\n if (!Array.isArray(controllers))\n controllers = [controllers];\n TreeListSearchViewModel.createController(element, controllers, modelType, template);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (common\\utils\\editingFieldExtensions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { extend, formatDate, parseDate, processTextEditorHotKeys } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { ValueEditorHelper } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport { PictureEditMode } from '../../viewer/widgets/pictureEditor/pictureEditMode';\nimport { PictureEditorActionId } from '../../viewer/widgets/pictureEditor/_pictureEditorTypes';\nexport var Categories = {\n Image: () => 'Image',\n Numeric: () => 'Numeric',\n DateTime: () => 'Date-Time',\n Letters: () => 'Letters'\n};\nexport class EditingFieldExtensions {\n constructor() {\n this._editors = {};\n }\n static instance() {\n if (!EditingFieldExtensions._instance) {\n EditingFieldExtensions._instance = new EditingFieldExtensions();\n EditingFieldExtensions._instance._registerStandartEditors();\n }\n return EditingFieldExtensions._instance;\n }\n _registerStandartEditors() {\n var getLocalizedString = getLocalization;\n EditingFieldExtensions.registerRegExpEditor('Integer', getLocalizedString('Integer', 'PreviewStringId.EditingFieldEditors_Integer'), Categories.Numeric(), /^-?\\d*$/, /^-?\\d+$/, '0');\n EditingFieldExtensions.registerRegExpEditor('IntegerPositive', getLocalizedString('Integer Positive', 'PreviewStringId.EditingFieldEditors_IntegerPositive'), Categories.Numeric(), /^\\d+$/, /^\\d+$/, '0');\n EditingFieldExtensions.registerRegExpEditor('FixedPoint', getLocalizedString('Fixed-Point', 'PreviewStringId.EditingFieldEditors_FixedPoint'), Categories.Numeric(), /^-?(\\d+([\\.,]?\\d*)?)?$/, /^-?\\d+([\\.,]?\\d*)?$/, '0');\n EditingFieldExtensions.registerRegExpEditor('FixedPointPositive', getLocalizedString('Fixed-Point Positive', 'PreviewStringId.EditingFieldEditors_FixedPointPositive'), Categories.Numeric(), /^\\d+([\\.,]?\\d*)?$/, /^\\d+([\\.,]?\\d*)?$/, '0');\n var dateEditorOptions = {\n onPreRender: (data) => {\n if (!(data.options.value() instanceof Date)) {\n data.options.value(parseDate(data.options.value(), false) || new Date(Date.now()));\n }\n },\n onHideEditor: (field) => {\n field.editValue(formatDate(field._editorValue()));\n }\n };\n EditingFieldExtensions.registerEditor('Date', getLocalizedString('Date', 'PreviewStringId.EditingFieldEditors_Date'), Categories.DateTime(), dateEditorOptions, 'dxrp-editing-field-datetime');\n EditingFieldExtensions.registerImageEditor({\n name: 'Image',\n displayName: getLocalizedString('Image', 'PreviewStringId.EditingFieldEditors_Image'),\n drawingEnabled: false,\n imageLoadEnabled: true\n });\n EditingFieldExtensions.registerImageEditor({\n name: 'Signature',\n displayName: getLocalizedString('Signature', 'PreviewStringId.EditingFieldEditors_Signature'),\n drawingEnabled: true,\n imageLoadEnabled: false\n });\n EditingFieldExtensions.registerImageEditor({\n name: 'ImageAndSignature',\n displayName: getLocalizedString('Image And Signature', 'PreviewStringId.EditingFieldEditors_ImageAndSignature'),\n drawingEnabled: true,\n imageLoadEnabled: true\n });\n EditingFieldExtensions.registerRegExpEditor('OnlyLatinLetters', getLocalizedString('Only Latin Letters', 'PreviewStringId.EditingFieldEditors_OnlyLatinLetters'), Categories.Letters(), /^[a-zA-Z]*$/, /^[a-zA-Z]*$/, '');\n }\n static enableImageEditorShading() {\n ['Image', 'ImageAndSignature', 'Signature'].forEach(editorType => {\n var editor = EditingFieldExtensions.instance()._editors[editorType];\n extend(true, editor, { options: { registrationOptions: { shadingEnabled: true } } });\n });\n }\n static registerImageEditor(imageRegistrationOptions) {\n imageRegistrationOptions.imageLoadEnabled = imageRegistrationOptions.imageLoadEnabled === undefined ? !imageRegistrationOptions.images : imageRegistrationOptions.imageLoadEnabled;\n imageRegistrationOptions.drawingEnabled = imageRegistrationOptions.drawingEnabled === undefined ? false : imageRegistrationOptions.drawingEnabled;\n var editMode = PictureEditMode.ImageAndSignature;\n if (!imageRegistrationOptions.imageLoadEnabled)\n editMode = PictureEditMode.Signature;\n if (!imageRegistrationOptions.drawingEnabled)\n editMode = PictureEditMode.Image;\n var options = {\n editMode: editMode,\n registrationOptions: imageRegistrationOptions\n };\n options['callbacks'] = {\n customizeActions: (s, actions) => {\n if (imageRegistrationOptions.images) {\n var imagePickerAction = s.actionsProvider.createImagePickerAction(imageRegistrationOptions.images, imageRegistrationOptions.searchEnabled, (base64) => {\n s.painter.image(base64);\n s.painter.refresh();\n });\n actions.splice(0, 0, imagePickerAction);\n if (!imageRegistrationOptions.sizeOptionsEnabled) {\n var alignmentAction = actions.filter(x => x.id === PictureEditorActionId.Alignment)[0];\n alignmentAction && actions.splice(actions.indexOf(alignmentAction), 1);\n }\n }\n if (!imageRegistrationOptions.imageLoadEnabled) {\n var openFile = actions.filter((x => x.id === PictureEditorActionId.OpenFile))[0];\n openFile && actions.splice(actions.indexOf(openFile), 1);\n }\n if (imageRegistrationOptions.sizeOptionsEnabled !== undefined && !imageRegistrationOptions.sizeOptionsEnabled) {\n var alignmentAction = actions.filter(x => x.id === PictureEditorActionId.Alignment)[0];\n alignmentAction && actions.splice(actions.indexOf(alignmentAction), 1);\n }\n if (imageRegistrationOptions.clearEnabled !== undefined && !imageRegistrationOptions.clearEnabled) {\n var clearAction = actions.filter(x => x.id === PictureEditorActionId.Clear)[0];\n clearAction && actions.splice(actions.indexOf(clearAction), 1);\n }\n if (imageRegistrationOptions.customizeActions) {\n imageRegistrationOptions.customizeActions(s, actions);\n return;\n }\n }\n };\n EditingFieldExtensions.registerEditor(imageRegistrationOptions.name, imageRegistrationOptions.displayName, Categories.Image(), options, 'dxrp-editing-field-image');\n }\n static registerEditor(name, displayName, category, options, template, validate, defaultVal = '') {\n var initValue;\n var extendOptions = {\n onInitialized: e => {\n if (validate) {\n ValueEditorHelper.validateWidgetValue(e, validate, defaultVal);\n }\n initValue = e.component.option('value');\n },\n onKeyUp: e => {\n var editor = e.component;\n processTextEditorHotKeys(e.event, {\n esc: () => {\n editor.blur();\n editor.option('value', initValue);\n },\n ctrlEnter: () => {\n editor.blur();\n }\n });\n }\n };\n EditingFieldExtensions.instance()._editors[name] = {\n name: name,\n displayName: displayName,\n category: category,\n options: $.extend({}, options, extendOptions),\n template: template\n };\n }\n static registerMaskEditor(editorID, displayName, category, mask) {\n EditingFieldExtensions.registerEditor(editorID, displayName, category, { mask: mask });\n }\n static registerRegExpEditor(editorID, displayName, category, regExpEditing, regExpFinal, defaultVal) {\n var validate = (val) => { return regExpFinal.test(val); };\n EditingFieldExtensions.registerEditor(editorID, displayName, category, ValueEditorHelper.getValueEditorOptions(regExpEditing, validate, defaultVal), null, validate, defaultVal);\n }\n static unregisterEditor(editorID) {\n delete EditingFieldExtensions.instance()._editors[editorID];\n }\n categories(excludeCategories = []) {\n var categories = [];\n Object.keys(this._editors).forEach(p => {\n var category = this._editors[p].category;\n if (excludeCategories.indexOf(category) === -1 && categories.indexOf(category) === -1) {\n categories.push(category);\n }\n });\n return categories;\n }\n editors() {\n return Object.keys(this._editors).map(key => this._editors[key]);\n }\n editorsByCategories(categories = []) {\n var editors = [];\n Object.keys(this._editors).forEach(p => {\n if (categories.indexOf(this._editors[p].category) != -1) {\n editors.push(this._editors[p]);\n }\n });\n return editors;\n }\n editor(editorID) {\n return this._editors[editorID];\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ObjectProperties } from './propertygrid';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { globalResolver } from './internal/_codeResolver';\nimport { selectPlaceholder, noDataText } from './localization/_localization';\nimport { getLocalization } from './localization/localization_utils';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport * as events from 'devextreme/events';\nimport { getTemplate } from './widgets/templateUtils';\nko.bindingHandlers['dxPropertyGrid'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-propertieseditor'), $element = $.fn.constructor(element).append(templateHtml);\n var value = valueAccessor();\n var model = new ObjectProperties(value.target, value.editorsInfo, value.level, value.parentDisabled, value.recreateEditors, value.textToSearch);\n ko.applyBindings(bindingContext.createChildContext(model), $element.children()[0]);\n addDisposeCallback(element, function () {\n model.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\nko.virtualElements.allowedBindings['lazy'] = true;\nko.bindingHandlers['lazy'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var parsedBindings = valueAccessor();\n var resolver = parsedBindings.resolver || globalResolver;\n var isResolved = parsedBindings.isResolved || ko.observable(false);\n if (parsedBindings.innerBindings) {\n parsedBindings = parsedBindings.innerBindings;\n }\n var isDisposed = false;\n var tasks = [];\n $.each(parsedBindings, (innerBindingKey, innerBindingParameters) => {\n var innerBinding = ko.bindingHandlers[innerBindingKey];\n tasks.push(resolver.execute(() => {\n if (!isDisposed) {\n var isInitialized = false;\n ko.computed({\n read: () => {\n if (!isInitialized && innerBinding.init) {\n innerBinding.init(element, () => { return innerBindingParameters; }, allBindings, viewModel, bindingContext);\n isInitialized = true;\n }\n if (innerBinding.update) {\n innerBinding.update(element, () => { return innerBindingParameters; }, allBindings, viewModel, bindingContext);\n }\n },\n disposeWhenNodeIsRemoved: element\n });\n isResolved(true);\n }\n }, 1));\n });\n addDisposeCallback(element, function () {\n isDisposed = true;\n tasks.forEach(x => x.dispose());\n tasks = [];\n });\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['dxdAccordion'] = {\n init: function (element, valueAccessor) {\n var options = valueAccessor(), $element = $.fn.constructor(element), $accordionContent = $element.find('.dx-accordion-content').first(), scrollUpdateCallback = () => {\n var $scroll = $element.parents('.dx-scrollview');\n if ($scroll.length > 0) {\n var scrollView = dxScrollView.getInstance($scroll.get(0));\n scrollView && scrollView['update']();\n }\n };\n var accordionButton = $element\n .find('.dx-accordion-header,.dx-accordion-button').get(0);\n events.off(accordionButton, 'dxclick');\n events.on(accordionButton, 'dxclick', function () {\n options.collapsed(ko.unwrap(options.alwaysShow) ? false : !options.collapsed());\n $element.addClass('dx-transition-style');\n if (options.collapsed())\n $element.addClass('dx-accordion-collapsed');\n setTimeout(() => {\n $element.removeClass('dx-accordion-collapsed');\n if (!options.collapsed())\n $element.removeClass('dx-transition-style');\n }, 500);\n });\n options.collapsed() ? $accordionContent.hide() : $accordionContent.show();\n var subscription = options.collapsed.subscribe((newVal) => {\n $accordionContent.slideToggle(options.timeout, () => scrollUpdateCallback());\n });\n addDisposeCallback(element, () => subscription.dispose());\n }\n};\nko.bindingHandlers['dxdAccordionExt'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = valueAccessor(), $element = $.fn.constructor(element), scrollUpdateCallback = () => {\n var $scroll = $element.parents('.dx-scrollview');\n if ($scroll.length > 0) {\n var scrollView = dxScrollView.getInstance($scroll.get(0));\n scrollView && scrollView['update']();\n }\n }, $accordionContent = $element.find('.dx-accordion-content').first(), accordionContentHTML = null;\n if (options.collapsed() && options.lazyContentRendering === true) {\n accordionContentHTML = $accordionContent.html();\n $accordionContent.empty();\n }\n options.collapsed.subscribe((newVal) => {\n if (newVal) {\n $accordionContent.slideUp(options.timeout, () => {\n scrollUpdateCallback();\n });\n }\n else {\n if (accordionContentHTML) {\n $accordionContent.html(accordionContentHTML);\n ko.applyBindingsToDescendants(bindingContext, $accordionContent.get(0));\n accordionContentHTML = null;\n }\n $accordionContent.slideDown(options.timeout, () => {\n scrollUpdateCallback();\n });\n }\n });\n options.collapsed() ? $accordionContent.hide() : $accordionContent.show();\n }\n};\nko.bindingHandlers['dxLocalizedSelectBox'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = valueAccessor();\n var prevDisplayExpr = options.displayExpr;\n options['placeholder'] = options['placeholder'] || selectPlaceholder();\n options['noDataText'] = options['noDataText'] || noDataText();\n options['encodeNoDataText'] = true;\n options.displayExpr = function (value) {\n if (!value)\n return value;\n if (!prevDisplayExpr)\n return getLocalization(value, value.localizationId);\n return getLocalization($.isFunction(prevDisplayExpr) ? prevDisplayExpr(value) : value[prevDisplayExpr], value.localizationId);\n };\n options.itemTemplate = function (itemData, itemIndex, itemElement) {\n var context = bindingContext.createChildContext({\n display: options.displayExpr(itemData)\n });\n $.fn.constructor(itemElement).children().remove();\n var templateHtml = getTemplate('item-with-title'), $element = $.fn.constructor(itemElement).append(templateHtml);\n ko.applyBindingsToDescendants(context, $element[0]);\n return itemElement;\n };\n if (options.useLocalizedTextAsValue) {\n options.valueExpr = options.displayExpr;\n }\n var extendedOptions = viewModel.getOptions ? viewModel.getOptions(options) : options;\n ko.bindingHandlers['dxSelectBox'].init(element, () => { return extendedOptions; }, allBindings, viewModel, bindingContext);\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['styleunit'] = {\n 'update': function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor() || {});\n $.each(value, (styleName, styleValue) => {\n styleValue = ko.utils.unwrapObservable(styleValue) || 0;\n element.style[styleName] = styleValue + 'px';\n });\n }\n};\nko.bindingHandlers['service'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = ko.unwrap(valueAccessor() || {}), findService = (serviceName) => {\n var context = bindingContext.$parents.filter((item) => { return item[serviceName] !== undefined; })[0];\n if (context) {\n return context[serviceName];\n }\n return null;\n }, service = findService(value.name), entity = service && service(viewModel);\n if (entity) {\n var childContext = bindingContext.createChildContext(entity.data);\n ko.renderTemplate(entity.templateName, childContext, {}, element, 'replaceNode');\n }\n }\n};\n","/**\n* DevExpress Analytics (property-grid\\widgets\\guideditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Editor } from './editor';\nimport { guidValidationRules, guidRequiredValidationRules } from './internal/_internal';\nexport class GuidEditor extends Editor {\n _getEditorValidationRules() {\n var _a;\n return (super._getEditorValidationRules() || []).concat(guidValidationRules).concat(((_a = this.editorOptions) === null || _a === void 0 ? void 0 : _a.isNullable) ? [] : guidRequiredValidationRules);\n }\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\metadata.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '../editorsInfo';\nimport { availableFonts } from './_fonts';\nimport { availableUnits } from './_model';\nexport var fontName = {\n propertyName: 'family', displayName: 'Font Name', localizationId: 'AnalyticsCoreStringId.FormatFontName',\n editor: editorTemplates.getEditor('combobox'), values: availableFonts, editorOptions: { searchEnabled: true }\n};\nexport var fontSize = {\n propertyName: 'size', displayName: 'Size', localizationId: 'AnalyticsCoreStringId.Font.Size', editor: editorTemplates.getEditor('numeric')\n};\nexport var fontSizeUnit = {\n propertyName: 'unit', displayName: 'Unit', localizationId: 'AnalyticsCoreStringId.Font.Unit', editor: editorTemplates.getEditor('combobox'),\n valuesArray: availableUnits\n};\nexport var fontInfo = [\n fontName,\n fontSize,\n fontSizeUnit,\n { propertyName: 'modificators', editor: editorTemplates.getEditor('modificators') },\n];\n","/**\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\editor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { FontModel } from './_model';\nimport { ObjectProperties, PropertyGridEditor } from '../../propertygrid';\nimport { fontInfo } from './metadata';\nexport class FontEditor extends PropertyGridEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n }\n createObjectProperties() {\n var model = new FontModel(this.value);\n this._disposables.push(model);\n return new ObjectProperties(ko.observable(model), { editors: fontInfo }, this.level + 1, this.disabled, undefined, this.textToSearch);\n }\n}\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\expressioneditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { Disposable } from '../../serializer/utils';\nimport { aceAvailable } from '../ace/_ace-available';\nimport { CodeCompletor } from '../common/_codeCompletor';\nimport { DisplayExpressionConverter } from '../common/_displayNameProvider';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nimport { ResizeHelper } from '../internal/_resizeHelper';\nimport { getParentContainer, isList, setCursorInFunctionParameter } from '../_utils';\nimport { Tools } from './tools/_tools';\nimport { ExpressionEditorParametersTreeListController, ExpressionEditorTreeListController } from './tools/_treeListControllers';\nimport { RangeSpecific, wrapExpressionValue } from './_expressioneditor';\nexport function getNotValidRange(value, errorMessage) {\n var start = 0;\n var end = 0;\n var parts = errorMessage.split('\\n');\n var errorText = parts[1];\n var errorLength = parts[2].length;\n if (errorText.indexOf('...') === 0) {\n errorText = errorText.split('...')[1];\n }\n var start = value.indexOf(errorText);\n var end = start + errorLength;\n return { start: start, end: end };\n}\nfunction createExpressionEditorFieldListProvider(originalProvider, fieldName) {\n return ko.computed(() => {\n var provider = ko.unwrap(originalProvider);\n var unwrappedFieldName = ko.unwrap(fieldName);\n return !unwrappedFieldName ? provider : {\n getItems: (path) => {\n var $deferred = $.Deferred();\n provider.getItems(path)\n .done((data) => {\n $deferred.resolve(data.filter(field => field.name !== unwrappedFieldName));\n })\n .fail(() => $deferred.reject());\n return $deferred.promise();\n },\n getValues: (path) => {\n return provider.getValues(path);\n }\n };\n });\n}\nexport class ExpressionEditor extends Disposable {\n constructor(options, fieldListProvider, disabled = ko.observable(false), rtl = false, _displayNameProvider, popupVisible = ko.observable(false)) {\n super();\n this.options = options;\n this._displayNameProvider = _displayNameProvider;\n this.popupVisible = popupVisible;\n this._updateTextAreaValue = (item, element) => {\n var textArea = this._getTextArea(element), textAreaValue = this.textAreaValue().toString(), cursorPosition = textArea && textArea.selectionStart || textAreaValue.length, newAddedText = textAreaValue[cursorPosition - 1] == ' ' ? (item.val || item.text || item) + ' ' : ' ' + (item.val || item.text || item) + ' ';\n this.textAreaValue([textAreaValue.slice(0, cursorPosition), newAddedText, textAreaValue.slice(cursorPosition)].join(''));\n if (textArea && textArea.setSelectionRange) {\n textArea.focus();\n var posisition = cursorPosition + (newAddedText.indexOf('(') !== -1 ? newAddedText.indexOf('(') + 1 : newAddedText.length);\n textArea.setSelectionRange(posisition, posisition);\n }\n };\n this._updateAceValue = (item, element) => {\n var editor = this.editorContainer(), { row, column: col } = editor.getCursorPosition(), insertion = (item.val || item.text || item) + ' ';\n if (col && editor.getSession().getValue().split('\\n')[row][col - 1] !== ' ')\n insertion = ' ' + insertion;\n editor.insert(insertion);\n editor.focus();\n setCursorInFunctionParameter(item.paramCount, editor, insertion);\n };\n this._updateValue = (item, element) => {\n this.aceAvailable ? this._updateAceValue(item, $.fn.constructor(element)) : this._updateTextAreaValue(item, $.fn.constructor(element));\n };\n this.patchFieldName = (fieldName) => fieldName;\n this._parametersPutSelectionHandler = (selectedItemPath, element) => {\n var pathParts = selectedItemPath.split('.');\n var newAddedString = '?' + this.patchFieldName(pathParts[pathParts.length - 1]);\n this._updateValue(newAddedString, element);\n };\n this._fieldsPutSelectionHandler = (selectedItemPath, element) => {\n var path = this.koOptions.peek().path.peek();\n var proposedFieldName = selectedItemPath.substring(path.length + 1);\n var newAddedString = '[' + this.patchFieldName(proposedFieldName) + ']';\n if (this._displayNameProvider) {\n this.displayExpressionConverter.toDisplayExpression(path, newAddedString)\n .done((result) => { this._updateValue(result, element); })\n .fail(() => { this._updateValue(newAddedString, element); });\n }\n else {\n this._updateValue(newAddedString, element);\n }\n };\n this.aceAvailable = aceAvailable();\n this.title = () => getLocalization('Expression Editor', 'AnalyticsCoreStringId.ExpressionEditor_ExpressionCaption');\n this.value = ko.observable('');\n this.textAreaValue = ko.observable('');\n this.languageHelper = {\n getLanguageMode: () => 'ace/mode/criteria',\n createCompleters: (editor, bindingContext, viewModel) => {\n var path = ko.computed(() => { return viewModel.koOptions() && ko.unwrap(viewModel.koOptions().path) || ''; }), functions = ko.computed(() => { return viewModel.koOptions() && ko.unwrap(viewModel.koOptions().functions) || []; }), completor = new CodeCompletor({\n editor,\n bindingContext,\n fieldListProvider: viewModel.fieldListProvider,\n path,\n functions,\n rootItems: viewModel.options.rootItems,\n getRealExpression: (path, member) => {\n return this.displayExpressionConverter && this.displayExpressionConverter.toRealExpression(path, member) || $.Deferred().resolve(member).promise();\n }\n });\n [path, functions].forEach(x => completor._disposables.push(x));\n return [completor];\n }\n };\n this.aceOptions = {\n showLineNumbers: false,\n showPrintMargin: false,\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n showFoldWidgets: false,\n highlightActiveLine: false\n };\n this.additionalOptions = {\n onChange: (session) => {\n var value = session.getValue();\n try {\n var operator = CriteriaOperatorStateMachine.parse(value);\n if (this.koOptions().validate) {\n this.isValid(this.koOptions().validate(operator));\n }\n session.clearAnnotations();\n }\n catch (exception) {\n var row = exception.hash && exception.hash.line || 0;\n var column = 0;\n var lines = exception.message.split('\\n');\n var text = lines[1] + '\\n' + lines[2];\n session.setAnnotations([{ row, column, text, 'type': 'error' }]);\n }\n }\n };\n this.callbacks = {\n focus: $.noop\n };\n this.koOptions = ko.observable(null);\n this.editorContainer = ko.observable();\n this.isValid = ko.observable(true);\n this.buttonItems = [];\n this.rtl = false;\n this.modelValueValid = ko.computed(() => {\n var options = this.koOptions();\n return options && ko.isObservable(options.isValid) ? options.isValid() : true;\n });\n this.modelValueWarning = ko.computed(() => {\n var options = this.koOptions();\n return options && ko.unwrap(options.warningMessage) || '';\n });\n this.getPopupContainer = getParentContainer;\n this.koOptions(options);\n this.patchFieldName = (fieldName) => {\n return this.koOptions().patchFieldName && this.koOptions().patchFieldName(fieldName) || fieldName;\n };\n this.theme = this.koOptions() && this.koOptions().theme;\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var value = this.koOptions() && ko.unwrap(this.koOptions().value);\n return (value && value.toString()) || '';\n },\n write: (newVal) => this.koOptions() && this.koOptions().value(newVal)\n }));\n if (_displayNameProvider && options.path) {\n this.displayExpressionConverter = new DisplayExpressionConverter(_displayNameProvider);\n var pathFunc = ko.pureComputed(() => this.koOptions() && this.koOptions().path && this.koOptions().path());\n this.displayValue = wrapExpressionValue(pathFunc, this.value, this.displayExpressionConverter, this._disposables);\n this._disposables.push(pathFunc);\n }\n else {\n this.displayValue = this.value;\n }\n this.rtl = rtl;\n this.validate = (value, sender) => {\n try {\n CriteriaOperatorStateMachine.parse(value);\n this.isValid(true);\n return true;\n }\n catch (exception) {\n var result = getNotValidRange(value, exception.message);\n var textArea = this._getTextArea(sender && sender.element);\n textArea && textArea.setSelectionRange(result.start, result.end);\n this.isValid(false);\n }\n };\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (!newVal) {\n this.editorContainer(null);\n return;\n }\n this.initDisplayValue();\n }));\n var fieldName = ko.computed(() => { return this.koOptions() && this.koOptions().fieldName && this.koOptions().fieldName(); });\n this._disposables.push(this.fieldListProvider = createExpressionEditorFieldListProvider(fieldListProvider, fieldName));\n this.disabled = disabled;\n var self = this;\n this.save = (sender) => {\n var value = this.getValue();\n if (this.validate(value, sender)) {\n this.displayValue(value);\n this.popupVisible(false);\n }\n };\n var selectedItem = null;\n var selectionHandler = (item) => {\n var selectedItemType = ko.unwrap(item.data['type']);\n if (selectedItem)\n selectedItem.isSelected(false);\n selectedItem = item;\n item.isSelected(true);\n };\n var fieldsTreeListOptions = ko.pureComputed(() => {\n return this.koOptions() && this.koOptions().path && this.koOptions().path() && this._createToolsOptions(this.koOptions().path(), this.fieldListProvider(), new ExpressionEditorTreeListController(fieldName, (data, element) => { this._fieldsPutSelectionHandler(data.path, element); }, selectionHandler));\n });\n this.parametersTreeListController = new ExpressionEditorParametersTreeListController(this._parametersCustomFilter, this._parametersPutSelectionHandler, selectionHandler);\n var parametersTreeListOptions = ko.pureComputed(() => {\n return this._createToolsOptions('', this.fieldListProvider(), this.parametersTreeListController);\n });\n this._disposables.push(this.tools = new Tools(this._updateValue, parametersTreeListOptions, this.koOptions, fieldsTreeListOptions));\n this._disposables.push(this.modelValueValid, this.modelValueWarning);\n this._createMainPopupButtons();\n [fieldName, fieldsTreeListOptions, parametersTreeListOptions].forEach(x => this._disposables.push(x));\n this.resizeHelper = new ResizeHelper({\n onResize: () => this.resizeAceEditor()\n });\n }\n dispose() {\n super.dispose();\n this.koOptions(null);\n this.editorContainer(null);\n this.options = null;\n }\n _createMainPopupButtons() {\n var self = this;\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('OK', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained', onClick: function (sender) { self.save(sender); } } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('Cancel', StringId.DataAccessBtnCancel), type: 'normal', stylingMode: 'contained', onClick: function () { self.popupVisible(false); } } }\n ];\n }\n _getTextArea(element) {\n var $el = $.fn.constructor(element);\n return ($el && $el.parents('.dx-expressioneditor').find(':input')[0]);\n }\n _createToolsOptions(path, fieldListProvider, treeListController) {\n return {\n itemsProvider: fieldListProvider,\n selectedPath: ko.observable(''),\n path: ko.observable(path),\n templateName: 'dx-ee-treelist-item',\n treeListController: treeListController,\n rtl: this.rtl\n };\n }\n _parametersCustomFilter(item) {\n return item.specifics === 'parameters' || item.specifics === RangeSpecific || !isList(item);\n }\n onShown() {\n this.callbacks.focus();\n }\n onHiding(e) {\n var options = this.koOptions();\n return options && options.onHiding && options.onHiding(e);\n }\n onShowing(e) {\n var options = this.koOptions();\n return options && options.onShowing && options.onShowing(e);\n }\n onContentReady(e) {\n var options = this.koOptions();\n return options && options.onContentReady && options.onContentReady(e);\n }\n resizeAceEditor() {\n if (this.aceAvailable && this.editorContainer()) {\n this.editorContainer().resize();\n }\n }\n initDisplayValue() {\n this.tools.resetCategoriesSelection && this.tools.resetCategoriesSelection();\n this.textAreaValue(this.displayValue());\n if (!this.aceAvailable) {\n this.validate(this.value());\n }\n else {\n var editor = this.editorContainer();\n var session = editor && editor.getSession();\n session && session.setValue(this.textAreaValue());\n }\n }\n getValue() {\n var value = this.textAreaValue();\n if (this.aceAvailable) {\n var editor = this.editorContainer();\n var session = editor && editor.getSession();\n value = session && session.getValue();\n }\n return value;\n }\n}\n","/**\n* DevExpress Analytics (widgets\\bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { addDisposeCallback } from '../serializer/_internal';\nko.bindingHandlers['focus'] = {\n init: function (element, valueAccessor) {\n var visible = valueAccessor().on || valueAccessor();\n var subscription = visible.subscribe((newVal) => {\n if (newVal) {\n setTimeout(() => {\n $.fn.constructor(element).find(':input').focus();\n }, 1);\n }\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nko.bindingHandlers['svgAttrs'] = {\n update: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n element.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n element.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n }\n};\n","/**\n* DevExpress Analytics (widgets\\expressioneditor\\bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ExpressionEditor } from './expressioneditor';\nimport { addDisposeCallback } from '../../serializer/_internal';\nko.bindingHandlers['dxExpressionEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var $element = $.fn.constructor(element);\n $element.children().remove();\n var values = valueAccessor();\n $.fn.constructor(element).addClass(values.wrapper ? 'dx-expressioneditor-content' : 'dx-popup-general');\n var templateName = values.editorTemplateName || 'dx-expressioneditor';\n var optionSubscription = null;\n var editor = new ExpressionEditor(ko.unwrap(values.options), values.fieldListProvider, viewModel.disabled, $.fn.constructor(element).closest('.dx-rtl').length > 0, values.displayNameProvider, values.popupVisible);\n if (ko.isSubscribable(values.options)) {\n optionSubscription = values.options.subscribe(newOptions => {\n newOptions && editor.koOptions(newOptions);\n });\n }\n values.wrapper && values.wrapper.editor(editor);\n var childContext = bindingContext.createChildContext(editor);\n var child = document.createElement('div'), $element = $element.append(child);\n ko.renderTemplate(templateName, childContext, {}, child, 'replaceNode');\n var callback = () => {\n editor.dispose();\n editor = null;\n values.wrapper && values.wrapper.editor(null);\n optionSubscription && optionSubscription.dispose();\n };\n addDisposeCallback(element, callback);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress Analytics (widgets\\filtereditor\\filtereditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { UnaryOperator } from '../criteria/operators/unary';\nimport { UnaryOperandSurface } from './operators/unaryOperandSurface';\nimport { PopupService } from '../../property-grid/internal/_popupService';\nimport { DisplayExpressionConverter } from '../common/_displayNameProvider';\nimport { wrapExpressionValue } from '../expressioneditor/_expressioneditor';\nimport { FilterEditorCodeCompletor } from './helpers/_codeCompletor';\nimport { getParentContainer } from '../_utils';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport dxTextArea from 'devextreme/ui/text_area';\nimport { aceAvailable } from '../ace/_ace-available';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nimport { GroupOperator } from '../criteria/operators/group';\nimport { PopupEditorBase } from '../../core/widgets/_popupEditorBase';\nimport { GroupOperatorType } from '../criteria/operators/options/group';\nimport { criteriaCreator } from '../criteria/utils/criteriaOperatorPreprocessor';\nexport class FilterEditor extends PopupEditorBase {\n constructor(options, fieldListProvider, rtl = false, _displayNameProvider) {\n super();\n this.options = options;\n this._displayNameProvider = _displayNameProvider;\n this._advancedMode = ko.observable(false);\n this.textFocused = ko.observable(false);\n this.aceAvailable = aceAvailable();\n this.languageHelper = {\n getLanguageMode: () => 'ace/mode/criteria',\n createCompleters: (editor, bindingContext, viewModel) => {\n var path = ko.computed(() => { return this.path && this.path(); }), completor = new FilterEditorCodeCompletor({\n editor,\n bindingContext,\n fieldListProvider: viewModel.fieldListProvider(),\n path,\n getRealExpression: (path, expression) => {\n return this.displayExpressionConverter && this.displayExpressionConverter.toRealExpression(path, expression) || $.Deferred().resolve(expression).promise();\n }\n });\n completor._disposables.push(path);\n return [completor];\n }\n };\n this.aceOptions = {\n showLineNumbers: false,\n showPrintMargin: false,\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n showGutter: false\n };\n this.additionalOptions = {\n onChange: session => this.onValueChange(session.getValue()),\n changeTimeout: 200,\n onFocus: _ => this.onFocus(),\n onBlur: _ => this.onBlur()\n };\n this.editorContainer = ko.observable();\n this.textVisible = ko.observable(false);\n this.getPopupContainer = (el) => {\n return getParentContainer(el, this.options()['popupContainer']);\n };\n this.timeout = null;\n this.animationTimeout = null;\n this.advancedMode = ko.computed({\n read: () => {\n return this._advancedMode();\n },\n write: (newVal) => {\n this.timeout && clearTimeout(this.timeout);\n this.animationTimeout && clearTimeout(this.animationTimeout);\n if (newVal) {\n this.textVisible(true);\n this.timeout = setTimeout(() => {\n this._advancedMode(true);\n this.focusText();\n }, 1);\n this.animationTimeout = setTimeout(() => {\n this.editorContainer() && this.editorContainer().resize && this.editorContainer().resize();\n }, 210);\n }\n else {\n this._advancedMode(false);\n this.timeout = setTimeout(() => {\n this.textVisible(false);\n }, 200);\n }\n },\n });\n this.invalidMessage = () => getLocalization('Cannot create a tree for this expression', 'AnalyticsCoreStringId.FilterEditor_TreeCreationError');\n this.advancedModeText = ko.observable(getLocalization('Advanced Mode', 'AnalyticsCoreStringId.FilterEditor_AdvancedMode'));\n this.operandSurface = ko.observable(null);\n this.operand = null;\n this.popupService = new PopupService();\n this.rtl = rtl;\n options() && options().helper && (options().helper.rtl = rtl);\n this._disposables.push(this.disabled = ko.computed(() => {\n return ko.unwrap(this.options() && this.options().disabled());\n }));\n this.value = ko.observable('');\n this.displayExpressionConverter = _displayNameProvider && new DisplayExpressionConverter(_displayNameProvider);\n this.save = () => {\n this.helper.onSave(this.value());\n if (this.operandSurface() && this.isSurfaceValid()) {\n var value = options().helper.serializer.serialize(this.operand, false);\n this.options().value(value);\n }\n else {\n this.options().value(this.value());\n }\n this.popupVisible(false);\n };\n this.displayValue = wrapExpressionValue(this.path, this.value, this.displayExpressionConverter, this._disposables);\n var modelValue = ko.computed({\n read: () => {\n var options = this.options();\n return options && options.value();\n },\n write: (newVal) => {\n var options = this.options();\n options && options.value(newVal);\n }\n });\n this.modelDisplayValue = wrapExpressionValue(this.path, modelValue, this.displayExpressionConverter, this._disposables);\n this.fieldListProvider = fieldListProvider;\n this.modelValueIsValid = ko.computed(() => {\n return options() && this._validateValue(options().value());\n });\n this.isValid = ko.computed(() => {\n return this._validateValue(this.value());\n });\n this.isSurfaceValid = ko.computed(() => {\n try {\n return this.options() && this.isValid() && this.options().helper.criteriaTreeValidator.validateModel(this.options().helper.serializer.deserialize(this.value()));\n }\n catch (e) {\n return false;\n }\n });\n this._disposables.push(modelValue);\n this._disposables.push(this.modelValueIsValid);\n this._disposables.push(this.isValid);\n this._disposables.push(this.isSurfaceValid);\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (newVal) {\n this.value(this.options().value());\n if (this.isSurfaceValid()) {\n this.operand = this._generateOperand(this.value());\n this.operandSurface(this._generateSurface(this.operand));\n }\n else {\n this.textVisible(true);\n this._advancedMode(true);\n this.editorContainer() && this.focusText();\n }\n options().helper.onChange = () => {\n this.value(options().helper.serializer.serialize(this.operand, false));\n };\n }\n else {\n this.helper.onClosing();\n this.value(null);\n this.operandSurface() && this.operandSurface().dispose();\n this.operandSurface(null);\n this.operand = null;\n }\n }));\n this.createAddButton = (criteria) => { return options().helper.handlers.create(criteria, this.popupService); };\n this.createChangeType = (criteria) => { return options().helper.handlers.change(criteria, this.popupService); };\n this.createChangeProperty = (criteria) => { return options().helper.handlers.changeProperty(criteria, this.popupService); };\n this.createChangeParameter = (criteria) => { return options().helper.handlers.changeParameter(criteria, this.popupService); };\n this.createChangeValueType = (criteria) => { return options().helper.handlers.changeValueType(criteria, this.popupService); };\n this._disposables.push(this.advancedMode);\n this.buttonItems.push({ toolbar: 'bottom', location: 'before', widget: 'dxCheckBox', options: { value: this.advancedMode, text: this.advancedModeText() } });\n }\n _generateOperand(value) {\n return this.options().helper.serializer.deserialize(value);\n }\n _generateSurface(operand) {\n var type = null;\n if (operand instanceof UnaryOperator) {\n type = this.options().helper.mapper.unary;\n }\n else {\n type = this.options().helper.mapper.group;\n }\n var surface = new type(operand, this, this.fieldListProvider, this.path);\n if (surface instanceof UnaryOperandSurface) {\n if (!(surface.model.operand instanceof GroupOperator)) {\n this.operand = new GroupOperator(GroupOperatorType.And, [this.operand]);\n surface.dispose();\n return this._generateSurface(this.operand);\n }\n surface.operand().canRemove = false;\n }\n surface.canRemove = false;\n return surface;\n }\n _validateValue(value) {\n try {\n if (this.options() && this.options().helper) {\n this.options().helper.serializer.deserialize(value);\n return true;\n }\n else {\n return false;\n }\n }\n catch (e) {\n return false;\n }\n }\n canSave() {\n return this.isValid();\n }\n change(type, surface) {\n this.operand = criteriaCreator.changeByType(type);\n this.operand.assignFrom(surface.model);\n var type = null;\n if (this.operand instanceof UnaryOperator) {\n type = this.options().helper.mapper.unary;\n }\n else {\n type = this.options().helper.mapper.group;\n }\n var surface = new type(this.operand, this, this.fieldListProvider, this.path);\n surface.canRemove = false;\n if (surface instanceof UnaryOperandSurface) {\n surface.operand().canRemove = false;\n }\n this.operandSurface(surface);\n }\n get helper() {\n return this.options() && this.options().helper;\n }\n get path() {\n return this.options() && this.options().path;\n }\n dispose() {\n super.dispose();\n this.editorContainer(null);\n this.operandSurface() && this.operandSurface().dispose();\n }\n onInput(s, e) {\n var self = this;\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n self.onValueChange(s.component.option('text'));\n }, 200);\n }\n onFocus() {\n this.textFocused(true);\n }\n onBlur() {\n this.textFocused(false);\n this.helper.onEditorFocusOut(this.operand);\n }\n cacheElement($element) {\n this.editorContainer(dxTextArea.getInstance($element.get(0)));\n }\n updateCriteria() {\n if (this.isSurfaceValid()) {\n this.operand = this._generateOperand(this.value());\n this.operandSurface() && this.operandSurface().dispose();\n this.operandSurface(this._generateSurface(this.operand));\n }\n }\n onValueChange(value) {\n if (this.displayValue() === value.trim())\n return;\n this.displayValue(value);\n if (this.displayExpressionConverter) {\n this.displayExpressionConverter.toRealExpression(this.path(), value).done((result) => {\n this.value(result);\n this.updateCriteria();\n }).fail(() => {\n this.value(value);\n this.updateCriteria();\n });\n }\n else {\n this.updateCriteria();\n }\n }\n focusText() {\n var focusFn = (editor) => {\n setTimeout(_ => {\n if (editor.renderer)\n editor.renderer.updateText();\n editor.focus();\n }, 1);\n };\n if (!this.editorContainer())\n var subscription = this.editorContainer.subscribe((editor) => {\n subscription.dispose();\n focusFn(editor);\n });\n else\n focusFn(this.editorContainer());\n }\n resizeAceEditor() {\n if (this.aceAvailable && this.editorContainer()) {\n this.editorContainer().resize();\n }\n }\n get cancelLocalization() {\n return getLocalization('Cancel', 'StringId.Cancel');\n }\n get saveLocalization() {\n return getLocalization('OK', 'StringId.OK');\n }\n}\nko.bindingHandlers['dxFilterEditor'] = {\n init: function (element, valueAccessor) {\n $.fn.constructor(element).children().remove();\n $.fn.constructor(element).addClass('dx-popup-general');\n var templateHtml = getTemplate('dx-filtereditor'), $element = $.fn.constructor(element).append(templateHtml), values = valueAccessor();\n var itemsProvider = ko.observable(ko.unwrap(values.fieldListProvider));\n var computedFunctions = [];\n computedFunctions.push(ko.computed(() => {\n if (values.options() && values.options().itemsProvider) {\n itemsProvider(ko.unwrap(values.options().itemsProvider));\n }\n else {\n itemsProvider(ko.unwrap(values.fieldListProvider));\n }\n }));\n computedFunctions.push(ko.computed(() => {\n if (values.getDisplayNameByPath && values.options() && values.options().helper && !values.options().helper.getDisplayPropertyName) {\n values.options().helper.getDisplayPropertyName = values.getDisplayNameByPath;\n }\n }));\n var editor = new FilterEditor(values.options, itemsProvider, $.fn.constructor(element).closest('.dx-rtl').length > 0, values.displayNameProvider);\n ko.applyBindingsToDescendants(editor, $element.children()[0]);\n addDisposeCallback($element.children()[0], () => {\n computedFunctions.forEach(x => x.dispose());\n editor.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\nexport class FilterEditorPlain extends FilterEditor {\n constructor(element, options, fieldListProvider, rtl = false, _displayNameProvider) {\n super(options, fieldListProvider, rtl, _displayNameProvider);\n this.element = element;\n this._contentMargins = 20;\n this._topOffset = 30;\n this._defaultActiveTextContentHeightPerc = 25;\n this._defaultActiveTreeContentHeightPerc = 75;\n this._currentActiveTextContentHeightPerc = this._defaultActiveTextContentHeightPerc;\n this._currentActiveTreeContentHeightPerc = this._defaultActiveTreeContentHeightPerc;\n this.plainContentHeightPerc = ko.observable('100%');\n this.textContentHeightPerc = ko.observable(null);\n this.treeContentHeightPerc = ko.observable(null);\n var $element = $.fn.constructor(element);\n var updateHeight = () => {\n var currentHeight = $element.height();\n this.plainContentHeightPerc((1 - this._topOffset / currentHeight) * 100 + '%');\n var diffPerc = (this._contentMargins / (currentHeight - this._topOffset)) * 100 / 2;\n this._currentActiveTextContentHeightPerc = this._defaultActiveTextContentHeightPerc - diffPerc;\n this._currentActiveTreeContentHeightPerc = this._defaultActiveTreeContentHeightPerc - diffPerc;\n if (this.advancedMode()) {\n this.treeContentHeightPerc(this._currentActiveTreeContentHeightPerc);\n this.textContentHeightPerc(this._currentActiveTextContentHeightPerc);\n }\n };\n updateHeight();\n this._disposables.push(this.advancedMode.subscribe((newVal) => {\n if (newVal) {\n this.treeContentHeightPerc(this._currentActiveTreeContentHeightPerc + '%');\n this.textContentHeightPerc(this._currentActiveTextContentHeightPerc + '%');\n }\n else {\n this.treeContentHeightPerc(null);\n this.textContentHeightPerc(null);\n }\n }));\n window.addEventListener('resize', updateHeight);\n addDisposeCallback(element, () => {\n window.removeEventListener('resize', updateHeight);\n this.dispose();\n });\n }\n}\nko.components.register('dx-filtereditor-plain', {\n viewModel: {\n createViewModel: (params, componentInfo) => {\n var viewModel = new FilterEditorPlain(componentInfo.element, params.options, ko.observable(params.fieldListProvider), undefined, params.displayNameProvider);\n viewModel.popupVisible(true);\n params.options().value.subscribe(() => {\n viewModel.popupVisible(false);\n viewModel.popupVisible(true);\n });\n return viewModel;\n }\n },\n template: getTemplate('dx-filtereditor-plain')\n});\nko.components.register('dx-filtereditor-advanced', {\n viewModel: {\n createViewModel: (params, componentInfo) => {\n var viewModel = new FilterEditor(params.options, ko.observable(params.fieldListProvider), undefined, params.displayNameProvider);\n viewModel.advancedMode(true);\n viewModel.popupVisible(true);\n params.options().value.subscribe(() => {\n viewModel.popupVisible(false);\n viewModel.popupVisible(true);\n });\n return viewModel;\n }\n },\n template: getTemplate('dx-filtereditor-advanced')\n});\nko.bindingHandlers['cacheElement'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = valueAccessor();\n value.action($.fn.constructor(element));\n }\n};\n","/**\n* DevExpress Analytics (widgets\\formatstring\\formatstringeditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { formatStringStandardPatterns } from './_patterns';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { PopupService } from '../../property-grid/internal/_popupService';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nexport class FormatStringEditor extends Disposable {\n constructor(value, disabled, defaultPatterns, customPatterns, actions, rtl, popupContainer) {\n super();\n this._isDisabled = ko.observable(false);\n this._timeout = null;\n this.currentType = ko.observable();\n this.patternList = ko.observableArray([]);\n this.canAddCustomFormat = ko.observable(false);\n this.formatPrefix = ko.observable('');\n this.formatSuffix = ko.observable('');\n this.previewString = ko.observable('Preview string');\n this.formatResult = ko.observable('');\n this.selectedFormats = ko.observable([]);\n this.selectedTypes = ko.observable([]);\n this.popupVisible = ko.observable(false);\n this.localizationIdMap = {\n 'title': { text: 'FormatString Editor', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Title' },\n 'category': { text: 'Category', localizationId: 'AnalyticsCoreStringId.Category' },\n 'preview': { text: 'Preview', localizationId: 'AnalyticsCoreStringId.TooltipButtons_Preview' },\n 'types': { text: 'Types', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Types' },\n 'add': { text: 'Add', localizationId: 'DataAccessUIStringId.Button_Add' },\n 'prefix': { text: 'Prefix', localizationId: 'AnalyticsCoreStringId.Prefix' },\n 'suffix': { text: 'Suffix', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Suffix' }\n };\n this.option('value', value);\n this.option('disabled', disabled || false);\n this.option('rtl', rtl || false);\n this.option('popupContainer', popupContainer || '.dx-designer-viewport');\n var self = this;\n this.popupService = new PopupService();\n this._standardPatternSource = defaultPatterns || formatStringStandardPatterns;\n this._customPatternSource = customPatterns || {};\n this.types = this._convertArray(Object.keys(this._standardPatternSource));\n this._disposables.push(this.currentType.subscribe((newVal) => {\n if (self.isGeneralType) {\n self.formatResult('');\n self.selectedFormats([]);\n }\n else {\n self._updateFormatList();\n }\n }));\n this.currentType(this.types[0].name);\n this._disposables.push(this.formatResult.subscribe((newVal) => {\n self._updateCanAddCustomFormat(newVal);\n self._updatePreview();\n }));\n this._disposables.push(this.formatPrefix.subscribe((newVal) => {\n self._updatePreview();\n }));\n this._disposables.push(this.formatSuffix.subscribe((newVal) => {\n self._updatePreview();\n }));\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (!newVal)\n return;\n self._initEditor(value());\n self.selectedTypes(self.types.filter((item) => { return item.name === self.currentType(); }));\n }));\n this._createMainPopupButtons();\n actions && actions.updatePreview && (this.updatePreview = actions.updatePreview);\n this.setType = (e) => {\n self.currentType(e.itemData.name);\n self._updateSelection();\n };\n this.setFormat = (e) => {\n self.formatResult(e.itemData.name);\n };\n this.addCustomFormat = () => {\n if (self.formatResult() && self.canAddCustomFormat()) {\n self.customPatterns.push(self.formatResult());\n self._updateFormatList();\n self._scrollToBottom();\n actions && actions.saveCustomPattern(self.currentType(), self.formatResult());\n self._updateSelection(self.patternList().length - 1);\n self.canAddCustomFormat(false);\n }\n };\n this.removeCustomFormat = (data) => {\n var currentSelection = self.selectedFormats()[0];\n var patternList = self.patternList();\n var removedItemIndex = patternList.map((item) => { return item.name; }).indexOf(data.name);\n self.customPatterns.splice(self.customPatterns.indexOf(data.name), 1);\n self._updateFormatList();\n actions && actions.removeCustomPattern(self.currentType(), data.name);\n if (currentSelection.name === data.name) {\n self._updateSelection(removedItemIndex === (patternList.length - 1) ? (self.patternList().length - 1) : removedItemIndex);\n }\n else {\n self.selectedFormats(self.patternList().filter((item) => { return item.name === currentSelection.name; }));\n }\n };\n }\n okAction() {\n var result = this.isGeneralType ? this._getGeneralPreview('{0}') : this._wrapFormat();\n this.option('value', result);\n this.popupVisible(false);\n }\n _createMainPopupButtons() {\n var self = this;\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('OK', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained', disabled: this._isDisabled, onClick: function () { self.okAction(); } } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('Cancel', StringId.DataAccessBtnCancel), type: 'normal', stylingMode: 'contained', onClick: function () { self.popupVisible(false); } } }\n ];\n }\n _convertArray(array, canRemove) {\n return array.map(item => { return { name: item, displayName: getLocalization(item), canRemove: !!canRemove }; });\n }\n _scrollToBottom() {\n var $scrollView = $.fn.constructor('.dx-format-string .dx-format-string-formats').find('.dx-scrollview').filter(':visible');\n var scrollViewInstance = dxScrollView.getInstance($scrollView.get(0));\n scrollViewInstance && scrollViewInstance['scrollTo'] && scrollViewInstance['scrollTo'](scrollViewInstance['scrollHeight']());\n }\n _updateFormatList() {\n this.selectedFormats([]);\n var currentTypeInfo = this._standardPatternSource[this.currentType()];\n this.patternList(this._convertArray(currentTypeInfo.patterns).concat(this._convertArray(this.customPatterns, true)));\n }\n _updateSelection(selectedItemIndex) {\n var currectFormat = this.patternList()[selectedItemIndex || 0];\n if (currectFormat) {\n this.selectedFormats([currectFormat]);\n this.formatResult(currectFormat.name);\n }\n }\n _setPreviewString(previewString) {\n this.previewString(previewString);\n this._isDisabled(false);\n }\n _setErrorMessage(setDisabled) {\n this.previewString(getLocalization('Preview string is not available', 'AnalyticsCoreStringId.FormatStringEditor_PreviewNotAvailable_Text'));\n this._isDisabled(setDisabled);\n }\n _updatePreview() {\n this._timeout && clearTimeout(this._timeout);\n this._timeout = setTimeout(() => {\n if (this.isGeneralType) {\n this.previewString(this._getGeneralPreview(undefined));\n return;\n }\n var category = this._standardPatternSource[this.currentType()];\n var updatedPreviewPromise = this.updatePreview(category.value, category.type, this._wrapFormat());\n this._lastUpdatePreviewPromise = updatedPreviewPromise;\n updatedPreviewPromise\n .done((previewResult) => {\n if (this._lastUpdatePreviewPromise === updatedPreviewPromise) {\n if (previewResult.Result)\n this._setPreviewString(previewResult.Result);\n else\n this._setErrorMessage(previewResult.IsError);\n }\n }).fail((error) => {\n if (this._lastUpdatePreviewPromise === updatedPreviewPromise)\n this.previewString(getLocalization('Preview string is not available', 'AnalyticsCoreStringId.FormatStringEditor_PreviewNotAvailable_Text'));\n });\n }, 100);\n }\n _getGeneralPreview(value = '###') {\n return this.formatPrefix() + value + this.formatSuffix();\n }\n _wrapFormat(format) {\n var pattern = format || this.formatResult();\n if (pattern && pattern.indexOf('{0:') !== -1) {\n return pattern;\n }\n return pattern ? '{0:' + pattern + '}' : '';\n }\n _updateCanAddCustomFormat(newFormat) {\n if (!newFormat) {\n this.canAddCustomFormat(false);\n return;\n }\n var canAddCustomFormat = true;\n Object.keys(this._standardPatternSource).some((name) => {\n canAddCustomFormat = this._standardPatternSource[name].patterns.indexOf(newFormat) === -1;\n return !canAddCustomFormat;\n });\n this.canAddCustomFormat(canAddCustomFormat ? this.customPatterns.indexOf(newFormat) === -1 : canAddCustomFormat);\n }\n _initEditor(formatStringValue) {\n if (!formatStringValue) {\n this.setType({ itemData: this.types[0] });\n return;\n }\n if (formatStringValue.indexOf('{0}') !== -1) {\n this.currentType('General');\n this.formatPrefix(formatStringValue.substring(0, formatStringValue.indexOf('{0}')));\n this.formatSuffix(formatStringValue.substring(formatStringValue.indexOf('{0}') + 3));\n return;\n }\n var startIndex = formatStringValue.indexOf('{0:'), closingBracketIndex = formatStringValue.indexOf('}', startIndex), formatPattern = formatStringValue.substring(startIndex + 3, closingBracketIndex), isFormatPatternFind;\n var selectTypePatternPair = (name) => {\n this.currentType(name);\n if (startIndex === 0 && closingBracketIndex === (formatStringValue.length - 1)) {\n this.selectedFormats(this.patternList().filter((item) => { return item.name === formatPattern; }));\n this.formatResult(formatPattern);\n isFormatPatternFind = true;\n }\n };\n Object.keys(this._standardPatternSource).some((name) => {\n if (this._standardPatternSource[name].patterns.indexOf(formatPattern) !== -1) {\n selectTypePatternPair(name);\n return true;\n }\n var customPatterns = this._customPatternSource[this._standardPatternSource[name].type];\n if (customPatterns && customPatterns.indexOf(formatPattern) !== -1) {\n selectTypePatternPair(name);\n return true;\n }\n return false;\n });\n if (!isFormatPatternFind) {\n this.currentType(this.types[0].name);\n this.selectedFormats([]);\n this.formatResult(formatStringValue);\n }\n }\n updateInputText(propertyName, componentInstance) {\n this[propertyName](componentInstance.option('text'));\n }\n option(name, value) {\n if (value !== void 0) {\n if (ko.isObservable(this[name])) {\n this[name](value);\n }\n else {\n this[name] = value;\n }\n }\n return ko.unwrap(this[name]);\n }\n updatePreview(value, category, pattern) {\n return $.Deferred().resolve({ Result: value || 'preview string' }).promise();\n }\n get customPatterns() {\n var currentTypeInfo = this._standardPatternSource[this.currentType()];\n return this._customPatternSource[currentTypeInfo.type] = this._customPatternSource[currentTypeInfo.type] || [];\n }\n get isGeneralType() {\n return this.currentType() === 'General';\n }\n getDisplayText(key) {\n return getLocalization(this.localizationIdMap[key].text, this.localizationIdMap[key].localizationId);\n }\n getPopupContainer(el) {\n return $.fn.constructor(el).closest(this.option('popupContainer'));\n }\n}\n","/**\n* DevExpress Analytics (widgets\\formatstring\\binding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { FormatStringEditor } from './formatstringeditor';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nko.bindingHandlers['dxFormatEditor'] = {\n init: function (element, valueAccessor) {\n $.fn.constructor(element).children().remove();\n $.fn.constructor(element).addClass('dx-popup-general');\n var templateHtml = getTemplate('dx-format-string'), $element = $.fn.constructor(element).append(templateHtml), values = valueAccessor();\n var formatEditor = new FormatStringEditor(values.value, values['disabled'], values['standardPatterns'], values['customPatterns'], values['actions'], values['rtl'], values['popupContainer']);\n ko.applyBindings(formatEditor, $element.children()[0]);\n addDisposeCallback(element, function () {\n formatEditor.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress Analytics (core\\widgets\\colorPickerEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nexport class ColorPickerEditor extends Editor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n this._disposables.push(this.displayValue = ko.pureComputed({\n read: () => {\n var value = ko.unwrap(this.value);\n if (!value)\n return undefined;\n if (value && value.toLowerCase() === 'transparent') {\n return 'rgba(0,0,0,0)';\n }\n if ((/^rgba\\s*\\((\\s*[a-f\\d]+\\s*,){3}\\s*[a-f\\d]+\\s*\\)$/i).test(value))\n return value;\n var div = document.createElement('div');\n div.style.backgroundColor = value;\n return div.style.backgroundColor || 'rgba(0,0,0,1)';\n },\n write: (val) => {\n this.value(val);\n }\n }));\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\fieldListEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nimport { TreeListController } from '../../widgets/treelist/_treelistController';\nexport class FieldListEditor extends Editor {\n constructor(modelPropertyInfo, level, parentDisabled, textToSearch) {\n super(modelPropertyInfo, level, parentDisabled, textToSearch);\n this.path = ko.pureComputed(() => {\n return this._model() && this._model()['getPath'] && this._model()['getPath'](this.name) || '';\n });\n this.treeListController = new TreeListController();\n this._disposables.push(this.path);\n this._disposables.push(this.treeListController);\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\dataMemberEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { FieldListEditor } from './fieldListEditor';\nimport { DataMemberTreeListController } from './_dataMemberEditor';\nexport class DataMemberEditor extends FieldListEditor {\n constructor(modelPropertyInfo, level, parentDisabled, textToSearch) {\n super(modelPropertyInfo, level, parentDisabled, textToSearch);\n this.treeListController = new DataMemberTreeListController();\n this._disposables.push(this.treeListController);\n }\n}\n","/**\n* DevExpress Analytics (core\\widgets\\registerDesignerEditors.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nimport { GuidEditor } from '../../property-grid/widgets/guideditor';\nimport { RequiredNullableEditor, createNumericEditor } from './_requiredNullableEditor';\nimport { PropertyGridEditor } from '../../property-grid/propertygrid';\nimport { FieldListEditor } from './fieldListEditor';\nimport { DataMemberEditor } from './dataMemberEditor';\nimport { ColorPickerEditor } from './colorPickerEditor';\nexport function registerDesignerEditors() {\n editorTemplates.registerEditors({\n guid: { header: 'dxrd-guid', editorType: GuidEditor },\n date: { header: 'dx-date', editorType: RequiredNullableEditor },\n borders: { header: 'dxrd-borders' },\n textAlignment: { header: 'dxrd-textalignment' },\n objecteditorCustom: { custom: 'dxrd-objectEditorContent', editorType: PropertyGridEditor },\n field: { header: 'dxrd-field', editorType: FieldListEditor },\n dataMember: { header: 'dxrd-field', editorType: DataMemberEditor },\n filterEditor: { header: 'dxrd-filterstring' },\n formatEditor: { header: 'dxrd-formatstring' },\n expressionEditor: { header: 'dxrd-expressionstring' },\n customColorEditor: { header: 'dxrd-colorpicker', editorType: ColorPickerEditor },\n sbyte: createNumericEditor('System.SByte', 'integer'),\n decimal: createNumericEditor('System.Decimal', 'float'),\n int64: createNumericEditor('System.Int64', 'integer'),\n int32: createNumericEditor('System.Int32', 'integer'),\n int16: createNumericEditor('System.Int16', 'integer'),\n single: createNumericEditor('System.Single', 'float'),\n double: createNumericEditor('System.Double', 'float'),\n byte: createNumericEditor('System.Byte', 'integer'),\n uint16: createNumericEditor('System.UInt16', 'integer'),\n uint32: createNumericEditor('System.UInt32', 'integer'),\n uint64: createNumericEditor('System.UInt64', 'integer')\n });\n}\n","/**\n* DevExpress Analytics (property-grid\\widgets\\registerBaseEdtior.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from './editorsInfo';\nimport { FontEditor } from './fonteditor/editor';\nimport { PropertyGridEditor, PropertyGridEditorFlat } from '../propertygrid';\nexport function registerBaseEditors() {\n editorTemplates.registerEditors({\n 'bool': { header: 'dx-boolean' },\n 'boolSelect': { header: 'dx-boolean-select' },\n 'numeric': { header: 'dx-numeric' },\n 'modificators': { custom: 'dx-modificators' },\n 'combobox': { header: 'dx-combobox' },\n 'comboboxEditable': { header: 'dx-combobox-editable' },\n 'text': { header: 'dx-text' },\n 'image': { header: 'dx-image' },\n 'file': { header: 'dx-file' },\n 'commonCollection': { custom: 'dx-commonCollection' },\n 'stringArray': { header: 'dx-emptyHeader', content: 'dx-string-array' },\n 'font': { header: 'dx-emptyHeader', content: 'dx-objectEditorContent', editorType: FontEditor },\n 'objecteditor': { header: 'dx-emptyHeader', content: 'dx-objectEditorContent', editorType: PropertyGridEditor },\n 'inplaceObjectEditor': { custom: 'dx-objectEditorContent', editorType: PropertyGridEditorFlat }\n });\n}\n","/**\n* DevExpress Analytics (analytics-widgets.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport './property-grid/widgets/editorsInfo';\nimport './property-grid/widgets/editor';\nimport './property-grid/widgets/editorValidator';\nimport './property-grid/propertygrid';\nimport './property-grid/bindings';\nimport './property-grid/widgets/guideditor';\nimport './property-grid/widgets/fonteditor/editor';\nimport './widgets/bindings';\nimport './widgets/expressioneditor/expressioneditor';\nimport './widgets/expressioneditor/bindings';\nimport './widgets/filtereditor/helpers/helper';\nimport './widgets/filtereditor/filtereditor';\nimport './widgets/filtereditor/filtereditoroptions';\nimport './widgets/formatstring/formatstringeditor';\nimport './widgets/formatstring/binding';\nimport './core/widgets/colorPickerEditor';\nimport './core/widgets/fieldListEditor';\nimport './core/widgets/dataMemberEditor';\nimport { registerDesignerEditors } from './core/widgets/registerDesignerEditors';\nimport { registerBaseEditors } from './property-grid/widgets/registerBaseEdtior';\nimport './property-grid/widgets/templateUtils';\nregisterBaseEditors();\nregisterDesignerEditors();\nexport * from './property-grid/widgets/editorsInfo';\nexport * from './property-grid/widgets/editor';\nexport * from './property-grid/widgets/editorValidator';\nexport * from './property-grid/propertygrid';\nexport * from './property-grid/bindings';\nexport * from './property-grid/widgets/guideditor';\nexport * from './property-grid/widgets/fonteditor/editor';\nexport * from './widgets/bindings';\nexport * from './widgets/expressioneditor/expressioneditor';\nexport * from './widgets/expressioneditor/bindings';\nexport * from './widgets/filtereditor/helpers/helper';\nexport * from './widgets/filtereditor/filtereditor';\nexport * from './widgets/filtereditor/filtereditoroptions';\nexport * from './widgets/formatstring/formatstringeditor';\nexport * from './widgets/formatstring/binding';\nexport * from './core/widgets/colorPickerEditor';\nexport * from './core/widgets/fieldListEditor';\nexport * from './core/widgets/dataMemberEditor';\nexport * from './property-grid/widgets/templateUtils';\n","/**\n* DevExpress HTML/JS Reporting (common\\utils\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { accessibilityFontSizeZoomFactor } from '@devexpress/analytics-core/analytics-internal';\nimport { propertiesGridEditorsPaddingLeft } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport devices from 'devextreme/core/devices';\nimport * as ko from 'knockout';\nexport var cultureInfo = {};\nexport var generateGuid = () => {\n var getNewQuartet = function (i) {\n return Math.floor((1 + Math.random()) * Math.pow(0x10000, i)).toString(16).substring(1);\n };\n return getNewQuartet(2) + '-' + getNewQuartet(1) + '-' + getNewQuartet(1) + '-' + getNewQuartet(1) + '-' + getNewQuartet(3);\n};\nvar commonBlur = HTMLElement.prototype.blur;\nvar fullscreenEventsList = ['fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'MSFullscreenChange'];\nexport function createFullscreenComputed(element, parent) {\n var _fullscreen = ko.observable(false);\n var func = () => {\n var isFullscreen = document.fullscreen || !!document['msFullscreenElement'] || !!document['webkitFullscreenElement'];\n if (element['msRequestFullscreen']) {\n HTMLElement.prototype.blur = isFullscreen ? function () {\n try {\n commonBlur.apply(this);\n }\n catch (e) {\n document.body.blur();\n }\n } : commonBlur;\n }\n _fullscreen(isFullscreen);\n };\n var fullscreen = ko.computed({\n read: () => _fullscreen(),\n write: (newVal) => {\n _fullscreen(newVal);\n toggleFullscreen(element, newVal);\n }\n });\n addFullscreenListener(document, func);\n parent._disposables.push({\n dispose: () => {\n removeFullscreenListener(document, func);\n commonBlur = null;\n func = null;\n }\n }, fullscreen);\n return fullscreen;\n}\nexport function processZoomFactor(accessibilityCompliant) {\n if (!accessibilityCompliant)\n return;\n var defaultFontSize = 16;\n var zoomFactor = (parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('font-size')) || defaultFontSize) / defaultFontSize;\n if (zoomFactor !== accessibilityFontSizeZoomFactor()) {\n propertiesGridEditorsPaddingLeft(zoomFactor * propertiesGridEditorsPaddingLeft());\n accessibilityFontSizeZoomFactor(zoomFactor);\n }\n}\nfunction addFullscreenListener(element, func) {\n fullscreenEventsList.forEach((eventName) => {\n element.addEventListener(eventName, func);\n });\n}\nfunction removeFullscreenListener(element, func) {\n fullscreenEventsList.forEach((eventName) => {\n element.removeEventListener(eventName, func);\n });\n}\nfunction showFullscreen(element) {\n if (element.requestFullscreen)\n element.requestFullscreen();\n else if (element['mozRequestFullScreen'])\n element['mozRequestFullScreen']();\n else if (element['webkitRequestFullscreen'])\n element['webkitRequestFullscreen']();\n else if (element['msRequestFullscreen']) {\n element['msRequestFullscreen']();\n }\n}\nfunction exitFullscreen() {\n if (document.exitFullscreen)\n document.exitFullscreen();\n else if (document['mozCancelFullScreen'])\n document['mozCancelFullScreen']();\n else if (document['webkitExitFullscreen'])\n document['webkitExitFullscreen']();\n else if (document['msExitFullscreen']) {\n HTMLElement.prototype.blur = commonBlur;\n document['msExitFullscreen']();\n }\n}\nfunction toggleFullscreen(element, value) {\n if (!element)\n return;\n if (value)\n showFullscreen(element);\n else\n exitFullscreen();\n}\nexport const isIOS = devices.real().ios || devices.real()['mac'] && window.navigator.maxTouchPoints > 0;\nexport const isAndroid = devices.real().android;\nexport const isMobile = isIOS || isAndroid;\nexport function transformNewLineCharacters(value) {\n return value.replace(/(\\r\\n|\\n|\\r)/g, '\\r\\n');\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\widgets\\_editorTemplates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { cultureInfo } from '../utils/_utils';\nexport var editorTemplates = {\n csvSeparator: { header: 'dx-text',\n extendedOptions: { placeholder: ko.pureComputed(() => (cultureInfo['csvTextSeparator'] || '') + ' ' + getLocalization('(Using System Separator)', 'PreviewStringId.ExportOption_CsvSeparator_UsingSystem')) }\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\metadata.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nimport { colorFromString, colorToString, floatFromModel, fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates as analyticEditorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { editorTemplates } from '../widgets/_editorTemplates';\nexport var pageBorderColor = { propertyName: 'pageBorderColor', modelName: '@PageBorderColor', from: colorFromString, toJsonObject: colorToString, displayName: 'Page Border Color', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageBorderColor', editor: analyticEditorTemplates.getEditor('customColorEditor'), defaultVal: 'Black' };\nexport var pageBorderWidth = { propertyName: 'pageBorderWidth', modelName: '@PageBorderWidth', displayName: 'Page Border Width', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageBorderWidth', from: floatFromModel, editor: analyticEditorTemplates.getEditor('numeric'), defaultVal: 1 };\nexport var pageRange = { propertyName: 'pageRange', modelName: '@PageRange', displayName: 'Page Range', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageRange', editor: analyticEditorTemplates.getEditor('text'), defaultVal: '' };\nexport var expotOptionsTitle = { propertyName: 'title', modelName: '@Title', displayName: 'Title', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.Title', editor: analyticEditorTemplates.getEditor('text'), defaultVal: 'Document' };\nexport var htmlTableLayout = { propertyName: 'tableLayout', modelName: '@TableLayout', displayName: 'Table Layout', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.TableLayout', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: true };\nexport var docxTableLayout = { propertyName: 'tableLayout', modelName: '@TableLayout', displayName: 'Table Layout', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.TableLayout', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var allowURLsWithJSContent = { propertyName: 'allowURLsWithJSContent', modelName: '@AllowURLsWithJSContent', displayName: 'Allow URLs with JS Content', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.AllowURLsWithJSContent', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var rasterizationResolution = { propertyName: 'rasterizationResolution', modelName: '@RasterizationResolution', displayName: 'Rasterization Resolution', localizationId: 'DevExpress.XtraPrinting.PageByPageExportOptionsBase.RasterizationResolution', editor: analyticEditorTemplates.getEditor('numeric'), defaultVal: 96 };\nexport var rasterizeImages = { propertyName: 'rasterizeImages', modelName: '@RasterizeImages', displayName: 'Rasterize Images', localizationId: 'DevExpress.XtraPrinting.PageByPageExportOptionsBase.RasterizeImages', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var useHRefHyperlinks = { propertyName: 'useHRefHyperlinks', modelName: '@UseHRefHyperlinks', displayName: 'Use HRef Hyperlinks', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.UseHRefHyperlinks', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var exportWatermarks = { propertyName: 'exportWatermarks', modelName: '@ExportWatermarks', displayName: 'Export Watermarks', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.ExportWatermarks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var inlineCss = { propertyName: 'inlineCss', modelName: '@InlineCss', displayName: 'Inline CSS', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.InlineCss', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var removeSecondarySymbols = { propertyName: 'removeSecondarySymbols', modelName: '@RemoveSecondarySymbols', displayName: 'Remove Secondary Symbols', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.RemoveSecondarySymbols', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var characterSet = {\n propertyName: 'characterSet', modelName: '@CharacterSet', displayName: 'Character Set', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.CharacterSet', editor: analyticEditorTemplates.getEditor('combobox'), defaultVal: 'utf-8',\n valuesArray: [{ value: 'windows-1256', displayValue: 'Arabic (Windows)' }, { value: 'iso-8859-4', displayValue: 'Baltic (ISO)' }, { value: 'windows-1257', displayValue: 'Baltic (Windows)' }, { value: 'iso-8859-2', displayValue: 'Central European (ISO)' }, { value: 'windows-1250', displayValue: 'Central European (Windows)' }, { value: 'iso-8859-5', displayValue: 'Cyrillic (ISO)' }, { value: 'koi8-r', displayValue: 'Cyrillic (KOI8-r)' }, { value: 'windows-1251', displayValue: 'Cyrillic (Windows)' }, { value: 'iso-8859-15', displayValue: 'Latin 9 (ISO)' }, { value: 'utf-7', displayValue: 'Unicode (UTF-7)' }, { value: 'utf-8', displayValue: 'Unicode (UTF-8)' }, { value: 'iso-8859-1', displayValue: 'Western European (ISO)' }, { value: 'windows-1252', displayValue: 'Western European (Windows)' }]\n};\nexport function getExportModeValues(format = 'Html', preview, merged) {\n var singleFile = { value: 'SingleFile', displayValue: 'Single File', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_SingleFile', format) };\n var singleFilePageByPage = { value: 'SingleFilePageByPage', displayValue: 'Single File PageByPage', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_SingleFilePageByPage', format) };\n var differentFiles = { value: 'DifferentFiles', displayValue: 'Different Files', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_DifferentFiles', format) };\n if (merged) {\n return [singleFilePageByPage];\n }\n else if (preview) {\n return [singleFile, singleFilePageByPage];\n }\n else {\n return [singleFile, singleFilePageByPage, differentFiles];\n }\n}\nexport var exportPageBreaks = { propertyName: 'exportPageBreaks', modelName: '@ExportPageBreaks', displayName: 'Export Page Breaks', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.ExportPageBreaks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var rtfExportMode = {\n propertyName: 'rtfExportMode', modelName: '@ExportMode', defaultVal: 'SingleFilePageByPage',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions.ExportMode',\n valuesArray: getExportModeValues('Rtf', true)\n};\nexport var docxExportMode = {\n propertyName: 'docxExportMode', modelName: '@ExportMode', defaultVal: 'SingleFilePageByPage',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.ExportMode',\n valuesArray: getExportModeValues('Docx', true)\n};\nexport var htmlExportMode = {\n propertyName: 'htmlExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.ExportMode',\n valuesArray: getExportModeValues('Html')\n};\nexport var embedImagesInHTML = {\n propertyName: 'embedImagesInHTML', modelName: '@EmbedImagesInHTML', defaultVal: false,\n editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, displayName: 'Embed Images In HTML', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions.EmbedImagesInHTML'\n};\nexport var imageExportMode = {\n propertyName: 'imageExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.ExportMode',\n valuesArray: getExportModeValues('Image')\n};\nexport var xlsExportMode = {\n propertyName: 'xlsExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ExportMode',\n valuesArray: getExportModeValues('Xls')\n};\nexport var xlsxExportMode = {\n propertyName: 'xlsxExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions.ExportMode',\n valuesArray: getExportModeValues('Xlsx')\n};\nfunction getTextExportModeValues() {\n return [\n { value: 'Text', displayValue: 'Text', localizationId: 'DevExpress.XtraPrinting.TextExportMode.Text' },\n { value: 'Value', displayValue: 'Value', localizationId: 'DevExpress.XtraPrinting.TextExportMode.Value' }\n ];\n}\nexport var textExportMode = {\n propertyName: 'textExportMode', modelName: '@TextExportMode', displayName: 'Text Export Mode', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.TextExportMode', defaultVal: 'Text', editor: analyticEditorTemplates.getEditor('combobox'),\n valuesArray: getTextExportModeValues()\n};\nexport var xlsTextExportMode = {\n propertyName: 'textExportMode', modelName: '@TextExportMode', displayName: 'Text Export Mode', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.TextExportMode', defaultVal: 'Value', editor: analyticEditorTemplates.getEditor('combobox'),\n valuesArray: getTextExportModeValues()\n};\nexport var csvTextSeparator = { propertyName: 'separator', modelName: '@Separator', defaultVal: '', displayName: 'Separator', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Separator', editor: editorTemplates.csvSeparator };\nexport var useCustomSeparator = { propertyName: 'useCustomSeparator', displayName: 'Use Custom Separator', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.UseCustomSeparator', editor: analyticEditorTemplates.getEditor('bool') };\nexport var textEncodingType = {\n propertyName: 'encodingType', modelName: '@EncodingType', displayName: 'Encoding', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Encoding', editor: analyticEditorTemplates.getEditor('combobox'), defaultVal: 'Default', from: fromEnum,\n valuesArray: [\n { value: 'Default', displayValue: 'Windows-1252', localizationId: 'DevExpress.XtraPrinting.EncodingType.Default' },\n { value: 'ASCII', displayValue: 'us-ascii', localizationId: 'DevExpress.XtraPrinting.EncodingType.ASCII' },\n { value: 'Unicode', displayValue: 'utf-16', localizationId: 'DevExpress.XtraPrinting.EncodingType.Unicode' },\n { value: 'BigEndianUnicode', displayValue: 'utf-16BE', localizationId: 'DevExpress.XtraPrinting.EncodingType.BigEndianUnicode' },\n { value: 'UTF7', displayValue: 'utf-7', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF7' },\n { value: 'UTF8', displayValue: 'utf-8', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF8' },\n { value: 'UTF32', displayValue: 'utf-32', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF32' }\n ]\n};\nexport var xlsExportHyperlinks = {\n propertyName: 'exportHyperlinks', modelName: '@ExportHyperlinks', displayName: 'Export Hyperlinks', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ExportHyperlinks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsRawDataMode = {\n propertyName: 'rawDataMode', modelName: '@RawDataMode', displayName: 'Raw Data Mode', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.RawDataMode', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsShowGridLines = {\n propertyName: 'showGridLines', modelName: '@ShowGridLines', displayName: 'Show Grid Lines', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ShowGridLines', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsExportOptionsSheetName = {\n propertyName: 'sheetName', modelName: '@SheetName', displayName: 'Sheet Name', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.SheetName', defaultVal: 'Sheet', editor: analyticEditorTemplates.getEditor('text')\n};\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\csvMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { csvTextSeparator, textEncodingType, textExportMode, useCustomSeparator } from './metadata';\nexport var csvExportOptionsSerializationInfo = [\n textEncodingType,\n textExportMode,\n { propertyName: 'quoteStringsWithSeparators', modelName: '@QuoteStringsWithSeparators', displayName: 'Quote Strings with Separators', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.QuoteStringsWithSeparators', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n useCustomSeparator, csvTextSeparator,\n { propertyName: 'skipEmptyRows', modelName: '@SkipEmptyRows', displayName: 'Skip Empty Rows', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.SkipEmptyRows', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'skipEmptyColumns', modelName: '@SkipEmptyColumns', displayName: 'Skip Empty Columns', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.SkipEmptyColumns', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\csvExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { csvExportOptionsSerializationInfo } from './csvMetaData';\nexport class CsvExportOptions {\n constructor(model, serializer) {\n this.defaultSeparatorValue = '';\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n this.useCustomSeparator = ko.observable(this.separator && this.separator() !== this.defaultSeparatorValue);\n var separatorValue = ko.observable(this.separator());\n this.useCustomSeparator.subscribe((newValue) => {\n if (!newValue)\n separatorValue(this.defaultSeparatorValue);\n });\n this.separator = ko.computed({\n read: () => { return separatorValue(); },\n write: (newValue) => {\n separatorValue(newValue);\n if (this.useCustomSeparator)\n this.useCustomSeparator(newValue !== this.defaultSeparatorValue);\n }\n });\n }\n static from(model, serializer) {\n return new CsvExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, csvExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return csvExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return (name === 'separator') && !(this.useCustomSeparator && this.useCustomSeparator());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\docxExportDocumentOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class DocxExportDocumentOptions {\n static from(model, serializer) {\n return new DocxExportDocumentOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, docxExportDocumentOptionsSerializationInfo, refs);\n }\n getInfo() {\n return docxExportDocumentOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var docxExportDocumentOptionsSerializationInfo = [\n { propertyName: 'title', modelName: '@Title', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Title', displayName: 'Title', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'subject', modelName: '@Subject', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Subject', displayName: 'Subject', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'keywords', modelName: '@Keywords', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Keywords', displayName: 'Keywords', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'category', modelName: '@Category', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Category', displayName: 'Category', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'comments', modelName: '@Comments', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Comments', displayName: 'Comments', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'author', modelName: '@Author', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Author', displayName: 'Author', defaultVal: '', editor: editorTemplates.getEditor('text') },\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\rtfMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { exportPageBreaks, exportWatermarks, pageRange, rasterizationResolution, rtfExportMode } from './metadata';\nexport var rtfExportOptionsSerializationInfoBase = [\n pageRange,\n rasterizationResolution,\n exportPageBreaks,\n exportWatermarks\n];\nexport var emptyFirstPageHeaderFooter = { propertyName: 'emptyFirstPageHeaderFooter', modelName: '@EmptyFirstPageHeaderFooter', displayName: 'Empty First Page Header/Footer', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.EmptyFirstPageHeaderFooter', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool };\nexport var keepRowHeight = { propertyName: 'keepRowHeight', modelName: '@KeepRowHeight', displayName: 'Keep Row Height', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.KeepRowHeight', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool };\nexport var rtfExportOptionsSerializationInfo = [\n emptyFirstPageHeaderFooter,\n keepRowHeight,\n rtfExportMode\n].concat(rtfExportOptionsSerializationInfoBase);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\docxMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { docxExportMode, docxTableLayout, exportPageBreaks, exportWatermarks, pageRange, rasterizationResolution, rasterizeImages } from './metadata';\nimport { DocxExportDocumentOptions } from './options/docxExportDocumentOptions';\nimport { emptyFirstPageHeaderFooter, keepRowHeight } from './rtfMetaData';\nexport var docxDocumentOptions = { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.DocumentOptions', from: DocxExportDocumentOptions.from, toJsonObject: DocxExportDocumentOptions.toJson, editor: editorTemplates.getEditor('objecteditor') };\nexport var docxExportOptionsSerializationInfo = [\n docxExportMode,\n exportWatermarks,\n pageRange,\n rasterizeImages,\n rasterizationResolution,\n emptyFirstPageHeaderFooter,\n keepRowHeight,\n exportPageBreaks,\n docxTableLayout,\n { propertyName: 'allowFloatingPictures', modelName: '@AllowFloatingPictures', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.AllowFloatingPictures', displayName: 'Allow Floating Pictures', editor: editorTemplates.getEditor('bool'), from: parseBool, defaultVal: false },\n docxDocumentOptions,\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\docxExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { docxExportOptionsSerializationInfo } from './docxMetaData';\nimport { docxExportMode } from './metadata';\nexport class DocxExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new DocxExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, docxExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return docxExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n var exportMode = this.docxExportMode ? this.docxExportMode() : docxExportMode.defaultVal;\n if (name === 'pageRange' || name === 'tableLayout')\n return exportMode === 'SingleFile';\n else if (name === 'emptyFirstPageHeaderFooter' || name === 'exportPageBreaks') {\n return exportMode === 'SingleFilePageByPage';\n }\n else if (name === 'keepRowHeight') {\n return exportMode === 'SingleFilePageByPage' && !this.tableLayout();\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\emailExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { fromEnum, ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class AdditionalRecipientModel {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n getInfo() {\n return additionalRecipientSerializationsInfo;\n }\n}\nAdditionalRecipientModel.createNew = () => {\n return new AdditionalRecipientModel({});\n};\nexport var additionalRecipientSerializationsInfo = [\n { propertyName: 'ContactName', modelName: '@ContactName', displayName: 'ContactName', localizationId: 'DevExpress.XtraPrinting.Recipient.ContactName', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'Address', modelName: '@Address', displayName: 'Address', localizationId: 'DevExpress.XtraPrinting.Recipient.Address', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'Prefix', modelName: '@Prefix', displayName: 'Prefix', localizationId: 'DevExpress.XtraPrinting.Recipient.Prefix', defaultVal: 'SMTP:', editor: editorTemplates.getEditor('text') },\n {\n propertyName: 'fieldType', modelName: '@FieldType', displayName: 'Field Type', localizationId: 'DevExpress.XtraPrinting.Recipient.FieldType', defaultVal: 'TO', editor: editorTemplates.getEditor('combobox'), from: fromEnum,\n valuesArray: [\n { value: 'TO', displayValue: 'TO', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.TO' },\n { value: 'CC', displayValue: 'CC', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.CC' },\n { value: 'BCC', displayValue: 'BCC', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.BCC' }\n ]\n },\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\emailMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { AdditionalRecipientModel } from './emailExportOptions';\nexport var nativeFormatOptionsSerializationInfo = [\n { propertyName: 'compressed', modelName: '@Compressed', displayName: 'Compressed', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.Compressed', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'showOptionsBeforeSave', modelName: '@ShowOptionsBeforeSave', displayName: 'Show Options Before Save', localizationId: 'DevExpress.XtraPrinting.NativeFormatOptions.ShowOptionsBeforeSave', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\nexport var additionalRecipients = { propertyName: 'additionalRecipients', modelName: 'AdditionalRecipients', displayName: 'Additional Recipients', localizationId: 'DevExpress.XtraPrinting.EmailOptions.AdditionalRecipients', array: true, editor: editorTemplates.getEditor('commonCollection'), addHandler: AdditionalRecipientModel.createNew, template: '#dxrd-commonCollectionItem' };\nexport var emailOptionsSerializationInfo = [\n { propertyName: 'recipientName', modelName: '@RecipientName', displayName: 'Recipient Name', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientName', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'recipientAddress', modelName: '@RecipientAddress', displayName: 'Recipient Address', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientAddress', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'recipientAddressPrefix', modelName: '@RecipientAddressPrefix', displayName: 'Recipient Address Prefix', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientAddressPrefix', defaultVal: 'SMTP:', editor: editorTemplates.getEditor('text') },\n { propertyName: 'subject', modelName: '@Subject', displayName: 'Subject', localizationId: 'DevExpress.XtraPrinting.EmailOptions.Subject', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'body', modelName: '@Body', displayName: 'Body', localizationId: 'DevExpress.XtraPrinting.EmailOptions.Body', defaultVal: '', editor: editorTemplates.getEditor('text') },\n additionalRecipients\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\htmlMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { allowURLsWithJSContent, characterSet, embedImagesInHTML, exportWatermarks, expotOptionsTitle, htmlExportMode, htmlTableLayout, inlineCss, pageBorderColor, pageBorderWidth, pageRange, rasterizationResolution, removeSecondarySymbols, useHRefHyperlinks } from './metadata';\nexport var htmlExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n rasterizationResolution,\n expotOptionsTitle,\n htmlTableLayout,\n useHRefHyperlinks,\n allowURLsWithJSContent,\n removeSecondarySymbols,\n exportWatermarks,\n characterSet\n];\nexport var htmlExportOptionsSerializationInfo = [htmlExportMode, embedImagesInHTML, inlineCss].concat(htmlExportOptionsSerializationInfoBase);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\htmlExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { htmlExportOptionsSerializationInfo } from './htmlMetaData';\nimport { htmlExportMode } from './metadata';\nexport class HtmlExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new HtmlExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, htmlExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return htmlExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth') || (name === 'exportWatermarks')) && ((this.htmlExportMode ? this.htmlExportMode() : htmlExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\imageMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { imageExportMode, pageBorderColor, pageBorderWidth, pageRange } from './metadata';\nexport var imageExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n { propertyName: 'resolution', modelName: '@Resolution', displayName: 'Resolution', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.Resolution', editor: editorTemplates.getEditor('numeric'), defaultVal: 96 },\n {\n propertyName: 'format', modelName: '@Format', displayName: 'Format', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.Format', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Png', from: fromEnum,\n valuesArray: [\n { value: 'Bmp', displayValue: 'BMP' },\n { value: 'Gif', displayValue: 'GIF' },\n { value: 'Jpeg', displayValue: 'JPEG' },\n { value: 'Png', displayValue: 'PNG' },\n { value: 'Emf', displayValue: 'EMF' },\n { value: 'Wmf', displayValue: 'WMF' },\n { value: 'Tiff', displayValue: 'TIFF' }\n ]\n }\n];\nexport var imageExportOptionsSerializationInfo = [imageExportMode, { propertyName: 'retainBackgroundTransparency', modelName: '@RetainBackgroundTransparency', displayName: 'Retain Background Transparency', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.RetainBackgroundTransparency', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'textRenderingMode', modelName: '@TextRenderingMode', displayName: 'Text Rendering Mode', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.TextRenderingMode', editor: editorTemplates.getEditor('combobox'), defaultVal: 'SystemDefault', from: fromEnum,\n valuesArray: [\n { value: 'SystemDefault', displayValue: 'SystemDefault', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SystemDefault' },\n { value: 'SingleBitPerPixelGridFit', displayValue: 'SingleBitPerPixelGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SingleBitPerPixelGridFit' },\n { value: 'SingleBitPerPixel', displayValue: 'SingleBitPerPixel', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SingleBitPerPixel' },\n { value: 'AntiAliasGridFit', displayValue: 'AntiAliasGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.AntiAliasGridFit' },\n { value: 'AntiAlias', displayValue: 'AntiAlias', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.AntiAlias' },\n { value: 'ClearTypeGridFit', displayValue: 'ClearTypeGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.ClearTypeGridFit' }\n ]\n }\n].concat(imageExportOptionsSerializationInfoBase);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\imageExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { imageExportOptionsSerializationInfo } from './imageMetaData';\nimport { imageExportMode } from './metadata';\nexport class ImageExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new ImageExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, imageExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return imageExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth')) && ((this.imageExportMode ? this.imageExportMode() : imageExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\mhtMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { allowURLsWithJSContent, characterSet, exportWatermarks, expotOptionsTitle, htmlExportMode, htmlTableLayout, inlineCss, pageBorderColor, pageBorderWidth, pageRange, rasterizationResolution, removeSecondarySymbols, useHRefHyperlinks } from './metadata';\nexport var mhtExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n rasterizationResolution,\n expotOptionsTitle,\n characterSet,\n htmlTableLayout,\n useHRefHyperlinks,\n allowURLsWithJSContent,\n removeSecondarySymbols,\n exportWatermarks\n];\nexport var mhtExportOptionsSerializationInfo = [htmlExportMode, inlineCss].concat(mhtExportOptionsSerializationInfoBase);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\mhtExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { htmlExportMode } from './metadata';\nimport { mhtExportOptionsSerializationInfo } from './mhtMetaData';\nexport class MhtExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new MhtExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, mhtExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return mhtExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth')) && ((this.htmlExportMode ? this.htmlExportMode() : htmlExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfExportDocumentOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class PdfExportDocumentOptions {\n static from(model, serializer) {\n return new PdfExportDocumentOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportDocumentOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportDocumentOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var author = { propertyName: 'author', modelName: '@Author', displayName: 'Author', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Author', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var application = { propertyName: 'application', modelName: '@Application', displayName: 'Application', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Application', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var title = { propertyName: 'title', modelName: '@Title', displayName: 'Title', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Title', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var subject = { propertyName: 'subject', modelName: '@Subject', displayName: 'Subject', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Subject', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var pdfExportDocumentOptionsSerializationInfo = [\n author, application, title, subject,\n { propertyName: 'keywords', modelName: '@Keywords', displayName: 'Keywords', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Keywords', defaultVal: '', editor: editorTemplates.getEditor('text') }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfPermissionsOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class PdfPermissionsOptions {\n static from(model, serializer) {\n return new PdfPermissionsOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportPermissionsOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportPermissionsOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var pdfExportPermissionsOptionsSerializationInfo = [\n {\n propertyName: 'printingPermissions', modelName: '@PrintingPermissions', displayName: 'Printing Permissions', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.PrintingPermissions', defaultVal: 'None', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.None' },\n { value: 'LowResolution', displayValue: 'LowResolution', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.LowResolution' },\n { value: 'HighResolution', displayValue: 'HighResolution', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.HighResolution' }\n ]\n },\n {\n propertyName: 'changingPermissions', modelName: '@ChangingPermissions', displayName: 'Changing Permissions', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.ChangingPermissions', defaultVal: 'None', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.None' },\n { value: 'InsertingDeletingRotating', displayValue: 'InsertingDeletingRotating', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.InsertingDeletingRotating' },\n { value: 'FillingSigning', displayValue: 'FillingSigning', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.FillingSigning' },\n { value: 'CommentingFillingSigning', displayValue: 'CommentingFillingSigning', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.CommentingFillingSigning' },\n { value: 'AnyExceptExtractingPages', displayValue: 'AnyExceptExtractingPages', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.AnyExceptExtractingPages' }\n ]\n },\n { propertyName: 'enableCopying', modelName: '@EnableCopying', displayName: 'Enable Copying', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.EnableCopying', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'enableScreenReaders', modelName: '@EnableScreenReaders', displayName: 'Enable Screen Readers', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.EnableScreenReaders', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfPasswordSecurityOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createPasswordSerializationInfo } from '@devexpress/analytics-core/analytics-internal';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { PdfPermissionsOptions } from './pdfPermissionsOptions';\nexport class PdfPasswordSecurityOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new PdfPasswordSecurityOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportPasswordSecurityOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportPasswordSecurityOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n if (!(this.permissionsPassword && this.permissionsPassword())) {\n if (name === 'permissionsOptions')\n return true;\n if (name === pdfEncryptionLevel.propertyName)\n return !(this.openPassword && this.openPassword());\n return false;\n }\n }\n hasSensitiveData() {\n return !!(this.openPassword && this.openPassword() || this.permissionsPassword && this.permissionsPassword());\n }\n}\nexport var pdfEncryptionLevel = {\n propertyName: 'encryptionLevel', modelName: '@EncryptionLevel', displayName: 'Encryption Level', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.EncryptionLevel', defaultVal: 'AES128', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'ARC4', displayValue: 'ARC4', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.ARC4' },\n { value: 'AES128', displayValue: 'AES128', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.AES128' },\n { value: 'AES256', displayValue: 'AES256', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.AES256' },\n ]\n};\nexport var pdfExportPasswordSecurityOptionsSerializationInfo = [\n createPasswordSerializationInfo({ propertyName: 'openPassword', modelName: '@OpenPassword', displayName: 'Open Password', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.OpenPassword', defaultVal: '' }),\n pdfEncryptionLevel,\n createPasswordSerializationInfo({ propertyName: 'permissionsPassword', modelName: '@PermissionsPassword', displayName: 'Permissions Password', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.PermissionsPassword', defaultVal: '' }),\n { propertyName: 'permissionsOptions', modelName: 'PermissionsOptions', displayName: 'Pdf Permissions Options', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions', from: PdfPermissionsOptions.from, toJsonObject: PdfPermissionsOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\pdfMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { pageRange, rasterizationResolution, rasterizeImages } from './metadata';\nimport { PdfExportDocumentOptions } from './options/pdfExportDocumentOptions';\nimport { PdfPasswordSecurityOptions } from './options/pdfPasswordSecurityOptions';\nexport var pdfACompatibilityValues = { None: 'None', PdfA1b: 'PdfA1b', PdfA2b: 'PdfA2b', PdfA3b: 'PdfA3b' };\nexport var pdfACompatibility = {\n propertyName: 'pdfACompatibility', modelName: '@PdfACompatibility', displayName: 'PDF A Compatibility', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.PdfACompatibility', editor: editorTemplates.getEditor('combobox'), defaultVal: pdfACompatibilityValues.None, from: fromEnum,\n valuesArray: [\n { value: pdfACompatibilityValues.None, displayValue: pdfACompatibilityValues.None, localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.None' },\n { value: pdfACompatibilityValues.PdfA1b, displayValue: pdfACompatibilityValues.PdfA1b, localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA1b' },\n { value: pdfACompatibilityValues.PdfA2b, displayValue: pdfACompatibilityValues.PdfA2b, localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA2b' },\n { value: pdfACompatibilityValues.PdfA3b, displayValue: pdfACompatibilityValues.PdfA3b, localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA3b' }\n ]\n};\nexport var pdfUACompatibilityValues = { None: 'None', PdfUA1: 'PdfUA1' };\nexport var pdfUACompatibility = {\n propertyName: 'pdfUACompatibility', modelName: '@PdfUACompatibility', displayName: 'PDF UA Compatibility', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.PdfUACompatibility', editor: editorTemplates.getEditor('combobox'), defaultVal: pdfUACompatibilityValues.None, from: fromEnum,\n valuesArray: [\n { value: pdfUACompatibilityValues.None, displayValue: pdfACompatibilityValues.None, localizationId: 'DevExpress.XtraPrinting.PdfUACompatibility.None' },\n { value: pdfUACompatibilityValues.PdfUA1, displayValue: pdfUACompatibilityValues.PdfUA1, localizationId: 'DevExpress.XtraPrinting.PdfUACompatibility.PdfUA1' }\n ]\n};\nexport var pdfExportOptionsSerializationInfo = [\n { propertyName: 'convertImagesToJpeg', modelName: '@ConvertImagesToJpeg', displayName: 'Convert Images to Jpeg', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ConvertImagesToJpeg', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'showPrintDialogOnOpen', modelName: '@ShowPrintDialogOnOpen', displayName: 'Show Print Dialog on Open', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ShowPrintDialogOnOpen', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'neverEmbeddedFonts', modelName: '@NeverEmbeddedFonts', displayName: 'Never Embedded Fonts', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.NeverEmbeddedFonts', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'exportEditingFieldsToAcroForms', modelName: '@ExportEditingFieldsToAcroForms', displayName: 'Export Editing Fields To AcroForms', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ExportEditingFieldsToAcroForms', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'imageQuality', modelName: '@ImageQuality', displayName: 'Image Quality', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ImageQuality', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Highest', from: fromEnum,\n valuesArray: [\n { value: 'Lowest', displayValue: 'Lowest', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Lowest' },\n { value: 'Low', displayValue: 'Low', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Low' },\n { value: 'Medium', displayValue: 'Medium', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Medium' },\n { value: 'High', displayValue: 'High', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.High' },\n { value: 'Highest', displayValue: 'Highest', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Highest' }\n ]\n },\n pdfACompatibility,\n pdfUACompatibility,\n pageRange,\n rasterizationResolution,\n rasterizeImages,\n { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.DocumentOptions', from: PdfExportDocumentOptions.from, toJsonObject: PdfExportDocumentOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdfPasswordSecurityOptions', modelName: 'PasswordSecurityOptions', displayName: 'Pdf Password Security Options', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions', from: PdfPasswordSecurityOptions.from, toJsonObject: PdfPasswordSecurityOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\pdfExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { pdfACompatibility, pdfACompatibilityValues, pdfExportOptionsSerializationInfo, pdfUACompatibility, pdfUACompatibilityValues } from './pdfMetaData';\nexport class PdfExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new PdfExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportOptionsSerializationInfo, refs);\n }\n isPropertyDisabled(propertyName) {\n var _pdfACompatibility = this.pdfACompatibility ? this.pdfACompatibility() : pdfACompatibility.defaultVal;\n var _pdfUACompatibility = this.pdfUACompatibility ? this.pdfUACompatibility() : pdfUACompatibility.defaultVal;\n if (propertyName === 'exportEditingFieldsToAcroForms')\n return _pdfACompatibility === pdfACompatibilityValues.PdfA1b;\n else if (propertyName === 'neverEmbeddedFonts')\n return _pdfACompatibility != pdfACompatibilityValues.None || _pdfUACompatibility != pdfUACompatibilityValues.None;\n else if (propertyName === 'pdfPasswordSecurityOptions' || propertyName === 'showPrintDialogOnOpen')\n return _pdfACompatibility != pdfACompatibilityValues.None;\n }\n getInfo() {\n return pdfExportOptionsSerializationInfo;\n }\n hasSensitiveData() {\n return this.pdfPasswordSecurityOptions && this.pdfPasswordSecurityOptions.hasSensitiveData();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\printPreviewMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport var printPreviewOptionsSerializationInfo = [\n { propertyName: 'defaultFileName', modelName: '@DefaultFileName', displayName: 'Default File Name', localizationId: 'DevExpress.XtraPrinting.PrintPreviewOptions.DefaultFileName', defaultVal: 'Document', editor: editorTemplates.getEditor('text') }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\printPreviewOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { printPreviewOptionsSerializationInfo } from './printPreviewMetaData';\nexport class PrintPreviewOptions {\n static from(model, serializer) {\n return new PrintPreviewOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, printPreviewOptionsSerializationInfo, refs);\n }\n getInfo() {\n return printPreviewOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\rtfExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { rtfExportMode } from './metadata';\nimport { rtfExportOptionsSerializationInfo } from './rtfMetaData';\nexport class RtfExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new RtfExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, rtfExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return rtfExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n var exportMode = this.rtfExportMode ? this.rtfExportMode() : rtfExportMode.defaultVal;\n if (name === 'pageRange')\n return exportMode === 'SingleFile';\n else if (name === 'emptyFirstPageHeaderFooter' || name === 'exportPageBreaks' || name === 'keepRowHeight') {\n return exportMode === 'SingleFilePageByPage';\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\textMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { textEncodingType, textExportMode } from './metadata';\nexport var textExportOptionsSerializationInfo = [\n textEncodingType,\n { propertyName: 'quoteStringsWithSeparators', modelName: '@QuoteStringsWithSeparators', displayName: 'Quote Strings with Separators', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.QuoteStringsWithSeparators', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'separator', modelName: '@Separator', displayName: 'Separator', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Separator', defaultVal: 'TAB', editor: editorTemplates.getEditor('text') },\n textExportMode\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\textExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { textExportOptionsSerializationInfo } from './textMetaData';\nexport class TextExportOptions {\n static from(model, serializer) {\n return new TextExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, textExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return textExportOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createPasswordSerializationInfo } from '@devexpress/analytics-core/analytics-internal';\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { pageRange, rasterizationResolution, rasterizeImages, xlsExportHyperlinks, xlsExportMode, xlsExportOptionsSheetName, xlsRawDataMode, xlsShowGridLines, xlsTextExportMode } from './metadata';\nimport { application, author, subject, title } from './options/pdfExportDocumentOptions';\nvar documentOptionsSerializationsInfo = [\n author, application, title, subject,\n { propertyName: 'tags', modelName: '@Tags', displayName: 'Tags', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Tags', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'category', modelName: '@Category', displayName: 'Category', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Category', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'comments', modelName: '@Comments', displayName: 'Comments', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Comments', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'company', modelName: '@Company', displayName: 'Company', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Company', defaultVal: '', editor: editorTemplates.getEditor('text') }\n];\nvar documentOptions = { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.DocumentOptions', info: documentOptionsSerializationsInfo, editor: editorTemplates.getEditor('objecteditor') };\nvar encryptionOptionsSerializationsInfo = [\n {\n propertyName: 'type', modelName: '@Type', displayName: 'Type', localizationId: 'DevExpress.XtraPrinting.XlEncryptionOptions.Type', defaultVal: 'Strong', editor: editorTemplates.getEditor('combobox'), from: fromEnum,\n valuesArray: [\n { value: 'Strong', displayValue: 'Strong', localizationId: 'DevExpress.XtraPrinting.XlEncryptionType.Strong' },\n { value: 'Compatible', displayValue: 'Compatible', localizationId: 'DevExpress.XtraPrinting.XlEncryptionType.Compatible' }\n ]\n },\n createPasswordSerializationInfo({ propertyName: 'password', modelName: '@Password', displayName: 'Password', localizationId: 'DevExpress.XtraPrinting.XlEncryptionOptions.Password', defaultVal: '' })\n];\nvar encryptionOptions = { propertyName: 'encryptionOptions', modelName: 'EncryptionOptions', displayName: 'Encryption Options', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.EncryptionOptions', info: encryptionOptionsSerializationsInfo, editor: editorTemplates.getEditor('objecteditor') };\nexport var xlsExportOptionsSerializationInfoCommon = [\n xlsExportHyperlinks,\n pageRange,\n xlsRawDataMode,\n xlsExportOptionsSheetName,\n xlsShowGridLines,\n xlsTextExportMode,\n rasterizeImages,\n rasterizationResolution,\n { propertyName: 'fitToPrintedPageWidth', modelName: '@FitToPrintedPageWidth', displayName: 'Fit To Printed Page Width', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.FitToPrintedPageWidth', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'fitToPrintedPageHeight', modelName: '@FitToPrintedPageHeight', displayName: 'Fit To Printed Page Height', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.FitToPrintedPageHeight', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'ignoreErrors', modelName: '@IgnoreErrors', displayName: 'Ignore Errors', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.IgnoreErrors', editor: editorTemplates.getEditor('combobox'), defaultVal: 'None', from: fromEnum, valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.XlIgnoreErrors.None' },\n { value: 'NumberStoredAsText', displayValue: 'Number Stored As Text', localizationId: 'DevExpress.XtraPrinting.XlIgnoreErrors.NumberStoredAsText' }\n ]\n },\n {\n propertyName: 'rightToLeftDocument', modelName: '@RightToLeftDocument', displayName: 'Right To Left Document', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.RightToLeftDocument', defaultVal: 'Default', from: fromEnum, editor: editorTemplates.getEditor('combobox'), valuesArray: [\n { value: 'True', displayValue: 'True', localizationId: 'DevExpress.Utils.DefaultBoolean.True' },\n { value: 'False', displayValue: 'False', localizationId: 'DevExpress.Utils.DefaultBoolean.False' },\n { value: 'Default', displayValue: 'Default', localizationId: 'DevExpress.Utils.DefaultBoolean.Default' }\n ]\n },\n documentOptions,\n encryptionOptions\n];\nexport var xlsExportOptionsSerializationInfoBase = [\n { propertyName: 'suppress256ColumnsWarning', modelName: '@Suppress256ColumnsWarning', displayName: 'Suppress 256 Columns Warning', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.Suppress256ColumnsWarning', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'suppress65536RowsWarning', modelName: '@Suppress65536RowsWarning', displayName: 'Suppress 65536 Rows Warning', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.Suppress65536RowsWarning', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'workbookColorPaletteCompliance', modelName: '@WorkbookColorPaletteCompliance', displayName: 'Workbook Color Palette Compliance', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.WorkbookColorPaletteCompliance', editor: editorTemplates.getEditor('combobox'), defaultVal: 'ReducePaletteForExactColors', from: fromEnum,\n valuesArray: [\n { value: 'ReducePaletteForExactColors', displayValue: 'ReducePaletteForExactColors', localizationId: 'DevExpress.XtraPrinting.WorkbookColorPaletteCompliance.ReducePaletteForExactColors' },\n { value: 'AdjustColorsToDefaultPalette', displayValue: 'AdjustColorsToDefaultPalette', localizationId: 'DevExpress.XtraPrinting.WorkbookColorPaletteCompliance.AdjustColorsToDefaultPalette' }\n ]\n }\n];\nexport var xlsExportOptionsSerializationInfo = [xlsExportMode].concat(xlsExportOptionsSerializationInfoCommon, xlsExportOptionsSerializationInfoBase);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { xlsExportMode } from './metadata';\nimport { xlsExportOptionsSerializationInfo } from './xlsMetaData';\nexport class XlsExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new XlsExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, xlsExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return xlsExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return name === 'pageRange' && (this.xlsExportMode ? this.xlsExportMode() : xlsExportMode.defaultVal) === 'SingleFile';\n }\n hasSensitiveData() {\n return !!(this.encryptionOptions && this.encryptionOptions.password());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsxMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { xlsxExportMode } from './metadata';\nimport { xlsExportOptionsSerializationInfoCommon } from './xlsMetaData';\nexport var xlsxExportOptionsSerializationInfo = [xlsxExportMode].concat(xlsExportOptionsSerializationInfoCommon);\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsxExportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { xlsxExportMode } from './metadata';\nimport { xlsxExportOptionsSerializationInfo } from './xlsxMetaData';\nexport class XlsxExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new XlsxExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, xlsxExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return xlsxExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return name === 'pageRange' && (this.xlsxExportMode ? this.xlsxExportMode() : xlsxExportMode.defaultVal) === 'SingleFile';\n }\n hasSensitiveData() {\n return !!(this.encryptionOptions && this.encryptionOptions.password());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\exportOptionsMetaData.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { CsvExportOptions } from './csvExportOptions';\nimport { DocxExportOptions } from './docxExportOptions';\nimport { emailOptionsSerializationInfo, nativeFormatOptionsSerializationInfo } from './emailMetaData';\nimport { HtmlExportOptions } from './htmlExportOptions';\nimport { ImageExportOptions } from './imageExportOptions';\nimport { MhtExportOptions } from './mhtExportOptions';\nimport { PdfExportOptions } from './pdfExportOptions';\nimport { PrintPreviewOptions } from './printPreviewOptions';\nimport { RtfExportOptions } from './rtfExportOptions';\nimport { TextExportOptions } from './textExportOptions';\nimport { XlsExportOptions } from './xlsExportOptions';\nimport { XlsxExportOptions } from './xlsxExportOptions';\nexport var exportOptionsSerializationInfo = [\n { propertyName: 'csv', modelName: 'Csv', displayName: 'CSV Export Options', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions', from: CsvExportOptions.from, toJsonObject: CsvExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'email', modelName: 'Email', displayName: 'E-mail Options', localizationId: 'DevExpress.XtraPrinting.EmailOptions', editor: editorTemplates.getEditor('objecteditor'), info: emailOptionsSerializationInfo },\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: HtmlExportOptions.from, toJsonObject: HtmlExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: ImageExportOptions.from, toJsonObject: ImageExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mailMessage', modelName: 'MailMessage', displayName: 'Mail Message Export Options', localizationId: 'DevExpress.XtraPrinting.MailMessageExportOptions', from: MhtExportOptions.from, toJsonObject: MhtExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: MhtExportOptions.from, toJsonObject: MhtExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'nativeFormat', modelName: 'NativeFormat', displayName: 'Native Format Options', localizationId: 'DevExpress.XtraPrinting.NativeFormatOptions', editor: editorTemplates.getEditor('objecteditor'), info: nativeFormatOptionsSerializationInfo },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: PdfExportOptions.from, toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'printPreview', modelName: 'PrintPreview', displayName: 'Print Preview Options', localizationId: 'DevExpress.XtraPrinting.PrintPreviewOptions', from: PrintPreviewOptions.from, toJsonObject: PrintPreviewOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: RtfExportOptions.from, toJsonObject: RtfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'textExportOptions', modelName: 'Text', displayName: 'Text Export Options', localizationId: 'DevExpress.XtraPrinting.TextExportOptions', from: TextExportOptions.from, toJsonObject: TextExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: XlsExportOptions.from, toJsonObject: XlsExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: XlsxExportOptions.from, toJsonObject: XlsxExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: DocxExportOptions.from, toJsonObject: DocxExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\n* DevExpress HTML/JS Reporting (common\\exportOptions\\exportOptions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { exportOptionsSerializationInfo } from './exportOptionsMetaData';\nexport class ExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new ExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, exportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return exportOptionsSerializationInfo;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (common\\utils\\_locker.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport class Locker {\n constructor() {\n this.lock = (action) => {\n if (!this.isUpdate) {\n this.isUpdate = true;\n action();\n this.isUpdate = false;\n }\n };\n this.isUpdate = false;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\constants.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var ActionId = {\n Design: 'dxxrp-design',\n FirstPage: 'dxxrp-first-page',\n PrevPage: 'dxxrp-prev-page',\n Pagination: 'dxxrp-pagination',\n NextPage: 'dxxrp-next-page',\n LastPage: 'dxxrp-last-page',\n MultipageToggle: 'dxxrp-multipage-toggle',\n HighlightEditingFields: 'dxxrp-highlight-editing-fields',\n ZoomOut: 'dxxrp-zoom-out',\n ZoomSelector: 'dxxrp-zoom-selector',\n ZoomIn: 'dxxrp-zoom-in',\n Print: 'dxxrp-print',\n PrintPage: 'dxxrp-print-page',\n ExportTo: 'dxxrp-export-menu',\n Search: 'dxxrp-search',\n FullScreen: 'dxrd-fullscreen'\n};\nexport var ExportFormatID = {\n PDF: { text: 'PDF', textId: 'ASPxReportsStringId.ExportName_pdf', format: 'pdf' },\n XLS: { text: 'XLS', textId: 'ASPxReportsStringId.ExportName_xls', format: 'xls' },\n XLSX: { text: 'XLSX', textId: 'ASPxReportsStringId.ExportName_xlsx', format: 'xlsx' },\n RTF: { text: 'RTF', textId: 'ASPxReportsStringId.ExportName_rtf', format: 'rtf' },\n MHT: { text: 'MHT', textId: 'ASPxReportsStringId.ExportName_mht', format: 'mht' },\n HTML: { text: 'HTML', textId: 'ASPxReportsStringId.ExportName_html', format: 'html' },\n Text: { text: 'Text', textId: 'ASPxReportsStringId.ExportName_txt', format: 'txt', propertyName: 'textExportOptions' },\n CSV: { text: 'CSV', textId: 'ASPxReportsStringId.ExportName_csv', format: 'csv' },\n Image: { text: 'Image', textId: 'ASPxReportsStringId.ExportName_png', format: 'image' },\n DOCX: { text: 'DOCX', textId: 'ASPxReportsStringId.ExportName_docx', format: 'docx' }\n};\nexport var PreviewElements = {\n Toolbar: 'dxrd-preview-toolbar-scrollable',\n Surface: 'dxrdp-surface',\n RightPanel: 'dxrd-right-panel-template-base',\n ExportTool: 'dxrd-export-tool'\n};\nexport var ZoomAutoBy = {\n None: 1,\n WholePage: 0,\n PageWidth: -1\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_previewBricksKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccessibilityControlElementBase, findFirstItemMatchesCondition, getLocalization, KeyboardHelperWithArrowButtonBase } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class PreviewBricksKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor(viewModel) {\n super();\n this.controlElementClassName = 'dx-accessibility-page-item';\n this.liveRegionId = 'dxrd-preview-bricks-live-region';\n this._needFocusNext = false;\n this._firstSelectedBrickIndex = 0;\n this._lastSelectedBrickIndex = 0;\n this._resetBricksIndexes = () => {\n this._firstSelectedBrickIndex = 0;\n this._lastSelectedBrickIndex = 0;\n };\n this._resetBricks = () => {\n return this._currentPage.selectBrick('');\n };\n this.delayedInit = () => {\n this._initTimeout && clearTimeout(this._initTimeout);\n this._initTimeout = setTimeout(() => {\n this.initialize();\n }, 20);\n };\n this.reset = () => {\n this._resetBricks();\n this._resetBricksIndexes();\n };\n this.active = false;\n this._getSelectedContent = viewModel.getSelectedContent;\n this._pages = viewModel.pages;\n this._goToPage = viewModel.goToPage.bind(viewModel);\n this._usePageKeyboardNavigation = viewModel.showMultipagePreview;\n this._disposables.push(viewModel.currentPage.subscribe(newPage => {\n if (newPage) {\n this._currentPage = newPage;\n this.delayedInit();\n }\n }));\n }\n dispose() {\n this._activeBricksSubscription && this._activeBricksSubscription.dispose();\n this._afterInitializeCallback = null;\n this._initTimeout && clearTimeout(this._initTimeout);\n super.dispose();\n }\n initialize() {\n if (!this._currentPage)\n return;\n this._bricks = this._currentPage.bricks;\n if (this._usePageKeyboardNavigation()) {\n this.startIndex = this._pages().indexOf(this._currentPage);\n }\n else {\n this.startIndex = 0;\n }\n super.initialize();\n this._afterInitializeCallback && this._afterInitializeCallback();\n this._afterInitializeCallback = null;\n if (this._needFocusNext) {\n this.controlElements[this.startIndex].element.focus();\n this.lastFocusItem().setAttribute('tabindex', '-1');\n this._needFocusNext = false;\n }\n this._activeBricksSubscription && this._activeBricksSubscription.dispose();\n this._activeBricksSubscription = this._currentPage.activeBricks.subscribe(activeBricks => {\n this._liveRegionTimeout && clearTimeout(this._liveRegionTimeout);\n if (!activeBricks.length)\n return;\n this._liveRegionTimeout = this.liveRegion().changeText(this._getSelectedContent(','));\n var _bricks = this._bricks();\n for (var i = 0; i < _bricks.length; i++) {\n const brick = _bricks[i];\n if (brick === activeBricks[0])\n this._firstSelectedBrickIndex = i;\n if (brick === activeBricks[activeBricks.length - 1]) {\n this._lastSelectedBrickIndex = i;\n break;\n }\n }\n });\n }\n clickHandler() { }\n itemHandleEscKey(e, index) {\n if (!this.active)\n return false;\n this.controlElements[index].element.classList.remove('dx-accessibility-active-state');\n this.active = false;\n this._resetBricks();\n return true;\n }\n _actionExecute(brick, e) {\n if (brick.navigation) {\n brick.onClick(e);\n }\n else if (brick.efIndex) {\n var editField = this._currentPage.editingFields()[brick.efIndex - 1];\n var efItems = Array.prototype.slice.call(e.target.querySelectorAll('.dx-accessibility-editing-field-item'));\n var efItem = findFirstItemMatchesCondition(efItems, (item) => ko.dataFor(item) === editField);\n if (efItem && editField.activateEditor) {\n editField.activateEditor(editField, { target: efItem, currentTarget: efItem });\n var subscription = editField.active.subscribe(value => {\n if (!value) {\n if (document.activeElement === document.body) {\n e.target.focus();\n }\n brick.active(true);\n this.active = true;\n e.target.classList.add('dx-accessibility-active-state');\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n }\n else if (editField.onClick) {\n editField.onClick(editField, e);\n }\n }\n }\n _getNonEmptyBrick(index, reverse) {\n var nextIndex = index + (reverse ? -1 : 1);\n var _bricks = this._bricks();\n var brick = _bricks[nextIndex];\n if (reverse && nextIndex < 0 || nextIndex > _bricks.length - 1) {\n brick = this._getNonEmptyBrick(reverse ? _bricks.length : -1, reverse);\n }\n if (brick.efIndex && brick.efIndex > 0)\n return brick;\n else if (brick.accessibleDescription || brick.text() || brick.efIndex || brick.navigation)\n return brick;\n return this._getNonEmptyBrick(nextIndex, reverse);\n }\n _pageChangeHandle(action, newIndex, reverse = false) {\n this._needFocusNext = true;\n this.reset();\n if (!this.active) {\n if (this._usePageKeyboardNavigation())\n return action();\n else {\n var lastFocusItem = this.lastFocusItem();\n lastFocusItem.setAttribute('tabindex', '0');\n lastFocusItem.focus();\n return false;\n }\n }\n this._getNonEmptyBrick(newIndex, reverse).active(true);\n return true;\n }\n _activatePage(e, index) {\n if (this._bricks().length) {\n var page = this.controlElements[index];\n this.active = true;\n page.element.classList.add('dx-accessibility-active-state');\n var lastBrick = this._getNonEmptyBrick(this._lastSelectedBrickIndex - 1, false);\n lastBrick && lastBrick.active(true);\n }\n }\n itemHandleHomeKey(e, index) {\n return this._pageChangeHandle(() => super.itemHandleHomeKey(e, index), -1);\n }\n itemHandleEndKey(e, index) {\n return this._pageChangeHandle(() => super.itemHandleEndKey(e, index), this._bricks().length, true);\n }\n itemHandleLeftArrowKey(e, index) {\n return this._pageChangeHandle(() => {\n this.setFocusToPrevious(index);\n return true;\n }, this._firstSelectedBrickIndex, true);\n }\n itemHandleRightArrowKey(e, index) {\n return this._pageChangeHandle(() => {\n this.setFocusToNext(index);\n return true;\n }, this._lastSelectedBrickIndex);\n }\n itemHandleEnterKey(e, index) {\n if (this.active) {\n if (this._lastSelectedBrickIndex !== this._firstSelectedBrickIndex)\n return false;\n var brick = this._bricks()[this._lastSelectedBrickIndex];\n if (brick && brick.active()) {\n this._actionExecute(brick, e);\n }\n }\n else if (this._usePageKeyboardNavigation() && this._currentPage !== this._pages()[index]) {\n this._goToPage(index);\n this._afterInitializeCallback = () => {\n this._activatePage(e, index);\n };\n }\n else {\n this._activatePage(e, index);\n }\n return true;\n }\n itemHandleSpaceKey(e, index) {\n return this.itemHandleEnterKey(e, index);\n }\n setFocusToPrevious(currentIndex) {\n return super.setFocusToPrevious(currentIndex);\n }\n setFocusToNext(currentIndex) {\n return super.setFocusToNext(currentIndex);\n }\n createControlElement(element, index) {\n return new PreviewPageControlsElement(element, this);\n }\n}\nclass PreviewPageControlsElement extends AccessibilityControlElementBase {\n constructor(element, _keyboardHelper) {\n super(element);\n this.element = element;\n this._keyboardHelper = _keyboardHelper;\n this._focusHandler = () => {\n this._keyboardHelper.liveRegion().changeText(getLocalization('Press Enter or Space to switch to the document reading mode.', 'ASPxReportsStringId.WebDocumentViewer_AriaSwitchToDocumentReadingMode'));\n this.element.classList.remove('dx-accessibility-active-state');\n if (this._keyboardHelper.active) {\n this._keyboardHelper.reset();\n }\n this._keyboardHelper.active = false;\n };\n element.addEventListener('focus', this._focusHandler);\n }\n dispose() {\n this.element.removeEventListener('focus', this._focusHandler);\n super.dispose();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\settings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { createGlobalModuleVariableFunc, NotifyAboutWarning, NotifyType, ShowMessage } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport var EditablePreviewEnabled = ko.observable(true);\nexport var SearchAvailable = ko.observable(true);\nexport var ReportServerInvokeUri = '/RSWebDocumentViewerApi/Invoke';\nexport var ReportServerExportUri = '/RSWebDocumentViewerApi/Download';\nexport var AsyncExportApproach = createGlobalModuleVariableFunc(false);\nexport var MessageHandler = createGlobalModuleVariableFunc({\n processError: (message, showForUser, prefix = '', element) => {\n showForUser && ShowMessage(message.substr(prefix.length), undefined, undefined, undefined, undefined, element);\n NotifyAboutWarning(message, false);\n },\n processMessage: (message, showForUser, element) => { showForUser && ShowMessage(message, NotifyType.success, 10000, undefined, undefined, element); },\n processWarning: (message, showForUser, element) => { showForUser && ShowMessage(message, undefined, undefined, undefined, undefined, element); }\n});\nexport var HandlerUri = createGlobalModuleVariableFunc('DXXRDV.axd');\nexport var previewDefaultResolution = createGlobalModuleVariableFunc(96);\nexport var ReportServerDownloadUri = createGlobalModuleVariableFunc('');\nexport var PollingDelay = createGlobalModuleVariableFunc(300);\nexport var TimeOut = createGlobalModuleVariableFunc(105000);\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\checkEditingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ImageSource } from '../../../common/imageSource';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport { KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nexport var GlyphStyle;\n(function (GlyphStyle) {\n GlyphStyle[GlyphStyle[\"StandardBox1\"] = 0] = \"StandardBox1\";\n GlyphStyle[GlyphStyle[\"StandardBox2\"] = 1] = \"StandardBox2\";\n GlyphStyle[GlyphStyle[\"YesNoBox\"] = 2] = \"YesNoBox\";\n GlyphStyle[GlyphStyle[\"YesNoSolidBox\"] = 3] = \"YesNoSolidBox\";\n GlyphStyle[GlyphStyle[\"YesNo\"] = 4] = \"YesNo\";\n GlyphStyle[GlyphStyle[\"RadioButton\"] = 5] = \"RadioButton\";\n GlyphStyle[GlyphStyle[\"Smiley\"] = 6] = \"Smiley\";\n GlyphStyle[GlyphStyle[\"Thumb\"] = 7] = \"Thumb\";\n GlyphStyle[GlyphStyle[\"Toggle\"] = 8] = \"Toggle\";\n GlyphStyle[GlyphStyle[\"Star\"] = 9] = \"Star\";\n GlyphStyle[GlyphStyle[\"Heart\"] = 10] = \"Heart\";\n})(GlyphStyle || (GlyphStyle = {}));\nexport var CheckState;\n(function (CheckState) {\n CheckState[CheckState[\"Unchecked\"] = 0] = \"Unchecked\";\n CheckState[CheckState[\"Checked\"] = 1] = \"Checked\";\n CheckState[CheckState[\"Indeterminate\"] = 2] = \"Indeterminate\";\n})(CheckState || (CheckState = {}));\nexport function createCustomGlyphStyleCss(imageSource) {\n var backgroundResult = {};\n if (imageSource) {\n var urlContent = imageSource.getDataUrl();\n if (urlContent) {\n backgroundResult = { background: 'url(' + urlContent + ') no-repeat' };\n backgroundResult['backgroundPosition'] = 'center center';\n backgroundResult['backgroundSize'] = 'cover';\n }\n }\n return backgroundResult;\n}\nexport function getCheckBoxTemplate(style, state, customGlyph) {\n if (!$.isEmptyObject(customGlyph)) {\n return 'dxrd-checkboxcustomglyph';\n }\n else {\n return SvgTemplatesEngine.getExistingTemplate('dxrd-svg-checkboxglyphs-' + style + '_' + state);\n }\n}\nexport class CheckEditingFieldViewModel extends Disposable {\n constructor(field, pageWidth, pageHeight, zoom, editingFieldsProvider) {\n super();\n this.focused = ko.observable(false);\n this._editingFieldsProvider = editingFieldsProvider;\n this.template = 'dxrp-editing-field-checkbox';\n this.field = field;\n this.zoom = zoom;\n var bounds = this.field.model().bounds;\n var checkBounds = this.field.model().brickOptions.checkBoxBounds;\n var rtl = this.field.model().brickOptions.rtlLayout;\n this.containerStyle = () => {\n return {\n height: bounds.height + 'px',\n width: bounds.width + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%',\n cursor: this.field.readOnly() ? 'auto' : 'pointer'\n };\n };\n this.checkStyle = () => {\n var result = {\n height: checkBounds.height + 'px',\n width: checkBounds.width + 'px',\n top: checkBounds.top + 'px',\n left: (rtl ? (bounds.width - checkBounds.left - checkBounds.width) : checkBounds.left) + 'px'\n };\n return result;\n };\n this._disposables.push(this.customGlyphStyleCss = ko.pureComputed(() => {\n var imageSourceData = field.model().brickOptions.checkBoxGlyphOptions.customGlyphs.filter(item => item.key === this.field.editValue())[0];\n if (!imageSourceData.value)\n return {};\n var imageSource = new ImageSource(imageSourceData.value.imageType, imageSourceData.value.image);\n return createCustomGlyphStyleCss(imageSource);\n }));\n this._disposables.push(this.checkStateStyleIcon = ko.pureComputed(() => {\n return getCheckBoxTemplate(GlyphStyle[field.model().brickOptions.checkBoxGlyphOptions.glyphStyle], CheckState[this.field.editValue()], this.customGlyphStyleCss());\n }));\n }\n _toggleCheckState() {\n if (this.field.editValue() === CheckState.Checked) {\n this.field.editValue(CheckState.Unchecked);\n }\n else {\n this.field.editValue(CheckState.Checked);\n }\n }\n onKeyDown(_, e) {\n if (e.key == KeyboardEnum.Space) {\n this.toggleCheckState();\n }\n else {\n }\n }\n onBlur() {\n this.focused(false);\n }\n onFocus() {\n this.focused(true);\n }\n onClick(_, e) {\n e.target.focus();\n this.toggleCheckState();\n e.stopPropagation();\n }\n checked() {\n if (this.field.editValue() === CheckState.Checked) {\n return true;\n }\n if (this.field.editValue() === CheckState.Unchecked) {\n return false;\n }\n }\n toggleCheckState() {\n if (this.field.readOnly())\n return;\n if (!this.field.groupID()) {\n this._toggleCheckState();\n }\n else if (this.checked() === false) {\n this._editingFieldsProvider().forEach(value => {\n if (value.groupID() === this.field.groupID()) {\n value.editValue(CheckState.Unchecked);\n }\n });\n this._toggleCheckState();\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\textEditingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { EditingFieldExtensions } from '../../../common/utils/editingFieldExtensions';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { processTextEditorHotKeys, CssCalculator } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class TextEditingFieldViewModelBase {\n keypressAction(data, event) {\n processTextEditorHotKeys(event, {\n esc: () => {\n this.hideEditor(false);\n },\n ctrlEnter: () => {\n this.hideEditor(true);\n }\n });\n }\n}\nexport class TextEditingFieldViewModel extends TextEditingFieldViewModelBase {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n super();\n this.template = 'dxrp-editing-field-container';\n this.htmlValue = () => this.field.htmlValue();\n this.wordWrap = true;\n this.active = ko.observable(false);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n var padding = cssCalculator.paddingsCss();\n var verticalPadding = parseInt(padding['paddingTop']) + parseInt(padding['paddingBottom']);\n if (cssCalculator.borderCss()['borderTop'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n if (cssCalculator.borderCss()['borderBottom'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n this.breakOffsetStyle = () => {\n return {\n top: bounds.offset.y * -100 / bounds.height + '%',\n left: bounds.offset.x * -100 / bounds.width + '%'\n };\n };\n this.textStyle = () => $.extend({}, cssCalculator.fontCss(), cssCalculator.foreColorCss(), cssCalculator.textAlignmentCss());\n this.zoom = zoom;\n this.field = field;\n if (brickStyle.wordWrap != undefined) {\n this.wordWrap = brickStyle.wordWrap;\n }\n this.hideEditor = (shouldCommit) => {\n setTimeout(() => {\n if (shouldCommit && this.active()) {\n if (editorOptions.onHideEditor) {\n editorOptions.onHideEditor(field);\n }\n else {\n field.editValue(field._editorValue());\n }\n }\n else {\n field._editorValue(field.editValue());\n }\n this.active(false);\n }, 1);\n };\n var editor = EditingFieldExtensions.instance().editor(field.editorName());\n var editorOptions = $.extend(true, {}, editor && editor.options || {});\n this.data = {\n value: field._editorValue,\n hideEditor: this.hideEditor,\n keypressAction: this.keypressAction,\n textStyle: this.textStyle,\n options: editorOptions,\n getOptions: (templateOptions) => { return $.extend({}, this.data.options, templateOptions); }\n };\n var isCustomEditor = !!(editor && editor.template && editor.template !== 'dxrp-editing-field-datetime');\n if (!isCustomEditor) {\n var self = this;\n this.data.options = $.extend(true, {}, editorOptions, {\n value: field._editorValue,\n onFocusOut: (e) => {\n self.hideEditor(true);\n }\n });\n }\n if (editor) {\n this.editorTemplate = editor.template || 'dxrp-editing-field-mask';\n }\n else {\n this.editorTemplate = 'dxrp-editing-field-text';\n }\n this.containerStyle = ko.pureComputed(() => {\n return $.extend({\n width: bounds.width + 'px',\n height: bounds.height + 'px',\n 'line-height': (bounds.height - verticalPadding) + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%',\n cursor: this.field.readOnly() ? 'auto' : 'text'\n }, this.active() || !this.htmlValue() ? cssCalculator.borderCss() : { border: 'none' }, isCustomEditor && this.active() || (!!this.htmlValue() && !this.active()) ? { padding: 0 } : cssCalculator.paddingsCss(), { 'border-color': 'transparent' });\n });\n this.borderStyle = ko.pureComputed(() => {\n if (style['borderWidth']() > 0 && style['borders']() !== 'None') {\n return {\n left: '-' + style['borderWidth']() + 'px',\n top: '-' + style['borderWidth']() + 'px',\n paddingRight: (style['borderWidth']() * 2 - 2) + 'px',\n paddingBottom: (style['borderWidth']() * 2 - 2) + 'px'\n };\n }\n });\n }\n activateEditor(viewModel, e) {\n if (this.field.readOnly() || this.active()) {\n return;\n }\n var data = viewModel.data;\n if (data && data.options && data.options.onPreRender) {\n data.options.onPreRender(this.data);\n }\n this.active(true);\n var elementFocused = false;\n if (viewModel.options && viewModel.options.onEditorShown) {\n elementFocused = viewModel.options.onEditorShown(this.data, $.fn.constructor(e && e.currentTarget).first().get(0));\n }\n if (!elementFocused) {\n focusTextElement(e && e.currentTarget);\n }\n }\n}\nexport function focusTextElement(target) {\n var element = $.fn.constructor(target).find('input').eq(0)[0];\n if (!element)\n element = $.fn.constructor(target).find('textarea').eq(0)[0];\n element.focus();\n if (element['setSelectionRange']) {\n element['setSelectionRange'](element['value'].length, element['value'].length);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\characterCombEditingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { focusTextElement, TextEditingFieldViewModelBase } from './textEditingField';\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { CssCalculator } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class CharacterCombEditingFieldViewModel extends TextEditingFieldViewModelBase {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n super();\n this.field = field;\n this.template = 'dxrp-character-comb-editing-field';\n this.active = ko.observable(false);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n var verticalPadding = parseInt(cssCalculator.paddingsCss()['paddingTop']) + parseInt(cssCalculator.paddingsCss()['paddingBottom']);\n var borderCss = cssCalculator.borderCss();\n if (borderCss['borderTop'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n if (borderCss['borderBottom'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n this.textStyle = () => $.extend({}, cssCalculator.fontCss(), cssCalculator.foreColorCss(), cssCalculator.textAlignmentCss());\n this.hideEditor = (shouldCommit) => {\n setTimeout(() => {\n if (shouldCommit) {\n field.editValue(field._editorValue());\n }\n else {\n field._editorValue(field.editValue());\n }\n this.active(false);\n });\n };\n this.containerStyle = ko.pureComputed(() => {\n return $.extend({\n width: bounds.width + 'px',\n height: bounds.height + 'px',\n 'line-height': (bounds.height - verticalPadding) + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%'\n }, cssCalculator.fontCss(), cssCalculator.foreColorCss());\n });\n var cellVerticalPadding = 0;\n var borderCellStyle = 'none';\n ['Left', 'Top', 'Right', 'Bottom'].forEach((item) => {\n if (borderCss['border' + item] !== 'none') {\n borderCellStyle = borderCss['border' + item];\n cellVerticalPadding = style['borderWidth']() * 2;\n }\n });\n var cellStyle = {\n 'border': borderCellStyle,\n 'text-align': 'center',\n 'position': 'absolute',\n 'box-sizing': 'border-box',\n 'border-color': 'transparent'\n };\n var characterCombBounds = field.model().brickOptions.characterCombBounds;\n this.cells = [];\n var rowTops = {};\n for (var i = 0; i < characterCombBounds.length; i++) {\n this.cells.push({\n style: $.extend({\n width: characterCombBounds[i].width + 'px',\n height: characterCombBounds[i].height + 'px',\n 'line-height': (characterCombBounds[i].height - cellVerticalPadding) + 'px',\n top: characterCombBounds[i].top + 'px',\n left: characterCombBounds[i].left + 'px'\n }, cellStyle),\n text: ''\n });\n rowTops[characterCombBounds[i].top] = i;\n }\n var rowsCount = Object.keys(rowTops).length;\n var colsCount = this.cells.length / rowsCount;\n CharacterCombEditingFieldViewModel.setText(this.cells, style['textAlignment'](), style.rtl(), field.editValue.peek(), rowsCount, colsCount);\n field.editValue.subscribe(newValue => {\n CharacterCombEditingFieldViewModel.setText(this.cells, style['textAlignment'](), style.rtl(), newValue, rowsCount, colsCount);\n });\n this.zoom = zoom;\n }\n activateEditor(viewModel, e) {\n if (!this.field.readOnly() && !this.active()) {\n this.active(true);\n focusTextElement(e && e.currentTarget);\n }\n }\n static setText(cells, textAlignment, rtl, text, rowsCount, colsCount) {\n for (var j = 0; j < cells.length; j++) {\n cells[j].text = '';\n }\n var textRowsCount = Math.ceil(text.length / colsCount);\n var textLastRowColCount = text.length % colsCount;\n var startRow = -1;\n if (textAlignment.indexOf('Bottom') === 0) {\n startRow = rowsCount - textRowsCount;\n }\n else if (textAlignment.indexOf('Middle') === 0) {\n startRow = Math.floor((rowsCount - textRowsCount) / 2);\n }\n else {\n startRow = 0;\n }\n var lastRowStartCol = -1;\n if (textAlignment.indexOf('Right') > 0) {\n lastRowStartCol = rtl ? 0 : (colsCount - textLastRowColCount);\n }\n else if (textAlignment.indexOf('Center') > 0) {\n lastRowStartCol = Math.floor((colsCount - textLastRowColCount) / 2);\n }\n else {\n lastRowStartCol = rtl ? (colsCount - textLastRowColCount) : 0;\n }\n var j = startRow * colsCount;\n var i = 0;\n for (; i < text.length - textLastRowColCount; i++, j++) {\n if (j >= 0 && j < cells.length) {\n cells[j].text = text[i];\n }\n }\n for (; i < text.length; i++, j++) {\n if (j >= 0 && j < cells.length) {\n cells[j + lastRowStartCol].text = text[i];\n }\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewSelection.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport dxPopup from 'devextreme/ui/popup';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nfunction rectIntersection(r1, r2) {\n return !(r2.left > r1.right ||\n r2.right < r1.left ||\n r2.top > r1.bottom ||\n r2.bottom < r1.top);\n}\nexport class PreviewSelection {\n constructor(_element, _page, _click) {\n this._element = _element;\n this._page = _page;\n this._click = _click;\n this._bodyEvents = {\n move: null,\n up: null\n };\n this.dispose = () => this._dispose && this._dispose();\n this._$element = $.fn.constructor(this._element);\n var mousemove = event => this._mouseMove(event);\n var mouseup = event => this._mouseUp(event);\n var mousedown = event => this._mouseDown(event);\n this._element.addEventListener('mousemove', mousemove);\n this._element.addEventListener('mouseup', mouseup);\n this._element.addEventListener('mousedown', mousedown);\n this._dispose = () => {\n this._element.removeEventListener('mousemove', mousemove);\n this._element.removeEventListener('mouseup', mouseup);\n this._element.removeEventListener('mousedown', mousedown);\n this._dispose = null;\n this._click = null;\n this._page = null;\n this._element = null;\n mousemove = null;\n mouseup = null;\n mousedown = null;\n };\n }\n _getBodyScrollTop() {\n return document.documentElement && document.documentElement.scrollTop || (document.body && document.body.scrollTop);\n }\n _getBodyScrollLeft() {\n return document.documentElement && document.documentElement.scrollLeft || (document.body && document.body.scrollLeft);\n }\n _updateSelectionContent(event) {\n if (this._startRect.left > event.clientX) {\n this._$selectionContent.css('left', event.clientX);\n }\n else {\n this._$selectionContent.css('right', document.documentElement.clientWidth - event.clientX);\n }\n if (this._startRect.top > event.clientY) {\n this._$selectionContent.css('top', event.clientY);\n }\n else {\n this._$selectionContent.css('bottom', document.documentElement.clientHeight - event.clientY);\n }\n var offset = this._$element.offset();\n var currentRect = {\n left: (parseInt(this._$selectionContent.css('left')) - offset.left + this._getBodyScrollLeft()) / this._$element.width() * 100,\n width: this._$selectionContent.width() / this._$element.width() * 100,\n top: (parseInt(this._$selectionContent.css('top')) - offset.top + this._getBodyScrollTop()) / this._$element.height() * 100,\n height: this._$selectionContent.height() / this._$element.height() * 100\n };\n currentRect['right'] = currentRect.left + currentRect.width;\n currentRect['bottom'] = currentRect.top + currentRect.height;\n var bricks = this._page.bricks();\n for (var i = 0; i < bricks.length; i++) {\n if (!bricks[i].bricks) {\n bricks[i].active(rectIntersection({\n left: parseFloat(bricks[i].leftP),\n top: parseFloat(bricks[i].topP),\n right: parseFloat(bricks[i].leftP) + parseFloat(bricks[i].widthP),\n bottom: parseFloat(bricks[i].topP) + parseFloat(bricks[i].heightP),\n }, currentRect));\n }\n }\n }\n _mouseMove(event) {\n if (!this._startRect || !this._page.active() || PreviewSelection.disabled)\n return;\n var leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n if (!this._$selectionContainer) {\n if (Math.abs(this._startRect.left - event.clientX) >= 2 || Math.abs(this._startRect.top - event.clientY) >= 2) {\n PreviewSelection.started = true;\n this._$selectionContainer = $.fn.constructor('
').appendTo(document.body);\n this._$selectionContent = $.fn.constructor('
').appendTo(this._$selectionContainer);\n this._$selectionContent.css(this._startRect);\n this._$selectionContent.addClass('dxrd-selection-content ui-selectable-helper');\n if (dxPopup.prototype._zIndexInitValue)\n this._$selectionContent.css('z-index', dxPopup.prototype._zIndexInitValue() + 100);\n this._updateSelectionContent(event);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n }\n else {\n this._updateSelectionContent(event);\n }\n }\n }\n _mouseUp(event) {\n this._$selectionContainer && this._$selectionContainer.remove();\n this._$selectionContainer = null;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._startRect = null;\n setTimeout(() => {\n PreviewSelection.started = false;\n }, 1);\n }\n _mouseDown(event) {\n if (PreviewSelection.disabled) {\n return;\n }\n this._startRect = {\n left: event.clientX,\n top: event.clientY,\n right: document.documentElement.clientWidth - event.clientX,\n bottom: document.documentElement.clientHeight - event.clientY\n };\n this._click(this._page.pageIndex);\n }\n}\nPreviewSelection.started = false;\nPreviewSelection.disabled = false;\nko.bindingHandlers['brick-selection-prog'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor(), unwrappedValues = ko.unwrap(values);\n var selection = new PreviewSelection(element, unwrappedValues.page, unwrappedValues.click);\n addDisposeCallback(element, () => {\n selection.dispose();\n });\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\imageEditingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CssCalculator, KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { EditingFieldExtensions } from '../../../common/utils/editingFieldExtensions';\nimport { PreviewSelection } from '../../internal/_previewSelection';\nexport class ImageEditingFieldViewModel extends Disposable {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n var _a;\n super();\n this.field = field;\n this.zoom = zoom;\n this.bounds = bounds;\n this.popupTarget = '.dx-designer';\n this.popupOptions = {\n target: this.popupTarget,\n boundary: this.popupTarget,\n container: this.popupTarget\n };\n this.template = 'dxrp-editing-field-image';\n this.active = ko.observable(false);\n this.shadingEnabled = ko.observable(true);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n this._disposables.push(this.alignment = ko.computed(() => {\n return field.editValue().alignment;\n }), this.sizeMode = ko.computed(() => {\n return field.editValue().sizeMode;\n }));\n var editor = EditingFieldExtensions.instance().editor(field.editorName()) || EditingFieldExtensions.instance().editor('ImageAndSignature');\n var options = editor.options;\n this.shadingEnabled(!!((_a = options.registrationOptions) === null || _a === void 0 ? void 0 : _a.shadingEnabled));\n this.editMode = options.editMode;\n this.containerStyle = () => {\n return $.extend({\n height: this.bounds.height * zoom() + 'px',\n width: this.bounds.width * zoom() + 'px',\n zIndex: this.active() ? 10 : 0,\n top: this.bounds.top * 100 / pageHeight + '%',\n left: this.bounds.left * 100 / pageWidth + '%'\n }, cssCalculator.borderCss(), cssCalculator.paddingsCss());\n };\n this.callbacks = $.extend({\n onDraw: (s) => this.onDraw(s),\n onFocusIn: (s) => this.onFocusIn(s),\n onFocusOut: (s) => this.onBlur(s)\n }, options.callbacks);\n }\n getImage() {\n return this.field.editValue().image;\n }\n getImageType() {\n return this.field.editValue().imageType;\n }\n getPictureEditorOptions() {\n return {\n image: this.getImage(),\n imageType: this.getImageType(),\n imageMode: ko.observable(this.editMode),\n alignment: this.alignment,\n sizeMode: this.sizeMode,\n callbacks: this.callbacks,\n active: this.active,\n zoom: this.zoom,\n popupOptions: this.popupOptions,\n shadingEnabled: this.shadingEnabled\n };\n }\n onKeyDown(_, e) {\n if (e.key == KeyboardEnum.Space) {\n }\n else {\n }\n }\n onFocusIn(s) {\n PreviewSelection.disabled = true;\n }\n onDraw(s) {\n PreviewSelection.disabled = true;\n }\n onBlur(s) {\n var options = s.getCurrentOptions();\n var result = $.extend({}, this.field.editValue(), options);\n if (!!result.imageType) {\n result.imageType = result.imageType === 'svg' ? 'svg' : ImageEditingFieldViewModel.__DefaultImageType;\n }\n var currentVal = this.field.editValue();\n var isNotEqual = Object.keys(currentVal).some(x => {\n if (!result[x] && !currentVal[x])\n return false;\n return result[x] !== currentVal[x];\n });\n if (isNotEqual)\n this.field.editValue(result);\n PreviewSelection.disabled = false;\n }\n}\nImageEditingFieldViewModel.__DefaultImageType = 'img';\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\popupImageEditingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageEditingFieldViewModel } from './imageEditingField';\nexport class PopupImageEditingFieldViewModel extends ImageEditingFieldViewModel {\n constructor() {\n super(...arguments);\n this.parentPopupClass = 'dxrp-editing-field-popup-container';\n this._popupInitializedClass = 'dxrp-editing-field-popup-container-initialized';\n this._getPopupContainer = (element) => $.fn.constructor(element).closest('.' + this.parentPopupClass);\n this._getPainterModel = (element) => {\n var $painter = this._getPopupContainer(element).find('.dx-painter');\n return $painter.length ? ko.dataFor($painter[0]) : null;\n };\n this._getPictureEditorModel = (element) => {\n var $popupEditing = $.fn.constructor(element).find('.dx-picture-editing');\n return $popupEditing.length ? ko.dataFor($popupEditing[0]) : null;\n };\n this._resetPictureEditor = (pictureEditorModel) => {\n pictureEditorModel.reset(this.painterData.imageSource, this.painterData.alignment, this.painterData.sizeMode, this.painterData.imageType);\n this._resetPainter(pictureEditorModel.painter);\n };\n this._resetPainter = (painter) => {\n painter.imagePainter.format(painter.imageFormatByType(this.getImageType()));\n painter.imagePainter.sizeMode(this.sizeMode());\n painter.imagePainter.alignment(this.alignment());\n painter.imagePainter.image(this.getImage());\n painter.refresh();\n };\n this.template = 'dxrp-popup-editing-field-image';\n }\n isPopupActive(element) {\n return this.active() && this._getPopupContainer(element).hasClass(this._popupInitializedClass);\n }\n getPainter() {\n if (this.painterData == null) {\n this.painterData = {\n imageSource: this.getImage(),\n imageType: this.getImageType(),\n alignment: this.alignment(),\n sizeMode: this.sizeMode(),\n zoom: this.zoom,\n canDraw: ko.observable(false)\n };\n }\n return this.painterData;\n }\n getPopupData() {\n var _showContent = ko.observable(false);\n this.popupData = {\n contentData: this,\n paintData: this.painterData,\n contentTemplate: 'dxrp-editing-field-image-editor',\n isVisible: (element) => this.isPopupActive(element),\n getPositionTarget: (element) => this._getPopupContainer(element),\n shading: this.shadingEnabled,\n showContent: _showContent,\n onShown: (e) => {\n _showContent(true);\n },\n onHiding: (e) => {\n this._getPictureEditorModel(e.component._$popupContent[0]).painter.signaturePainter.resetLastPosition();\n this._resetPainter(this._getPainterModel(e.element));\n document.activeElement['blur']();\n this.active(false);\n },\n onContentReady: (e) => {\n this._resetPainter(this._getPainterModel(e.element));\n e.component && e.component.registerKeyHandler('tab', (_) => {\n this.popupData.onHiding(e);\n });\n },\n renderedHandler: (element, model) => {\n this._resetPictureEditor(this._getPictureEditorModel(element));\n }\n };\n return this.popupData;\n }\n activateEditor(viewModel, e) {\n if (!this.field.readOnly()) {\n var _parentPopup = this._getPopupContainer(e.target);\n if (!_parentPopup.hasClass(this._popupInitializedClass))\n _parentPopup.addClass(this._popupInitializedClass);\n this.active(true);\n }\n }\n}\nexport var DefaultImageEditingFieldViewModel = PopupImageEditingFieldViewModel;\n","/**\n* DevExpress HTML/JS Reporting (viewer\\editing\\editingField.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable, fromEnum } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { EditablePreviewEnabled } from '../settings';\nimport { CharacterCombEditingFieldViewModel } from './models/characterCombEditingField';\nimport { CheckEditingFieldViewModel } from './models/checkEditingField';\nimport { DefaultImageEditingFieldViewModel } from './models/popupImageEditingField';\nimport { TextEditingFieldViewModel } from './models/textEditingField';\nexport var ImageAlignment;\n(function (ImageAlignment) {\n ImageAlignment[ImageAlignment[\"TopLeft\"] = 1] = \"TopLeft\";\n ImageAlignment[ImageAlignment[\"TopCenter\"] = 2] = \"TopCenter\";\n ImageAlignment[ImageAlignment[\"TopRight\"] = 3] = \"TopRight\";\n ImageAlignment[ImageAlignment[\"MiddleLeft\"] = 4] = \"MiddleLeft\";\n ImageAlignment[ImageAlignment[\"MiddleCenter\"] = 5] = \"MiddleCenter\";\n ImageAlignment[ImageAlignment[\"MiddleRight\"] = 6] = \"MiddleRight\";\n ImageAlignment[ImageAlignment[\"BottomLeft\"] = 7] = \"BottomLeft\";\n ImageAlignment[ImageAlignment[\"BottomCenter\"] = 8] = \"BottomCenter\";\n ImageAlignment[ImageAlignment[\"BottomRight\"] = 9] = \"BottomRight\";\n})(ImageAlignment || (ImageAlignment = {}));\nexport var ImageSizeMode;\n(function (ImageSizeMode) {\n ImageSizeMode[ImageSizeMode[\"Normal\"] = 0] = \"Normal\";\n ImageSizeMode[ImageSizeMode[\"StretchImage\"] = 1] = \"StretchImage\";\n ImageSizeMode[ImageSizeMode[\"ZoomImage\"] = 4] = \"ZoomImage\";\n ImageSizeMode[ImageSizeMode[\"Squeeze\"] = 5] = \"Squeeze\";\n ImageSizeMode[ImageSizeMode[\"Cover\"] = 7] = \"Cover\";\n})(ImageSizeMode || (ImageSizeMode = {}));\nexport var sizing = {\n propertyName: 'sizing', modelName: '@Sizing', editor: editorTemplates.getEditor('combobox'), displayName: 'Sizing', localizationId: 'DevExpress.XtraReports.UI.XRPictureBox.Sizing', defaultVal: 'Normal', from: fromEnum, valuesArray: [\n { value: 'Normal', displayValue: 'Normal', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Normal' },\n { value: 'StretchImage', displayValue: 'Stretch Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.StretchImage' },\n { value: 'AutoSize', displayValue: 'Auto-Size', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.AutoSize' },\n { value: 'CenterImage', displayValue: 'Center Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.CenterImage' },\n { value: 'ZoomImage', displayValue: 'Zoom Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.ZoomImage' },\n { value: 'Squeeze', displayValue: 'Squeeze', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Squeeze' },\n { value: 'Tile', displayValue: 'Tile', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Tile' },\n { value: 'Cover', displayValue: 'Cover', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Cover' }\n ]\n};\nexport var imageAlignment = {\n propertyName: 'imageAlignment', modelName: '@ImageAlignment', editor: editorTemplates.getEditor('combobox'), displayName: 'Alignment', localizationId: 'DevExpress.XtraReports.UI.XRPictureBox.Alignment', defaultVal: 'Default', from: fromEnum, valuesArray: [\n { value: 'Default', displayValue: 'Default', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.Default' },\n { value: 'TopLeft', displayValue: 'Top Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopLeft' },\n { value: 'TopCenter', displayValue: 'Top Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopCenter' },\n { value: 'TopRight', displayValue: 'Top Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopRight' },\n { value: 'MiddleLeft', displayValue: 'Middle Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleLeft' },\n { value: 'MiddleCenter', displayValue: 'Middle Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleCenter' },\n { value: 'MiddleRight', displayValue: 'Middle Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleRight' },\n { value: 'BottomLeft', displayValue: 'Bottom Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomLeft' },\n { value: 'BottomCenter', displayValue: 'Bottom Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomCenter' },\n { value: 'BottomRight', displayValue: 'Bottom Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomRight' }\n ]\n};\nexport class EditingField extends Disposable {\n constructor(model, index, htmlProvider) {\n super();\n this._needToUseHtml = false;\n this._index = -1;\n this._model = model;\n this._index = index;\n this._readOnly = ko.observable(model.readOnly);\n this._disposables.push(this.readOnly = ko.pureComputed({\n read: () => {\n return this._readOnly() || !EditablePreviewEnabled();\n },\n write: (newVal) => {\n this._readOnly(newVal);\n }\n }));\n this.modelValue = ko.observable(model.editValue);\n this.editValue = ko.computed({\n read: () => {\n return this.modelValue();\n },\n write: (newVal) => {\n var oldVal = this.modelValue();\n this.modelValue(newVal);\n var val = this.editingFieldChanged(this, oldVal, newVal);\n val = val == null ? newVal : val;\n if (val !== oldVal) {\n this._refreshHtmlValue(val);\n }\n if (val !== newVal) {\n this.modelValue(val);\n this._editorValue(val);\n }\n }\n });\n this._editorValue = ko.observable(model.editValue);\n this.htmlValue = ko.observable(model.htmlValue);\n this._htmlProvider = htmlProvider;\n }\n _refreshHtmlValue(newValue) {\n this.htmlValue(null);\n if (this._needToUseHtml) {\n this._htmlProvider.getEditingFieldHtml(newValue, this._index).done((html) => {\n this.htmlValue(html);\n });\n }\n }\n editingFieldChanged(field, oldVal, newVal) {\n return newVal;\n }\n editorName() { return this._model.editorName; }\n id() { return this._model.id; }\n groupID() { return this._model.groupID; }\n pageIndex() { return this._model.pageIndex; }\n type() { return this._model.type; }\n model() {\n return $.extend({}, this._model, {\n readOnly: this.readOnly.peek(),\n editValue: this.editValue.peek(),\n htmlValue: this.htmlValue.peek(),\n });\n }\n createViewModel(zoom, pageWidth, pageHeight, editingFieldsProvider, bounds) {\n if (this._model.type === 'check') {\n return new CheckEditingFieldViewModel(this, pageWidth, pageHeight, zoom, editingFieldsProvider);\n }\n else if (this._model.type === 'text') {\n this._needToUseHtml = bounds.height !== this._model.bounds.height || !!this._model.brickOptions.formatString;\n if (!this._needToUseHtml) {\n this.htmlValue(null);\n }\n return new TextEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n else if (this._model.type === 'charactercomb') {\n return new CharacterCombEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n else if (this._model.type === 'image') {\n return new DefaultImageEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\csvExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CsvExportOptions } from '../../common/exportOptions/csvExportOptions';\nimport { useCustomSeparator } from '../../common/exportOptions/metadata';\nexport class CsvExportOptionsPreview extends CsvExportOptions {\n static from(model, serializer) {\n return new CsvExportOptionsPreview(model || {}, serializer);\n }\n isPropertyVisible(name) {\n return name !== useCustomSeparator.propertyName;\n }\n isPropertyDisabled(name) {\n return false;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\metadata.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { rtfExportMode, getExportModeValues, docxExportMode, htmlExportMode, xlsExportMode, imageExportMode, xlsxExportMode } from '../../common/exportOptions/metadata';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport var rtfExportModeMergedPreview = $.extend({}, rtfExportMode, {\n valuesArray: getExportModeValues('Rtf', true, true)\n});\nexport var docxExportModeMergedPreview = $.extend({}, docxExportMode, {\n valuesArray: getExportModeValues('Docx', true, true)\n});\nexport function excludeModesForMergedDocuments(val) {\n return ko.observable('SingleFilePageByPage');\n}\nexport function excludeDifferentFilesMode(val) {\n return ko.observable(val === 'DifferentFiles' ? 'SingleFile' : val);\n}\nexport var htmlExportModePreviewBase = {\n propertyName: htmlExportMode.propertyName, modelName: htmlExportMode.modelName, defaultVal: htmlExportMode.defaultVal,\n editor: htmlExportMode.editor, displayName: htmlExportMode.displayName, localizationId: htmlExportMode.localizationId\n};\nexport var htmlExportModePreview = $.extend({}, htmlExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Html', true)\n});\nexport var htmlExportModeMergedPreview = $.extend({}, htmlExportModePreviewBase, {\n valuesArray: getExportModeValues('Html', true, true)\n});\nexport var xlsExportModePreviewBase = {\n propertyName: xlsExportMode.propertyName, modelName: xlsExportMode.modelName, defaultVal: xlsExportMode.defaultVal,\n editor: xlsExportMode.editor, displayName: xlsExportMode.displayName, localizationId: xlsExportMode.localizationId\n};\nexport var xlsExportModePreview = $.extend({}, xlsExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Xls', true)\n});\nexport var xlsExportModeMergedPreview = $.extend({}, xlsExportModePreviewBase, {\n valuesArray: getExportModeValues('Xls', true, true)\n});\nexport var imageExportModePreviewBase = {\n propertyName: imageExportMode.propertyName, modelName: imageExportMode.modelName, defaultVal: imageExportMode.defaultVal,\n editor: imageExportMode.editor, displayName: imageExportMode.displayName, localizationId: imageExportMode.localizationId\n};\nexport var imageExportModePreview = $.extend({}, imageExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Image', true)\n});\nexport var imageExportModeMergedPreview = $.extend({}, imageExportModePreviewBase, {\n valuesArray: getExportModeValues('Image', true, true)\n});\nexport var xlsxExportModePreviewBase = {\n propertyName: xlsxExportMode.propertyName, modelName: xlsxExportMode.modelName, defaultVal: xlsxExportMode.defaultVal,\n editor: xlsxExportMode.editor, displayName: xlsxExportMode.displayName, localizationId: xlsxExportMode.localizationId\n};\nexport var xlsxExportModePreview = $.extend({}, xlsxExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Xlsx', true)\n});\nexport var xlsxExportModeMergedPreview = $.extend({}, xlsxExportModePreviewBase, {\n valuesArray: getExportModeValues('Xlsx', true, true)\n});\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\htmlExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { htmlExportOptionsSerializationInfoBase } from '../../common/exportOptions/htmlMetaData';\nimport { HtmlExportOptions } from '../../common/exportOptions/htmlExportOptions';\nimport { htmlExportModePreview, htmlExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar htmlExportOptionsSerializationInfoPreview = [].concat(htmlExportOptionsSerializationInfoBase);\nexport class HtmlExportOptionsPreview extends HtmlExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(htmlExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [htmlExportModePreview];\n }\n}\nexport class HtmlExportOptionsMergedPreview extends HtmlExportOptionsPreview {\n _getVariableInfo() {\n return [htmlExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === htmlExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.htmlExportMode(excludeModesForMergedDocuments(this.htmlExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\imageExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { imageExportOptionsSerializationInfoBase } from '../../common/exportOptions/imageMetaData';\nimport { ImageExportOptions } from '../../common/exportOptions/imageExportOptions';\nimport { imageExportModePreview, imageExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar imageExportOptionsSerializationInfoPreview = [].concat(imageExportOptionsSerializationInfoBase);\nexport class ImageExportOptionsPreview extends ImageExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(imageExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [imageExportModePreview];\n }\n}\nexport class ImageExportOptionsMergedPreview extends ImageExportOptionsPreview {\n _getVariableInfo() {\n return [imageExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === imageExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.imageExportMode(excludeModesForMergedDocuments(this.imageExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\mhtExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { mhtExportOptionsSerializationInfoBase } from '../../common/exportOptions/mhtMetaData';\nimport { MhtExportOptions } from '../../common/exportOptions/mhtExportOptions';\nimport { htmlExportModePreview, htmlExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar mhtExportOptionsSerializationInfoPreview = [].concat(mhtExportOptionsSerializationInfoBase);\nexport class MhtExportOptionsPreview extends MhtExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(mhtExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [htmlExportModePreview];\n }\n}\nexport class MhtExportOptionsMergedPreview extends MhtExportOptionsPreview {\n _getVariableInfo() {\n return [htmlExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === htmlExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.htmlExportMode(excludeModesForMergedDocuments(this.htmlExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\rtfExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { rtfExportOptionsSerializationInfoBase } from '../../common/exportOptions/rtfMetaData';\nimport { RtfExportOptions } from '../../common/exportOptions/rtfExportOptions';\nimport { rtfExportMode } from '../../common/exportOptions/metadata';\nimport { rtfExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar rtfExportOptionsSerializationInfoPreview = [].concat(rtfExportOptionsSerializationInfoBase);\nexport class RtfExportOptionsPreview extends RtfExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(rtfExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [rtfExportMode];\n }\n}\nexport class RtfExportOptionsMergedPreview extends RtfExportOptionsPreview {\n _getVariableInfo() {\n return [rtfExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === rtfExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.rtfExportMode(excludeModesForMergedDocuments(this.rtfExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\xlsExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { xlsExportOptionsSerializationInfoBase, xlsExportOptionsSerializationInfoCommon } from '../../common/exportOptions/xlsMetaData';\nimport { XlsExportOptions } from '../../common/exportOptions/xlsExportOptions';\nimport { xlsExportModePreview, xlsExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar xlsExportOptionsSerializationInfoPreview = [].concat(xlsExportOptionsSerializationInfoBase, xlsExportOptionsSerializationInfoCommon);\nexport class XlsExportOptionsPreview extends XlsExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(xlsExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [xlsExportModePreview];\n }\n}\nexport class XlsExportOptionsMergedPreview extends XlsExportOptionsPreview {\n _getVariableInfo() {\n return [xlsExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === xlsExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.xlsExportMode(excludeModesForMergedDocuments(this.xlsExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\xlsxExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { xlsExportOptionsSerializationInfoCommon } from '../../common/exportOptions/xlsMetaData';\nimport { XlsxExportOptions } from '../../common/exportOptions/xlsxExportOptions';\nimport { xlsxExportModePreview, xlsxExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar xlsxExportOptionsSerializationInfoPreview = [].concat(xlsExportOptionsSerializationInfoCommon);\nexport class XlsxExportOptionsPreview extends XlsxExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(xlsxExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [xlsxExportModePreview];\n }\n}\nexport class XlsxExportOptionsMergedPreview extends XlsxExportOptionsPreview {\n _getVariableInfo() {\n return [xlsxExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === xlsxExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.xlsxExportMode(excludeModesForMergedDocuments(this.xlsxExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\docxExportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { pageRange, docxTableLayout, rasterizeImages, rasterizationResolution, exportPageBreaks, exportWatermarks, docxExportMode } from '../../common/exportOptions/metadata';\nimport { keepRowHeight } from '../../common/exportOptions/rtfMetaData';\nimport { docxDocumentOptions } from '../../common/exportOptions/docxMetaData';\nimport { DocxExportOptions } from '../../common/exportOptions/docxExportOptions';\nimport { docxExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar docxExportOptionsSerializationInfoPreview = [\n pageRange,\n docxTableLayout,\n keepRowHeight,\n rasterizeImages,\n rasterizationResolution,\n exportPageBreaks,\n exportWatermarks,\n docxDocumentOptions,\n];\nexport class DocxExportOptionsPreview extends DocxExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(docxExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [docxExportMode];\n }\n}\nexport class DocxExportOptionsMergedPreview extends DocxExportOptionsPreview {\n _getVariableInfo() {\n return [docxExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === docxExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.docxExportMode(excludeModesForMergedDocuments(this.docxExportMode())());\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\exportOptionsPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ExportOptions } from '../../common/exportOptions/exportOptions';\nimport { CsvExportOptionsPreview } from './csvExportOptionsPreview';\nimport { HtmlExportOptionsPreview, HtmlExportOptionsMergedPreview } from './htmlExportOptionsPreview';\nimport { ImageExportOptionsPreview, ImageExportOptionsMergedPreview } from './imageExportOptionsPreview';\nimport { MhtExportOptionsPreview, MhtExportOptionsMergedPreview } from './mhtExportOptionsPreview';\nimport { PdfExportOptions } from '../../common/exportOptions/pdfExportOptions';\nimport { RtfExportOptionsPreview, RtfExportOptionsMergedPreview } from './rtfExportOptionsPreview';\nimport { TextExportOptions } from '../../common/exportOptions/textExportOptions';\nimport { XlsExportOptionsPreview, XlsExportOptionsMergedPreview } from './xlsExportOptionsPreview';\nimport { XlsxExportOptionsPreview, XlsxExportOptionsMergedPreview } from './xlsxExportOptionsPreview';\nimport { DocxExportOptionsPreview, DocxExportOptionsMergedPreview } from './docxExportOptionsPreview';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class ExportOptionsPreview extends ExportOptions {\n _generateFromFunction(exportType) {\n return (model, serializer) => {\n return new exportType(model || {}, serializer);\n };\n }\n _generateInfo() {\n return [\n { propertyName: 'csv', modelName: 'Csv', displayName: 'CSV Export Options', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions', from: CsvExportOptionsPreview.from, toJsonObject: CsvExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: this._generateFromFunction(HtmlExportOptionsPreview), toJsonObject: HtmlExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: this._generateFromFunction(ImageExportOptionsPreview), toJsonObject: ImageExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: this._generateFromFunction(MhtExportOptionsPreview), toJsonObject: MhtExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: PdfExportOptions.from, toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: this._generateFromFunction(RtfExportOptionsPreview), toJsonObject: RtfExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'textExportOptions', modelName: 'Text', displayName: 'Text Export Options', localizationId: 'DevExpress.XtraPrinting.TextExportOptions', from: TextExportOptions.from, toJsonObject: TextExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: this._generateFromFunction(XlsExportOptionsPreview), toJsonObject: XlsExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: this._generateFromFunction(XlsxExportOptionsPreview), toJsonObject: XlsxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: this._generateFromFunction(DocxExportOptionsPreview), toJsonObject: DocxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') }\n ];\n }\n hasSensitiveData() {\n return (this.xls && this.xls.hasSensitiveData())\n || (this.xlsx && this.xlsx.hasSensitiveData())\n || (this.pdf && this.pdf.hasSensitiveData());\n }\n getInfo() {\n return this._generateInfo();\n }\n}\nexport class ExportOptionsMergedPreview extends ExportOptionsPreview {\n _generateInfo() {\n return [\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: this._generateFromFunction(HtmlExportOptionsMergedPreview), toJsonObject: HtmlExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: this._generateFromFunction(ImageExportOptionsMergedPreview), toJsonObject: ImageExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: this._generateFromFunction(MhtExportOptionsMergedPreview), toJsonObject: MhtExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: PdfExportOptions.from, toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: this._generateFromFunction(RtfExportOptionsMergedPreview), toJsonObject: RtfExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: this._generateFromFunction(XlsExportOptionsMergedPreview), toJsonObject: XlsExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: this._generateFromFunction(XlsxExportOptionsMergedPreview), toJsonObject: XlsxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: this._generateFromFunction(DocxExportOptionsMergedPreview), toJsonObject: DocxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') }\n ];\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewRequestWrapper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ajax, formatUnicorn, getErrorMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { HandlerUri, MessageHandler, TimeOut } from '../settings';\nexport var ColumnSortOrder;\n(function (ColumnSortOrder) {\n ColumnSortOrder[ColumnSortOrder[\"None\"] = 0] = \"None\";\n ColumnSortOrder[ColumnSortOrder[\"Ascending\"] = 1] = \"Ascending\";\n ColumnSortOrder[ColumnSortOrder[\"Descending\"] = 2] = \"Descending\";\n})(ColumnSortOrder || (ColumnSortOrder = {}));\nexport class PreviewRequestWrapper {\n constructor(handlers, _callbacks) {\n this._callbacks = _callbacks;\n Object.keys(handlers || {}).forEach((name) => {\n this[name] = handlers[name];\n });\n }\n static getProcessErrorCallback(reportPreview, defaultErrorMessage, showMessage = true) {\n return function (message, jqXHR, textStatus) {\n if (jqXHR) {\n var statusCodeText = getLocalization(jqXHR.statusText, 'ASPxReportsStringId.HttpResponseStatusCode_' + jqXHR.status);\n if (defaultErrorMessage) {\n var stringFormat = getLocalization('{0} ({1} {2})', 'ASPxReportsStringId.Error_WithStatus');\n var messageWithStatusCode = formatUnicorn(stringFormat, defaultErrorMessage, jqXHR.status, statusCodeText);\n }\n else {\n messageWithStatusCode = statusCodeText;\n }\n }\n if (!reportPreview) {\n var error = getErrorMessage(jqXHR);\n MessageHandler().processError(error || messageWithStatusCode || defaultErrorMessage || 'Internal Server Error', showMessage);\n }\n else {\n reportPreview._processError(messageWithStatusCode || defaultErrorMessage, jqXHR, showMessage);\n }\n };\n }\n static getPage(url, ignoreError) {\n return ajax(url, undefined, undefined, PreviewRequestWrapper.getProcessErrorCallback(), ignoreError, { type: 'GET' });\n }\n initialize(reportPreview, parametersModel, searchModel) {\n this._reportPreview = reportPreview;\n this._parametersModel = parametersModel;\n this._searchModel = searchModel;\n }\n findTextRequest(text, ignore) {\n return ajax(HandlerUri(), 'findText', encodeURIComponent(JSON.stringify({\n text: text,\n documentId: this._reportPreview.documentId,\n matchCase: this._searchModel.matchCase(),\n wholeWord: this._searchModel.matchWholeWord(),\n searchUp: this._searchModel.searchUp()\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during search', 'ASPxReportsStringId.WebDocumentViewer_SearchError')), ignore);\n }\n stopBuild(id) {\n ajax(HandlerUri(), 'stopBuild', encodeURIComponent(id), undefined, () => true);\n }\n sendCloseRequest(documentId, reportId) {\n ajax(HandlerUri(), 'close', encodeURIComponent(JSON.stringify({\n reportId: reportId,\n documentId: documentId\n })), undefined, () => true);\n }\n startBuildRequest(shouldIgnoreError) {\n var parameters = this._parametersModel.serializeParameters();\n this._callbacks && this._callbacks.parametersSubmitted && this._callbacks.parametersSubmitted(this._parametersModel, parameters);\n return ajax({\n uri: HandlerUri(),\n action: 'startBuild',\n arg: encodeURIComponent(JSON.stringify({\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n drillDownKeys: this._reportPreview['_drillDownState'],\n sortingState: this._reportPreview['_sortingState'],\n timeZoneOffset: 0 - new Date().getTimezoneOffset(),\n parameters: parameters\n })),\n ignoreError: shouldIgnoreError,\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Cannot create a document for the current report', 'ASPxReportsStringId.WebDocumentViewer_DocumentCreationError'))\n });\n }\n getBuildStatusRequest(documentId, shouldIgnoreError) {\n return ajax({\n uri: HandlerUri(),\n action: 'getBuildStatus',\n arg: encodeURIComponent(JSON.stringify({\n documentId: documentId,\n timeOut: Math.max(5000, TimeOut())\n })),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Error obtaining a build status', 'ASPxReportsStringId.WebDocumentViewer_GetBuildStatusError')),\n ignoreError: shouldIgnoreError,\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage) || !data.success,\n getErrorMessage: this._reportPreview._getErrorMessage\n });\n }\n getDocumentData(documentId, shouldIgnoreError) {\n return ajax(HandlerUri(), 'getDocumentData', encodeURIComponent(documentId), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Cannot obtain additional document data for the current document', 'ASPxReportsStringId.WebDocumentViewer_GetDocumentDataError')), shouldIgnoreError);\n }\n customDocumentOperation(documentId, serializedExportOptions, editindFields, customData, hideMessageFromUser) {\n return ajax(HandlerUri(), 'documentOperation', encodeURIComponent(JSON.stringify({\n documentId: documentId,\n customData: customData,\n exportOptions: serializedExportOptions,\n editingFieldValues: editindFields\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('The requested document operation cannot be performed.', 'ASPxReportsStringId.WebDocumentViewer_CustomDocumentOperationsDenied_Error'), !hideMessageFromUser));\n }\n openReport(reportName) {\n return ajax(HandlerUri(), 'openReport', encodeURIComponent(reportName), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Could not open report', 'ASPxReportsStringId.WebDocumentViewer_OpenReportError') + \" '\" + reportName + \"'\"));\n }\n drillThrough(customData) {\n return ajax(HandlerUri(), 'drillThrough', encodeURIComponent(JSON.stringify({\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n documentId: this._reportPreview.documentId,\n parameters: this._parametersModel.serializeParameters(),\n editingFields: this._reportPreview.editingFieldsProvider().map(field => field.model()),\n customData: customData\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Drill through operation failed', 'ASPxReportsStringId.WebDocumentViewer_DrillThroughError')));\n }\n getStartExportOperation(arg, shouldIgnoreError) {\n return ajax(HandlerUri(), 'startExport', arg, PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError')), shouldIgnoreError);\n }\n cancelExportRequest(operationId, shouldIgnoreError) {\n var arg = encodeURIComponent(JSON.stringify({\n id: operationId\n }));\n return ajax(HandlerUri(), 'cancelExport', arg, PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError')), shouldIgnoreError);\n }\n getExportStatusRequest(operationId) {\n return ajax({\n uri: HandlerUri(),\n action: 'getExportStatus',\n arg: encodeURIComponent(JSON.stringify({\n id: operationId,\n timeOut: Math.max(5000, TimeOut())\n })),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Error obtaining an export status', 'ASPxReportsStringId.WebDocumentViewer_GetExportStatusError')),\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage) || !data.success,\n getErrorMessage: this._reportPreview._getErrorMessage\n });\n }\n getEditingFieldHtml(value, editingFieldIndex) {\n return ajax(HandlerUri(), 'getEditingFieldHtmlValue', encodeURIComponent(JSON.stringify({\n documentId: this._reportPreview.documentId,\n value: value,\n editingFieldIndex: editingFieldIndex\n })));\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { previewDefaultResolution } from '../settings';\nimport * as $ from 'jquery';\nexport function getCurrentResolution(zoom) {\n return Math.floor((zoom || 1) * previewDefaultResolution());\n}\nexport function getImageBase64(url) {\n var deferred = $.Deferred();\n var background = new Image();\n background.src = url;\n background.crossOrigin = 'anonymous';\n background.onload = () => {\n var canvas = document.createElement('canvas');\n canvas.width = background.width;\n canvas.height = background.height;\n canvas.getContext('2d').drawImage(background, 0, 0);\n try {\n deferred.resolve(canvas.toDataURL());\n }\n catch (e) {\n deferred.reject(e);\n }\n };\n return deferred.promise();\n}\nexport function getEnumValues(enumType) {\n return Object.keys(enumType).filter(key => !isNaN(Number(enumType[key])));\n}\nexport function safelyRunWindowOpen(url, target = '_blank') {\n var newWindow = window.open(url, target);\n target === '_blank' && newWindow && (newWindow.opener = newWindow);\n return newWindow;\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_exportHandler.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { formatUnicorn, StringId } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nimport browser from 'devextreme/core/utils/browser';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { generateGuid, isIOS, isAndroid, isMobile } from '../../common/utils/_utils';\nimport { AsyncExportApproach, HandlerUri, ReportServerDownloadUri } from '../settings';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { safelyRunWindowOpen } from './_utils';\nexport class ExportResultRequestData {\n constructor() {\n this.RequestUrl = '';\n this.FormData = {};\n this.QueryParameters = {};\n }\n}\nexport class ExportHandler extends Disposable {\n constructor(exportSetting, preview) {\n super();\n this.preview = preview;\n this.exportActionUri = ko.observable(null);\n this.exportFormData = ko.observable([]);\n this.reportDisplayName = ko.observable(null);\n this.popupVisible = ko.observable(false);\n this.popupWidth = ko.observable(510);\n this.popupHeight = ko.observable(260);\n this.exportingFrameName = 'dxrd-exporting-frame' + generateGuid();\n this.popupButtons = [\n {\n toolbar: 'bottom', location: 'after', widget: 'dxButton',\n options: {\n text: getLocalization('Ok', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained',\n onClick: () => this.popupVisible(false)\n }\n }\n ];\n this.printingLinkCallback = () => { };\n this.printingTextPrefix = ko.observable('');\n this.printingTextPostfix = ko.observable('');\n this.getPopupTitle = () => this.reportDisplayName() || '';\n this._exportResultRequestData = new ExportResultRequestData();\n this._showPrintNotificationDialog = true;\n this._useSameTabExport = true;\n this._useAsynchronousExport = true;\n this._workerTicker = null;\n this._workerFunctionBlobUrl = null;\n this._xhr = null;\n this._workerTickerFunction = function () {\n var started, interval;\n self.onmessage = function (e) {\n if (e.data === 'stop') {\n clearInterval(interval);\n return;\n }\n if (started)\n return;\n interval = setInterval(() => {\n postMessage.apply(self, ['tick']);\n }, 10);\n started = true;\n };\n };\n this._window = null;\n this._timeouts = [];\n if (exportSetting) {\n if (exportSetting.useAsynchronousExport !== undefined)\n this._useAsynchronousExport = exportSetting.useAsynchronousExport;\n if (exportSetting.useSameTab !== undefined)\n this._useSameTabExport = exportSetting.useSameTab;\n if (exportSetting.showPrintNotificationDialog !== undefined)\n this._showPrintNotificationDialog = exportSetting.showPrintNotificationDialog;\n }\n }\n _getUrlObject() {\n return window.URL || window['webkitURL'] || window['mozURL'] || window['msURL'] || window['oURL'];\n }\n _createWorker() {\n this._terminateWorker();\n var blob = new Blob(['(' + this._workerTickerFunction.toString() + ')()'], { type: 'text/javascript' });\n var _url = this._getUrlObject();\n this._workerFunctionBlobUrl = _url.createObjectURL(blob);\n this._workerTicker = new Worker(this._workerFunctionBlobUrl);\n return this._workerTicker;\n }\n _terminateWorker() {\n if (this._workerTicker) {\n this._workerTicker.terminate();\n this._workerTicker = null;\n }\n if (this._workerFunctionBlobUrl) {\n var _url = this._getUrlObject();\n _url && _url.revokeObjectURL(this._workerFunctionBlobUrl);\n this._workerFunctionBlobUrl = null;\n }\n }\n _callPrint(_window) {\n var browserVersion = parseInt(browser.version);\n if (_window && ((browser.chrome && 76 <= browserVersion && !isAndroid) || isIOS)) {\n var worker = this._createWorker();\n var checkOnTick = () => {\n try {\n if (_window.document && _window.document.contentType === 'application/pdf') {\n _window.print();\n worker.postMessage('stop');\n this._terminateWorker();\n }\n }\n catch (ex) {\n this._terminateWorker();\n }\n };\n worker.onerror = (e) => { checkOnTick(); };\n worker.onmessage = (e) => { checkOnTick(); };\n worker.postMessage('start');\n }\n }\n _clearExportingFrame() {\n if (this._isNewBrowser()) {\n var iframe = this.exportingFrame.contentWindow;\n iframe && iframe.location.replace('about:blank');\n }\n }\n _initPrintingWindow() {\n var printingTextParts = getLocalization('If the operation fails, you can download the {0} and print it out from another application.', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Text').split('{0}');\n this.printingTextPrefix(printingTextParts[0]);\n this.printingTextPostfix(printingTextParts[1]);\n if (this._showPrintNotificationDialog) {\n var subscription = this.popupVisible.subscribe((newVal) => {\n if (!newVal) {\n this.printingLinkCallback = () => { };\n this._clearExportingFrame();\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n this.popupVisible(true);\n }\n }\n _setPrintingLinkCallback(printingLinkCallback) {\n if (this._showPrintNotificationDialog) {\n this.printingLinkCallback = printingLinkCallback;\n }\n }\n _formSubmit(_requestData, _formTarget) {\n if (this.postingForm) {\n this.postingForm.target = _formTarget;\n this.exportActionUri(_requestData.RequestUrl);\n var formData = [];\n for (var key in _requestData.FormData) {\n formData.push({ name: key, value: _requestData.FormData[key] });\n }\n this.exportFormData(formData);\n this.postingForm.submit();\n }\n }\n _doExportSync(_exportWindow, printable, useSameTab, shouldChangePrintJobName) {\n this.onExportCustomEvent && this.onExportCustomEvent(this._exportResultRequestData);\n const _requestData = this._exportResultRequestData;\n useSameTab && printable && this._initPrintingWindow();\n const formTarget = useSameTab || (this._useSameTabExport && !useSameTab && isMobile) ? this.exportingFrameName : '_blank';\n if (!printable || !this._isNewBrowser() || (this._useSameTabExport && !useSameTab && isMobile)) {\n if (!this._useSameTabExport) {\n this._replaceLocation(_exportWindow, _requestData);\n }\n else {\n this._formSubmit(_requestData, formTarget);\n }\n }\n else {\n if (!_exportWindow) {\n _exportWindow = this.exportingFrame && (useSameTab || (this._useSameTabExport && isMobile)) ? this.exportingFrame.contentWindow : this._replaceLocation(null, null);\n }\n const method = this._useSameTabExport ? 'POST' : 'GET';\n this._printUsingBlob(_exportWindow, _requestData, method, shouldChangePrintJobName);\n }\n }\n _initExportWindow() {\n var message = getLocalization('Do not close this tab to get the resulting file.', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportCloseWarning');\n var div = this._window.document.createElement('div');\n div.style['text-align'] = 'center';\n div.innerText = message;\n div.style.position = 'absolute';\n div.style.left = '0';\n div.style.top = '0';\n div.style.right = '0';\n div.style.fontSize = '20px';\n this._window.document.title = getLocalization('Exporting...', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportTabTitle');\n this._window.document.body.appendChild(div);\n div = this._window.document.createElement('div');\n div.id = 'loading';\n div.style.position = 'absolute';\n div.style.left = '0';\n div.style.top = '0';\n div.style.bottom = '0';\n div.style.right = '0';\n div.style['text-align'] = 'center';\n div.style.margin = 'auto';\n div.style.height = '0';\n div.style.fontSize = '32px';\n this._window.document.body.appendChild(div);\n }\n _startExportAsync(args, useSameTabLocal, deferred, inlineResult, printable = false) {\n if (useSameTabLocal) {\n this._setPrintingLinkCallback(() => this._startExportAsync(args, false, deferred, inlineResult, printable));\n }\n else {\n if (!this._useSameTabExport) {\n this._window = window.open();\n this._window.onunload = () => {\n this.preview.progressBar.stop();\n this._terminateWorker();\n };\n this._initExportWindow();\n }\n }\n this.preview.progressBar.text(getLocalization('Exporting the document...', 'PreviewStringId.Msg_ExportingDocument'));\n this.preview.progressBar.cancelText(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n var exportOperationIdDeferred = $.Deferred();\n var startExportOperationId = generateGuid();\n var shouldIgnoreError = (operationId) => () => this.preview.progressBar.wasCancelRequested(operationId || startExportOperationId);\n this.preview.progressBar.startProgress(startExportOperationId, (operationId) => {\n this.preview.requestWrapper.cancelExportRequest(operationId, shouldIgnoreError(operationId));\n }, exportOperationIdDeferred.promise());\n this.preview.requestWrapper.getStartExportOperation(args, shouldIgnoreError())\n .done((response) => {\n this.preview.previewHandlersHelper.doneStartExportHandler(deferred, inlineResult, response, exportOperationIdDeferred, startExportOperationId, useSameTabLocal, printable);\n })\n .fail((error) => {\n this.preview.previewHandlersHelper.errorStartExportHandler(deferred, startExportOperationId, error);\n exportOperationIdDeferred.reject();\n !this._useSameTabExport && error.responseJSON && error.responseJSON['error'] && this._showAsyncExportError(this._window, error.responseJSON['error']);\n });\n }\n export(args, actionUri, inlineResult, printable = false) {\n this._terminateWorker();\n var deferred = $.Deferred();\n var requestData = this._exportResultRequestData;\n requestData.RequestUrl = actionUri;\n if (this.preview._editingFields().length > 0 || AsyncExportApproach() || this._useAsynchronousExport || (this.preview.exportOptionsModel() && this.preview.exportOptionsModel().hasSensitiveData())) {\n setTimeout(() => {\n this._startExportAsync(args(), this._useSameTabExport, deferred, inlineResult, printable);\n });\n }\n else {\n deferred.resolve(true);\n if (this._useSameTabExport) {\n requestData.FormData['arg'] = args();\n requestData.FormData['actionKey'] = 'exportTo';\n this._setPrintingLinkCallback(() => this._doExportSync(null, true, false, false));\n }\n else {\n requestData.QueryParameters['arg'] = args();\n requestData.QueryParameters['actionKey'] = 'exportTo';\n }\n this._doExportSync(null, printable, this._useSameTabExport, false);\n }\n return deferred.promise();\n }\n _isNewBrowser() {\n var isNewChrome = browser.chrome && (parseInt(browser.version) >= 76);\n return (isNewChrome || browser.mozilla || browser['safari']);\n }\n _showAsyncExportError(window, message, status, statusText) {\n if (window) {\n var div = window.document.getElementById('loading');\n if (div) {\n if (status || statusText) {\n var stringFormat = getLocalization('{0} ({1} {2})', 'ASPxReportsStringId.Error_WithStatus');\n div.innerText = formatUnicorn(stringFormat, message, status, statusText);\n }\n else\n div.innerText = message;\n }\n }\n }\n _printUsingBlob(_exportWindow, _requestData, _method, shouldChangePrintJobName) {\n if (!this._useSameTabExport && _exportWindow && shouldChangePrintJobName) {\n _exportWindow.location.replace(_requestData.RequestUrl);\n return;\n }\n _method === 'GET' && (_requestData.RequestUrl = this._addQueryParamsToUri(_requestData.RequestUrl, _requestData.QueryParameters));\n this._executeXhr(_exportWindow, _requestData, _method, this._handleXhrReady);\n }\n _executeXhr(_exportWindow, _requestData, _method, _handleXhrReady) {\n this._prepareXhr(_exportWindow, _requestData, _method, _requestData.RequestUrl, _handleXhrReady);\n var formData = new FormData();\n for (var key in _requestData.FormData) {\n formData.append(key, _requestData.FormData[key]);\n }\n this._xhr.send(formData);\n }\n _prepareXhr(_exportWindow, _requestData, _method, _exportUrl, _handleXhrReady) {\n const _this = this;\n this._xhr = new XMLHttpRequest();\n this._xhr.onreadystatechange = function () {\n _handleXhrReady(_this, this, _exportWindow, _requestData);\n };\n this._xhr.open(_method, _exportUrl);\n this._xhr.responseType = 'blob';\n }\n _handleXhrReady(_this, _xmlHttpRequest, _exportWindow, _requestData) {\n if (_xmlHttpRequest.readyState == 4 && _xmlHttpRequest.status == 200) {\n const _url = _this._getUrlObject();\n const blobUrl = _url.createObjectURL(_xmlHttpRequest.response);\n _exportWindow && _exportWindow.location.replace(blobUrl);\n setTimeout(() => { _url.revokeObjectURL(blobUrl); }, 1);\n _this._callPrint(_exportWindow);\n }\n else if (_xmlHttpRequest.readyState == 4 && _xmlHttpRequest.status >= 400) {\n var message = getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError');\n PreviewRequestWrapper.getProcessErrorCallback(_this.preview, message, true)('', _xmlHttpRequest, '');\n if (_exportWindow && _exportWindow.name != _this.exportingFrameName) {\n _this._showAsyncExportError(_exportWindow, message, _xmlHttpRequest.status, _xmlHttpRequest.statusText);\n }\n }\n }\n _addQueryParamsToUri(_exportUri, _queryParameters) {\n var keys = Object.keys(_queryParameters || {});\n if (keys.length > 0) {\n _exportUri += '?';\n _exportUri += keys.map(x => x + '=' + _queryParameters[x]).join('&');\n }\n return _exportUri;\n }\n _replaceLocation(_exportWindow, _requestData) {\n if (!_requestData) {\n return safelyRunWindowOpen('');\n }\n var _exportUrl = this._addQueryParamsToUri(_requestData.RequestUrl, _requestData.QueryParameters);\n _exportWindow ? _exportWindow.location.replace(_exportUrl) : (_exportWindow = safelyRunWindowOpen(_exportUrl));\n return _exportWindow;\n }\n dispose() {\n super.dispose();\n if (this._xhr)\n this._xhr.onreadystatechange = null;\n (this._timeouts || []).forEach(tic => clearTimeout(tic));\n this.removeProperties();\n }\n updateExportStatus(progress, operationId) {\n this.preview.progressBar && this.preview.progressBar.progress(progress);\n if (this._window) {\n var div = this._window.document.getElementById('loading');\n div && (div.innerText = getLocalization('Exporting the document...', 'PreviewStringId.Msg_ExportingDocument') + ' ' + progress + '%');\n this._window.document.title = getLocalization('Exporting...', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportTabTitle') + progress + '%';\n }\n if (progress >= 100) {\n this.preview.progressBar.complete(operationId);\n }\n }\n getExportStatus(operationId) {\n var deferred = $.Deferred();\n this._timeouts.push(setTimeout(() => {\n this.preview.requestWrapper.getExportStatusRequest(operationId)\n .done((response) => {\n this.preview.previewHandlersHelper.doneExportStatusHandler(deferred, operationId, response);\n })\n .fail((error) => {\n this.preview.previewHandlersHelper.errorExportStatusHandler(deferred, operationId, error);\n !this._useSameTabExport && error.responseJSON && error.responseJSON['error'] && this._showAsyncExportError(this._window, error.responseJSON['error']);\n });\n }, 250));\n return deferred.promise();\n }\n getExportResult(operationId, inlineDisposition, useSameTab, token, printable = false, uri = '') {\n var requestData = this._exportResultRequestData;\n if (uri) {\n requestData.RequestUrl = uri;\n }\n else if (token) {\n requestData.RequestUrl = ReportServerDownloadUri();\n requestData.QueryParameters['token'] = token;\n requestData.QueryParameters['printable'] = printable.toString();\n }\n else {\n var arg = encodeURIComponent(JSON.stringify({ id: operationId, inlineResult: !!inlineDisposition }));\n requestData.RequestUrl = HandlerUri();\n if (this._useSameTabExport) {\n requestData.FormData['actionKey'] = 'getExportResult';\n requestData.FormData['arg'] = arg;\n }\n else {\n requestData.QueryParameters['actionKey'] = 'getExportResult';\n requestData.QueryParameters['arg'] = arg;\n }\n }\n this._window && (this._window.onunload = null);\n this._doExportSync(this._window, printable, useSameTab, !!uri);\n this._window = null;\n }\n}\nko.bindingHandlers['dxViewerExport'] = {\n init: function (element, valueAccessor) {\n var exportHandler = valueAccessor();\n var templateHtml = getTemplate('dxrd-export-tool-content');\n $.fn.constructor(element).append(templateHtml);\n var exportFrame = document.createElement('iframe');\n exportFrame.name = exportHandler.exportingFrameName;\n element.querySelector('.dxrd-visually-hidden').appendChild(exportFrame);\n exportHandler.exportingFrame = exportFrame;\n exportHandler.postingForm = element.querySelector('form');\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_previewEditingFieldsKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccessibilityControlElementBase, AccessibilityKeyboardHelperBase } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class PreviewEditingFieldsKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-editing-field-item';\n this.accessibilityCompliantEnabled = true;\n }\n initialize() {\n super.initialize();\n this.setTabIndexes(0);\n }\n clickHandler() { }\n itemHandleEnterKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute(e);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n return this.itemHandleEnterKey(e, index);\n }\n createControlElement(element, index) {\n return new PreviewEditingFieldsElement(element, ko.dataFor(element));\n }\n}\nclass PreviewEditingFieldsElement extends AccessibilityControlElementBase {\n constructor(element, model) {\n super(element);\n this.element = element;\n this.model = model;\n this._processFocus = true;\n this._isClick = (e) => this._processFocus = false;\n this._activateHandler = (e) => {\n if (this.model.activateEditor && this._processFocus) {\n this.model.activateEditor(this.model, { target: this.element, currentTarget: this.element });\n this.element.setAttribute('tabindex', '-1');\n var subscription = this.model.active.subscribe(value => {\n if (!value) {\n this.element.setAttribute('tabindex', '0');\n if (document.activeElement === document.body) {\n this._processFocus = false;\n this.element.focus();\n }\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n }\n };\n this._blur = (e) => {\n this._processFocus = true;\n };\n element.addEventListener('mousedown', this._isClick);\n element.addEventListener('focus', this._activateHandler);\n element.addEventListener('blur', this._blur);\n }\n dispose() {\n this.element.removeEventListener('mousedown', this._isClick);\n this.element.removeEventListener('focus', this._activateHandler);\n this.element.removeEventListener('blur', this._blur);\n super.dispose();\n }\n actionExecute(e) {\n if (this.model.activateEditor)\n this._activateHandler(e);\n else if (this.model.onClick)\n this.model.onClick(this.model, e);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_brickUtils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport function convertToPercent(childSize, parentSize) {\n return childSize * 100 / parentSize + '%';\n}\nexport function getBrickValueForKey(brick, key = 'text') {\n var brickTextProperty = brick.content && brick.content.filter(x => x.Key === key)[0];\n return brickTextProperty && brickTextProperty.Value;\n}\nexport function brickText(brick, editingFieldsProvider) {\n var fields = editingFieldsProvider ? editingFieldsProvider() : [];\n if (brick.efIndex && brick.efIndex > 0 && brick.efIndex <= fields.length && fields[brick.efIndex - 1].type() === 'text') {\n return fields[brick.efIndex - 1].editValue();\n }\n else {\n return getBrickValueForKey(brick);\n }\n}\nexport function updateBricksPosition(brick, height, width) {\n if (!brick) {\n return;\n }\n brick[brick.rtl ? 'rightP' : 'leftP'] = convertToPercent(brick.left, width);\n brick.widthP = convertToPercent(brick.width, width);\n brick.topP = convertToPercent(brick.top, height);\n brick.heightP = convertToPercent(brick.height, height);\n brick.bricks && brick.bricks.forEach((childBrick) => {\n updateBricksPosition(childBrick, height, width);\n });\n}\nexport function initializeBrick(brick, processClick, zoom, editingFieldBricks) {\n if (!brick) {\n return;\n }\n !!brick.active ? brick.active(false) : (brick.active = ko.observable(false));\n brick['onClick'] = (e) => { processClick && processClick(brick, e); };\n brick.bricks && brick.bricks.forEach(childBrick => {\n if (!childBrick)\n return;\n childBrick.top += brick.top;\n childBrick.left += brick.left;\n initializeBrick(childBrick, processClick, zoom, editingFieldBricks);\n });\n if (brick.efIndex > 0) {\n editingFieldBricks.push(brick);\n }\n brick.text = () => brickText(brick);\n brick.accessibleDescription = getBrickValueForKey(brick, 'AccessibleDescription');\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_page.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { generateGuid } from '../../common/utils/_utils';\nimport { PreviewEditingFieldsKeyboardHelper } from '../accessibility/_previewEditingFieldsKeyboardHelper';\nimport { HandlerUri, previewDefaultResolution } from '../settings';\nimport { brickText, initializeBrick, updateBricksPosition } from './_brickUtils';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { PreviewSelection } from './_previewSelection';\nimport { getCurrentResolution } from './_utils';\nexport class PreviewPage extends Disposable {\n constructor(preview, pageIndex, processClick, loading) {\n super();\n this.isClientVisible = ko.observable(false);\n this.originalHeight = ko.observable(0);\n this.originalWidth = ko.observable(0);\n this.loadingText = getLocalization('Loading...', 'AnalyticsCoreStringId.Loading');\n this.realZoom = ko.observable(1);\n this.actualResolution = 0;\n this.currentScaleFactor = ko.observable(1);\n this.imageHeight = ko.observable(0);\n this.imageWidth = ko.observable(0);\n this.imageSrc = ko.observable('').extend({ rateLimit: { timeout: 100, method: 'notifyWhenChangesStop' } });\n this.displayImageSrc = ko.observable('');\n this.brick = ko.observable(null);\n this.brickLoading = ko.observable(true);\n this.bricks = ko.computed(() => {\n return this.getBricksFlatList(this.brick());\n });\n this.activeBricks = ko.computed(() => {\n return this.bricks().filter((x) => x.active());\n });\n this.clickableBricks = ko.computed(() => {\n return this.bricks().filter((x) => !!x.navigation);\n });\n this.active = ko.observable(false);\n this.maxZoom = 0;\n this.disableResolutionReduction = false;\n this._lastZoom = 0;\n this._selectedBrickPath = null;\n this.pageIndex = pageIndex;\n this.documentId = preview._currentDocumentId || ko.observable(null);\n this._disposables.push(this.imageSrc.subscribe((newVal) => {\n var documentId = this.documentId.peek();\n this._lastGetPageDeferred && this._lastGetPageDeferred.resolve(null);\n var currentGetPageDeferred = $.Deferred();\n currentGetPageDeferred\n .done((response) => {\n if (!response)\n return;\n this.imageHeight(response.height);\n this.imageWidth(response.width);\n this.currentScaleFactor(this._currentScaleFactor);\n this.displayImageSrc('data:image/png;base64,' + response.base64string);\n this._onPageLoaded(response, processClick, preview._editingFields);\n }).fail((_e) => {\n this._onPageLoadFailed();\n });\n var ignoreError = preview._closeDocumentRequests && (() => preview._closeDocumentRequests[documentId] || currentGetPageDeferred.state() != 'pending');\n PreviewRequestWrapper.getPage(newVal, ignoreError)\n .done((response) => {\n currentGetPageDeferred.resolve(response);\n }).fail((_e) => {\n currentGetPageDeferred.reject(_e);\n });\n this._lastGetPageDeferred = currentGetPageDeferred;\n }));\n var unifier = ko.isObservable(preview._unifier) ? preview._unifier : ko.observable(preview._unifier || generateGuid());\n this.pageLoading = loading || ko.observable(true);\n this.originalHeight(ko.unwrap(preview._pageHeight));\n this.originalWidth(ko.unwrap(preview._pageWidth));\n this.zoom = preview._zoom;\n this.imageWidth(this.originalWidth() * this._getPixelRatio());\n this.imageHeight(this.originalHeight() * this._getPixelRatio());\n this._disposables.push(this.isClientVisible.subscribe((newVal) => {\n if (newVal) {\n this._setPageImgSrc(this.documentId(), unifier(), this.zoom());\n }\n }));\n this.color = ko.isObservable(preview._pageBackColor) ? preview._pageBackColor.peek() : '';\n this.width = ko.pureComputed(() => {\n return this.imageWidth() * this.zoom() / this.currentScaleFactor() / this._getPixelRatio();\n }).extend({ deferred: true });\n this.height = ko.pureComputed(() => {\n return this.imageHeight() * this.zoom() / this.currentScaleFactor() / this._getPixelRatio();\n }).extend({ deferred: true });\n this.isEmpty = pageIndex === -1 && !this.brick() && !processClick;\n this.resetBrickRecusive = (brick) => {\n if (brick && brick.active) {\n brick.active(false);\n if (brick.bricks) {\n brick.bricks.forEach((childBrick) => { this.resetBrickRecusive(childBrick); });\n }\n }\n };\n this.selectBrick = (path, ctrlKey) => {\n if (PreviewSelection.started)\n return;\n processClick && processClick(null);\n var currentBrick = this.brick();\n !ctrlKey && this.resetBrickRecusive(currentBrick);\n if (!path) {\n return;\n }\n if (!currentBrick) {\n this._selectedBrickPath = path;\n return;\n }\n var pathElements = path.split(',');\n pathElements.forEach((el) => {\n currentBrick = currentBrick.bricks[parseInt(el)];\n });\n currentBrick.active(true);\n };\n this._disposables.push(ko.computed(() => {\n if (!this.active()) {\n this.resetBrickRecusive(this.brick());\n this._selectedBrickPath = null;\n }\n }));\n this.editingFieldsKeyboardHelper = new PreviewEditingFieldsKeyboardHelper();\n this._disposables.push(this.editingFieldsKeyboardHelper);\n }\n _initializeEditingFields(editingFieldBricks, previewEditngFields, originalWidth, originalHeight) {\n if (this.editingFields) {\n var oldEditFields = ko.unwrap(this.editingFields());\n if (oldEditFields && oldEditFields.length > 0) {\n oldEditFields.forEach(field => field.dispose && field.dispose());\n }\n this.editingFields.dispose();\n }\n this.editingFields = ko.pureComputed(() => {\n if (!previewEditngFields || editingFieldBricks.length === 0) {\n return [];\n }\n var allEditingFields = previewEditngFields();\n var pageFieldViewModels = [];\n for (var i = 0; i < editingFieldBricks.length; i++) {\n var brick = editingFieldBricks[i];\n var editingField = allEditingFields[brick.efIndex - 1];\n if (!editingField)\n return [];\n editingField.brick = brick;\n pageFieldViewModels.push(editingField.createViewModel(this.zoom, originalWidth, originalHeight, () => allEditingFields, brick.absoluteBounds));\n brick.text = (brick => (() => brickText(brick, () => allEditingFields)))(brick);\n }\n return pageFieldViewModels;\n });\n }\n _getPixelRatio() {\n return window['devicePixelRatio'] || 1;\n }\n _onPageLoaded(result, processClick, previewEditingFields) {\n if (this._isDisposed)\n return;\n this.pageLoading(false);\n try {\n if (!result || !result.brick) {\n return;\n }\n this.brickColumnWidthArray = result.columnWidthArray;\n this.originalWidth(result.brick.width);\n this.originalHeight(result.brick.height);\n var editignFieldBricks = [];\n this.initializeBrick(result.brick, processClick, this.zoom, editignFieldBricks);\n this._initializeEditingFields(editignFieldBricks, previewEditingFields, result.brick.width, result.brick.height);\n this._selectedBrickPath && this.selectBrick(this._selectedBrickPath);\n }\n finally {\n this.brickLoading(false);\n }\n }\n _onPageLoadFailed() {\n if (this._isDisposed)\n return;\n if (this.isClientVisible()) {\n this.pageLoading(false);\n this.pageIndex !== -1 && this.brickLoading(false);\n }\n }\n updateSize(zoom) {\n var newResolution = getCurrentResolution(zoom);\n this.realZoom(newResolution / previewDefaultResolution());\n return newResolution;\n }\n clearBricks() {\n this.brickLoading(true);\n }\n dispose() {\n super.dispose();\n this._isDisposed = true;\n }\n _setPageImgSrc(documentId, unifier, zoom) {\n if (!documentId || this.pageIndex === -1) {\n return;\n }\n if (this.maxZoom && this.maxZoom < zoom) {\n zoom = this.maxZoom;\n }\n if (this._lastZoom < zoom) {\n this._lastZoom = zoom;\n }\n else {\n if (this.actualResolution && this.disableResolutionReduction && this.imageSrc())\n return;\n }\n var newResolution = this.updateSize(zoom);\n if ((this.actualResolution === newResolution || newResolution < 9) && this.imageSrc()) {\n return;\n }\n this.actualResolution = newResolution;\n this._currentScaleFactor = zoom;\n var imageResolution = Math.floor(newResolution * this._getPixelRatio());\n this.imageSrc(HandlerUri() +\n '?actionKey=getPage&unifier=' + unifier +\n '&arg=' + encodeURIComponent(JSON.stringify({ pageIndex: this.pageIndex, documentId: documentId, resolution: imageResolution, includeBricks: this.brickLoading() })));\n }\n _clear() {\n this.pageIndex = -1;\n this.isClientVisible(false);\n this._setPageImgSrc(null, null, 1);\n this.actualResolution = 0;\n }\n initializeBrick(brick, processClick, zoom, editingFieldBricks) {\n initializeBrick(brick, processClick, this.zoom, editingFieldBricks);\n updateBricksPosition(brick, brick.height, brick.width);\n this.brick(brick);\n }\n clickToBrick(s, e) {\n var target = $.fn.constructor(e.currentTarget);\n var offset = target.offset();\n var xPerc = (e.clientX - offset.left + window.scrollX) / target.width() * 100;\n var yPerc = (e.clientY - offset.top + window.scrollY) / target.height() * 100;\n var bricks = s.bricks();\n for (var i = 0; i < bricks.length; i++) {\n if (parseFloat(bricks[i].topP) < yPerc && parseFloat(bricks[i].topP) + parseFloat(bricks[i].heightP) > yPerc\n && parseFloat(bricks[i].leftP) < xPerc && parseFloat(bricks[i].leftP) + parseFloat(bricks[i].widthP) > xPerc) {\n bricks[i].onClick && bricks[i].onClick(e);\n break;\n }\n }\n }\n getBricksFlatList(brick) {\n if (brick) {\n var bricks = [];\n var innerBricksLength = brick.bricks && brick.bricks.length || 0;\n for (var i = 0; i < innerBricksLength; i++) {\n bricks = bricks.concat(this.getBricksFlatList(brick.bricks[i]));\n }\n bricks.push(brick);\n return bricks;\n }\n return [];\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewHandlersHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { PollingDelay } from '../settings';\nexport class PreviewHandlersHelper {\n constructor(preview) {\n this._preview = preview;\n }\n doneStartExportHandler(deferred, inlineResult, response, exportOperationIdDeferred, startExportOperationId, useSameTab = false, printable = false) {\n try {\n if (!response) {\n exportOperationIdDeferred.reject();\n this._preview.progressBar.complete(startExportOperationId);\n return;\n }\n var exportOperationId = response;\n exportOperationIdDeferred.resolve(exportOperationId);\n var progress = 0;\n var doGetExportStatus = (operationId) => {\n var _a;\n if (!((_a = this._preview) === null || _a === void 0 ? void 0 : _a.exportHandler))\n return;\n var promise = this._preview.exportHandler.getExportStatus(operationId);\n promise.done((result) => {\n if (result && result.requestAgain) {\n if (progress < result.progress) {\n progress = result.progress;\n this._preview.exportHandler.updateExportStatus(result.progress, operationId);\n }\n var doStatusRequest = () => { doGetExportStatus(operationId); };\n PollingDelay() ? setTimeout(doStatusRequest, PollingDelay()) : doStatusRequest();\n }\n else {\n this._preview.progressBar.complete(operationId);\n if (!result.requestAgain && result.completed && !this._preview._cancelExportRequests[operationId]) {\n this._preview.exportHandler.updateExportStatus(result.progress, operationId);\n this._preview.exportHandler.getExportResult(operationId, inlineResult, useSameTab, result.token, printable, result.uri);\n }\n }\n });\n };\n doGetExportStatus(exportOperationId);\n }\n finally {\n deferred.resolve(true);\n this._preview._startBuildOperationId = '';\n }\n }\n errorStartExportHandler(deferred, startExportOperationId, error) {\n this._preview.progressBar.complete(startExportOperationId);\n deferred.reject();\n }\n doneExportStatusHandler(deferred, operationId, response) {\n try {\n if (!response) {\n deferred.resolve({ requestAgain: false });\n this._preview.progressBar.complete(operationId);\n return;\n }\n this._preview.progressBar && this._preview.progressBar.progress() < response.progress && this._preview.progressBar.progress(response.progress);\n deferred.resolve(response);\n }\n finally {\n if (!deferred.state || deferred.state() === 'pending') {\n deferred.resolve({ requestAgain: false });\n }\n }\n }\n errorExportStatusHandler(deferred, operationId, error) {\n this._preview.progressBar.complete(operationId);\n deferred.resolve({ requestAgain: false, completed: false });\n }\n doneStartBuildHandler(deferred, response, startBuildOperationId, doucmentIdDeferred) {\n try {\n var removeAllEmptyPages = (all) => {\n all && this._preview.pages.removeAll();\n this._preview.removeEmptyPages();\n };\n if (!response || !response.documentId) {\n doucmentIdDeferred.reject();\n this._preview.progressBar.complete(startBuildOperationId);\n removeAllEmptyPages();\n return;\n }\n var documentId = response.documentId;\n var stopBuildRequest = this._preview._stopBuildRequests[startBuildOperationId];\n var closeDocumentRequest = this._preview._closeDocumentRequests[startBuildOperationId];\n if (startBuildOperationId && (stopBuildRequest || closeDocumentRequest)) {\n if (closeDocumentRequest) {\n closeDocumentRequest && this._preview.closeDocument(documentId);\n }\n else {\n stopBuildRequest && this._preview.stopBuild(documentId);\n }\n doucmentIdDeferred.reject();\n this._preview.progressBar.complete(startBuildOperationId);\n removeAllEmptyPages();\n return;\n }\n this._preview._currentDocumentId(documentId);\n doucmentIdDeferred.resolve(documentId);\n var doGetBuildStatus = this._preview.getDoGetBuildStatusFunc();\n doGetBuildStatus(documentId);\n }\n finally {\n deferred.resolve(true);\n }\n }\n errorStartBuildHandler(deferred, startBuildOperationId, error) {\n this._preview.pageLoading(false);\n this._preview.errorMessage(getLocalization('Document creation was cancelled due to server error', 'WebDocumentViewer_DocumentCreationCancelled'));\n this._preview.progressBar.complete(startBuildOperationId);\n deferred.resolve(true);\n this._preview.removeEmptyPages();\n }\n errorGetBuildStatusHandler(deferred, error, ignoreError) {\n deferred.resolve({ requestAgain: false, completed: false });\n }\n processPages(pageCount, stopProcessingPredicate) {\n var wereNoPagesAndNewOnesExist = this._preview.pageIndex() === -1 && pageCount > 0;\n if (wereNoPagesAndNewOnesExist) {\n this._preview.pageIndex(0);\n }\n for (var i = 0; i < pageCount && !stopProcessingPredicate(); i++) {\n var createNewPage = (index) => {\n return this._preview.createPage(index, this._preview.createBrickClickProcessor(index));\n };\n if (i < this._preview.pages().length) {\n var page = this._preview.pages()[i];\n if (!page || page.isEmpty) {\n page = createNewPage(i);\n this._preview.pages.splice(i, 1, page);\n }\n if (page.pageIndex === -1) {\n page.pageIndex = i;\n if (this._preview.pageIndex.peek() === i) {\n page.isClientVisible(true);\n }\n }\n }\n else {\n var newPage = createNewPage(i);\n this._preview.pages.push(newPage);\n }\n }\n this._preview._raiseOnSizeChanged();\n if (wereNoPagesAndNewOnesExist) {\n var pageIndex = this._preview.pages().length ? 0 : -1;\n this._preview.goToPage(pageIndex, true);\n }\n }\n doneGetBuildStatusHandler(deferred, documentId, response, stopProcessingPredicate) {\n try {\n if (!response) {\n deferred.resolve({ requestAgain: false });\n return;\n }\n this._preview.progressBar.progress() < response.progress && !this._preview._stopBuildRequests[documentId] && !stopProcessingPredicate()\n && this._preview.progressBar.progress(response.progress);\n this.processPages(response.pageCount, stopProcessingPredicate);\n deferred.resolve(response);\n }\n finally {\n if (deferred.state() === 'pending') {\n deferred.resolve({ requestAgain: false });\n }\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_progressViewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nexport class ProgressViewModel extends Disposable {\n constructor(enableKeyboardSupport) {\n super();\n this.progress = ko.observable(0);\n this._forceInvisible = ko.observable(false);\n this._cancelExportRequests = {};\n this.inProgress = ko.observable(false);\n this.cancelText = ko.observable(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n this.operationId = ko.observable();\n this.text = ko.observable('');\n this.cssClasses = ko.observable();\n this.cancelVisible = ko.pureComputed(() => !!this.operationId() && !this.isCancelling());\n this.isCancelling = ko.observable(false);\n this.visible = ko.pureComputed({\n read: () => {\n if (this._forceInvisible()) {\n return false;\n }\n return this.inProgress();\n },\n write: (visibleState) => {\n this._forceInvisible(!visibleState);\n }\n });\n if (enableKeyboardSupport) {\n this.progressBarAccessibility = new ListKeyboardHelper();\n this._disposables.push(this.progressBarAccessibility);\n }\n this._disposables.push(this.cancelVisible, this.visible);\n }\n wasCancelRequested(id) {\n return !!(id && this._cancelExportRequests[id]);\n }\n setPosition(position) {\n if (!position) {\n this.cssClasses({\n 'dxrd-align-default': true\n });\n }\n else {\n this.cssClasses({\n 'dxrd-align-bottom': position.bottom,\n 'dxrd-align-top': position.top,\n 'dxrd-align-left': position.left,\n 'dxrd-align-right': position.right\n });\n }\n }\n complete(completeOperationId) {\n if (completeOperationId === this.operationId() || this._startOperationId === completeOperationId || !completeOperationId) {\n this.inProgress(false);\n this.progress(0);\n this._startOperationId = null;\n this.operationId(null);\n this._lastOperationDeferred && this._lastOperationDeferred.resolve(completeOperationId);\n this.rejectLastOperationIdDeferred();\n this.isCancelling(false);\n }\n }\n dispose() {\n this.rejectLastOperationIdDeferred();\n super.dispose();\n }\n rejectLastOperationIdDeferred() {\n this._lastOperationIdDeferred && this._lastOperationIdDeferred.reject();\n }\n rejectLastOperationDeferred() {\n this._lastOperationDeferred && this._lastOperationDeferred.reject();\n }\n startProgress(startOperationId, onStop, operationIdPromise) {\n if (this.inProgress()) {\n this.stop();\n this.rejectLastOperationDeferred();\n this.rejectLastOperationIdDeferred();\n }\n this._startOperationId = startOperationId;\n this.inProgress(true);\n this.progress(0);\n var newOperationDeferred = $.Deferred();\n var newOperationIdDeferred = $.Deferred();\n this._lastOperationDeferred = newOperationDeferred;\n this._lastOperationIdDeferred = newOperationIdDeferred;\n operationIdPromise\n .done(operationId => {\n newOperationIdDeferred.resolve(operationId);\n }).fail(() => {\n newOperationIdDeferred.reject();\n newOperationDeferred.reject();\n this.complete(startOperationId);\n });\n newOperationIdDeferred.done(operationId => {\n this.operationId(operationId);\n });\n this.stop = () => {\n this.isCancelling(true);\n this.text(getLocalization('Cancelling...', 'ASPxReportsStringId.WebDocumentViewer_Cancelling'));\n var operationId = this.operationId();\n var finalizeId = operationId || this._startOperationId;\n try {\n $.isFunction(onStop) && onStop(finalizeId);\n if (operationId)\n this._cancelExportRequests[operationId] = true;\n if (this._startOperationId)\n this._cancelExportRequests[this._startOperationId] = true;\n }\n finally {\n }\n };\n return this._lastOperationDeferred.promise();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_sortingProcessor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ColumnSortOrder } from './_previewRequestWrapper';\nexport class SortingProcessor {\n constructor(_getSortingStage) {\n this._getSortingStage = _getSortingStage;\n }\n doSorting(sortData, shiftKey, ctrlKey) {\n if (!sortData)\n return;\n if (ctrlKey) {\n if (this._detachSorting(sortData))\n return;\n }\n else if (shiftKey)\n this._appendSorting(sortData);\n else\n this._applySorting(sortData);\n return true;\n }\n _applySorting(sortData) {\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n var value = sortingStage[i].Value || [];\n for (var index = 0; index < value.length; index++) {\n if (value[index] && (value[index].fieldName === sortData.field)) {\n if (index != 0) {\n var x = value.splice(index, 1)[0];\n this._changeSortOrder(x);\n value.unshift(x);\n }\n else\n this._changeSortOrder(value[index]);\n }\n else\n value[index].sortOrder = ColumnSortOrder.None;\n }\n return;\n }\n }\n }\n _appendSorting(sortData) {\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n var value = sortingStage[i].Value || [];\n for (var index = 0; index < value.length; index++) {\n if (value[index] && (value[index].fieldName === sortData.field)) {\n if (index != value.length - 1) {\n var x = value.splice(index, 1)[0];\n this._changeSortOrder(x);\n value.push(x);\n return;\n }\n this._changeSortOrder(value[index]);\n return;\n }\n }\n }\n }\n }\n _detachSorting(sortData) {\n var skipProcessing = false;\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n (sortingStage[i].Value || []).forEach(f => {\n if (f.sortOrder === ColumnSortOrder.None)\n skipProcessing = true;\n else\n f.sortOrder = ColumnSortOrder.None;\n });\n return;\n }\n }\n return skipProcessing;\n }\n _changeSortOrder(fieldInfo) {\n fieldInfo.sortOrder = fieldInfo.sortOrder === ColumnSortOrder.Ascending ? ColumnSortOrder.Descending : ColumnSortOrder.Ascending;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\reportPreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { CustomSortedArrayStore, formatUnicorn, getErrorMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, ModelSerializer, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { generateGuid, transformNewLineCharacters, isIOS } from '../common/utils/_utils';\nimport { PreviewBricksKeyboardHelper } from './accessibility/_previewBricksKeyboardHelper';\nimport { ZoomAutoBy } from './constants';\nimport { EditingField } from './editing/editingField';\nimport { ExportOptionsMergedPreview, ExportOptionsPreview } from './exportOptions/exportOptionsPreview';\nimport { ExportHandler } from './internal/_exportHandler';\nimport { PreviewPage } from './internal/_page';\nimport { PreviewHandlersHelper } from './internal/_previewHandlersHelper';\nimport { PreviewRequestWrapper } from './internal/_previewRequestWrapper';\nimport { ProgressViewModel } from './internal/_progressViewModel';\nimport { SortingProcessor } from './internal/_sortingProcessor';\nimport { safelyRunWindowOpen } from './internal/_utils';\nimport { EditablePreviewEnabled, HandlerUri, MessageHandler, PollingDelay } from './settings';\nexport class ReportPreview extends Disposable {\n constructor(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl = false, enableKeyboardSupport, exportSettings, element) {\n super();\n this.enableKeyboardSupport = enableKeyboardSupport;\n this.element = element;\n this.predefinedZoomLevels = ko.observableArray([5, 2, 1.5, 1, 0.75, 0.5, 0.25]);\n this._pageWidth = ko.observable(818);\n this._pageHeight = ko.observable(1058);\n this._pageBackColor = ko.observable('');\n this._currentReportId = ko.observable(null);\n this._currentReportUrl = ko.observable(null);\n this._currentDocumentId = ko.observable(null);\n this._unifier = ko.observable('');\n this._stopBuildRequests = {};\n this._closeReportRequests = {};\n this._closeDocumentRequests = {};\n this._cancelExportRequests = {};\n this._editingFields = ko.observable([]);\n this._startBuildOperationId = '';\n this._editingValuesSubscriptions = [];\n this._drillDownState = [];\n this._sortingState = [];\n this._sortingProcessor = new SortingProcessor(() => this._sortingState || []);\n this._getBuildStatusDeferreds = [];\n this._timeouts = [];\n this._deferreds = [];\n this.getSelectedContent = (punctuationMark = '') => {\n var currentPage = this.pages()[this.pageIndex()];\n if (!currentPage || !currentPage.brickColumnWidthArray) {\n return '';\n }\n var activeBricks = [];\n var getActiveBricks = function (currentBrick, resultArray) {\n if (!currentBrick) {\n return;\n }\n currentBrick.active() && currentBrick.genlIndex != -1 && activeBricks.push(currentBrick);\n currentBrick.bricks && currentBrick.bricks.length != 0 && currentBrick.bricks.forEach((innerBrick) => { getActiveBricks(innerBrick, resultArray); });\n };\n getActiveBricks(currentPage.brick(), activeBricks);\n if (!activeBricks) {\n return '';\n }\n var sortedActiveBricks = [];\n var extendWithSpaces = function (width, text) {\n var spaceCount = width - text.length;\n for (var i = 0; i <= spaceCount; i++) {\n text += ' ';\n }\n return text;\n };\n var firstUsedColumn = currentPage.brickColumnWidthArray.length, lastUsedColumn = -1;\n activeBricks.forEach((activeBrick) => {\n var row = sortedActiveBricks[activeBrick.row];\n if (!row) {\n row = [];\n sortedActiveBricks[activeBrick.row] = row;\n }\n row[activeBrick.col] = activeBrick.accessibleDescription || activeBrick.text();\n if (firstUsedColumn > activeBrick.col) {\n firstUsedColumn = activeBrick.col;\n }\n if (lastUsedColumn < activeBrick.col) {\n lastUsedColumn = activeBrick.col;\n }\n });\n var result = '';\n sortedActiveBricks.forEach((row, index) => {\n for (var c = firstUsedColumn; c <= lastUsedColumn; c++) {\n var rowText = row[c] ? row[c] + punctuationMark : '';\n result += c == lastUsedColumn ? rowText : extendWithSpaces(currentPage.brickColumnWidthArray[c], rowText);\n }\n if (index != sortedActiveBricks.length - 1) {\n result += '\\r\\n';\n }\n });\n return result;\n };\n this.rtlReport = ko.observable(false);\n this.currentPage = ko.observable(null);\n this.originalParametersInfo = ko.observable(null);\n this.pageIndex = ko.observable(-1);\n this.showMultipagePreview = ko.observable(false);\n this.documentMap = ko.observable();\n this.exportOptionsModel = ko.observable();\n this.pageLoading = ko.observable(false);\n this.errorMessage = ko.observable('');\n this.documentBuilding = ko.observable(false);\n this.reportOpening = ko.observable(false);\n this.pages = ko.observableArray([]).extend({ rateLimit: { timeout: 20, method: 'notifyWhenChangesStop' } });\n this.isAutoFit = ko.observable(true);\n this.autoFitBy = ko.observable(ZoomAutoBy.WholePage);\n this.exportDisabled = ko.pureComputed(() => {\n var inProgress = this.progressBar.inProgress();\n var documentBuilding = this.documentBuilding();\n return this.pageIndex() === -1 || inProgress || documentBuilding;\n });\n this._zoom = ko.observable(1);\n this.zoom = ko.pureComputed({\n read: () => {\n var autoFitBy = this.autoFitBy();\n if (autoFitBy != ZoomAutoBy.None || this._zoom() === 0) {\n return autoFitBy;\n }\n return this._zoom();\n },\n write: (val) => {\n if (val > 0) {\n this.autoFitBy(ZoomAutoBy.None);\n this._zoom(val);\n }\n else {\n this.autoFitBy(val);\n }\n }\n });\n this.editingFieldsProvider = () => this._editingFields();\n this._currentPageText = ko.pureComputed(() => {\n if (this.pageIndex() === -1) {\n return getLocalization('0 pages', 'ASPxReportsStringId.WebDocumentViewer_0Pages');\n }\n else {\n var ofText = getLocalization('of', 'ASPxReportsStringId.ToolBarItemText_OfLabel');\n return (this.pageIndex() + 1) + ' ' + ofText + ' ' + this.pages().length;\n }\n });\n this._raiseOnSizeChanged = () => { this.onSizeChanged() && this.onSizeChanged()(); };\n this.previewSize = ko.observable(0);\n this.onSizeChanged = ko.observable();\n this.previewVisible = ko.observable(false);\n this.editingFieldsHighlighted = ko.observable(false);\n this.canSwitchToDesigner = true;\n this.allowURLsWithJSContent = false;\n this.zoomStep = ko.observable(0.05);\n this._progressFirstTime = false;\n this.emptyDocumentCaption = ko.pureComputed(() => {\n var parametersInfo = this.originalParametersInfo();\n var parametersExist = parametersInfo && parametersInfo.parameters.some(x => x.Visible);\n var newCaption = '';\n if (this.documentBuilding()) {\n if (this.currentPage()) {\n if (!this._progressFirstTime)\n newCaption = formatUnicorn(getLocalization('Progress {0}%', 'ASPxReportsStringId.WebDocumentViewer_AriaDocumentProgress'), this.progressBar.progress().toString());\n else\n newCaption = this.progressBar.progress() + '%';\n this._progressFirstTime = true;\n }\n else {\n newCaption = getLocalization('Creating the document...', 'PreviewStringId.Msg_CreatingDocument');\n }\n }\n else if (parametersExist && !this.documentId) {\n newCaption = getLocalization('Waiting for parameter values...', 'PreviewStringId.Msg_WaitingForParameterValues');\n }\n else if (this.documentId) {\n this._progressFirstTime = false;\n if (this.pageIndex() !== -1 && !this.progressBar.inProgress()) {\n newCaption = getLocalization('Document is ready', 'ASPxReportsStringId.WebDocumentViewer_AriaDocumentReady');\n }\n else {\n newCaption = getLocalization('The document does not contain any pages.', 'PreviewStringId.Msg_EmptyDocument');\n }\n }\n else if (this.reportOpening()) {\n this._progressFirstTime = false;\n newCaption = getLocalization('Loading...', 'AnalyticsCoreStringId.Loading');\n }\n else if (this.errorMessage()) {\n newCaption = this.errorMessage();\n }\n return newCaption;\n }).extend({ rateLimit: { timeout: 1000 } });\n this.exportOptionsTabVisible = ko.observable(true);\n HandlerUri(handlerUri || HandlerUri());\n this.progressBar = new ProgressViewModel(enableKeyboardSupport);\n this.editingFieldChanged = callbacks && callbacks.editingFieldChanged;\n this.previewHandlersHelper = previewHandlersHelper || new PreviewHandlersHelper(this);\n this.requestWrapper = previewRequestWrapper || new PreviewRequestWrapper(null, callbacks);\n this.rtlViewer = rtl;\n this.exportHandler = new ExportHandler(exportSettings, this);\n if (callbacks) {\n this.customProcessBrickClick = callbacks.previewClick;\n this.customizeExportOptions = callbacks.customizeExportOptions;\n this.exportHandler.onExportCustomEvent = callbacks.onExport;\n this._onGetBuildStatus = callbacks._onGetBuildStatus;\n this._onGetDocumentDetails = callbacks._onGetDocumentDetails;\n }\n this._disposables.push(EditablePreviewEnabled.subscribe((newValue) => !newValue && this.editingFieldsHighlighted(false)));\n this._disposables.push(this.documentBuilding.subscribe((newVal) => {\n if (!newVal) {\n this._unifier(generateGuid());\n var documentId = this._currentDocumentId();\n var pageCount = this.pages().length;\n for (var i = 0; i < pageCount; i++) {\n var page = this.pages()[i];\n if (!page.pageLoading()) {\n page.clearBricks();\n }\n page.updateSize(this._zoom());\n page.actualResolution = 0;\n page.isClientVisible() && page._setPageImgSrc(documentId, this._unifier(), this._zoom());\n }\n if (callbacks && callbacks.documentReady && documentId) {\n var self = this;\n this._timeouts.push(setTimeout(function () {\n callbacks.documentReady(documentId, self._currentReportId(), pageCount);\n }));\n }\n }\n }));\n this._disposables.push(this._currentDocumentId.subscribe((newVal) => {\n this._unifier(newVal ? generateGuid() : '');\n }));\n this._disposables.push(this.previewSize.subscribe(() => this._raiseOnSizeChanged()));\n this._disposables.push(this.zoom);\n this._disposables.push(this.exportDisabled);\n this._disposables.push(this._currentPageText);\n this._disposables.push(this.progressBar);\n this._disposables.push(this.emptyDocumentCaption);\n this._disposables.push(this.showMultipagePreview.subscribe(() => {\n if (!this.showMultipagePreview()) {\n var currentPage = this.pages()[this.pageIndex()];\n currentPage && currentPage.isClientVisible(true);\n }\n }));\n this._disposables.push(this._zoom.subscribe(() => {\n if (this.showMultipagePreview()) {\n this.pages().forEach((page) => {\n page.updateSize(page.zoom());\n page.isClientVisible(false);\n });\n this._raiseOnSizeChanged();\n }\n else {\n var currentPage = this.pages()[this.pageIndex()];\n currentPage && currentPage.isClientVisible.notifySubscribers(currentPage.isClientVisible.peek());\n }\n }));\n this._disposables.push(ko.computed(() => {\n var pagesArray = this.pages();\n var pageIndex = this.pageIndex();\n if (!pagesArray || pageIndex >= pagesArray.length)\n return;\n var currentPage = null;\n if (pageIndex >= 0)\n currentPage = pagesArray[pageIndex];\n if (currentPage != this.currentPage.peek())\n this.currentPage(currentPage);\n }));\n if (enableKeyboardSupport) {\n this.previewBrickKeyboardHelper = new PreviewBricksKeyboardHelper(this);\n this._disposables.push(this.previewBrickKeyboardHelper);\n }\n }\n _doDrillDown(drillDownKey) {\n this._drillDownState.forEach((x) => x.Key === drillDownKey && (x.Value = !x.Value));\n var documentId = this._currentDocumentId();\n this.closeDocument();\n this.progressBar.complete(documentId);\n this.documentMap(null);\n for (var i = this.pages().length - 1; i >= 0; i--) {\n var page = this.pages()[i];\n if (i > this.pageIndex()) {\n this.pages.remove(page);\n }\n else {\n page._clear();\n }\n }\n this._startBuildRequest();\n }\n _doSorting(sortData, shiftKey, ctrlKey) {\n if (!this._sortingProcessor.doSorting(sortData, shiftKey, ctrlKey))\n return;\n this.closeDocument();\n this.documentMap(null);\n this.pages().forEach(page => page._clear());\n this._startBuildRequest();\n }\n dispose() {\n super.dispose();\n (this._timeouts || []).forEach(tic => clearTimeout(tic));\n (this._deferreds || []).forEach(deferred => deferred.reject());\n this.exportHandler && this.exportHandler.dispose();\n this.removeProperties();\n this._sortingProcessor = null;\n }\n removeEmptyPages(all) {\n all && this.pages.removeAll();\n for (var idx = this.pages().length - 1; idx >= 0; idx--) {\n var tempPage = this.pages()[idx];\n (tempPage.isEmpty || tempPage.pageIndex === -1) && this.pages.remove(tempPage);\n }\n }\n _initialize() {\n this._drillDownState = [];\n this._sortingState = [];\n this.closeDocument();\n this._editingFields([]);\n this._editingValuesSubscriptions.forEach(item => item.dispose());\n this._editingValuesSubscriptions = [];\n this.documentMap(null);\n this.pageIndex(-1);\n this.pageLoading(true);\n this.errorMessage('');\n this.progressBar.complete(null);\n this._getBuildStatusDeferreds.forEach(a => a.reject());\n this._getBuildStatusDeferreds = [];\n this.pages().forEach(x => x.dispose());\n this.pages([this.createPage(-1, undefined, this.pageLoading)]);\n this.exportHandler.reportDisplayName(null);\n }\n createPage(pageIndex, processClick, loading) {\n return new PreviewPage(this, pageIndex, processClick, loading);\n }\n _cleanTabInfo() {\n this.exportOptionsModel(null);\n this.documentMap(null);\n }\n _clearReportInfo() {\n this._cleanTabInfo();\n this.closeReport();\n this.originalParametersInfo(null);\n }\n createBrickClickProcessor(cyclePageIndex) {\n var _self = this;\n return (brick, e) => {\n _self.goToPage(cyclePageIndex, true);\n if (!brick)\n return;\n var page = _self.pages()[cyclePageIndex];\n if (!page)\n return;\n page.selectBrick('');\n var shiftKey = !!(e && e.shiftKey);\n var ctrlKey = !!(e && e.ctrlKey);\n var brickNavigation = brick && brick.navigation;\n var defaultHandler = () => {\n if (brickNavigation) {\n if (brickNavigation.drillDownKey && _self.reportId && _self._doDrillDown && _self._drillDownState.length > 0) {\n if (_self._startBuildOperationId)\n return;\n _self._doDrillDown(brickNavigation.drillDownKey);\n }\n else if (brickNavigation.sortData && _self.reportId && _self._doSorting && _self._sortingState.length > 0) {\n if (_self._startBuildOperationId)\n return;\n _self._doSorting(brickNavigation.sortData, shiftKey, ctrlKey);\n }\n if (brickNavigation.pageIndex >= 0) {\n var targetPage = _self.pages().filter(page => page.pageIndex === brickNavigation.pageIndex)[0];\n if (targetPage) {\n _self.goToPage(brickNavigation.pageIndex);\n targetPage.selectBrick(brickNavigation.indexes);\n _self.brickClickDocumentMapHandler && _self.brickClickDocumentMapHandler(brickNavigation);\n }\n }\n else {\n var validateUrl = function (url) {\n var isUrlString = typeof url === 'string';\n if (isUrlString) {\n url = url.toLowerCase();\n }\n if (url === 'empty') {\n return false;\n }\n return _self.allowURLsWithJSContent || (isUrlString && (url.indexOf('javascript:') === -1));\n };\n if (brickNavigation.url && validateUrl(brickNavigation.url)) {\n safelyRunWindowOpen(brickNavigation.url, brickNavigation.target || '_blank');\n }\n }\n }\n };\n if (_self.customProcessBrickClick && _self.customProcessBrickClick(cyclePageIndex, brick, defaultHandler))\n return;\n defaultHandler();\n };\n }\n delayedInit() {\n this.previewBrickKeyboardHelper && this.previewBrickKeyboardHelper.delayedInit();\n }\n openReport(reportName) {\n this._clearReportInfo();\n var deferred = $.Deferred();\n this._deferreds.push(deferred);\n this._openReportOperationDeferred = deferred;\n this.requestWrapper.openReport(reportName).done((response) => {\n deferred.resolve(response);\n }).fail((error) => {\n deferred.reject(error);\n });\n return this.initialize(deferred.promise());\n }\n drillThrough(customData, closeCurrentReport = true) {\n var deferred = $.Deferred();\n this.requestWrapper.drillThrough(customData).done(response => {\n if (closeCurrentReport) {\n this._clearReportInfo();\n this.initialize(deferred.promise());\n }\n deferred.resolve(response);\n }).fail((error) => {\n deferred.reject(error);\n });\n return deferred.promise();\n }\n _sortCustomParametersLookUpValues(reportParameterInfo) {\n var _a;\n if (!reportParameterInfo || !reportParameterInfo.knownEnums)\n return;\n (_a = reportParameterInfo.parameters) === null || _a === void 0 ? void 0 : _a.forEach((parameter) => {\n if (!parameter.LookUpValues)\n return;\n if (reportParameterInfo.knownEnums.some(x => x.enumType === parameter.TypeName)) {\n CustomSortedArrayStore._sortItems(parameter.LookUpValues, 'Description');\n }\n });\n }\n initialize(initializeDataPromise) {\n this.reportOpening(true);\n this._currentReportId(null);\n this._currentReportUrl(null);\n this._currentDocumentId(null);\n this._initialize();\n var _initializeDeferred = $.Deferred();\n this._deferreds.push(_initializeDeferred);\n _initializeDeferred.done(() => {\n initializeDataPromise.done((previewInitialize) => {\n this.reportOpening(false);\n if (previewInitialize && !previewInitialize.error && (previewInitialize.reportId || previewInitialize.documentId)) {\n this._currentReportId(previewInitialize.reportId);\n this._currentReportUrl(previewInitialize.reportUrl);\n this._currentDocumentId(previewInitialize.documentId);\n this.rtlReport(previewInitialize.rtlReport);\n var pageSettings = previewInitialize.pageSettings;\n if (pageSettings) {\n if (pageSettings.height)\n this._pageHeight(pageSettings.height);\n if (pageSettings.width)\n this._pageWidth(pageSettings.width);\n this._pageBackColor((pageSettings.color && this.readerMode) ? 'rgba(' + pageSettings.color + ')' : '');\n }\n var deserializedExportOptions = this._deserializeExportOptions(previewInitialize.exportOptions, !this.reportId && (!previewInitialize.documentData || !previewInitialize.documentData.canPerformContinuousExport));\n var customizeExportOptionsArgs = { exportOptions: deserializedExportOptions, panelVisible: true };\n this.customizeExportOptions && this.customizeExportOptions(customizeExportOptionsArgs);\n this.exportOptionsTabVisible(customizeExportOptionsArgs.panelVisible);\n this.exportOptionsModel(deserializedExportOptions);\n this._sortCustomParametersLookUpValues(previewInitialize.parametersInfo);\n this.originalParametersInfo(previewInitialize.parametersInfo);\n if (previewInitialize.documentId) {\n var documentIdPromise = $.Deferred().resolve(previewInitialize.documentId).promise();\n this.progressBar.startProgress(null, () => { this.stopBuild(); }, documentIdPromise)\n .always(() => { this.documentBuilding(false); });\n this.documentBuilding(true);\n var doGetBuildStatusFunc = this.getDoGetBuildStatusFunc();\n doGetBuildStatusFunc(previewInitialize.documentId);\n }\n }\n else {\n this.pageLoading(false);\n this._processError(getLocalization('The report preview initialization has failed', 'ASPxReportsStringId.WebDocumentViewer_InitializationError'), previewInitialize && previewInitialize.error);\n }\n }).fail((error) => {\n this.reportOpening(false);\n this.removeEmptyPages();\n });\n }).resolve();\n return initializeDataPromise;\n }\n _deserializeExportOptions(exportOptionsString, isMerged) {\n var jsonModel = exportOptionsString && JSON.parse(exportOptionsString);\n return isMerged ? new ExportOptionsMergedPreview(jsonModel) : new ExportOptionsPreview(jsonModel);\n }\n deactivate() {\n this._initialize();\n this._cleanTabInfo();\n this.closeReport();\n this._currentDocumentId(null);\n this._currentReportId(null);\n this._currentReportUrl(null);\n this.originalParametersInfo(null);\n }\n startBuild() {\n this._initialize();\n return this._startBuildRequest();\n }\n customDocumentOperation(customData, hideMessageFromUser) {\n var documentId = this._currentDocumentId();\n if (this.documentBuilding() || !documentId)\n return;\n var serializedExportOptions = this.exportOptionsModel() ? JSON.stringify(new ModelSerializer().serialize(this.exportOptionsModel())) : null;\n var editingFields = () => this._editingFields && this._editingFields().map(item => item.editValue());\n var deferred = $.Deferred();\n setTimeout(() => this.requestWrapper.customDocumentOperation(documentId, serializedExportOptions, editingFields(), customData, hideMessageFromUser)\n .done((response) => {\n try {\n if (response && response.message) {\n if (response.succeeded) {\n MessageHandler().processMessage(response.message, !hideMessageFromUser, this._getToastMessageContainer());\n }\n else {\n MessageHandler().processError(response.message, !hideMessageFromUser, undefined, this._getToastMessageContainer());\n }\n }\n }\n finally {\n deferred.resolve(response);\n }\n })\n .fail(error => {\n var response = { message: getLocalization('The requested document operation cannot be performed.', 'ASPxReportsStringId.WebDocumentViewer_CustomDocumentOperationsDenied_Error') };\n deferred.reject(response);\n }));\n return deferred.promise();\n }\n _initializeStartBuild(documentIdPromise) {\n if (this.documentBuilding() || this._startBuildOperationId) {\n return false;\n }\n this._startBuildOperationId = generateGuid();\n this._currentDocumentId(null);\n this.progressBar.text(getLocalization('Creating the document...', 'PreviewStringId.Msg_CreatingDocument'));\n this.progressBar.cancelText(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n this.progressBar.startProgress(this._startBuildOperationId, () => { this.stopBuild(); }, documentIdPromise)\n .always(() => { this.documentBuilding(false); });\n this.documentBuilding(true);\n return true;\n }\n _startBuildRequest() {\n var docuemntIdDeferred = $.Deferred();\n if (!this._initializeStartBuild(docuemntIdDeferred)) {\n return null;\n }\n var deferred = $.Deferred();\n var currentReportId = this._currentReportId();\n var startBuildOperationId = this._startBuildOperationId;\n var shouldIgnoreError = () => this._closeReportRequests[currentReportId];\n this.requestWrapper.startBuildRequest(shouldIgnoreError)\n .done((response) => {\n this.previewHandlersHelper && this.previewHandlersHelper.doneStartBuildHandler(deferred, response, startBuildOperationId, docuemntIdDeferred);\n })\n .fail((error) => {\n this.previewHandlersHelper && this.previewHandlersHelper.errorStartBuildHandler(deferred, startBuildOperationId, error);\n docuemntIdDeferred.reject();\n });\n deferred.always(() => this._startBuildOperationId = '');\n return deferred.promise();\n }\n getBuildStatus(documentId) {\n var deferred = $.Deferred();\n this._deferreds.push(deferred);\n var sessionDeferred = $.Deferred();\n this._getBuildStatusDeferreds.push(sessionDeferred);\n this._timeouts.push(setTimeout(() => {\n var ignorePredicate = () => this._closeDocumentRequests && this._closeDocumentRequests[documentId];\n this.requestWrapper.getBuildStatusRequest(documentId, ignorePredicate)\n .done((response) => {\n sessionDeferred.resolve(response);\n })\n .fail((error) => {\n sessionDeferred.reject(error);\n });\n sessionDeferred.done((response) => {\n this._onGetBuildStatus && this._onGetBuildStatus(response);\n this.previewHandlersHelper && this.previewHandlersHelper.doneGetBuildStatusHandler(deferred, documentId, response, ignorePredicate);\n }).fail((error) => {\n this.previewHandlersHelper && this.previewHandlersHelper.errorGetBuildStatusHandler(deferred, error, ignorePredicate);\n });\n }, 250));\n return deferred.promise();\n }\n getDoGetBuildStatusFunc() {\n var preview = this;\n var doGetBuildStatus = (documentId) => {\n var promise = preview.getBuildStatus(documentId);\n promise.done((result) => {\n if (documentId !== preview._currentDocumentId())\n return;\n if (result && result.requestAgain && !preview._closeDocumentRequests[documentId]) {\n var doStatusRequest = () => {\n if (!preview._closeDocumentRequests[documentId]) {\n doGetBuildStatus(documentId);\n }\n };\n PollingDelay() ? this._timeouts.push(setTimeout(doStatusRequest, PollingDelay())) : doStatusRequest();\n }\n else {\n try {\n if (result.error || !result.requestAgain && !result.pageCount) {\n preview.pageLoading(false);\n preview.removeEmptyPages(!result.pageCount);\n if (!preview.pages().length)\n preview.pageIndex(-1);\n return;\n }\n if (!result.completed) {\n return;\n }\n else if (result.pageCount < preview.pages().length) {\n preview.pageIndex(Math.min(result.pageCount - 1, preview.pageIndex()));\n preview.pages.splice(result.pageCount, preview.pages().length);\n }\n preview.getDocumentData(documentId);\n }\n finally {\n preview.progressBar.complete(documentId);\n this._timeouts.push(setTimeout(preview._raiseOnSizeChanged, 1000));\n }\n }\n });\n };\n return doGetBuildStatus;\n }\n getDocumentData(documentId) {\n var ignoreErrorPredicate = () => this._closeDocumentRequests[documentId];\n var documentDataDeferred = $.Deferred();\n this._deferreds.push(documentDataDeferred);\n documentDataDeferred.done((response) => {\n if (!response) {\n return;\n }\n this.previewHandlersHelper.processPages(response.pageCount, () => false);\n this._onGetDocumentDetails && this._onGetDocumentDetails(response);\n this.exportHandler.reportDisplayName(response.displayName);\n this._drillDownState = response.drillDownKeys || [];\n this._sortingState = response.sortingState || [];\n if (response.canPerformContinuousExport === false && this.reportId) {\n var deserializedExportOptions = this._deserializeExportOptions(response.exportOptions, true);\n var customizeExportOptionsArgs = { exportOptions: deserializedExportOptions, panelVisible: true };\n this.customizeExportOptions && this.customizeExportOptions(customizeExportOptionsArgs);\n this.exportOptionsTabVisible(customizeExportOptionsArgs.panelVisible);\n this.exportOptionsModel(deserializedExportOptions);\n }\n this.documentMap(response.documentMap);\n this._editingValuesSubscriptions.forEach(item => item.dispose());\n this._editingValuesSubscriptions = [];\n this._editingFields((response.editingFields || []).map((item, index) => {\n var field = this.createEditingField(item, index);\n if (this.editingFieldChanged) {\n field.editingFieldChanged = this.editingFieldChanged;\n }\n this._editingValuesSubscriptions.push(field.editValue);\n return field;\n }));\n });\n this.requestWrapper.getDocumentData(documentId, ignoreErrorPredicate)\n .done(response => {\n documentDataDeferred.resolve(response);\n })\n .fail(error => {\n documentDataDeferred.reject(error);\n });\n }\n exportDocumentTo(format, inlineResult) {\n if (!this._currentDocumentId())\n return;\n var serializedExportOptions = this.exportOptionsModel() ? JSON.stringify(new ModelSerializer().serialize(this.exportOptionsModel())) : null;\n var args = () => encodeURIComponent(JSON.stringify({\n documentId: this._currentDocumentId(),\n exportOptions: serializedExportOptions,\n format: format,\n inlineResult: inlineResult,\n editingFieldValues: this._editingFields && this._editingFields().map(item => {\n var editValue = item.editValue();\n if (typeof editValue === 'string')\n return transformNewLineCharacters(editValue);\n return editValue;\n })\n }));\n this.exportHandler.export(args, HandlerUri(), inlineResult);\n }\n printDocument(pageIndex) {\n if (!this._currentDocumentId())\n return;\n var exportOptions = new ExportOptionsPreview({});\n exportOptions.pdf['showPrintDialogOnOpen'] = true;\n pageIndex = parseInt(pageIndex);\n if ((!!pageIndex && pageIndex > 0 || pageIndex === 0) && (this.pages().length > pageIndex)) {\n (exportOptions.pdf['pageRange'] = pageIndex + 1);\n }\n var serializedExportOptions = JSON.stringify(new ModelSerializer().serialize(exportOptions));\n var args = () => encodeURIComponent(JSON.stringify({\n documentId: this._currentDocumentId(),\n exportOptions: serializedExportOptions,\n format: 'printpdf',\n inlineResult: !isIOS,\n editingFieldValues: this._editingFields && this._editingFields().map(item => item.editValue())\n }));\n this.exportHandler.export(args, HandlerUri(), true, true);\n }\n stopBuild(documentId) {\n var id = documentId || this._currentDocumentId();\n if (!id) {\n this._startBuildOperationId && (this._stopBuildRequests[this._startBuildOperationId] = true);\n return;\n }\n this._stopBuildRequests[id] = true;\n this.requestWrapper.stopBuild(id);\n }\n closeDocument(documentId) {\n var _documentId = documentId || this._currentDocumentId();\n if (!_documentId) {\n this._startBuildOperationId && (this._closeDocumentRequests[this._startBuildOperationId] = true);\n return;\n }\n this._closeDocumentRequests[_documentId] = true;\n this.progressBar.complete(documentId);\n this.requestWrapper.sendCloseRequest(_documentId);\n }\n closeReport() {\n this._openReportOperationDeferred && this._openReportOperationDeferred.reject();\n var currentReportId = this._currentReportId();\n if (!currentReportId) {\n return;\n }\n this._closeReportRequests[currentReportId] = true;\n this.requestWrapper.sendCloseRequest(null, currentReportId);\n }\n goToPage(pageIndex, forcePageChanging, throttle) {\n if (!forcePageChanging && this.pageIndex.peek() === pageIndex || this.pages.peek().length === 0 || pageIndex < 0 || pageIndex >= this.pages.peek().length) {\n return;\n }\n if (this._goToPageTimer !== undefined) {\n clearTimeout(this._goToPageTimer);\n }\n var updateActivePage = (activePageIndex) => {\n this.pages.peek().forEach((page) => {\n var visible = page.pageIndex === activePageIndex;\n page.active(visible);\n page.isClientVisible(visible);\n });\n this._goToPageTimer = undefined;\n };\n if (throttle)\n this._timeouts.push(this._goToPageTimer = setTimeout(() => updateActivePage(this.pageIndex()), throttle));\n else\n updateActivePage(pageIndex);\n this.pageIndex(pageIndex);\n }\n createEditingField(item, index) {\n return new EditingField(item, index, this.requestWrapper);\n }\n currentPageAriaLabelImgAlt(index) {\n return formatUnicorn(getLocalization('Report Preview page {0} of {1}', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPreviewPage'), index + 1, this.pages().length);\n }\n _getErrorMessage(jqXHR) {\n var serverError = getErrorMessage(jqXHR);\n if (!serverError)\n return jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.result && jqXHR.responseJSON.result.faultMessage ?\n jqXHR.responseJSON.result.faultMessage :\n serverError;\n return serverError;\n }\n _processError(error, jqXHR, showForUser = true) {\n var prefix = error + ': ';\n var serverError = this._getErrorMessage(jqXHR);\n serverError && (error = prefix + serverError);\n MessageHandler().processError(error, showForUser, serverError && prefix, this._getToastMessageContainer());\n }\n _getToastMessageContainer() {\n var _a;\n return (_a = this.element) === null || _a === void 0 ? void 0 : _a.getElementsByClassName('dx-designer-viewport')[0];\n }\n get reportId() {\n return this._currentReportId();\n }\n get reportUrl() {\n return this._currentReportUrl();\n }\n get documentId() {\n return this._currentDocumentId();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\binding\\jsReportViewer.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { updateLocalization } from '@devexpress/analytics-core/analytics-utils';\nexport class JSReportViewer {\n constructor(_previewModel) {\n this._previewModel = _previewModel;\n }\n get previewModel() {\n return this._previewModel();\n }\n set previewModel(newVal) {\n this._previewModel(newVal);\n }\n previewExists() {\n return this.previewModel && this.previewModel.reportPreview;\n }\n GetReportPreview() {\n return this.previewExists();\n }\n GetPreviewModel() {\n return this.previewModel;\n }\n GetParametersModel() {\n return this.previewModel && this.previewModel.GetParametersModel();\n }\n PerformCustomDocumentOperation(customData, hideMessageFromUser) {\n return this.previewExists() && this.previewModel.PerformCustomDocumentOperation(customData, hideMessageFromUser);\n }\n OpenReport(reportName) {\n return this.previewExists() && this.previewModel.OpenReport(reportName);\n }\n Print(pageIndex) {\n return this.previewExists() && this.previewModel.Print(pageIndex);\n }\n ExportTo(format, inlineResult) {\n this.previewExists() && this.previewModel.ExportTo(format, inlineResult);\n }\n GetCurrentPageIndex() {\n return this.previewExists() && this.previewModel.GetCurrentPageIndex();\n }\n GoToPage(pageIndex) {\n this.previewExists() && this.previewModel.GoToPage(pageIndex);\n }\n Close() {\n this.previewExists() && this.previewModel.Close();\n }\n ResetParameters() {\n this.previewModel && this.previewModel.ResetParameters();\n }\n StartBuild() {\n return this.previewModel && this.previewModel.StartBuild();\n }\n UpdateLocalization(localization) {\n updateLocalization(localization);\n }\n AdjustControlCore() {\n this.previewModel && this.previewModel.updateSurfaceSize && this.previewModel.updateSurfaceSize();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapItemsProvider.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nexport class DocumentMapItemsProvider {\n constructor(bookmark) {\n this.bookmarkDict = {};\n this.getItems = (pathRequest) => {\n var result = $.Deferred();\n if (bookmark) {\n if (pathRequest.fullPath) {\n var nodes = this._selectNode(bookmark, pathRequest.fullPath);\n result.resolve(nodes);\n }\n else {\n var root = this._getRootNode(bookmark);\n result.resolve(root);\n }\n }\n else {\n result.reject();\n }\n return result.promise();\n };\n }\n _selectNode(root, path) {\n if (!!this.bookmarkDict[path]) {\n return this.bookmarkDict[path];\n }\n var pathComponents = path.split('.'), currentNode = root;\n if (pathComponents[0] !== '0') {\n return null;\n }\n for (var i = 1, index = pathComponents[i]; i < pathComponents.length; i++, index = pathComponents[i]) {\n if (currentNode && currentNode.nodes && currentNode.nodes[index]) {\n currentNode = currentNode.nodes[index];\n }\n else {\n return null;\n }\n }\n var result = DocumentMapItemsProvider.fillNode(currentNode);\n if (result && result.length !== 0) {\n this.bookmarkDict[path] = result;\n }\n return result;\n }\n static fillNode(bookmark) {\n if (!bookmark || !bookmark.nodes || bookmark.nodes.length <= 0) {\n return null;\n }\n return bookmark.nodes.map((node, i) => { return { name: i + '', displayName: node.text, isList: node.nodes && node.nodes.length > 0, bookmark: node, specifics: 'node' }; });\n }\n _getRootNode(bookmark) {\n return [{ name: '0', displayName: bookmark.text, isList: bookmark.nodes && bookmark.nodes.length > 0, bookmark: bookmark, specifics: 'node' }];\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapTreeListController.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nexport class DocumentMapTreeListController {\n constructor() {\n this.selectedItem = ko.observable(null);\n this.clickHandler = (item) => void 0;\n }\n itemsFilter(item) {\n return true;\n }\n hasItems(item) {\n return item.isList === true;\n }\n canSelect(value) {\n return true;\n }\n select(value) {\n if (this.canSelect(value) && value !== this.selectedItem.peek()) {\n this.selectedItem.peek() && this.selectedItem.peek().isSelected(false);\n this.selectedItem(value);\n value.isSelected(true);\n }\n }\n showIconsForChildItems() {\n return false;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { TreeListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, TabInfo } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { DocumentMapItemsProvider } from './_documentMapItemsProvider';\nimport { DocumentMapTreeListController } from './_documentMapTreeListController';\nexport class DocumentMapModel extends Disposable {\n constructor(reportPreview) {\n super();\n this._selectedPath = ko.observable('0');\n this._setSelectedPathByNavigationNode = (nodes, brickNavigation, path = '0') => {\n nodes.forEach((item, index) => {\n if (item.indexes === brickNavigation.indexes && item.pageIndex === brickNavigation.pageIndex) {\n this._selectedPath(path + '.' + index.toString());\n }\n else if (item.nodes) {\n this._selectedPath(this._setSelectedPathByNavigationNode(item.nodes, brickNavigation, path + '.' + index.toString()));\n }\n });\n return this._selectedPath();\n };\n var treeListController = new DocumentMapTreeListController();\n this.isEmpty = ko.pureComputed(() => {\n return !(reportPreview.documentMap() && reportPreview.documentMap().nodes && (reportPreview.documentMap().nodes.length !== 0));\n });\n treeListController.clickHandler = (item) => {\n var bookmark = item.data.bookmark;\n if (bookmark) {\n var pageIndex = bookmark.pageIndex < 0 ? 0 : bookmark.pageIndex;\n reportPreview.pages.peek()[pageIndex].selectBrick(bookmark.indexes);\n }\n };\n reportPreview.brickClickDocumentMapHandler = (brickNavigation) => {\n if (reportPreview.documentMap && reportPreview.documentMap())\n this._setSelectedPathByNavigationNode(reportPreview.documentMap().nodes, brickNavigation);\n };\n this._disposables.push({ dispose: () => delete reportPreview.brickClickDocumentMapHandler });\n var documentMapTabVisible = ko.pureComputed(() => !this.isEmpty());\n this.tabInfo = new TabInfo({\n text: 'Document Map',\n template: 'dxrd-preview-document-map',\n model: this,\n keyboardHelper: new TreeListKeyboardHelper(),\n localizationId: 'DevExpress.XtraPrinting.PrintingSystemCommand.DocumentMap',\n imageClassName: 'reportexplorer',\n imageTemplateName: 'dxrd-svg-tabs-reportexplorer',\n visible: documentMapTabVisible\n });\n this.documentMapOptions = ko.pureComputed(() => {\n return {\n itemsProvider: new DocumentMapItemsProvider(reportPreview.documentMap()),\n expandRootItems: true,\n selectedPath: this._selectedPath,\n treeListController: treeListController,\n onItemsVisibilityChanged: () => { var _a, _b; return (_b = (_a = this.tabInfo) === null || _a === void 0 ? void 0 : _a.keyboardHelper) === null || _b === void 0 ? void 0 : _b.initialize(); }\n };\n });\n this._disposables.push(this.tabInfo, documentMapTabVisible, this.documentMapOptions, this.isEmpty);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\exportOptionsModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccordionKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, TabInfo } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { ActionId, ExportFormatID } from '../constants';\nexport class ExportOptionsModel extends Disposable {\n constructor(reportPreview, enableKeyboardSupport) {\n super();\n this.actions = [];\n this._reportPreview = reportPreview;\n var tabPanelVisible = ko.pureComputed(() => !!reportPreview.exportOptionsModel() && (!reportPreview.exportOptionsTabVisible || reportPreview.exportOptionsTabVisible()));\n this.tabInfo = new TabInfo({\n text: 'Export Options',\n template: 'dxrd-preview-export-options',\n model: reportPreview.exportOptionsModel,\n keyboardHelper: enableKeyboardSupport ? new AccordionKeyboardHelper() : undefined,\n localizationId: 'DevExpress.XtraPrinting.ExportOptions',\n imageClassName: 'properties',\n imageTemplateName: 'dxrd-svg-tabs-properties',\n visible: tabPanelVisible\n });\n var actionExportTo = {\n id: ActionId.ExportTo,\n text: 'Export To',\n textId: 'ASPxReportsStringId.WebDocumentViewer_ExportToText',\n disabled: reportPreview.exportDisabled,\n visible: true,\n clickAction: (model) => {\n if (reportPreview.exportDisabled())\n return;\n this._exportDocumentByFormat(model.itemData.format);\n },\n templateName: 'dxrd-preview-export-to',\n imageTemplateName: 'dxrd-svg-preview-export-export-to',\n eventHandlers: new ExportOptionsEventHandlers()\n };\n var exportItems = ko.pureComputed(() => {\n var result = this._getExportFormatItems();\n return [{\n text: 'Export To',\n textId: 'ASPxReportsStringId.WebDocumentViewer_ExportToText',\n imageClassName: 'dxrd-image-export-to',\n imageTemplateName: actionExportTo.imageTemplateName,\n items: result\n }];\n });\n actionExportTo['items'] = exportItems;\n this.actions.push(actionExportTo);\n this._disposables.push(tabPanelVisible, this.tabInfo, exportItems);\n }\n _getExportFormatItems() {\n var result = [];\n var exportOptionsModel = this._reportPreview.exportOptionsModel();\n if (exportOptionsModel) {\n exportOptionsModel.pdf && result.push(ExportFormatID.PDF);\n exportOptionsModel.xls && result.push(ExportFormatID.XLS);\n exportOptionsModel.xlsx && result.push(ExportFormatID.XLSX);\n exportOptionsModel.rtf && result.push(ExportFormatID.RTF);\n exportOptionsModel.docx && result.push(ExportFormatID.DOCX);\n exportOptionsModel.mht && result.push(ExportFormatID.MHT);\n exportOptionsModel.html && result.push(ExportFormatID.HTML);\n exportOptionsModel.textExportOptions && result.push(ExportFormatID.Text);\n exportOptionsModel.csv && result.push(ExportFormatID.CSV);\n exportOptionsModel.image && result.push(ExportFormatID.Image);\n }\n return result;\n }\n _exportDocumentByFormat(format) {\n format && this._reportPreview.exportDocumentTo(format);\n }\n getActions(context) {\n return this.actions;\n }\n dispose() {\n super.dispose();\n this.disposeArray(this.actions);\n this.removeProperties();\n }\n}\nexport class ExportOptionsEventHandlers {\n onSubmenuShowing(popupContainer, element) {\n return (e) => {\n e.submenu._overlay.option('container', popupContainer);\n e.submenu._overlay.option('focusStateEnabled', false);\n e.submenu._overlay.option('position', { my: 'left top', at: 'left bottom', of: element, collision: 'none', boundary: popupContainer });\n this._menuButton = e.component.option('focusedElement');\n e.submenu._attachHoverEvents();\n };\n }\n onSubmenuShown(e) {\n var submenu = e.submenu;\n submenu.registerKeyHandler('escape', (e) => submenu.hide());\n submenu.registerKeyHandler('leftArrow', (e) => submenu.hide());\n submenu.registerKeyHandler('rightArrow', (e) => submenu.hide());\n }\n onSubmenuHiding(e) {\n if (e.model.eventHandlers._menuButton) {\n e.component.option('focusedElement', e.model.eventHandlers._menuButton);\n e.component.focus();\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePage.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { PreviewPage } from '../../internal/_page';\nexport class MobilePreviewPage extends PreviewPage {\n constructor(preview, pageIndex, processClick, loading) {\n super(preview, pageIndex, processClick, loading);\n this.maxZoom = 1;\n this.selectBrick = (path, ctrlKey) => {\n var currentBrick = this.brick();\n !ctrlKey && this.resetBrickRecusive(currentBrick);\n if (!path) {\n return;\n }\n if (!currentBrick) {\n this['_selectedBrickPath'] = path;\n return;\n }\n this.bricks().forEach((brick) => { brick.indexes === path && brick.active(true); });\n };\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\mobilePreview.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ReportPreview } from '../reportPreview';\nimport { ZoomAutoBy } from '../constants';\nimport { MobilePreviewPage } from './internal/_mobilePage';\nimport * as ko from 'knockout';\nexport class MobileReportPreview extends ReportPreview {\n constructor(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl = false, mobileSettings = { readerMode: true, animationEnabled: true }) {\n super(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl);\n this.availablePages = ko.observable(null);\n this.visiblePages = ko.computed(() => {\n if (!this.availablePages()) {\n return this.pages();\n }\n else {\n return this.pages().filter((x) => { return this.availablePages().indexOf(x.pageIndex) !== -1; });\n }\n });\n this.topOffset = ko.observable(0);\n this.previewWrapperSize = ko.observable({ width: 0, height: 0 });\n this.searchPanelVisible = ko.observable(false);\n this.actionsVisible = ko.observable(false);\n this.scrollReachedLeft = ko.observable(false);\n this.scrollReachedRight = ko.observable(false);\n this.scrollReachedTop = ko.observable(true);\n this.scrollReachedBottom = ko.observable(true);\n this.zoomUpdating = ko.observable(false);\n this.mobileZoom = ko.computed({\n read: () => {\n var currentZoom = this.zoom();\n return currentZoom > 0 ? currentZoom : this._zoom();\n },\n write: (newVal) => {\n this.zoom(newVal);\n }\n });\n this.readerMode = mobileSettings.readerMode;\n var globalAnimationEnabled = mobileSettings.animationEnabled;\n this.animationSettings = { zoomEnabled: ko.observable(globalAnimationEnabled), swipeEnabled: ko.observable(globalAnimationEnabled) };\n this.canSwitchToDesigner = false;\n this.autoFitBy(ZoomAutoBy.PageWidth);\n this.showMultipagePreview(true);\n this._disposables.push(this.interactionDisabled = ko.pureComputed(() => this.pages().length === 0), this.searchPanelVisible.subscribe((newVal) => {\n if (newVal) {\n this.actionsVisible(false);\n }\n }));\n }\n createPage(pageIndex, processClick, loading) {\n return new MobilePreviewPage(this, pageIndex, processClick, loading);\n }\n createBrickClickProcessor(cyclePageIndex) {\n var _clickHandler = super.createBrickClickProcessor(cyclePageIndex);\n var func = (brick) => {\n if (this.zoomUpdating())\n return;\n if (cyclePageIndex !== this.pageIndex()) {\n this.actionsVisible(false);\n var supscription = this.actionsVisible.subscribe((newVal) => {\n supscription.dispose();\n this.actionsVisible(false);\n });\n }\n _clickHandler(brick);\n };\n return func;\n }\n _hasActiveEditingFields() {\n return this.visiblePages().some(p => {\n var pageEditFields = ko.unwrap(p.editingFields);\n return pageEditFields && pageEditFields.some(x => ko.unwrap(x.active));\n });\n }\n showActions(s) {\n if (s.zoomUpdating() || s.interactionDisabled())\n return;\n var searchVisible = s.searchPanelVisible();\n if (!searchVisible) {\n if (!this._hasActiveEditingFields()) {\n s.actionsVisible(!s.actionsVisible());\n }\n }\n else {\n s.searchPanelVisible(!searchVisible);\n }\n }\n onSlide(e) {\n this.scrollReachedLeft(true);\n this.scrollReachedRight(true);\n if (this.autoFitBy() === ZoomAutoBy.None && e.removedItems && e.removedItems[0].blocks().length === 1 && e.addedItems && e.addedItems[0].blocks().length === 1)\n this.autoFitBy(ZoomAutoBy.PageWidth);\n }\n goToPage(pageIndex, forcePage) {\n super.goToPage(pageIndex, forcePage);\n }\n getScrollViewOptions() {\n var options = {\n onUpdated: (e) => { this.setScrollReached(e); },\n direction: 'both',\n pushBackValue: 0,\n bounceEnabled: false,\n disabled: this.zoomUpdating\n };\n return options;\n }\n setScrollReached(e) {\n this.scrollReachedLeft(e.reachedLeft);\n this.scrollReachedRight(e.reachedRight);\n this.scrollReachedTop(e.reachedTop);\n this.scrollReachedBottom(e.reachedBottom);\n }\n dispose() {\n this.mobileZoom.dispose();\n this.visiblePages.dispose();\n super.dispose();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_searchKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { formatUnicorn, getLocalization, ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nexport class SearchKeyboardHelper extends ListKeyboardHelper {\n constructor(searchModel) {\n super();\n this.liveRegionId = 'dxrd-preview-search-live-region';\n this._disposables.push(searchModel.searchResult.subscribe(result => {\n if (result.length > 0)\n this.liveRegion().changeText(formatUnicorn(getLocalization('{0} results are available', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchResultsAvailable'), result.length));\n else if (!searchModel.loading() && !!searchModel.searchText())\n this.liveRegion().changeText(searchModel.noResultText());\n }));\n this._disposables.push(searchModel.searchText.subscribe(inputValue => {\n if (!!inputValue)\n this.liveRegion().changeText(formatUnicorn(getLocalization('You searched for {0}', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchString'), '\"' + inputValue + '\"'));\n }));\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\search\\_searchResultNavigator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport class SearchResultNavigator extends Disposable {\n constructor(searchModel, reportPreview) {\n super();\n this.currentResult = ko.observable(null);\n var goToMatchedResult = (foundResult) => {\n if (!foundResult) {\n return;\n }\n reportPreview.goToPage && reportPreview.goToPage(foundResult.pageIndex);\n var page = reportPreview.pages.peek()[foundResult.pageIndex];\n page && page.selectBrick(foundResult.indexes);\n };\n this.getFirstMatchFromPage = (pageIndex, up, thisPageOnly) => {\n if (!searchModel.searchResult() || searchModel.searchResult().length === 0) {\n return null;\n }\n var firstMatch;\n var sortOutResult = (index) => {\n searchModel.searchResult().forEach((m) => {\n if (thisPageOnly && m.pageIndex === index) {\n if (!firstMatch || (m.id < firstMatch.id && !up || m.id > firstMatch.id && up)) {\n firstMatch = m;\n }\n }\n else {\n if (m.pageIndex >= index && !up && (!firstMatch || m.id < firstMatch.id) || m.pageIndex <= index && up && (!firstMatch || m.id > firstMatch.id)) {\n firstMatch = m;\n }\n }\n });\n };\n sortOutResult(pageIndex);\n !firstMatch && sortOutResult(up ? reportPreview.pages().length : 0);\n return firstMatch;\n };\n var _setCurrentResult = (highlight, resultId, thisPageOnly) => {\n if (searchModel.searchResult() && searchModel.searchResult().length !== 0) {\n var currentResult = (resultId >= 0 && searchModel.searchResult().length > resultId) ?\n searchModel.searchResult()[resultId] :\n this.getFirstMatchFromPage(reportPreview.pageIndex.peek(), searchModel.searchUp.peek(), thisPageOnly);\n this.currentResult(currentResult);\n highlight && goToMatchedResult(this.currentResult.peek());\n }\n else {\n reportPreview.pages() && reportPreview.pages()[reportPreview.pageIndex()] && reportPreview.pages()[reportPreview.pageIndex()].selectBrick('');\n }\n };\n this.goToResult = (id) => {\n if (id !== 0 && !id) {\n return null;\n }\n _setCurrentResult(true, id);\n };\n this._disposables.push(reportPreview.pageIndex.subscribe((newPageIndex) => {\n if (this.currentResult() && newPageIndex === this.currentResult().pageIndex)\n return;\n this.currentResult(null);\n }));\n this._disposables.push(searchModel.searchResult.subscribe(() => {\n _setCurrentResult(true);\n }));\n this.next = (up) => {\n if (!searchModel.searchResult()) {\n return false;\n }\n if (!this.currentResult()) {\n var prevPageIndex = (reportPreview.pageIndex() === 0 ? reportPreview.pages.length : reportPreview.pageIndex()) - 1;\n var pageIndexToSearchFrom = up ? prevPageIndex : reportPreview.pageIndex();\n var firstResult = this.getFirstMatchFromPage(pageIndexToSearchFrom, up);\n this.currentResult(firstResult);\n if (firstResult) {\n goToMatchedResult(firstResult);\n return true;\n }\n else {\n return false;\n }\n }\n var id, currentId = this.currentResult().id;\n if (up) {\n id = (currentId === 0) ? searchModel.searchResult().length - 1 : (currentId - 1);\n }\n else {\n id = (currentId === searchModel.searchResult().length - 1) ? 0 : (currentId + 1);\n }\n this.currentResult(searchModel.searchResult()[id]);\n goToMatchedResult(this.currentResult());\n return true;\n };\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\search\\_searchViewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization, TabInfo } from '@devexpress/analytics-core/analytics-utils';\nimport DataSource from 'devextreme/data/data_source';\nimport * as ko from 'knockout';\nimport { SearchKeyboardHelper } from '../accessibility/_searchKeyboardHelper';\nimport { ActionId } from '../constants';\nimport { SearchAvailable } from '../settings';\nimport { SearchResultNavigator } from './_searchResultNavigator';\nexport class SearchViewModel extends Disposable {\n constructor(reportPreview, enableKeyboardSupport) {\n super();\n this._searchIgnoreObs = ko.observable(false);\n this.itemClickAction = (e) => {\n this.goToResult(e.data);\n };\n this.actions = [];\n this.focusRequested = ko.observable(true);\n this.matchWholeWord = ko.observable(false);\n this.matchCase = ko.observable(false);\n this.searchUp = ko.observable(false);\n this.searchText = ko.observable();\n this.searchResult = ko.observable();\n this.loading = ko.observable(false);\n this._renderedSearchResult = ko.observable([]);\n this.resetSearchResult();\n this._resultNavigator = SearchViewModel.createResultNavigator(this, reportPreview);\n this.clean = () => { this.searchText(''); };\n this._disposables.push(reportPreview._currentDocumentId.subscribe((newVal) => {\n this.resetSearchResult();\n }));\n this._disposables.push(reportPreview._currentReportId.subscribe((newVal) => {\n this.resetSearchResult();\n }));\n this.findUp = () => { this.searchUp(true); this.findNext(); };\n this.findDown = () => { this.searchUp(false); this.findNext(); };\n this.goToResult = (result) => { this._resultNavigator.goToResult(result.id); };\n var newSearch = (text, matchCase, matchWholeWord) => {\n this._searchTimeout && clearTimeout(this._searchTimeout);\n this._searchTimeout = setTimeout(() => {\n this._resultNavigator.currentResult(null);\n if (!text) {\n reportPreview.pages() && reportPreview.pages()[reportPreview.pageIndex()] && reportPreview.pages()[reportPreview.pageIndex()].selectBrick('');\n this.searchResult([]);\n return;\n }\n var mCase = this.matchCase();\n text = mCase ? this.searchText() : this.searchText().toLocaleLowerCase();\n var cache = this.matchWholeWord()\n ? mCase ? this._cachedWholeWordWithCaseRequests : this._cachedWholeWordRequests\n : mCase ? this._cachedCaseSensitiveRequests : this._cachedRequests;\n if (cache[text]) {\n this.loading(false);\n this.searchResult(cache[text]);\n return;\n }\n this.loading(true);\n this._searchIgnoreObs(true);\n this._searchIgnoreObs = ko.observable(false);\n var self = this;\n ((ignore) => {\n reportPreview.requestWrapper.findTextRequest(text, ignore).done(function (result) {\n if (!ignore())\n self.findTextRequestDone(result, cache[text]);\n }).fail(function (error) {\n if (!ignore()) {\n self.searchResult([]);\n self.loading(false);\n }\n });\n })(this._searchIgnoreObs);\n }, 100);\n };\n this.findNext = () => {\n if (this.loading()) {\n return;\n }\n this._resultNavigator.next(this.searchUp()) || newSearch(this.searchText(), this.matchCase(), this.matchWholeWord());\n };\n this._disposables.push(this.searchText.subscribe(newVal => { newSearch(newVal, this.matchCase(), this.matchWholeWord()); }), this.matchCase.subscribe(newVal => { newSearch(this.searchText(), newVal, this.matchWholeWord()); }), this.matchWholeWord.subscribe(newVal => { newSearch(this.searchText(), this.matchCase(), newVal); }));\n var disabled = ko.pureComputed(() => {\n var documentId = reportPreview['_currentDocumentId']();\n var pageIndex = reportPreview.pageIndex();\n return reportPreview.documentBuilding() || !documentId || pageIndex === -1;\n });\n var visible = ko.pureComputed(() => SearchAvailable());\n this._disposables.push(disabled, visible);\n this.actions.push({\n id: ActionId.Search,\n text: getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header'),\n imageClassName: 'dxrd-image-search',\n imageTemplateName: 'dxrd-svg-preview-search',\n disabled: disabled,\n visible: visible,\n hasSeparator: true,\n hotKey: { ctrlKey: false, keyCode: 70 },\n clickAction: () => {\n if (!this.tabInfo.active()) {\n this.tabInfo.active(true);\n }\n else {\n this.tabInfo.active.notifySubscribers(true);\n }\n }\n });\n this.tabInfo = new TabInfo({\n text: 'Search',\n template: 'dxrd-preview-search',\n model: this,\n keyboardHelper: enableKeyboardSupport ? new SearchKeyboardHelper(this) : undefined,\n localizationId: 'ASPxReportsStringId.SearchDialog_Header',\n imageClassName: 'search',\n imageTemplateName: 'dxrd-svg-preview-search',\n visible: ko.pureComputed(() => !disabled() && SearchAvailable())\n });\n this._disposables.push(this.searchResult.subscribe((newVal) => {\n if (newVal) {\n this._renderedSearchResult(newVal.map((item) => { return { data: item }; }));\n }\n }));\n this._disposables.push(this.tabInfo);\n var dataSource = null;\n this._disposables.push(this.searchResultDataSource = ko.pureComputed(() => {\n dataSource && dataSource.dispose();\n dataSource = new DataSource({\n store: this._renderedSearchResult(),\n paginate: this._renderedSearchResult().length > 20,\n pageSize: 20\n });\n return dataSource;\n }));\n }\n resetSearchResult() {\n this._cachedRequests = {};\n this._cachedWholeWordRequests = {};\n this._cachedCaseSensitiveRequests = {};\n this._cachedWholeWordWithCaseRequests = {};\n this.searchResult([]);\n this.searchText('');\n }\n findTextRequestDone(result, cache) {\n this.loading(false);\n if (!result) {\n this.searchResult([]);\n return;\n }\n cache = (result.success ? result.matches : []) || [];\n this.searchResult(cache);\n }\n dispose() {\n this._searchTimeout && clearTimeout(this._searchTimeout);\n super.dispose();\n }\n onItemRendered(e) {\n this._timeoutItemRendered && clearTimeout(this._timeoutItemRendered);\n this._timeoutItemRendered = setTimeout(() => {\n this.tabInfo.keyboardHelper && this.tabInfo.keyboardHelper.initialize();\n }, 100);\n }\n getActions(context) {\n return this.actions;\n }\n noResultText() {\n return formatUnicorn(getLocalization('No results found for {0}', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchNoResults'), '\"' + this.searchText() + '\"');\n }\n get disabled() { return this.loading(); }\n}\nSearchViewModel.createResultNavigator = (seacrhModel, reportPreview) => {\n return new SearchResultNavigator(seacrhModel, reportPreview);\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobileSearch.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SearchViewModel } from '../../search/_searchViewModel';\nimport { SearchAvailable } from '../../settings';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class MobileSearchViewModel extends SearchViewModel {\n constructor(reportPreview, gallery) {\n super(reportPreview);\n this.height = ko.observable(0);\n this['_resultNavigator']['_disposables'].forEach((x) => { x.dispose(); });\n var _galleryCurrentItemBlocksSubscription;\n var currentBlocksSubscribe = (selectedIndex) => {\n this._killSubscription(_galleryCurrentItemBlocksSubscription);\n _galleryCurrentItemBlocksSubscription = gallery.items()[selectedIndex].blocks.subscribe((newBlocks) => this.updatePagesInBlocks(newBlocks));\n this.updatePagesInBlocks(gallery.items()[selectedIndex].blocks());\n };\n var _gallerySelectedIndexSubscription;\n var currentIndexSubscribe = () => {\n this._killSubscription(_gallerySelectedIndexSubscription);\n _gallerySelectedIndexSubscription = gallery.selectedIndex.subscribe((newSelectedIndex) => currentBlocksSubscribe(newSelectedIndex));\n currentBlocksSubscribe(gallery.selectedIndex());\n };\n this._disposables.push(gallery.items.subscribe((newItems) => currentIndexSubscribe()));\n currentIndexSubscribe();\n this._disposables.push(this.searchResult.subscribe((newResult) => {\n if (!newResult || newResult.length === 0) {\n reportPreview.availablePages(null);\n reportPreview.pages().forEach(page => page.resetBrickRecusive(page.brick()));\n }\n else {\n reportPreview.availablePages(newResult.map(x => x.pageIndex));\n }\n var blocks = gallery.items()[gallery.selectedIndex()].blocks();\n blocks.forEach(block => {\n block.page && block.page.resetBrickRecusive(block.page.brick());\n this._updateBricks(block.page, this.searchResult());\n });\n }));\n this.searchPanelVisible = reportPreview.searchPanelVisible;\n this.editorVisible = ko.observable(false);\n this._disposables.push(this.searchPanelVisible.subscribe((newVal) => {\n if (!newVal || !SearchAvailable()) {\n this.stopSearching();\n }\n else {\n this.height(MobileSearchViewModel.maxHeight);\n }\n }));\n this.enabled = SearchAvailable;\n }\n focusEditor(event) {\n if (this.searchPanelVisible()) {\n this.editorVisible(true);\n var previewSearch = $.fn.constructor('.dxrdp-search-editor');\n var searchEditor = dxTextBox['getInstance'](previewSearch.get(0));\n searchEditor.focus();\n setTimeout(() => {\n event.currentTarget.blur();\n searchEditor.focus();\n }, 1);\n }\n }\n _killSubscription(subscription) {\n var index = this._disposables.indexOf(subscription);\n if (index == -1)\n return;\n subscription && subscription.dispose();\n this._disposables.splice(index, 1);\n }\n _updateBricks(page, searchResult) {\n if (page.brick() && searchResult && searchResult.length > 0) {\n var results = searchResult.filter((x) => { return x.pageIndex === page.pageIndex; });\n for (var i = 0; i < results.length; i++) {\n page.selectBrick(results[i].indexes, true);\n }\n }\n else {\n var subscription = page.brick.subscribe((newVal) => {\n subscription.dispose();\n this._updateBricks(page, this.searchResult());\n });\n }\n }\n updatePagesInBlocks(blocks) {\n blocks.forEach(block => {\n if (block.page && this.searchResult() && this.searchResult().length > 0) {\n this._updateBricks(block.page, this.searchResult());\n }\n });\n }\n stopSearching() {\n this.height(0);\n this.editorVisible(false);\n this.searchResult(null);\n }\n startSearch() {\n if (this.searchResult() === null)\n this.findNext();\n }\n}\nMobileSearchViewModel.maxHeight = 80;\nexport class SearchBarModel extends Disposable {\n constructor(viewModel, element, $searchText) {\n super();\n this.viewModel = viewModel;\n this._disposables.push(viewModel.height.subscribe((newValue) => {\n if (!newValue) {\n element.style.display = 'none';\n }\n else {\n element.style.display = 'block';\n }\n $searchText.css({\n 'opacity': Math.min((newValue / MobileSearchViewModel.maxHeight), 1)\n });\n }));\n }\n dispose() {\n super.dispose();\n this.viewModel.stopSearching();\n }\n}\nko.bindingHandlers['dxrdSearchBar'] = {\n init: function (element, valueAccessor) {\n var viewModel = ko.unwrap(valueAccessor());\n var $element = $.fn.constructor(element);\n element.style.display = 'none';\n var $searchText = $element.find('.dxrdp-taptosearch-text');\n var searchBarModel = new SearchBarModel(viewModel, element, $searchText);\n addDisposeCallback(element, function () {\n searchBarModel.dispose();\n });\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\gallery\\_galleryModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getCurrentResolution } from '../../../internal/_utils';\nimport { previewDefaultResolution } from '../../../settings';\nimport { ZoomAutoBy } from '../../../constants';\nimport * as ko from 'knockout';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class GalleryModel extends Disposable {\n constructor(preview, previewWrapperSize) {\n super();\n this.preview = preview;\n this.previewWrapperSize = previewWrapperSize;\n this._spacing = 1;\n this._animationTimeout = null;\n this.repaint = ko.observable({});\n this.repaintTimeout = ko.observable();\n this.horizontal = ko.observable(1);\n this.vertical = ko.observable(1);\n this.pageCount = 0;\n this.isAnimated = ko.observable(false);\n this.items = ko.observableArray([{ blocks: ko.observableArray([]) }, { blocks: ko.observableArray([]) }, { blocks: ko.observableArray([]) }]);\n this.currentBlockText = ko.observable('');\n this.selectedIndexReal = ko.observable(0);\n this.selectedIndex = ko.observable(0);\n var oldIndex = this.selectedIndex();\n this._disposables.push(this.contentSize = ko.pureComputed(() => {\n var blocks = this.items()[this.selectedIndex()].blocks();\n var width, height;\n if (blocks.length === 1) {\n var block = blocks[0];\n var position = block.position();\n width = Math.max(position.width, block.page.width());\n height = Math.max(position.height, block.page.height());\n }\n return { width: width ? width + 'px' : 'auto', height: height ? height + 'px' : 'auto' };\n }));\n this.animationEnabled = preview.animationSettings.swipeEnabled;\n var _calcHorizontalVertical = () => {\n var _zoom = preview._zoom();\n var pageHeight = Math.ceil(preview._pageHeight() * getCurrentResolution(_zoom) / previewDefaultResolution());\n var pageWidth = Math.ceil(preview._pageWidth() * getCurrentResolution(_zoom) / previewDefaultResolution());\n var _containerSize = previewWrapperSize();\n var horizontal = (preview.autoFitBy() != ZoomAutoBy.PageWidth && (Math.floor(_containerSize.width / (pageWidth + 2 * this._spacing)))) || 1;\n var vertical = Math.floor(_containerSize.height / (pageHeight + 2 * this._spacing)) || 1;\n this.horizontal(horizontal);\n this.vertical(vertical);\n };\n var updateGalleryContent = () => {\n _calcHorizontalVertical();\n this.pageCount = this.horizontal() * this.vertical();\n this.updateContent(preview, this.pageCount);\n };\n this._disposables.push(previewWrapperSize.subscribe(() => {\n this.items().forEach(item => item.blocks().forEach(block => block.repaint = true));\n updateGalleryContent();\n var currentGalleryItem = this.items()[this.selectedIndex()];\n this.updateBlocks(currentGalleryItem, this.pageCount, preview, this.selectedIndexReal(), preview.animationSettings.zoomEnabled());\n this.repaint.valueHasMutated();\n }));\n this._disposables.push(preview.visiblePages.subscribe(() => {\n for (var i = 0; i < this.items().length; i++) {\n this.items()[i].blocks([]);\n this.items()[i].realIndex = -1;\n }\n updateGalleryContent();\n }));\n this._disposables.push(preview.pageIndex.subscribe(updateGalleryContent));\n this._disposables.push(preview.zoomUpdating.subscribe((newVal) => {\n if (newVal)\n return;\n clearTimeout(this.repaintTimeout());\n this.repaintTimeout(setTimeout(() => this.repaint.valueHasMutated(), 410));\n }));\n this._disposables.push(preview._zoom.subscribe(() => {\n _calcHorizontalVertical();\n var pageCount = this.horizontal() * this.vertical();\n if (this.pageCount !== pageCount) {\n this.pageCount = pageCount;\n this.items().forEach(item => item.blocks().forEach(block => block.repaint = true));\n this.updateContent(preview, pageCount);\n }\n else if (this.pageCount === 1) {\n var block = this.items()[this.selectedIndex()].blocks()[0];\n this.items().forEach((item, index) => {\n if (index != this.selectedIndex())\n item.blocks().forEach(block => block.repaint = true);\n });\n setTimeout(() => {\n block.position({\n left: block.position().left,\n top: block.position().top,\n height: Math.max(this.previewWrapperSize().height, block.page.height()),\n width: Math.max(this.previewWrapperSize().width, block.page.width())\n });\n });\n }\n }));\n this._disposables.push(this.selectedIndexReal.subscribe((newVal) => {\n if (newVal >= 0) {\n this.changePage(preview);\n }\n else if (newVal < 0) {\n this.selectedIndexReal(0);\n }\n }));\n this._disposables.push(this.selectedIndex.subscribe((newVal) => {\n var result = newVal - oldIndex;\n if (result === -2 || result === 1) {\n this.selectedIndexReal(this.selectedIndexReal() + 1);\n }\n else if (result === 2 || result === -1) {\n this.selectedIndexReal(this.selectedIndexReal() - 1);\n }\n oldIndex = newVal;\n }));\n this._disposables.push(this.swipeLeftEnable = ko.computed(() => {\n return this.selectedIndexReal() !== 0;\n }));\n this._disposables.push(this.swipeRightEnable = ko.computed(() => {\n return this.selectedIndexReal() != (Math.ceil(preview.visiblePages().length / (this.horizontal() * this.vertical())) - 1);\n }));\n }\n _createBlock(previewPage, className, visible) {\n previewPage.disableResolutionReduction = true;\n previewPage.maxZoom = 1;\n var classSet = {};\n if (this.animationEnabled() && this.pageCount > 1) {\n className && (classSet[className] = true);\n classSet['dxrdp-animation'] = true;\n }\n return {\n page: previewPage,\n visible: visible,\n classSet: classSet,\n position: ko.observable({ top: 0, left: 0, width: 0, height: 0 })\n };\n }\n dispose() {\n clearTimeout(this.repaintTimeout());\n super.dispose();\n }\n updatePagesVisible(preview) {\n if (this.items()[this.selectedIndex()]) {\n var someActive = false;\n var pages = this.items()[this.selectedIndex()].blocks();\n if (pages.length > 0) {\n for (var i = 0; i < pages.length; i++) {\n if (pages[i].page) {\n pages[i].page.isClientVisible(true);\n if (pages[i].page.active()) {\n someActive = true;\n }\n }\n }\n if (!someActive) {\n pages[0].page && preview.goToPage(pages[0].page.pageIndex);\n }\n }\n }\n }\n updateCurrentBlock() {\n if (this.items()[this.selectedIndex()]) {\n var blocks = this.items()[this.selectedIndex()].blocks();\n if (blocks.length > 0) {\n if (blocks.length > 1) {\n this.currentBlockText([blocks[0].page.pageIndex + 1, blocks[blocks.length - 1].page.pageIndex + 1].join(' - '));\n }\n else {\n if (blocks[0].page) {\n this.currentBlockText((this.preview.pageIndex() + 1).toString());\n }\n }\n }\n }\n }\n updateContent(preview, pagesCount) {\n var itemsCount = Math.ceil(preview.visiblePages().length / pagesCount);\n var pageIndex = 0;\n var isCurrentBlock = false;\n var realIndex = 0;\n for (var i = 0; i < itemsCount; i++) {\n for (var j = 0; j < pagesCount; j++) {\n if (preview.visiblePages()[pageIndex].active()) {\n isCurrentBlock = true;\n realIndex = i;\n break;\n }\n pageIndex++;\n if (preview.visiblePages().length === pageIndex) {\n break;\n }\n }\n if (isCurrentBlock)\n break;\n }\n if (this.selectedIndexReal() !== realIndex) {\n this.selectedIndexReal(realIndex);\n }\n else {\n this.changePage(preview);\n }\n }\n updateBlockPositions(blocks, visible) {\n var height = this.previewWrapperSize().height / this.vertical();\n var width = this.previewWrapperSize().width / this.horizontal();\n for (var i = 0; i < blocks.length; i++) {\n var vertical = Math.floor((i) / this.horizontal());\n var horizontal = i - (this.horizontal() * vertical);\n var left = horizontal * width;\n if (blocks[i].visible === visible || blocks[i].visible === true) {\n blocks[i].position({\n top: vertical * height,\n left: left,\n width: width,\n height: height\n });\n blocks[i].visible = true;\n }\n else {\n blocks[i].position({\n top: vertical * height,\n left: blocks[i].classSet['left'] ? ((this.previewWrapperSize().width + left) * -1) : this.previewWrapperSize().width + left,\n width: width,\n height: height\n });\n }\n }\n }\n updateStartBlocks(galleryItem, pages) {\n var currentBlockPages = galleryItem.blocks().map(x => x.page);\n var firstPage = pages.indexOf(currentBlockPages[0]);\n if (firstPage !== -1) {\n for (var i = 0; i < firstPage; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], 'left', false));\n }\n }\n else {\n firstPage = currentBlockPages.indexOf(pages[0]);\n if (firstPage !== -1) {\n galleryItem.blocks.splice(0, firstPage);\n }\n }\n return firstPage;\n }\n updateLastBlocks(galleryItem, pages) {\n var currentBlockPages = galleryItem.blocks().map(x => x.page);\n var lastPage = pages.indexOf(currentBlockPages[currentBlockPages.length - 1]);\n if (lastPage === pages.length - 1) {\n return 0;\n }\n if (lastPage !== -1) {\n for (var i = lastPage + 1; i < pages.length; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], 'right', false));\n }\n }\n else {\n lastPage = currentBlockPages.indexOf(pages[pages.length - 1]);\n galleryItem.blocks.splice(lastPage + 1, currentBlockPages.length - lastPage);\n }\n return lastPage;\n }\n updateBlocks(galleryItem, pagesCount, preview, index, useAnimation = false) {\n var blocks = galleryItem.blocks();\n if (galleryItem.realIndex !== index\n || (blocks.length !== pagesCount || blocks[0].page.pageIndex === -1)\n || blocks.some(x => x.repaint)) {\n galleryItem.realIndex = index;\n clearTimeout(this._animationTimeout);\n var startIndex = pagesCount * index;\n if (startIndex < 0 || startIndex >= preview.visiblePages().length) {\n galleryItem.blocks([]);\n return;\n }\n var pages = [];\n for (var i = startIndex; i < startIndex + pagesCount; i++) {\n if (i >= preview.visiblePages().length) {\n break;\n }\n pages.push(preview.visiblePages()[i]);\n }\n var first = this.updateStartBlocks(galleryItem, pages);\n var last = this.updateLastBlocks(galleryItem, pages);\n if (first === -1 && last === -1) {\n galleryItem.blocks([]);\n for (var i = 0; i < pages.length; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], null, true));\n }\n }\n this.updateBlockPositions(galleryItem.blocks(), true);\n var self = this;\n if (useAnimation) {\n this._animationTimeout = setTimeout(() => {\n self.updateBlockPositions(galleryItem.blocks(), false);\n }, 400);\n }\n else {\n self.updateBlockPositions(galleryItem.blocks(), false);\n }\n }\n }\n changePage(preview) {\n var pagesCount = this.horizontal() * this.vertical();\n var itemsCount = Math.ceil(preview.visiblePages().length / pagesCount);\n if (this.selectedIndex() === this.items().length - 1) {\n this.updateBlocks(this.items()[0], pagesCount, preview, this.selectedIndexReal() + 1);\n this.updateBlocks(this.items()[1], pagesCount, preview, this.selectedIndexReal() - 1);\n }\n else if (this.selectedIndex() === 0) {\n this.updateBlocks(this.items()[2], pagesCount, preview, this.selectedIndexReal() - 1);\n this.updateBlocks(this.items()[1], pagesCount, preview, this.selectedIndexReal() + 1);\n }\n else {\n this.updateBlocks(this.items()[0], pagesCount, preview, this.selectedIndexReal() - 1);\n this.updateBlocks(this.items()[2], pagesCount, preview, this.selectedIndexReal() + 1);\n }\n var currentGalleryItem = this.items()[this.selectedIndex()];\n this.updateBlocks(currentGalleryItem, pagesCount, preview, this.selectedIndexReal(), preview.animationSettings.zoomEnabled());\n if (!this.isAnimated()) {\n this.updatePagesVisible(preview);\n }\n this.updateCurrentBlock();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_paginator.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class MobilePaginator extends Disposable {\n constructor(reportPreview, gallery) {\n super();\n this.visible = ko.observable(false).extend({ notify: 'always' });\n this._disposables.push(this.text = ko.computed(() => {\n setTimeout(() => { this.visible(true); }, 1);\n if (reportPreview.pageIndex() === -1) {\n return getLocalization('0 pages', 'ASPxReportsStringId.WebDocumentViewer_0Pages');\n }\n else {\n var ofText = getLocalization('of', 'ASPxReportsStringId.ToolBarItemText_OfLabel');\n var pageText = getLocalization('Page', 'ASPxReportsStringId.ToolBarItemText_PageLabel');\n return pageText + ' ' + gallery.currentBlockText() + ' ' + ofText + ' ' + reportPreview.pages().length;\n }\n }));\n }\n}\nko.bindingHandlers['dxrdMobilePaginator'] = {\n init: function (element, valueAccessor) {\n var values = valueAccessor();\n var $element = $.fn.constructor(element);\n var timeoutId = null;\n var hideAnimationTimeoutId = null;\n values.visible.subscribe((newVal) => {\n if (newVal) {\n $element.removeClass('dxrdp-hide').addClass('dxrdp-show');\n timeoutId && clearTimeout(timeoutId);\n timeoutId = setTimeout(() => { values.visible(false); }, 2000);\n }\n else {\n $element.removeClass('dxrdp-show').addClass('dxrdp-hide');\n hideAnimationTimeoutId && clearTimeout(hideAnimationTimeoutId);\n hideAnimationTimeoutId = setTimeout(() => {\n $element.removeClass('dxrdp-hide');\n }, 500);\n }\n });\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\_groupEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { PropertyGridEditor } from '@devexpress/analytics-core/analytics-widgets';\nexport class ParametersGroupEditor extends PropertyGridEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n this.isGroupLabel = true;\n }\n _setPadding(position, value) {\n var padding = super._setPadding(position, value);\n padding['padding-' + position] = 10;\n padding['padding-bottom'] = 6;\n return padding;\n }\n createObjectProperties() {\n var editorOptions = this.editorOptions;\n this.collapsed(!editorOptions.expanded && editorOptions.titleVisible);\n this.hideEditorHeader = !editorOptions.titleVisible;\n this.hideCollapsingImage = !editorOptions.showExpandButton;\n this.hideBorder = editorOptions.borderVisible === false;\n this.showHorizontally = editorOptions.orientation === 'Horizontal';\n this.level = -1;\n this.editorCreated(true);\n return super.createObjectProperties();\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\editorTemplates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nimport { ParametersGroupEditor } from './_groupEditor';\nexport var viewerEditorTemplates = {\n multiValue: {\n header: 'dxrd-multivalue', extendedOptions: {\n onMultiTagPreparing: (args) => {\n var selectedItemsLength = args.selectedItems.length, totalCount = args.model.items.length;\n if (selectedItemsLength === totalCount) {\n var stringFormat = getLocalization('All selected ({0})', 'ASPxReportsStringId.WebDocumentViewer_MultiValueEditor_AllSelected');\n args.text = formatUnicorn(stringFormat, selectedItemsLength);\n }\n }\n }\n },\n groupEditor: { header: 'dx-emptyHeader', custom: 'dxrd-parameters-property-editor', content: 'dxrd-parameters-editor-content', editorType: ParametersGroupEditor },\n rangeEditor: { header: 'dxrv-range-parameter' },\n multiValueEditable: { custom: 'dxrd-multivalue-editable' },\n selectBox: { header: 'dx-selectbox' },\n separatorEditor: { header: 'dx-emptyHeader', custom: 'dxrd-parameters-separator' }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\parameterHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { selectPlaceholder, SortedArrayStore } from '@devexpress/analytics-core/analytics-internal';\nimport ArrayStore from 'devextreme/data/array_store';\nimport { getEditorType as analytics_getEditorType } from '@devexpress/analytics-core/analytics-internal';\nimport DataSource from 'devextreme/data/data_source';\nexport function getEditorType(typeString) {\n if (typeString === 'multiValueWithLookUp') {\n return viewerEditorTemplates.multiValue;\n }\n if (typeString === 'multiValue') {\n return viewerEditorTemplates.multiValueEditable;\n }\n if (typeString === 'Enum') {\n return viewerEditorTemplates.selectBox;\n }\n return undefined;\n}\nexport class ParameterHelper extends Disposable {\n constructor() {\n super(...arguments);\n this._customizeParameterEditors = ko.observable();\n this.getUnspecifiedDisplayText = () => { return getLocalization('(none)', 'PreviewStringId.NoneString'); };\n }\n _isKnownEnumType(type) {\n return !!this._knownEnums && this._knownEnums.some((knownEnumType) => { return knownEnumType.enumType === type; });\n }\n static getSerializationValue(value, dateConverter) {\n if (value instanceof Array) {\n return value.map((item) => {\n var itemValue = ko.isObservable(item === null || item === void 0 ? void 0 : item.value) ? item.value() : item;\n return (itemValue instanceof Date) ? dateConverter(itemValue) : itemValue;\n });\n }\n return (value instanceof Date) ? dateConverter(value) : value;\n }\n static createDefaultDataSource(store) {\n return new DataSource({\n store: store,\n paginate: true,\n pageSize: 100\n });\n }\n initialize(knownEnums, callbacks) {\n if (arguments.length > 0) {\n this._knownEnums = knownEnums;\n if (callbacks) {\n callbacks.customizeParameterEditors && this._customizeParameterEditors(callbacks.customizeParameterEditors);\n callbacks.customizeParameterLookUpSource && (this.customizeParameterLookUpSource = callbacks.customizeParameterLookUpSource);\n }\n }\n }\n createInfo(parameter) {\n var parameterDescriptor = parameter.getParameterDescriptor();\n var typeString = this.isEnumType(parameter) ? 'Enum' : ko.unwrap(parameterDescriptor.type);\n var editorType = getEditorType(typeString);\n var info = {\n propertyName: 'value',\n displayName: parameterDescriptor['displayName'],\n localizationId: parameterDescriptor['localizationId'],\n editor: editorType || analytics_getEditorType(typeString),\n editorOptions: {}\n };\n if (parameterDescriptor.type === 'System.Guid') {\n info.editorOptions.isNullable = parameterDescriptor.allowNull;\n }\n this.assignValueStore(info, parameter);\n return info;\n }\n addShowCleanButton(info, parameter) {\n info.editorOptions.showClearButton = parameter.allowNull;\n info.editorOptions.placeholder = ko.computed(() => {\n if (ko.unwrap(parameter.allowNull))\n return this.getUnspecifiedDisplayText();\n return ko.unwrap(parameter.isMultiValue) ? selectPlaceholder() : '';\n });\n }\n assignValueStore(info, parameter) {\n var items = this.getEnumCollection(parameter);\n info['valueStore'] = this.getItemsSource(parameter.getParameterDescriptor(), items, true);\n }\n createMultiValue(parameter, value) {\n var newValue = ko.observable();\n if (value !== null && value !== void 0) {\n newValue(value);\n }\n return { value: newValue, getInfo: () => { return [parameter.multiValueInfo()]; } };\n }\n createMultiValueArray(fromArray, parameter, convertSingleValue) {\n var converter = convertSingleValue ? convertSingleValue : this.getValueConverter(ko.unwrap(parameter.type));\n return ko.observableArray(fromArray.map((item) => {\n return this.createMultiValue(parameter, converter(item));\n }));\n }\n isEnumType(parameter) {\n return this._isKnownEnumType(ko.unwrap(parameter.type));\n }\n getItemsSource(parameterDescriptor, items, sort) {\n if (items) {\n var newItems;\n if (this.customizeParameterLookUpSource)\n newItems = this.customizeParameterLookUpSource(parameterDescriptor, items.slice(0));\n return newItems ? newItems : ParameterHelper.createDefaultDataSource(sort ? new SortedArrayStore(items, 'displayValue') : new ArrayStore(items));\n }\n return items;\n }\n getEnumCollection(parameter) {\n var type = ko.unwrap(parameter.type);\n if (this._isKnownEnumType(type)) {\n var currentKnownEnumInfo = this._knownEnums.filter((knownEnumType) => { return knownEnumType.enumType === type; })[0];\n if (currentKnownEnumInfo && currentKnownEnumInfo.values && currentKnownEnumInfo.values.length !== 0) {\n return currentKnownEnumInfo.values.map((val) => { return { value: val.value, displayValue: val.displayName }; });\n }\n }\n }\n getParameterInfo(parameter) {\n var valueInfo = this.createInfo(parameter);\n parameter.multiValueInfo($.extend(true, {}, valueInfo, { propertyName: 'value' }));\n if (parameter.allowNull !== undefined) {\n this.addShowCleanButton(valueInfo, parameter);\n }\n if (ko.unwrap(parameter.isMultiValue)) {\n valueInfo.editor = getEditorType(parameter['isMultiValueWithLookUp'] ? 'multiValueWithLookUp' : 'multiValue');\n valueInfo['addHandler'] = () => { return this.createMultiValue(parameter); };\n }\n valueInfo.editor.custom = valueInfo.editor.custom || 'dxrd-parameters-property-editor';\n if (this._customizeParameterEditors()) {\n this._customizeParameterEditors()(parameter.getParameterDescriptor(), valueInfo);\n }\n return valueInfo;\n }\n getValueConverter(type) {\n return (val => { return val; });\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\multiValuesHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { compareArrays } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class MultiValuesHelper {\n constructor(value, items, selectAllValues) {\n this.items = items;\n this.selectedItems = ko.observableArray([]);\n this.value = value;\n this.dataSource = items;\n var allValues;\n this.maxDisplayedTags = Math.min(((items && items.length) || 1) - 1, MultiValuesHelper.maxDisplayedTags);\n this.isSelectedAll = ko.pureComputed({\n read: () => this.value().length == items.length,\n write: (selectAll) => {\n var newValue = selectAll ? (allValues || (allValues = items.map(x => x.value))) : [];\n if (!compareArrays(this.value.peek(), newValue))\n this.value(newValue);\n }\n });\n if (selectAllValues)\n this.isSelectedAll(true);\n }\n}\nMultiValuesHelper.maxDisplayedTags = 3;\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParameterHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ParameterHelper } from './parameterHelper';\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { parseDate, integerValueConverter, floatValueConverter } from '@devexpress/analytics-core/analytics-internal';\nimport { requiredValidationRules } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nexport class PreviewParameterHelper extends ParameterHelper {\n constructor(knownEnums, callbacks) {\n super();\n this.callbacks = callbacks;\n this.initialize(knownEnums, callbacks);\n }\n mapLookUpValues(type, lookUpValues) {\n var converter = this.getValueConverter(type);\n return $.map(lookUpValues || [], (lookUpValue) => { return { value: converter(lookUpValue.Value), displayValue: lookUpValue.Description }; });\n }\n static fixPropertyName(propertyName) {\n return propertyName.replace(/\\./g, '_');\n }\n static getPrivatePropertyName(propertyName) {\n return '_' + PreviewParameterHelper.fixPropertyName(propertyName);\n }\n createInfo(parameter) {\n var info = super.createInfo(parameter);\n info.propertyName = PreviewParameterHelper.getPrivatePropertyName(parameter.path);\n if (!parameter.isMultiValue && (parameter.lookUpValues() || this.isEnumType(parameter))) {\n info.editorOptions.searchEnabled = true;\n if (!parameter.allowNull)\n info.editorOptions.allowClearing = false;\n }\n if (parameter.isRange) {\n info.editor = this.getRangeEditor();\n return info;\n }\n if ((parameter.type === 'System.DateTime' || parameter.isTypesCurrentType(parameter.intTypes.concat(parameter.floatTypes), parameter.type)) && !parameter.allowNull && !parameter.isMultiValue && !parameter.isMultiValueWithLookUp) {\n info.validationRules = requiredValidationRules;\n }\n else if (parameter.type === 'System.Guid') {\n info.editorOptions.displayCustomValue = false;\n }\n return info;\n }\n assignValueStore(info, parameter) {\n var _helper = this;\n if (!parameter.isMultiValueWithLookUp) {\n Object.defineProperty(info, 'valueStore', {\n get: () => {\n var items = [];\n var needSorting = false;\n if (parameter.isFilteredLookUpSettings || parameter.lookUpValues() && parameter.lookUpValues().length !== 0) {\n items = parameter.lookUpValues();\n }\n else {\n items = _helper.getEnumCollection(parameter);\n needSorting = true;\n }\n if (parameter.valueStoreCache)\n return parameter.valueStoreCache;\n var itemsSource = _helper.getItemsSource(parameter.getParameterDescriptor(), items, needSorting);\n if (itemsSource)\n parameter.valueStoreCache = itemsSource;\n return itemsSource;\n },\n set: (values) => {\n parameter.lookUpValues(values);\n }\n });\n }\n }\n isEnumType(parameter) {\n return parameter.isFilteredLookUpSettings || !!parameter.lookUpValues() || super.isEnumType(parameter);\n }\n getValueConverter(type) {\n if (type === 'System.DateTime') {\n return (dateString) => { return parseDate(dateString); };\n }\n else if (['System.Int16', 'System.Int32', 'System.Int64'].indexOf(type) > -1) {\n return val => integerValueConverter(val, '0');\n }\n else if (['System.Single', 'System.Double', 'System.Decimal'].indexOf(type) > -1) {\n return val => floatValueConverter(val, '0');\n }\n return super.getValueConverter(type);\n }\n getRangeEditor() {\n return viewerEditorTemplates.rangeEditor;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParameter.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { compareArrays } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { Editor } from '@devexpress/analytics-core/analytics-widgets';\nimport ArrayStore from 'devextreme/data/array_store';\nimport * as ko from 'knockout';\nimport { MultiValuesHelper } from './multiValuesHelper';\nimport { ParameterHelper } from './parameterHelper';\nimport { PreviewParameterHelper } from './previewParameterHelper';\nexport class PreviewParameter extends Disposable {\n constructor(parameterInfo, parameterHelper) {\n super();\n this.hasVerticalLabel = ko.observable(false);\n this.valueInfo = ko.observable();\n this.lookUpValues = ko.observableArray();\n this.valueStoreCache = null;\n this.multiValueInfo = ko.observable();\n this.intTypes = ['System.Int16', 'System.Int32', 'System.Int64'];\n this.floatTypes = ['System.Single', 'System.Double', 'System.Decimal'];\n this.isTypesCurrentType = (types, type) => types.indexOf(type) > -1;\n this.tag = parameterInfo.Tag;\n this.type = parameterInfo.TypeName;\n this.isRange = parameterInfo.Value && parameterInfo.Value.Start !== undefined && parameterInfo.Value.End !== undefined;\n this.path = parameterInfo.Path;\n this.visible = ko.observable(parameterInfo.Visible);\n this.enabled = ko.observable(parameterInfo.Enabled);\n this.isFilteredLookUpSettings = parameterInfo.IsFilteredLookUpSettings;\n this.hasBindedExpressions = !!(parameterInfo.EnabledExpression || parameterInfo.VisibleExpression);\n this.hasVisibleExpression = !!parameterInfo.VisibleExpression;\n this._originalLookUpValues = parameterInfo.LookUpValues ? parameterHelper.mapLookUpValues(this.type, parameterInfo.LookUpValues || []) : null;\n this.lookUpValues(this._originalLookUpValues);\n this.lookUpValues.subscribe(() => { this.valueStoreCache = null; });\n this.isMultiValue = parameterInfo.MultiValue;\n this.selectAllValues = parameterInfo.SelectAllValues;\n this.allowNull = parameterInfo.AllowNull;\n this.isMultiValueWithLookUp = this.isMultiValue && !!this.lookUpValues();\n this._originalValue = parameterInfo.Value;\n if (parameterInfo.ValueInfo && this.isTypesCurrentType(this.intTypes.concat(this.floatTypes), this.type) && !this.isMultiValueWithLookUp) {\n this._originalValue = parameterInfo.ValueInfo;\n }\n this.getParameterDescriptor = () => {\n return {\n description: parameterInfo.Description,\n displayName: parameterInfo.Description || parameterInfo.Name,\n name: parameterInfo.Name,\n tag: parameterInfo.Tag,\n type: parameterInfo.TypeName,\n value: this._originalValue,\n multiValue: parameterInfo.MultiValue,\n selectAllValues: parameterInfo.SelectAllValues,\n allowNull: parameterInfo.AllowNull,\n hasLookUpValues: !!this.lookUpValues() || parameterHelper.isEnumType(this),\n visible: parameterInfo.Visible,\n enabled: parameterInfo.Enabled\n };\n };\n this._disposables.push(ko.computed(() => {\n var info = parameterHelper.getParameterInfo(this);\n info.propertyName = PreviewParameterHelper.getPrivatePropertyName(parameterInfo.Path);\n info.editor.editorType = info.editor.editorType || Editor;\n info.editorOptions.hasVerticalLabel = this.hasVerticalLabel();\n this.valueInfo(info);\n }));\n this.initialize(this._originalValue, parameterHelper);\n }\n static _compareValues(value1, value2) {\n if (value1 instanceof Date && value2 instanceof Date) {\n return value1 - value2 === 0;\n }\n return value1 === value2;\n }\n safeAssignObservable(name, value) {\n if (this[name]) {\n if (PreviewParameter._compareValues(this[name](), value()))\n this[name](null);\n var isEqual = false;\n if (value() instanceof MultiValuesHelper && Array.isArray(value().items))\n isEqual = compareArrays(this[name]().items, value().items);\n else if (Array.isArray(value()))\n isEqual = compareArrays(this[name](), value());\n if (!isEqual) {\n this[name](value());\n }\n }\n else {\n this[name] = value;\n }\n }\n initialize(value, parameterHelper) {\n var resultValue;\n if (this.isMultiValueWithLookUp) {\n this.safeAssignObservable('_value', ko.observableArray((value || []).map((arrayItem) => {\n return parameterHelper.getValueConverter(this.type)(arrayItem);\n })));\n var multiValuesHelper = new MultiValuesHelper(this._value, this.lookUpValues(), this.selectAllValues);\n var newItems;\n if (parameterHelper.customizeParameterLookUpSource)\n newItems = parameterHelper.customizeParameterLookUpSource(this.getParameterDescriptor(), multiValuesHelper.dataSource);\n if (newItems) {\n multiValuesHelper.dataSource = newItems;\n }\n else {\n var store = new ArrayStore({\n data: multiValuesHelper.dataSource,\n key: 'value',\n });\n multiValuesHelper.dataSource = ParameterHelper.createDefaultDataSource(store);\n }\n resultValue = ko.observable(multiValuesHelper);\n }\n else if (this.isMultiValue) {\n resultValue = value ? parameterHelper.createMultiValueArray(value, this) : ko.observableArray();\n }\n else if (this.allowNull && !value && value !== false) {\n resultValue = ko.observable(null);\n }\n else if (this.isRange) {\n var converter = parameterHelper.getValueConverter(this.type);\n resultValue = ko.observableArray([this._originalValue.Start, this._originalValue.End].map(x => ko.unwrap(converter(x))));\n }\n else {\n resultValue = ko.observable(parameterHelper.getValueConverter(this.type)(value));\n }\n this.safeAssignObservable('value', resultValue);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\parameterPanelItemBase.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { floatValueConverter, getUniqueName, integerValueConverter } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { PreviewParameter } from './previewParameter';\nimport { PreviewParameterHelper } from './previewParameterHelper';\nexport class ParameterPanelItemBase extends Disposable {\n constructor(parameterHelper, layoutInfo) {\n super();\n this.parameterHelper = parameterHelper;\n this.layoutInfo = layoutInfo;\n this._parameters = [];\n this._separatorNames = [];\n this._groupLayoutItems = [];\n this.isEmpty = ko.observable(true);\n this.getInfo = ko.observable([]);\n this.parameterHelper = parameterHelper || new PreviewParameterHelper();\n }\n _fixGroupPropertyName(name) {\n return getUniqueName(Object.keys(this), name.toLocaleLowerCase().replace(/\\s/g, '_'));\n }\n _proceedLayoutInfo(layoutInfo, previewParameters) {\n this.getInfo([]);\n this._groupLayoutItems = [];\n layoutInfo.layoutItems.forEach(itemInfo => {\n if (itemInfo.type === 'Group') {\n var groupItemInfo = itemInfo;\n var name = this._fixGroupPropertyName(groupItemInfo.title);\n var info = {\n propertyName: name,\n displayName: groupItemInfo.title,\n editor: viewerEditorTemplates.groupEditor,\n editorOptions: {\n expanded: groupItemInfo.expanded,\n titleVisible: groupItemInfo.titleVisible,\n showExpandButton: groupItemInfo.showExpandButton,\n borderVisible: itemInfo.borderVisible,\n orientation: groupItemInfo.orientation\n }\n };\n var item = new ParameterPanelItemBase(this.parameterHelper, groupItemInfo);\n this[name] = item;\n this._groupLayoutItems.push(item);\n this.getInfo(this.getInfo().concat(info));\n }\n else if (itemInfo.type === 'Parameter') {\n var parameterLayoutInfo = itemInfo;\n var previewParameter = previewParameters.filter(x => x.path === parameterLayoutInfo.path)[0];\n previewParameter && this._add(previewParameter, parameterLayoutInfo);\n }\n else if (itemInfo.type === 'Separator') {\n var generatedName = this._fixGroupPropertyName('Separator');\n this[generatedName] = { name: ko.observable(generatedName) };\n info = {\n propertyName: generatedName,\n editor: viewerEditorTemplates.separatorEditor\n };\n this.getInfo(this.getInfo().concat(info));\n this._separatorNames.push(generatedName);\n }\n });\n }\n _add(parameter, parameterInfo) {\n if (this._parameters.indexOf(parameter) === -1) {\n this._parameters.push(parameter);\n }\n if (!parameter.visible() && !parameter.hasVisibleExpression) {\n return parameter;\n }\n parameter.hasVerticalLabel(parameterInfo.labelOrientation === 'Vertical');\n this[PreviewParameterHelper.getPrivatePropertyName(parameter.path)] = parameter.value;\n var parameterPropertyName = PreviewParameterHelper.fixPropertyName(parameter.path);\n if (parameter.isMultiValue || !parameter.isTypesCurrentType(parameter.intTypes.concat(parameter.floatTypes), parameter.type)) {\n this[parameterPropertyName] = parameter.value;\n }\n else {\n this[parameterPropertyName] = ko.pureComputed({\n read: () => {\n var parseValue = parameter.value();\n if (parseValue === null || parseValue === undefined) {\n return parseValue;\n }\n if (parameter.isTypesCurrentType(parameter.intTypes, parameter.type)) {\n parseValue = parseInt(parseValue);\n }\n else if (parameter.isTypesCurrentType(parameter.floatTypes, parameter.type)) {\n parseValue = parseFloat(parseValue);\n }\n return parseValue;\n },\n write: (newVal) => {\n var expandValue = newVal;\n if (parameter.allowNull && (expandValue === '' || expandValue === undefined)) {\n expandValue = null;\n }\n else if (parameter.isTypesCurrentType(parameter.intTypes, parameter.type)) {\n expandValue = integerValueConverter(expandValue, '0');\n }\n else if (parameter.isTypesCurrentType(parameter.floatTypes, parameter.type)) {\n expandValue = floatValueConverter(expandValue, '0');\n }\n parameter.value(expandValue);\n }\n });\n }\n this.getInfo(this.getInfo().concat(parameter.valueInfo()));\n return parameter;\n }\n isPropertyDisabled(name) {\n var parameter = this._parameters.filter(parameter => PreviewParameterHelper.getPrivatePropertyName(parameter.path) === name)[0];\n return parameter && !parameter.enabled();\n }\n isPropertyVisible(name) {\n var parameter = this._parameters.filter(parameter => PreviewParameterHelper.getPrivatePropertyName(parameter.path) === name)[0];\n return !parameter || parameter.visible();\n }\n initialize(originalParametersInfo, parameters) {\n this._parameters.forEach((usedParameter) => {\n delete this[PreviewParameterHelper.fixPropertyName(usedParameter.path)];\n delete this[PreviewParameterHelper.getPrivatePropertyName(usedParameter.path)];\n });\n this._parameters = [];\n if (!originalParametersInfo) {\n this.isEmpty(true);\n this.getInfo([]);\n return;\n }\n parameters = parameters || (originalParametersInfo.parameters || []).map((parameter) => {\n var previewParameter = new PreviewParameter(parameter, this.parameterHelper);\n this._parameters.push(previewParameter);\n return previewParameter;\n });\n var layoutInfo = originalParametersInfo.parameterPanelLayout || this.layoutInfo;\n layoutInfo && this._proceedLayoutInfo(layoutInfo, parameters);\n this._groupLayoutItems.forEach(item => item.initialize({}, parameters));\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParametersViewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccordionKeyboardHelper, ajax } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization, TabInfoWithPropertyGrid } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { HandlerUri } from '../settings';\nimport { ParameterHelper } from './parameterHelper';\nimport { ParameterPanelItemBase } from './parameterPanelItemBase';\nimport { PreviewParameter } from './previewParameter';\nimport * as $ from 'jquery';\nexport class PreviewParametersViewModel extends ParameterPanelItemBase {\n constructor(reportPreview, parameterHelper, enableKeyboardSupport) {\n super(parameterHelper);\n this._needToUpdateParameter = ko.observable(false);\n this._getParametersStateRequest = (argsObject) => {\n return ajax(HandlerUri(), 'getParametersState', encodeURIComponent(JSON.stringify(argsObject)), (message, jqXHR, textStatus) => this._reportPreview._processError(getLocalization('Cannot supply filtered lookup values to a report parameter editor', 'ASPxReportsStringId.WebDocumentViewer_GetLookUpValuesError'), jqXHR));\n };\n this._getDoneGetParametersStateHandler = (changedParameter) => {\n var parametersViewModel = this;\n return (response) => {\n try {\n if (!response || !response.parameters) {\n return;\n }\n response.parameters.forEach((parametersInfoCollection) => {\n var matchedParameter = parametersViewModel._parameters.filter((p) => { return p.path === parametersInfoCollection.Key; })[0];\n if (!parametersViewModel._shouldProcessParameter(matchedParameter))\n return;\n matchedParameter.visible(parametersInfoCollection.Value.visible);\n matchedParameter.enabled(parametersInfoCollection.Value.enabled);\n if (parametersViewModel._parameters.indexOf(changedParameter) < parametersViewModel._parameters.indexOf(matchedParameter) && parametersInfoCollection.Value.lookUpValues != null) {\n parametersViewModel._setLookUpValues(matchedParameter, parametersInfoCollection.Value.lookUpValues);\n }\n });\n }\n finally {\n parametersViewModel.parametersLoading(false);\n }\n };\n };\n this._getFailGetParametersStateHandler = () => {\n var parametersViewModel = this;\n return (jqXHRError) => {\n parametersViewModel.parametersLoading(false);\n };\n };\n this.restore = () => {\n if (this.parametersLoading()) {\n return;\n }\n try {\n this.parametersLoading(true);\n this._parameters.forEach((parameter) => {\n if (!this._shouldProcessParameter(parameter))\n return;\n parameter.lookUpValues(parameter._originalLookUpValues);\n parameter.initialize(parameter._originalValue, this.parameterHelper);\n });\n }\n finally {\n this.parameterHelper.callbacks && this.parameterHelper.callbacks.parametersReset && this.parameterHelper.callbacks.parametersReset(this, this._parameters);\n this.parametersLoading(false);\n }\n };\n this.getInfo = ko.observable(null);\n this.processInvisibleParameters = false;\n this.parametersLoading = ko.observable(false);\n this.prevParametersStateRequest = $.Deferred();\n this._reportPreview = reportPreview;\n this.validateAndSubmit = (params) => {\n var result = params && params.validationGroup && params.validationGroup.validate && params.validationGroup.validate();\n if (!result || result.isValid)\n this.submit();\n };\n this.submit = () => {\n if (this.parametersLoading())\n return;\n this.parametersLoading(true);\n var promise = reportPreview.startBuild();\n promise && promise.done((val) => { this.parametersLoading(false); });\n };\n this._disposables.push(reportPreview.originalParametersInfo.subscribe((originalParametersInfo) => {\n this.initialize(originalParametersInfo);\n }));\n this.initialize(reportPreview.originalParametersInfo());\n var notEmpty = ko.pureComputed(() => !this.isEmpty());\n this.tabInfo = new TabInfoWithPropertyGrid({\n text: 'Parameters',\n template: 'dxrd-preview-parameters',\n model: this,\n keyboardHelper: enableKeyboardSupport ? new AccordionKeyboardHelper() : undefined,\n localizationId: 'PreviewStringId.RibbonPreview_Parameters_Caption',\n imageClassName: 'parameters',\n imageTemplateName: 'dxrd-svg-tabs-parameters',\n visible: notEmpty\n });\n var popupVisibleSwitch = ko.observable(false);\n var popupVisible = ko.pureComputed({\n read: () => {\n return notEmpty() && popupVisibleSwitch();\n },\n write: (newVal) => {\n return popupVisibleSwitch(newVal);\n }\n });\n this.popupInfo = { visible: popupVisible, notEmpty: notEmpty };\n this._disposables.push(this.popupInfo);\n this._disposables.push({\n dispose: () => {\n var _a;\n clearTimeout(this._updateParametersTimeOut);\n (_a = this.prevParametersStateRequest) === null || _a === void 0 ? void 0 : _a.reject();\n }\n });\n }\n get _visibleParameters() {\n return this._parameters.filter((p) => { return p.visible(); });\n }\n _shouldProcessParameter(param) {\n return this.processInvisibleParameters || (param && (param.visible() || param.hasVisibleExpression || param.isFilteredLookUpSettings));\n }\n _convertLocalDateToUTC(localDate) {\n return new Date(Date.UTC(localDate.getFullYear(), localDate.getMonth(), localDate.getDate(), localDate.getHours(), localDate.getMinutes(), localDate.getSeconds()));\n }\n subscribeParameter(parameter) {\n var needToUpdateParameter = this._needToUpdateParameter() || (this._shouldProcessParameter(parameter)) &&\n (parameter.isFilteredLookUpSettings || parameter.hasBindedExpressions);\n this._needToUpdateParameter(needToUpdateParameter);\n if (this._shouldProcessParameter(parameter)) {\n this._disposables.push((parameter.isMultiValueWithLookUp ? parameter._value : parameter.value).subscribe((newValue) => {\n if (this._needToUpdateParameter()) {\n this.updateParameters(parameter);\n }\n }));\n }\n }\n _setLookUpValues(parameter, lookUpValues) {\n if (!lookUpValues) {\n parameter.lookUpValues([]);\n return;\n }\n parameter.lookUpValues(this.parameterHelper.mapLookUpValues(parameter.type, lookUpValues));\n var _parameterValuesContainedInLookUps = this._getParameterValuesContainedInLookups(lookUpValues, parameter);\n if (parameter.isMultiValue) {\n parameter.initialize(_parameterValuesContainedInLookUps.length > 0 ? _parameterValuesContainedInLookUps : [], this.parameterHelper);\n }\n else {\n parameter.initialize(_parameterValuesContainedInLookUps[0] && _parameterValuesContainedInLookUps[0].Value || (lookUpValues.length > 0 ? lookUpValues[0].Value : null), this.parameterHelper);\n }\n }\n _getParameterValuesContainedInLookups(parameterLookUpValues, parameter) {\n if (parameterLookUpValues) {\n if (parameter.isMultiValue) {\n var selectedItems = parameter.value().value();\n return selectedItems.filter((item) => this._filterParameterValuesContainsInLookups(parameterLookUpValues, parameter.type, item).length > 0);\n }\n else {\n return this._filterParameterValuesContainsInLookups(parameterLookUpValues, parameter.type, parameter.value());\n }\n }\n return [];\n }\n _filterParameterValuesContainsInLookups(parameterLookUpValues, parameterType, value) {\n return parameterLookUpValues.filter((x) => PreviewParameter._compareValues(this.parameterHelper.getValueConverter(parameterType)(x.Value), value));\n }\n initialize(originalParametersInfo) {\n originalParametersInfo && this.parameterHelper.initialize(originalParametersInfo.knownEnums);\n super.initialize(originalParametersInfo);\n if (!originalParametersInfo)\n return;\n var layout = originalParametersInfo.parameterPanelLayout;\n if ((!layout || layout.layoutItems.length === 0) && originalParametersInfo.parameters) {\n this._parameters.forEach(x => this._add(x, {}));\n }\n this.isEmpty(this._visibleParameters.length === 0);\n var actualParametersInfo = [];\n this._parameters.forEach(x => {\n this.subscribeParameter(x);\n actualParametersInfo.push({ value: x.value, parameterDescriptor: x.getParameterDescriptor(), lookUpValues: x.lookUpValues });\n });\n if (this.parameterHelper.callbacks && this.parameterHelper.callbacks.parametersInitialized) {\n this.parameterHelper.callbacks.parametersInitialized(this, actualParametersInfo, this.submit, originalParametersInfo.shouldRequestParameters);\n }\n if (this._reportPreview.documentId)\n return;\n if (!originalParametersInfo.shouldRequestParameters || this.isEmpty()) {\n this.submit();\n }\n else {\n this._reportPreview.removeEmptyPages();\n this.tabInfo.active(true);\n if (this.tabInfo.visible() && ko.isWriteableObservable(this.tabInfo.collapsed))\n this.tabInfo.collapsed(false);\n this.popupInfo.visible(true);\n this._reportPreview.pageLoading(false);\n }\n }\n getPathsAfterPath(parameterPath) {\n var startIndex = 0;\n for (var index = 0; index < this._parameters.length; index++) {\n if (this._parameters[index].path === parameterPath) {\n startIndex = index + 1;\n break;\n }\n }\n var paths = this._parameters\n .filter((param, index) => {\n return this._shouldProcessParameter(param) &&\n (param.hasBindedExpressions || param.isFilteredLookUpSettings && index >= startIndex);\n })\n .map((x) => x.path);\n return paths || [];\n }\n serializeParameters() {\n var params = [], self = this;\n this._parameters.forEach((parameter) => {\n var convertItem = (item) => {\n return (parameter.type === 'System.DateTime' && !!item && (item instanceof Date)) ? self._convertLocalDateToUTC(item) : item;\n };\n var value = parameter.isMultiValueWithLookUp ? parameter._value() : parameter.value();\n if (parameter.allowNull) {\n if ((parameter.isMultiValue && Array.isArray(value) && value.length === 0) || value === '') {\n value = null;\n }\n }\n params.push({ Value: ParameterHelper.getSerializationValue(value, convertItem), Key: parameter.path, TypeName: parameter.type });\n });\n return params;\n }\n updateParameters(changedParameter) {\n var requiredParameterPaths = this.getPathsAfterPath(changedParameter.path);\n if (!requiredParameterPaths || requiredParameterPaths.length === 0) {\n return;\n }\n var changedParameterIndex = this._parameters.indexOf(changedParameter);\n var updateTopChangedParameter = (index, changedParameter, requiredParameterPaths) => {\n this._topChangedParameter = { index: index, changedParameter: changedParameter, requiredParameterPaths: requiredParameterPaths };\n };\n if (this._topChangedParameter && changedParameterIndex !== -1) {\n if (this._topChangedParameter.index > changedParameterIndex)\n updateTopChangedParameter(changedParameterIndex, changedParameter, requiredParameterPaths);\n return;\n }\n updateTopChangedParameter(changedParameterIndex, changedParameter, requiredParameterPaths);\n this.prevParametersStateRequest.reject();\n var deferred = $.Deferred();\n this._updateParametersTimeOut = setTimeout(() => {\n this.parametersLoading(true);\n var argsObject = {\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n requiredParameterPaths: this._topChangedParameter.requiredParameterPaths,\n parameters: this.serializeParameters(),\n changedParameterPath: this._topChangedParameter.changedParameter.path,\n timeZoneOffset: 0 - new Date().getTimezoneOffset()\n };\n this._getParametersStateRequest(argsObject)\n .done((result) => deferred.resolve(result))\n .fail(() => deferred.resolve());\n deferred.done(this._getDoneGetParametersStateHandler(this._topChangedParameter.changedParameter));\n deferred.fail(this._getFailGetParametersStateHandler());\n this.prevParametersStateRequest = deferred;\n this._topChangedParameter = null;\n }, 20);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_sizeUtils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport function updatePreviewContentSizeMobile(previewWrapperSize, $root) {\n return () => {\n var height = $root.outerHeight();\n var width = $root.outerWidth();\n previewWrapperSize({ width, height });\n };\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_editorTemplates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var editorTemplates = {\n rangeEditor: { header: 'dxrv-range-parameter-mobile' },\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePreviewParameterHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { PreviewParameterHelper } from '../../parameters/previewParameterHelper';\nimport { editorTemplates } from './_editorTemplates';\nexport class MobilePreviewParameterHelper extends PreviewParameterHelper {\n getRangeEditor() {\n return editorTemplates.rangeEditor;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\utils\\_mobileActionList.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SearchAvailable } from '../../settings';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class MobileActionList extends Disposable {\n constructor(actions) {\n super();\n this.actions = actions;\n this.visible = ko.observable(false);\n }\n dispose() {\n this.actions.forEach(action => {\n if (action.content && action.content.dispose) {\n action.content.dispose();\n delete action.content.dispose;\n }\n });\n super.dispose();\n }\n}\nexport function getPreviewActionsMobile(options) {\n var exportToModel = {\n visible: ko.observable(false),\n items: ko.pureComputed(() => {\n var allFormats = options.exportModel._getExportFormatItems();\n var availableFormats = options.exportTypes().filter(x => allFormats.indexOf(x) !== -1);\n if (availableFormats.length > 9) {\n availableFormats.splice(9, availableFormats.length - 9);\n }\n else if (availableFormats.length < 9) {\n var notUsedFormats = allFormats.filter(x => availableFormats.indexOf(x) === -1);\n availableFormats.push.apply(availableFormats, notUsedFormats.slice(0, 9 - availableFormats.length));\n }\n return availableFormats.map((item) => {\n item.action = (model) => { options.exportModel._exportDocumentByFormat(model && model.format); };\n return item;\n });\n })\n };\n var actions = [\n {\n clickAction: () => {\n options.searchModel.searchPanelVisible(true);\n options.searchModel.editorVisible(true);\n options.searchModel.focusEditor({ currentTarget: $.fn.constructor('.dxrdp-taptosearch') });\n options.reportPreview.actionsVisible(false);\n },\n imageClassName: 'dxrd-image-search',\n imageTemplateName: 'dxrd-svg-preview-search',\n visible: SearchAvailable\n },\n {\n clickAction: () => { exportToModel.visible(!exportToModel.visible()); },\n imageClassName: 'dxrd-image-export-to',\n imageTemplateName: 'dxrd-svg-preview-export-export-to',\n visible: true,\n content: {\n name: 'dxrd-menu-export-content',\n data: exportToModel,\n dispose: () => {\n exportToModel.items().forEach(item => {\n delete item.action;\n });\n exportToModel.items.dispose();\n }\n }\n },\n {\n clickAction: () => {\n options.parametersModel.popupInfo.visible(!options.parametersModel.popupInfo.visible());\n options.reportPreview.actionsVisible(false);\n },\n imageClassName: 'dxrd-image-parameters',\n imageTemplateName: 'dxrd-svg-tabs-parameters',\n visible: options.parametersModel.popupInfo.notEmpty\n }\n ];\n options.callbacks && options.callbacks.customizeActions && options.callbacks.customizeActions(actions);\n return new MobileActionList(actions);\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class PreviewDisposableModel extends Disposable {\n constructor(options) {\n super();\n this.rootStyle = options.rootStyle;\n this.reportPreview = options.reportPreview;\n this.parametersModel = options.parametersModel;\n this.exportModel = options.exportModel;\n this.searchModel = options.searchModel;\n this.rtl = options.rtl;\n this._disposables.push(options.reportPreview);\n this._disposables.push(options.parametersModel);\n this._disposables.push(options.exportModel);\n this._disposables.push(options.searchModel);\n }\n _addDisposable(object) {\n this._disposables.push(object);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n GetParametersModel() {\n return this.parametersModel;\n }\n OpenReport(reportName) {\n this.reportPreview.openReport(reportName);\n }\n Print(pageIndex) {\n this.reportPreview.printDocument(pageIndex);\n }\n ExportTo(format, inlineResult) {\n if (!this.reportPreview.exportDisabled()) {\n this.reportPreview.exportDocumentTo(format || 'pdf', inlineResult);\n }\n }\n GetCurrentPageIndex() {\n return this.reportPreview.pageIndex();\n }\n GoToPage(pageIndex) {\n this.reportPreview.goToPage(pageIndex);\n }\n Close() {\n this.reportPreview.deactivate();\n }\n ResetParameters() {\n this.parametersModel && this.parametersModel.restore();\n }\n StartBuild() {\n this.parametersModel && this.parametersModel.submit();\n }\n PerformCustomDocumentOperation(customData, hideMessageFromUser) {\n return this.reportPreview.customDocumentOperation(customData, hideMessageFromUser);\n }\n}\nexport class PreviewModel extends PreviewDisposableModel {\n constructor(options) {\n super(options);\n this.documentMapModel = options.documentMapModel;\n this.tabPanel = options.tabPanel;\n this.actionLists = options.actionLists;\n this.accessibilityCompliant = options.accessibilityCompliant;\n this._disposables.push(options.documentMapModel);\n this._disposables.push(options.tabPanel);\n this._disposables.push(options.actionLists);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePreviewModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as ko from 'knockout';\nimport { PreviewDisposableModel } from '../../internal/_previewModel';\nexport class MobilePreviewModel extends PreviewDisposableModel {\n constructor(options) {\n super(options);\n this.slideOptions = options.slideOptions;\n this.gallery = options.gallery;\n this.paginator = options.paginator;\n this.brickEventsDisabled = options.brickEventsDisabled;\n this.availableFormats = options.availableFormats;\n this._disposables.push(options.gallery);\n if (ko.isComputed(options.brickEventsDisabled))\n this._disposables.push(options.brickEventsDisabled);\n if (options.slideOptions && ko.isComputed(options.slideOptions.scrollAvailable))\n this._disposables.push(options.slideOptions.scrollAvailable);\n if (options.slideOptions && ko.isComputed(options.slideOptions.swipeEnabled))\n this._disposables.push(options.slideOptions.swipeEnabled);\n this._disposables.push(options.paginator);\n this._disposables.push(options.searchModel);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_parametersPopup.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { StringId, formatDate } from '@devexpress/analytics-core/analytics-internal';\nexport class ParametersPopupModelBase extends Disposable {\n constructor(formModel) {\n super();\n this.formModel = formModel;\n this._submit = (params) => {\n var result = params.validationGroup && params.validationGroup.validate && params.validationGroup.validate();\n if (!result || result.isValid) {\n this.formModel.submit && this.formModel.submit();\n this.visible(false);\n }\n };\n this._reset = () => {\n this.formModel.reset && this.formModel.reset();\n };\n this._cancel = () => {\n this.formModel.cancel && this.formModel.cancel();\n this.visible(false);\n };\n this.showIcons = ko.observable(false);\n this.className = '';\n this.visible = formModel.visible;\n this.cancelDisabled = ko.observable(false);\n this.actionButtons = [\n { className: 'dxrdp-parameters-reset', text: getLocalization('Reset', 'ASPxReportsStringId.ParametersPanel_Reset'), action: this._reset, disabled: false, visible: !!formModel.reset, id: 'dxrv-mobile-reset' },\n { className: 'dxrdp-parameters-cancel', text: getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'), action: this._cancel, disabled: this.cancelDisabled, visible: true, id: 'dxrv-mobile-cancel' },\n { className: 'dxrdp-parameters-submit', text: getLocalization('Submit', 'ASPxReportsStringId.ParametersPanel_Submit'), action: this._submit, disabled: false, visible: true, id: 'dxrv-mobile-submit' }\n ];\n this.actionIcons = [\n { className: 'dxrdp-parameters-reset dxrdp-image-parameters-reset', action: this._reset, disabled: false, visible: !!formModel.reset },\n { className: 'dxrdp-parameters-cancel dxrdp-image-parameters-cancel', action: this._cancel, disabled: this.cancelDisabled, visible: true },\n { className: 'dxrdp-parameters-submit dxrdp-image-parameters-submit', action: this._submit, disabled: false, visible: true }\n ];\n }\n cacheElementContent(element) {\n this._parametersButtonContaner = element;\n this.initVisibilityIcons();\n }\n dispose() {\n super.dispose();\n this._parametersButtonContaner = null;\n }\n initVisibilityIcons() {\n if (!this._parametersButtonContaner)\n return;\n var result = this.showIcons();\n var nodeTop = this._parametersButtonContaner.offset().top;\n this._parametersButtonContaner.find('.dxrdp-parameter-action').each((_, el) => {\n result = nodeTop !== el.getBoundingClientRect().top;\n });\n this.showIcons(result);\n }\n}\nexport class ParametersPopupModel extends ParametersPopupModelBase {\n constructor(model, _reportPreview) {\n super({ visible: model.popupInfo.visible, submit: model.submit, reset: model.restore });\n this.model = model;\n this._reportPreview = _reportPreview;\n this._disposables.push(ko.computed(() => {\n this.cancelDisabled(!this._reportPreview._currentDocumentId() || this._reportPreview.pages().length === 0);\n }));\n this.contentTemplate = 'dxrv-preview-parameters-mobile-content';\n this.title = getLocalization('Parameters', 'DevExpress.XtraReports.UI.XtraReport.Parameters');\n }\n}\nexport class DateRangeParemeterPopupModel extends ParametersPopupModelBase {\n constructor(model) {\n super({\n visible: model._popupVisible, cancel: () => {\n this.model.startDate(this._oldStart);\n this.model.endDate(this._oldEnd);\n this.model.applyValue();\n }\n });\n this.model = model;\n this.getStringDate = (value) => formatDate(value);\n this.model.calendarHeight = undefined;\n var defaultButtonSettings = {\n stylingMode: 'contained',\n focusStateEnabled: false,\n activeStateEnabled: false\n };\n this.startButton = Object.assign({ text: ko.computed(() => this.model.startDate() && this.getStringDate(this.model.startDate()) || getLocalization('Start Date', 'AnalyticsCoreStringId.Mobile_DateRange_StartDate')), focused: ko.observable(false), onClick: () => {\n this.startButton.focused(true),\n this.endButton.focused(false);\n } }, defaultButtonSettings);\n this.endButton = Object.assign({ text: ko.computed(() => this.model.endDate() && this.getStringDate(this.model.endDate()) || getLocalization('End Date', 'AnalyticsCoreStringId.Mobile_DateRange_EndDate')), focused: ko.observable(true), onClick: () => {\n this.endButton.focused(true),\n this.startButton.focused(false);\n } }, defaultButtonSettings);\n this._disposables.push(this.endButton.text);\n this._disposables.push(this.startButton.text);\n var submitAction = this.actionButtons.filter(action => action.id == 'dxrv-mobile-submit')[0];\n if (submitAction)\n submitAction.text = getLocalization('OK', StringId.DataAccessBtnOK);\n this._disposables.push(this.textRangeValue = ko.computed({\n read: () => { return this.model._displayText(); },\n write: (val) => { this.model.applyDate(val.range(), true); }\n }));\n this._oldStart = this.model.startDate();\n this._oldEnd = this.model.endDate();\n this.title = getLocalization('Date Range Parameter', 'AnalyticsCoreStringId.Mobile_DateRange_Title');\n this.contentTemplate = 'dxrv-preview-date-range-mobile';\n this.className = 'dxrv-preview-date-range-mobile-popup';\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\constants.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nexport var MobilePreviewElements = {\n Surface: 'dxrdp-surface-mobile',\n Search: 'dxrdp-search-mobile',\n Pages: 'dxrdp-pages-mobile',\n MobileActions: 'dxrdp-surface-mobile-bottom',\n Parameters: 'dxrd-menu-parameters-content'\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_sizeUtils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ZoomAutoBy } from '../constants';\nimport { getSizeFactor, accessibilityFontSizeZoomFactor } from '@devexpress/analytics-core/analytics-internal';\nimport { TabPanel } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nexport function stringToPosition(position) {\n var lowerCased = (position || '').toLowerCase();\n if (!lowerCased || lowerCased === 'default') {\n return null;\n }\n var top = lowerCased.indexOf('top') !== -1;\n var right = lowerCased.indexOf('right') !== -1;\n return { top: top, bottom: !top, right: right, left: !right };\n}\nexport function getDockedElementCallback($targetElement, $viewer, $window, selector, position = null) {\n if (!selector)\n return $.noop;\n return (viewer) => {\n if ($viewer.length === 0)\n $viewer = $.fn.constructor(viewer);\n if ($targetElement.length === 0)\n $targetElement = $viewer.find(selector);\n if ($window.length === 0)\n $window = $.fn.constructor(window);\n if (!position || position.bottom) {\n var elementTop = parseInt($targetElement.css('bottom')) + $targetElement.height();\n var viewerTop = $viewer.offset().top;\n var viewerHeight = $viewer.height();\n var windowContentHeight = $window.height() + $window.scrollTop();\n var result = viewerTop + viewerHeight - windowContentHeight;\n if (result < viewerHeight - elementTop) {\n result = Math.max(0, result);\n var transform = 'translateY(-' + result * accessibilityFontSizeZoomFactor() + 'px)';\n $targetElement.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n }\n }\n else {\n var previewWrapper = $viewer.find('.dxrd-preview-wrapper')[0];\n var clientRect = previewWrapper && previewWrapper.getBoundingClientRect();\n if (!clientRect || clientRect.top < 0 && (clientRect.height + clientRect.top < $targetElement.outerHeight()))\n return;\n var translateY = clientRect.top < 0 ? -clientRect.top : 0;\n var transform = 'translateY(' + translateY * accessibilityFontSizeZoomFactor() + 'px)';\n $targetElement.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n }\n };\n}\nfunction _getRightAreaWidth($container) {\n var rightAreaWidth = ($container.find('.dxrd-right-panel:visible').outerWidth() || 0) + ($container.find('.dxrd-right-tabs:visible').outerWidth() || 0);\n return isNaN(rightAreaWidth) ? 0 : rightAreaWidth;\n}\nexport function updatePreviewContentSize(previewSize, root, rtl) {\n var _cashedSizeFactorClass = 'lg';\n return (tabPanelPosition) => {\n var $_root = $.fn.constructor(root);\n var $root = $_root.find('.dxrd-preview');\n var $viewPort = $.fn.constructor(root).children('.dx-designer-viewport');\n var sizeFactor = getSizeFactor($_root.outerWidth());\n if (!!$viewPort.length && _cashedSizeFactorClass !== sizeFactor) {\n $viewPort.removeClass('dx-designer-viewport-' + _cashedSizeFactorClass);\n $viewPort.addClass('dx-designer-viewport-' + sizeFactor);\n }\n _cashedSizeFactorClass = sizeFactor;\n var rightAreaWidth = _getRightAreaWidth($root);\n var surfaceWidth = ($root.width() - rightAreaWidth - 10) * accessibilityFontSizeZoomFactor();\n var cssStyleData = (tabPanelPosition === TabPanel.Position.Left) ? { 'right': '', 'left': rightAreaWidth } : { 'right': rightAreaWidth, 'left': '' };\n $root.find('.dxrd-preview-wrapper').css(cssStyleData);\n previewSize(surfaceWidth);\n };\n}\nexport function updatePreviewZoomWithAutoFit(width, height, $element, autoFitBy = ZoomAutoBy.WholePage) {\n var $previewWrapper = $element.closest('.dxrd-preview-wrapper');\n var $preview = $element.closest('.dxrd-preview');\n if ($previewWrapper.length === 0 || $preview.length === 0) {\n return 1;\n }\n var surfaceWidth = $preview.width() - _getRightAreaWidth($preview) - 10;\n var topAreaHeight = parseFloat($previewWrapper.css('top').split('px')[0]);\n var designerHeight = $preview.outerHeight();\n var surfaceHeight = designerHeight - topAreaHeight;\n if (autoFitBy === ZoomAutoBy.PageWidth) {\n return (surfaceWidth - 12) / width;\n }\n var heightZoom = surfaceHeight / (height + 6);\n var widthZoom = surfaceWidth / width;\n return Math.min(heightZoom, widthZoom);\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_progressBarUtils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { stringToPosition, getDockedElementCallback } from './_sizeUtils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport function getUpdateProgressBarCallback(progressBarSettings, designerModel, reportPreview, rootElement, $window = $.fn.constructor(window)) {\n var keepProgressBarVisible = !progressBarSettings || progressBarSettings.keepOnVisibleArea !== false;\n var position = stringToPosition(progressBarSettings && progressBarSettings.position);\n reportPreview.progressBar.setPosition(position);\n if (!keepProgressBarVisible)\n return $.noop;\n var $root = $.fn.constructor(rootElement);\n var $progress = $root.find('.dxrd-preview-progress');\n var updateProgressBarPosition = getDockedElementCallback($progress, $root, $window, '.dxrd-preview-progress', position);\n designerModel._addDisposable(reportPreview.progressBar.visible.subscribe((isVisible) => {\n isVisible && updateProgressBarPosition(rootElement);\n }));\n var wrappedUpdateProgressPosition = () => {\n if (reportPreview.progressBar && ko.unwrap(reportPreview.progressBar.visible))\n updateProgressBarPosition(rootElement);\n };\n window.addEventListener('scroll', wrappedUpdateProgressPosition);\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('scroll', wrappedUpdateProgressPosition);\n }\n });\n return wrappedUpdateProgressPosition;\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\utils\\_mobileInitializer.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { MobileReportPreview } from '../mobilePreview';\nimport { MobileSearchViewModel } from '../internal/_mobileSearch';\nimport { GalleryModel } from '../internal/gallery/_galleryModel';\nimport { MobilePaginator } from '../internal/_paginator';\nimport { PreviewParametersViewModel } from '../../parameters/previewParametersViewModel';\nimport { PreviewRequestWrapper } from '../../internal/_previewRequestWrapper';\nimport { updatePreviewContentSizeMobile } from '../internal/_sizeUtils';\nimport { MobilePreviewParameterHelper } from '../internal/_mobilePreviewParameterHelper';\nimport { ExportOptionsModel } from '../../exportOptions/exportOptionsModel';\nimport { ExportFormatID, PreviewElements } from '../../constants';\nimport { getPreviewActionsMobile } from './_mobileActionList';\nimport { MobilePreviewModel } from '../internal/_mobilePreviewModel';\nimport { ParametersPopupModel } from '../internal/_parametersPopup';\nimport { MobilePreviewElements } from '../constants';\nimport { getUpdateProgressBarCallback } from '../../internal/_progressBarUtils';\nimport { getDockedElementCallback } from '../../internal/_sizeUtils';\nimport { appendStaticContextToRootViewModel, staticContext } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport function createMobilePreview(bindingSettings) {\n var callbacks = bindingSettings.callbacks;\n var bindingModel = bindingSettings.model;\n var bindingElement = bindingSettings.element;\n var previewWrapper = new PreviewRequestWrapper(null, callbacks), reportPreview = new MobileReportPreview(bindingModel.handlerUri, previewWrapper, undefined, callbacks, undefined, bindingModel.mobileModeSettings);\n var $root = $.fn.constructor(bindingElement);\n var updatePreviewContentSize_ = updatePreviewContentSizeMobile(reportPreview.previewWrapperSize, $root);\n updatePreviewContentSize_();\n var gallery = new GalleryModel(reportPreview, reportPreview.previewWrapperSize);\n var searchModel = new MobileSearchViewModel(reportPreview, gallery);\n var parametersModel = new PreviewParametersViewModel(reportPreview, new MobilePreviewParameterHelper(bindingModel.parametersInfo && bindingModel.parametersInfo.knownEnums, callbacks));\n var exportModel = new ExportOptionsModel(reportPreview);\n reportPreview.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent;\n previewWrapper.initialize(reportPreview, parametersModel, searchModel);\n var exportTypes = ko.observableArray([\n ExportFormatID.PDF, ExportFormatID.XLS, ExportFormatID.XLSX,\n ExportFormatID.RTF, ExportFormatID.DOCX, ExportFormatID.HTML,\n ExportFormatID.Text, ExportFormatID.CSV, ExportFormatID.Image\n ]);\n var mobileActions = getPreviewActionsMobile({ reportPreview, exportModel, parametersModel, searchModel, exportTypes, callbacks: callbacks });\n reportPreview.pageIndex.subscribe(function (newVal) { mobileActions.visible(false); });\n reportPreview.actionsVisible = mobileActions.visible;\n var designerModelOptions = {\n rootStyle: 'dxrd-preview dxrdp-mobile dxd-back-primary',\n reportPreview: reportPreview,\n parametersModel: parametersModel,\n exportModel: exportModel,\n searchModel: searchModel,\n rtl: reportPreview.rtlViewer,\n brickEventsDisabled: ko.observable(false),\n gallery: gallery,\n paginator: new MobilePaginator(reportPreview, gallery),\n availableFormats: exportTypes\n };\n var designerModel = new MobilePreviewModel(designerModelOptions);\n designerModel.slideOptions = {\n dispose: () => {\n var model = designerModel.slideOptions;\n if (ko.isComputed(model.swipeEnabled))\n model.swipeEnabled.dispose();\n if (ko.isComputed(model.scrollAvailable))\n model.scrollAvailable.dispose();\n },\n readerMode: reportPreview.readerMode,\n animationSettings: reportPreview.animationSettings,\n searchPanel: searchModel,\n topOffset: reportPreview.topOffset,\n previewWrapperSize: reportPreview.previewWrapperSize,\n reachedTop: reportPreview.scrollReachedTop,\n reachedLeft: reportPreview.scrollReachedLeft,\n reachedRight: reportPreview.scrollReachedRight,\n scrollAvailable: ko.computed(() => {\n return !(reportPreview.scrollReachedTop() && reportPreview.scrollReachedLeft()\n && reportPreview.scrollReachedRight() && reportPreview.scrollReachedBottom());\n }),\n disabled: reportPreview.interactionDisabled,\n swipeEnabled: ko.computed(() => {\n if (reportPreview.zoomUpdating()) {\n return false;\n }\n if (searchModel.height() > 0 && !searchModel.editorVisible()) {\n return false;\n }\n if (!reportPreview.scrollReachedLeft() && !reportPreview.scrollReachedRight()) {\n return false;\n }\n return true;\n }),\n autoFitBy: reportPreview.autoFitBy,\n galleryIsAnimated: gallery.isAnimated,\n repaintTimeout: gallery.repaintTimeout,\n zoomUpdating: reportPreview.zoomUpdating,\n brickEventsDisabled: designerModel.brickEventsDisabled\n };\n var parametersPopup = new ParametersPopupModel(parametersModel, reportPreview);\n designerModel.parts = [\n { id: MobilePreviewElements.Surface, templateName: MobilePreviewElements.Surface, model: designerModel.reportPreview },\n { id: MobilePreviewElements.Search, templateName: MobilePreviewElements.Search, model: designerModel.searchModel },\n { id: MobilePreviewElements.Pages, templateName: MobilePreviewElements.Pages, model: designerModel.paginator },\n { id: MobilePreviewElements.MobileActions, templateName: MobilePreviewElements.MobileActions, model: mobileActions },\n { id: MobilePreviewElements.Parameters, templateName: MobilePreviewElements.Parameters, model: parametersPopup },\n { id: PreviewElements.ExportTool, templateName: PreviewElements.ExportTool, model: designerModel.reportPreview.exportHandler }\n ];\n callbacks && callbacks.customizeParts && callbacks.customizeParts(designerModel.parts);\n var $actions = $root.find('.dxrdp-mobile-actions');\n var $window = $.fn.constructor(window);\n var updateProgressPosition = getUpdateProgressBarCallback(bindingModel.progressBarSettings, designerModel, reportPreview, bindingElement, $window);\n var updateMobilePreviewActionsPosition_ = getDockedElementCallback($actions, $root, $window, '.dxrdp-mobile-actions');\n var updateSizesCallback = () => {\n updatePreviewContentSize_ && updatePreviewContentSize_();\n updateProgressPosition && updateProgressPosition();\n };\n designerModel.updateSurfaceSize = updateSizesCallback;\n designerModel.resizeCallback = () => {\n if (parametersModel.popupInfo.visible()) {\n parametersPopup.initVisibilityIcons();\n }\n updateSizesCallback();\n if (reportPreview.actionsVisible())\n updateMobilePreviewActionsPosition_(bindingElement);\n };\n window.addEventListener('resize', designerModel.resizeCallback);\n var onScroll = () => {\n if (reportPreview.actionsVisible())\n updateMobilePreviewActionsPosition_(bindingElement);\n };\n window.addEventListener('scroll', onScroll);\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('resize', designerModel.resizeCallback);\n window.removeEventListener('scroll', onScroll);\n designerModel.slideOptions.dispose();\n mobileActions.dispose();\n }\n });\n designerModel._addDisposable(reportPreview.actionsVisible.subscribe((newValue) => {\n if (newValue)\n updateMobilePreviewActionsPosition_(bindingElement);\n }));\n appendStaticContextToRootViewModel(designerModel, staticContext);\n if (bindingElement && !reportPreview.canSwitchToDesigner && bindingSettings.applyBindings) {\n callbacks.beforeRender && callbacks.beforeRender(designerModel);\n $.fn.constructor(bindingElement).children().remove();\n ko.applyBindings(designerModel, bindingElement);\n }\n return designerModel;\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\search\\_utils.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nexport var formatSearchResult = function (value) { return value && (getLocalization('page', 'ASPxReportsStringId.WebDocumentViewer_SearchPageNumberText') + ' ' + (value.pageIndex + 1)); };\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_actions.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ActionId, ZoomAutoBy } from '../constants';\nimport { EditablePreviewEnabled } from '../settings';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ActionListsBase, parseZoom } from '@devexpress/analytics-core/analytics-internal';\nexport class PreviewDesignerActions extends Disposable {\n constructor(reportPreview, fullscreen) {\n super();\n this.actions = [];\n var designAction = {\n id: ActionId.Design,\n text: 'Design',\n displayText: () => getLocalization('Design', 'ASPxReportsStringId.ToolBarItemText_Design'),\n imageClassName: 'dxrd-image-design',\n imageTemplateName: 'dxrd-svg-preview-report_designer',\n templateName: reportPreview.canSwitchToDesigner ? 'dxrd-toolbar-two-way-switch' : undefined,\n disabled: ko.observable(false),\n visible: reportPreview.canSwitchToDesigner,\n hotKey: { ctrlKey: true, keyCode: 68 },\n clickAction: () => {\n reportPreview.previewVisible(false);\n reportPreview.deactivate();\n }\n };\n designAction.contentData = {\n items: [\n { itemData: designAction, active: false },\n { getDisplayText: () => getLocalization('Preview', 'ASPxReportsStringId.ToolBarItemText_Preview'), active: true }\n ]\n };\n this.actions.push(designAction);\n this.actions.push({\n id: ActionId.FullScreen,\n text: getLocalization('Full Screen', 'ASPxReportsStringId.ToolBarItemText_FullScreen'),\n imageClassName: 'dxrd-image-fullscreen',\n imageTemplateName: () => fullscreen() ? 'dxrd-svg-toolbar-fullscreen-exit' : 'dxrd-svg-toolbar-fullscreen',\n disabled: ko.observable(false),\n visible: !reportPreview.canSwitchToDesigner,\n selected: fullscreen,\n clickAction: () => {\n fullscreen(!fullscreen());\n }\n });\n this._disposables.push(fullscreen);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n getActions(context) {\n return this.actions;\n }\n}\nexport class ActionLists extends ActionListsBase {\n constructor(reportPreview, globalActionProviders, customizeActions, enabled) {\n super(enabled);\n this._reportPreview = reportPreview;\n this.globalActionProviders = globalActionProviders;\n this.toolbarItems = ko.computed(() => {\n var globalActions = [];\n globalActionProviders().forEach((actionProvider) => {\n globalActions.push.apply(globalActions, actionProvider.getActions(reportPreview));\n });\n customizeActions && customizeActions(globalActions);\n return globalActions;\n });\n this._disposables.push(this.toolbarItems);\n }\n processShortcut(actions, e) {\n if (this.shouldIgnoreProcessing(e))\n return;\n super.processShortcut(actions, e);\n }\n dispose() {\n super.dispose();\n this.resetObservableArray(this.globalActionProviders);\n this.removeProperties();\n }\n}\nexport class PreviewActions extends Disposable {\n constructor(reportPreview) {\n super();\n this.actions = [];\n var printDisabled = reportPreview.exportDisabled;\n this.actions.push({\n id: ActionId.FirstPage,\n text: getLocalization('First Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_FirstPage'),\n imageClassName: 'dxrd-image-preview-first',\n imageTemplateName: 'dxrd-svg-preview-first_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 37 },\n clickAction: () => {\n if (reportPreview.pageIndex() > 0) {\n reportPreview.goToPage(0);\n }\n }\n });\n this.actions.push({\n id: ActionId.PrevPage,\n text: getLocalization('Previous Page', 'ASPxReportsStringId.ToolBarItemText_PreviousPage'),\n imageClassName: 'dxrd-image-preview-prev',\n imageTemplateName: 'dxrd-svg-preview-previous_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: false, keyCode: 37 },\n clickAction: () => {\n if (reportPreview.pageIndex() >= 1) {\n reportPreview.goToPage(reportPreview.pageIndex() - 1, false, 500);\n }\n },\n });\n var paginationSelectBoxViewModel = {\n id: ActionId.Pagination,\n text: 'Pagination',\n imageClassName: 'dxrd-image-pager',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pages().length === 0 || reportPreview.pageIndex() === -1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n clickAction: $.noop,\n selectedItem: this.wrapDisposable(ko.pureComputed({\n read: () => {\n if (reportPreview.pageIndex() < 0) {\n return null;\n }\n var items = paginationSelectBoxViewModel.pageItems();\n return items && items.store && (items.store.length > reportPreview.pageIndex()) && items.store[reportPreview.pageIndex()];\n },\n write: (newValue) => {\n if (!!newValue && (newValue.index || newValue.index === 0)) {\n reportPreview.goToPage(newValue.index);\n }\n },\n deferEvaluation: true\n })),\n pageItems: this.wrapDisposable(ko.pureComputed(() => {\n var pageCount = reportPreview.pages().length;\n if (pageCount === 0 || reportPreview.pageIndex.peek() === -1) {\n return [];\n }\n var pagesArray = new Array();\n for (var i = 0; i < pageCount;) {\n pagesArray.push({ index: i, text: ++i });\n }\n return {\n store: pagesArray,\n paginate: pageCount > 200,\n pageSize: 100\n };\n })),\n currentPage: reportPreview._currentPageText,\n focusOut: (e) => {\n if (!paginationSelectBoxViewModel._isPageChanged(e.component.option('text'))) {\n reportPreview._currentPageText.notifySubscribers(reportPreview._currentPageText());\n }\n },\n keyUp: (e) => {\n if (e.event.which !== 13)\n return;\n if (paginationSelectBoxViewModel._isPageChanged(e.component.option('text'))) {\n paginationSelectBoxViewModel.opened(false);\n }\n },\n _isPageChanged: (value) => {\n var val = parseInt && parseInt(value);\n if (!!val && val-- > 0 && val < reportPreview.pages().length) {\n reportPreview.goToPage(val);\n return true;\n }\n return false;\n },\n displayExpr: function (value) {\n var pageIndex = reportPreview.pageIndex.peek();\n if (pageIndex === -1 || !value || pageIndex === value.index) {\n return reportPreview._currentPageText.peek();\n }\n else {\n return value.text;\n }\n },\n itemTemplate: function (value) { return value.text; },\n searchMode: 'startswith',\n searchEnabled: ko.observable(true),\n searchTimeout: 10,\n opened: ko.observable(false),\n templateName: 'dxrd-preview-pager'\n };\n this.actions.push(paginationSelectBoxViewModel);\n this.actions.push({\n id: ActionId.NextPage,\n text: getLocalization('Next Page', 'ASPxReportsStringId.ToolBarItemText_NextPage'),\n imageClassName: 'dxrd-image-preview-next',\n imageTemplateName: 'dxrd-svg-preview-next_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 0 || reportPreview.pageIndex() >= reportPreview.pages().length - 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: false, keyCode: 39 },\n clickAction: () => {\n if (reportPreview.pageIndex() < reportPreview.pages().length - 1) {\n reportPreview.goToPage(reportPreview.pageIndex() + 1, false, 500);\n }\n }\n });\n this.actions.push({\n id: ActionId.LastPage,\n text: getLocalization('Last Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_LastPage'),\n imageClassName: 'dxrd-image-preview-last',\n imageTemplateName: 'dxrd-svg-preview-last_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 0 || reportPreview.pageIndex() >= reportPreview.pages().length - 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 39 },\n clickAction: () => {\n if (reportPreview.pageIndex() < reportPreview.pages().length - 1) {\n reportPreview.goToPage(reportPreview.pages().length - 1);\n }\n }\n });\n this.actions.push({\n id: ActionId.MultipageToggle,\n text: getLocalization('Toggle Multipage Mode', 'ASPxReportsStringId.WebDocumentViewer_ToggleMultipageMode'),\n imageClassName: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.showMultipagePreview() ? 'dxrd-image-preview-single-page' : 'dxrd-image-preview-multipage'; })),\n imageTemplateName: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.showMultipagePreview() ? 'dxrd-svg-preview-single_page' : 'dxrd-svg-preview-multi_page_preview'; })),\n disabled: ko.observable(false),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 77 },\n clickAction: () => {\n var zoom = reportPreview._zoom();\n reportPreview.showMultipagePreview(!reportPreview.showMultipagePreview());\n reportPreview.zoom(zoom);\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.ZoomOut,\n text: getLocalization('Zoom Out', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomOut'),\n imageClassName: 'dxrd-image-zoomout',\n imageTemplateName: 'dxrd-svg-toolbar-zoomout',\n disabled: ko.observable(false),\n visible: true,\n zoomStep: reportPreview.zoomStep,\n hotKey: { ctrlKey: false, keyCode: 109 },\n clickAction: () => {\n var currentZoom = reportPreview.zoom();\n var zoomLevel = currentZoom > 0 ? currentZoom : reportPreview._zoom();\n reportPreview.zoom(Math.max(zoomLevel - reportPreview.zoomStep(), 0.1));\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.ZoomSelector,\n text: getLocalization('Zoom to Whole Page', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomToWholePage'),\n imageClassName: 'dxrd-image-zoom',\n disabled: ko.observable(false),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 187 },\n clickAction: () => {\n reportPreview.zoom(0);\n },\n templateName: 'dxrd-zoom-autofit-select-template',\n displayExpr: (val) => {\n if (val === ZoomAutoBy.PageWidth) {\n return getLocalization('Page Width', 'DevExpress.XtraReports.UI.XtraReport.PageWidth');\n }\n else if (Math.round(val * 100) === 0) {\n return getLocalization('Whole Page', 'PreviewStringId.MenuItem_ZoomWholePage');\n }\n else {\n return Math.round((val || reportPreview.zoom.peek()) * 100) + '%';\n }\n },\n onCustomItemCreating: (e) => { e.customItem = parseZoom(e.text); },\n zoom: reportPreview.zoom,\n zoomLevels: reportPreview.predefinedZoomLevels,\n zoomItems: this.wrapDisposable(ko.pureComputed(() => {\n var items = reportPreview.predefinedZoomLevels.slice(0);\n if (reportPreview.showMultipagePreview() === false && items.indexOf(0) === -1) {\n items.push(ZoomAutoBy.PageWidth);\n items.push(ZoomAutoBy.WholePage);\n }\n return items;\n }))\n });\n this.actions.push({\n id: ActionId.ZoomIn,\n text: getLocalization('Zoom In', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomIn'),\n imageClassName: 'dxrd-image-zoomin',\n imageTemplateName: 'dxrd-svg-toolbar-zoomin',\n disabled: ko.observable(false),\n visible: true,\n zoomStep: reportPreview.zoomStep,\n hotKey: { ctrlKey: false, keyCode: 107 },\n clickAction: () => {\n var currentZoom = reportPreview.zoom();\n var zoomLevel = currentZoom > 0 ? currentZoom : reportPreview._zoom();\n reportPreview.zoom(Math.min(zoomLevel + reportPreview.zoomStep(), 10));\n }\n });\n this.actions.push({\n id: ActionId.HighlightEditingFields,\n text: getLocalization('Highlight Editing Fields', 'DevExpress.XtraPrinting.PrintingSystemCommand.HighlightEditingFields'),\n imageClassName: 'dxrp-image-hightlight-editing-fields',\n imageTemplateName: 'dxrd-svg-toolbar-hightlightEditingFields',\n disabled: this.wrapDisposable(ko.pureComputed(() => reportPreview.editingFieldsProvider().length < 1)),\n visible: this.wrapDisposable(ko.pureComputed(() => {\n var available = EditablePreviewEnabled();\n var viewerVisible = reportPreview.previewVisible();\n return available && viewerVisible;\n })),\n selected: this.wrapDisposable(ko.pureComputed(() => reportPreview.editingFieldsHighlighted())),\n hotKey: { ctrlKey: true, keyCode: 72 },\n clickAction: () => {\n reportPreview.editingFieldsHighlighted(!reportPreview.editingFieldsHighlighted());\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.Print,\n text: getLocalization('Print', 'ASPxReportsStringId.DocumentViewer_RibbonPrintGroupText'),\n imageClassName: 'dxrd-image-print',\n imageTemplateName: 'dxrd-svg-preview-print',\n hasSeparator: true,\n disabled: printDisabled,\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 80 },\n clickAction: () => {\n if (printDisabled()) {\n return;\n }\n reportPreview.printDocument();\n }\n });\n this.actions.push({\n id: ActionId.PrintPage,\n text: getLocalization('Print Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_PrintPage'),\n imageClassName: 'dxrd-image-print-page',\n imageTemplateName: 'dxrd-svg-preview-print_page',\n disabled: printDisabled,\n visible: true,\n clickAction: () => {\n if (printDisabled()) {\n return;\n }\n reportPreview.printDocument(reportPreview.pageIndex());\n }\n });\n }\n wrapDisposable(object) {\n this._disposables.push(object);\n return object;\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n getActions(context) {\n return this.actions;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_initializer.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { appendStaticContextToRootViewModel, initGlobalize, processErrorEvent, RequestHelper, resolveFromPromises, staticContext, ToolbarKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { addCultureInfo, ajaxSetup, TabPanel } from '@devexpress/analytics-core/analytics-utils';\nimport config from 'devextreme/core/config';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { createFullscreenComputed, cultureInfo, processZoomFactor } from '../../common/utils/_utils';\nimport { PreviewElements } from '../constants';\nimport { DocumentMapModel } from '../documentMap/_documentMapModel';\nimport { ExportOptionsModel } from '../exportOptions/exportOptionsModel';\nimport { createMobilePreview } from '../mobile/utils/_mobileInitializer';\nimport { PreviewParameterHelper } from '../parameters/previewParameterHelper';\nimport { PreviewParametersViewModel } from '../parameters/previewParametersViewModel';\nimport { ReportPreview } from '../reportPreview';\nimport { SearchViewModel } from '../search/_searchViewModel';\nimport { formatSearchResult } from '../search/_utils';\nimport { AsyncExportApproach, EditablePreviewEnabled, ReportServerDownloadUri, ReportServerExportUri, ReportServerInvokeUri, SearchAvailable } from '../settings';\nimport { ActionLists, PreviewActions, PreviewDesignerActions } from './_actions';\nimport { PreviewModel } from './_previewModel';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { getUpdateProgressBarCallback } from './_progressBarUtils';\nimport { updatePreviewContentSize } from './_sizeUtils';\nexport function createDesktopPreview(bindingSettings) {\n processZoomFactor(bindingSettings.model.accessibilityCompliant);\n var enableKeyboardSupport = !!bindingSettings.model.accessibilityCompliant;\n var callbacks = bindingSettings.callbacks;\n var bindingModel = bindingSettings.model;\n var bindingElement = bindingSettings.element;\n var previewWrapper = new PreviewRequestWrapper(null, callbacks), reportPreview = new ReportPreview(bindingModel.handlerUri, previewWrapper, undefined, callbacks, bindingModel.rtl, enableKeyboardSupport, bindingModel.exportSettings, bindingSettings.element), searchModel = new SearchViewModel(reportPreview, enableKeyboardSupport);\n var documentMapModel = new DocumentMapModel(reportPreview);\n var parametersModel = new PreviewParametersViewModel(reportPreview, new PreviewParameterHelper(bindingModel.parametersInfo && bindingModel.parametersInfo.knownEnums, bindingSettings.callbacks), enableKeyboardSupport);\n var exportModel = new ExportOptionsModel(reportPreview, enableKeyboardSupport);\n reportPreview.canSwitchToDesigner = !bindingModel.previewVisible;\n reportPreview.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent;\n previewWrapper.initialize(reportPreview, parametersModel, searchModel);\n var tabPanel = new TabPanel({\n tabs: [\n parametersModel.tabInfo,\n exportModel.tabInfo,\n searchModel.tabInfo,\n documentMapModel.tabInfo\n ],\n width: 400,\n autoSelectTab: true,\n rtl: bindingModel.rtl\n });\n tabPanel.collapsed(true);\n var fullscreenEnabled = createFullscreenComputed(bindingElement, reportPreview);\n var previewActions = new PreviewActions(reportPreview);\n var designPreviewActions = new PreviewDesignerActions(reportPreview, fullscreenEnabled);\n var globalActionProviders = ko.observableArray([previewActions, exportModel, searchModel, designPreviewActions]);\n var actionLists = new ActionLists(reportPreview, globalActionProviders, callbacks && callbacks.customizeActions, reportPreview.previewVisible);\n reportPreview.previewVisible(bindingModel.previewVisible);\n var designerModelOptions = {\n rootStyle: 'dxrd-preview dxd-back-primary-invariant' + (reportPreview.canSwitchToDesigner ? ' dxrd-designer-preview' : ''),\n reportPreview: reportPreview,\n parametersModel: parametersModel,\n exportModel: exportModel,\n searchModel: searchModel,\n documentMapModel: documentMapModel,\n tabPanel: tabPanel,\n actionLists: actionLists,\n rtl: reportPreview.rtlViewer,\n accessibilityCompliant: bindingModel.accessibilityCompliant\n };\n var designerModel = new PreviewModel(designerModelOptions);\n designerModel._addDisposable(previewActions);\n designerModel._addDisposable(designPreviewActions);\n designerModel.parts = [\n { id: PreviewElements.Toolbar, templateName: PreviewElements.Toolbar, model: { actionLists: actionLists, keyboardHelper: new ToolbarKeyboardHelper(actionLists.toolbarItems), canSwitchToDesigner: reportPreview.canSwitchToDesigner } },\n { id: PreviewElements.Surface, templateName: PreviewElements.Surface, model: designerModel.reportPreview },\n { id: PreviewElements.RightPanel, templateName: PreviewElements.RightPanel, model: designerModel },\n { id: PreviewElements.ExportTool, templateName: PreviewElements.ExportTool, model: designerModel.reportPreview.exportHandler }\n ];\n callbacks && callbacks.customizeParts && callbacks.customizeParts(designerModel.parts);\n var $window = $.fn.constructor(window);\n var timers = [];\n var updateProgressPosition = getUpdateProgressBarCallback(bindingModel.progressBarSettings, designerModel, reportPreview, bindingElement, $window);\n var updatePreviewContentSize_ = updatePreviewContentSize(reportPreview.previewSize, bindingElement, bindingModel.rtl);\n if (bindingModel.tabPanelSettings) {\n bindingModel.tabPanelSettings.width && tabPanel.width(parseInt(bindingModel.tabPanelSettings.width));\n bindingModel.tabPanelSettings.position && tabPanel.position(bindingModel.tabPanelSettings.position);\n }\n var updateSizesCallback = () => {\n updatePreviewContentSize_ && updatePreviewContentSize_(tabPanel.position());\n updateProgressPosition && updateProgressPosition();\n };\n designerModel.updateSurfaceSize = updateSizesCallback;\n designerModel.resizeCallback = updateSizesCallback;\n window.addEventListener('resize', designerModel.resizeCallback);\n designerModel._addDisposable(fullscreenEnabled);\n designerModel._addDisposable(fullscreenEnabled.subscribe(designerModel.resizeCallback));\n designerModel._addDisposable(tabPanel.width.subscribe(() => {\n timers.push(setTimeout(() => updatePreviewContentSize_(tabPanel.position()), 1));\n }));\n designerModel._addDisposable(tabPanel.position.subscribe((newVal) => {\n updatePreviewContentSize_(newVal);\n }));\n designerModel._addDisposable(tabPanel.isEmpty.subscribe(() => {\n timers.push(setTimeout(() => {\n updatePreviewContentSize_(tabPanel.position());\n }, 1));\n }));\n updateSizesCallback();\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('resize', designerModel.resizeCallback);\n designerModel.updateSurfaceSize = null;\n designerModel.resizeCallback = null;\n timers.forEach(x => clearTimeout(x));\n updatePreviewContentSize_ = null;\n updateProgressPosition = null;\n }\n });\n appendStaticContextToRootViewModel(designerModel, {\n _static: Object.assign(Object.assign({}, staticContext._static), { formatSearchResult: formatSearchResult })\n }, 'dx-report-viewer');\n if (bindingElement && !reportPreview.canSwitchToDesigner && bindingSettings.applyBindings) {\n callbacks.beforeRender && callbacks.beforeRender(designerModel);\n $.fn.constructor(bindingElement).children().remove();\n ko.applyBindings(designerModel, bindingElement);\n }\n return designerModel;\n}\nfunction _createPreview(bindingSettings) {\n var bindingModel = bindingSettings.model;\n bindingModel.previewVisible = bindingModel.previewVisible !== undefined ? bindingModel.previewVisible : true;\n bindingModel.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent !== undefined ? bindingModel.allowURLsWithJSContent : false;\n bindingModel.accessibilityCompliant = bindingModel.accessibilityCompliant !== undefined ? bindingModel.accessibilityCompliant : false;\n bindingSettings.applyBindings = bindingSettings.applyBindings !== undefined ? bindingSettings.applyBindings : true;\n const disposableCallback = bindingSettings.callbacks && bindingSettings.callbacks.onServerError && processErrorEvent(bindingSettings.callbacks.onServerError);\n config({ rtlEnabled: !!bindingModel.rtl });\n if (bindingModel.remoteSettings && (bindingModel.remoteSettings.authToken || bindingModel.remoteSettings.serverUri)) {\n AsyncExportApproach(true);\n bindingModel.handlerUri = RequestHelper.generateUri(bindingModel.remoteSettings.serverUri, ReportServerInvokeUri);\n SearchAvailable(false);\n EditablePreviewEnabled(false);\n ReportServerDownloadUri(RequestHelper.generateUri(bindingModel.remoteSettings.serverUri, ReportServerExportUri));\n if (bindingModel.remoteSettings.authToken) {\n ajaxSetup.ajaxSettings = {\n headers: {\n 'Authorization': 'Bearer ' + bindingModel.remoteSettings.authToken\n }\n };\n }\n }\n var designerModel;\n if (bindingModel.isMobile) {\n designerModel = createMobilePreview(bindingSettings);\n }\n else {\n designerModel = createDesktopPreview(bindingSettings);\n }\n if (disposableCallback) {\n designerModel._addDisposable(disposableCallback);\n }\n return designerModel;\n}\nexport function createPreview(bindingSettings) {\n if (bindingSettings.model && bindingSettings.model.localization) {\n addCultureInfo({\n messages: bindingSettings.model.localization\n });\n }\n var localizationCallbacks = [];\n bindingSettings.callbacks && bindingSettings.callbacks.customizeLocalization && bindingSettings.callbacks.customizeLocalization(localizationCallbacks);\n return resolveFromPromises(localizationCallbacks, () => {\n return _createPreview(bindingSettings);\n });\n}\nexport function createAndInitPreviewModel(viewerModel, element, callbacks, applyBindings) {\n return createPreviewModel(viewerModel, element, callbacks, applyBindings).done((previewModel) => {\n initPreviewModel(previewModel, viewerModel);\n });\n}\nexport function createPreviewModel(viewerModel, element, callbacks, applyBindings) {\n initGlobalize(viewerModel);\n return createPreview({ model: viewerModel, element: element, callbacks: callbacks, applyBindings: applyBindings }).done(() => {\n $.extend(true, cultureInfo, viewerModel.cultureInfoList);\n });\n}\nexport function initPreviewModel(previewModel, viewerModel) {\n if (viewerModel.reportId || viewerModel.documentId) {\n previewModel.reportPreview.initialize($.Deferred().resolve(viewerModel).promise());\n }\n else {\n var unwrappedUrl = ko.unwrap(viewerModel.reportUrl);\n if (unwrappedUrl) {\n previewModel.OpenReport(unwrappedUrl);\n }\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\binding\\jsReportViewerBinding.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { DxAnalyticsComponentCommon, JSDesignerBindingCommon, _wrapModelInObservable } from '@devexpress/analytics-core/analytics-internal';\nimport { addCultureInfo } from '@devexpress/analytics-core/analytics-utils';\nimport { registerBaseBinding } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { EventGenerator } from '../../common/binding/eventGenerator';\nimport { createPreviewModel, initPreviewModel } from '../internal/_initializer';\nimport { JSReportViewer } from './jsReportViewer';\nexport class JSReportViewerBinding extends JSDesignerBindingCommon {\n constructor(_options, customEventRaiser) {\n super(_options, customEventRaiser);\n this._deferreds = [];\n _options.viewerModel = _wrapModelInObservable(_options.viewerModel);\n this.sender = new JSReportViewer(_options.viewerModel);\n this._closeReportOnDisposing = !_options.keepReportOnComponentDisposal;\n _options.callbacks && _options.callbacks._eventSenderCreated && _options.callbacks._eventSenderCreated(this.sender);\n this._callbacks = this._initializeCallbacks();\n this._callbacks && this._callbacks.onInitializing && this._callbacks.onInitializing();\n }\n dispose() {\n if (this._closeReportOnDisposing && this.sender && this.sender.Close)\n this.sender.Close();\n (this._deferreds || []).forEach((deferred) => {\n deferred.reject();\n });\n super.dispose();\n }\n _initializeCallbacks() {\n if (this._options.callbacks) {\n var previewEvents = EventGenerator.generatePreviewEvents((eventName, args) => {\n this._fireEvent(eventName, args);\n });\n this._checkCallbackName(previewEvents);\n var availablePreviewEvents = this._generateCallbackDictionary(previewEvents);\n return availablePreviewEvents;\n }\n }\n _applyBindings(model, _$element) {\n this._disposables.push(model);\n _$element.children().remove();\n var child = _$element.append(this._templateHtml).children()[0];\n if (!child)\n return;\n ko.cleanNode(child);\n this._callbacks && this._callbacks.beforeRender && this._callbacks.beforeRender(model);\n ko.applyBindings(model, child);\n this._fireEvent('Init');\n }\n _createModel(element) {\n return createPreviewModel(this._options, element, this._callbacks, false);\n }\n applyBindings(element) {\n var _$element = $.fn.constructor(element);\n _$element.addClass('dx-designer');\n if (this._options.reportPreview && this._options.parts) {\n this._applyBindings(this._options, _$element);\n return;\n }\n var requestOptions = this._options.requestOptions;\n var applyModel = () => {\n if (requestOptions && requestOptions.invokeAction) {\n this._options.handlerUri = this._getServerActionUrl(requestOptions.host, requestOptions.invokeAction);\n }\n this._deferreds.push(this._createModel(element)\n .done((previewModel) => {\n this.sender.previewModel = previewModel;\n if (this._options.reportUrl) {\n if (ko.isSubscribable(this._options.reportUrl)) {\n this._disposables.push(this._options.reportUrl.subscribe((newVal) => {\n this.sender.OpenReport(newVal);\n }));\n }\n }\n this._createDisposeFunction(element);\n this._applyBindings(this.sender.previewModel, _$element);\n initPreviewModel(previewModel, this._options);\n }));\n };\n if (requestOptions) {\n this._getLocalizationRequest().done((localization) => {\n localization && addCultureInfo(localization);\n }).always(() => {\n applyModel();\n });\n }\n else {\n applyModel();\n }\n }\n}\nconst dxReportViewerBindingName = 'dxReportViewer';\nexport class DxReportViewer extends DxAnalyticsComponentCommon {\n getBindingName() {\n return dxReportViewerBindingName;\n }\n}\nregisterBaseBinding(dxReportViewerBindingName, '$data');\nko.bindingHandlers[dxReportViewerBindingName] = {\n init: function (element, valueAccessor) {\n new JSReportViewerBinding(ko.unwrap(valueAccessor()) || {}).applyBindings(element);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_dateRangeKeyboardHelper.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { AccessibilityKeyboardHelperBase, ControlElementWithParentHighlight, ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nexport class DateRangeDialogElementsKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor(_hide, _visible) {\n super();\n this._hide = _hide;\n this._visible = _visible;\n this.controlElementClassName = 'dx-accessibility-daterange-item';\n this.predefinedDateRangesKeyboardHelper = new PredefinedDateRangesKeyboardHelper(this);\n this._disposables.push(this.predefinedDateRangesKeyboardHelper, this._visible.subscribe(newVal => {\n var timeout = setTimeout(() => { newVal && this.predefinedDateRangesKeyboardHelper.focus(); }, 300);\n this._disposables.push({ dispose: () => clearTimeout(timeout) });\n }));\n }\n createControlElement(element, index) {\n return new ControlElementWithParentHighlight(element, this.getContainer().getElementsByClassName('dxrv-daterange-editor-item')[index]);\n }\n itemHandleEscKey(e, index) {\n this._hide();\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n if (!!(e && e.altKey)) {\n this._hide();\n return true;\n }\n return super.itemHandleUpArrowKey(e, index);\n }\n itemHandleTabKey(e, index) {\n var nextIndex = this.setFocusToNext(index);\n if (nextIndex == 0) {\n this.predefinedDateRangesKeyboardHelper.focus();\n }\n return true;\n }\n itemHandleShiftTabKey(e, index) {\n var nextIndex = this.setFocusToPrevious(index);\n if (nextIndex == 0) {\n this.predefinedDateRangesKeyboardHelper.focus();\n }\n return true;\n }\n}\nexport class PredefinedDateRangesKeyboardHelper extends ListKeyboardHelper {\n constructor(owner) {\n super();\n this.owner = owner;\n }\n itemHandleEscKey(e, index) {\n this.owner.itemHandleEscKey.call(this.owner, e, 0);\n return true;\n }\n itemHandleTabKey(e, index) {\n this.owner.setFocusToNext(0);\n return true;\n }\n itemHandleShiftTabKey(e, index) {\n this.owner.setFocusToPrevious(0);\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n if (!!(e && e.altKey)) {\n return this.owner.itemHandleUpArrowKey.call(this.owner, e);\n }\n return super.itemHandleUpArrowKey(e, index);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (dx-reporting-svg-bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_column_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_column_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_data_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_data_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_filter_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_filter_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_row_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_row_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_group\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_group'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_parameter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_parameter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_separator\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_separator'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_bottoms\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_bottoms'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_centers\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_centers'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_lefts\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_lefts'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_middles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_middles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_rights\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_rights'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_tops\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_tops'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_to_grid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_to_grid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-apply_localization_service\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-apply_localization_service'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-bottom_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-bottom_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-bring_to_front\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-bring_to_front'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-center_horizontally\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-center_horizontally'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-center_vertically\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-center_vertically'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-convert\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-convert'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-convertation\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-convertation'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-decrease_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-decrease_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-decrease_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-decrease_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_cell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_cell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_column\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_column'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_row\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_row'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-detail_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-detail_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-distribute_columns_evenly\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-distribute_columns_evenly'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-distribute_rows_evenly\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-distribute_rows_evenly'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_bounds_to_text\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_bounds_to_text'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_text_to_bounds\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_text_to_bounds'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_to_container\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_to_container'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-group_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-group_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-group_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-group_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-increase_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-increase_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-increase_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-increase_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_cell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_cell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_column_to_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_column_to_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_column_to_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_column_to_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_row_above\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_row_above'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_row_below\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_row_below'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_horizontal_spacing_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_horizontal_spacing_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_height\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_height'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_sizes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_sizes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_width\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_width'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_vertical_spacing_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_vertical_spacing_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-page_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-page_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-page_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-page_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-remove_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-remove_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-remove_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-remove_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-report_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-report_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-report_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-report_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-reset\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-reset'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-send_to_back\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-send_to_back'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-size_to_grid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-size_to_grid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-subband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-subband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-top_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-top_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-ungroup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-ungroup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_total\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_total'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-bottom_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-bottom_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-detail_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-detail_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-group_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-group_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-group_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-group_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-page_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-page_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-page_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-page_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-report_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-report_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-report_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-report_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-sub_band\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-sub_band'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-top_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-top_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_total\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_total'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axisx\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axisx'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axisy\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axisy'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-constantline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-constantline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-constantlines\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-constantlines'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-defaultpane\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-defaultpane'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-diagram\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-diagram'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-legend\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-legend'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-panes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-panes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-series\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-series'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-seriescollection\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-seriescollection'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-title\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-title'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-titles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-titles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Heart_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Heart_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Heart_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Heart_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-RadioButton_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-RadioButton_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-RadioButton_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-RadioButton_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Star_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Star_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Star_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Star_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Thumb_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Thumb_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Thumb_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Thumb_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Toggle_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Toggle_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Toggle_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Toggle_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoBox_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoBox_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNo_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNo_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNo_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNo_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-color_gear\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-color_gear'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-collectErrors\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-collectErrors'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-error\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-error'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-information\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-information'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-notification\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-notification'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-notification_empty\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-notification_empty'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-warning\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-warning'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bottommarginband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bottommarginband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcbool\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcbool'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcdate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcdate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcdefault\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcdefault'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcfloat\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcfloat'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcinteger\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcinteger'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcstring\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcstring'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-component\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-component'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-components\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-components'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-detailband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-detailband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-detailreportband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-detailreportband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-formattingrule\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-formattingrule'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-formattingrules\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-formattingrules'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-groupfooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-groupfooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-groupheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-groupheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-pagefooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-pagefooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-pageheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-pageheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parametergroup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parametergroup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parameterseparator\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parameterseparator'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-reportfooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-reportfooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-reportheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-reportheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-stylemodel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-stylemodel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-styles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-styles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-subband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-subband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-topmarginband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-topmarginband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticaldetailband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticaldetailband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticalheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticalheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticaltotalband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticaltotalband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrbarcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrbarcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcharactercomb\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcharactercomb'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrchart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrchart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcheckbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcheckbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrossbandbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrossbandbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrossbandline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrossbandline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrosstab\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrosstab'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrgauge\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrgauge'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrlabel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrlabel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpagebreak\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpagebreak'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpageinfo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpageinfo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpanel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpanel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpicturebox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpicturebox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrrichtext\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrrichtext'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrshape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrshape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrsparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrsparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrsubreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrsubreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtable\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtable'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtablecell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtablecell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtableofcontents\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtableofcontents'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtablerow\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtablerow'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrzipcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrzipcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-landscape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-landscape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-add_datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-add_datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-back\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-back'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-exit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-exit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-localization\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-localization'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-newreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-newreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-new_via_wizard\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-new_via_wizard'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-run_wizard\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-run_wizard'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-multi_select\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-multi_select'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomcenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomcenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middlecenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middlecenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middleleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middleleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middleright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middleright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topcenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topcenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-image_gallery\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-image_gallery'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_cover\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_cover'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_normal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_normal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_squeeze\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_squeeze'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_stretchimage\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_stretchimage'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_zoomimage\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_zoomimage'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_brush_options\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_brush_options'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_clear\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_clear'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_open\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_open'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_reset\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_reset'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-portrait\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-portrait'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-csv\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-csv'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-html\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-html'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-image\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-image'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-mht\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-mht'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-pdf\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-pdf'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-rtf\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-rtf'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-txt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-txt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-xls\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-xls'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-xlsx\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-xlsx'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-Export\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-Export'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-first_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-first_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-last_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-last_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-multi_page_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-multi_page_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-next_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-next_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-previous_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-previous_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-report_designer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-report_designer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-single_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-single_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-sort_asc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-sort_asc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-sort_desc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-sort_desc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-component\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-component'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-components\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-components'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-formatting_rule\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-formatting_rule'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-formatting_rules\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-formatting_rules'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-style\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-style'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-styles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-styles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-tablecell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-tablecell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-tablerow\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-tablerow'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-bubbles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-bubbles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-candle_stick\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-candle_stick'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-doughnut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-doughnut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-doughnut3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-doughnut3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-funnel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-funnel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-funnel3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-funnel3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-gantt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-gantt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-manhattan_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-manhattan_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-nested_doughnut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-nested_doughnut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-pie\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-pie'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-pie3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-pie3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-scatter_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-scatter_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_full_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_full_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_full_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_full_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_gantt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_gantt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_range_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_range_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stock\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stock'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-swift_plot\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-swift_plot'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-waterfall\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-waterfall'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-collapse\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-collapse'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-expand\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-expand'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-expressions\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-expressions'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-fieldlist\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-fieldlist'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-parameters\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-parameters'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-reportexplorer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-reportexplorer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_bottom_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_bottom_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_center_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_center_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_top_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_top_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_bottom_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_bottom_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_center_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_center_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_top_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_top_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-sparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-sparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-fullscreen-exit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-fullscreen-exit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-fullscreen\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-fullscreen'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-hightlightEditingFields\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-hightlightEditingFields'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-scripts\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-scripts'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-validateBindingMode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-validateBindingMode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-barcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-barcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-charactercomb\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-charactercomb'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-checkbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-checkbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crossbandbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crossbandbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crossbandline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crossbandline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crosstab\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crosstab'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-gauge\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-gauge'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-label\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-label'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pagebreak\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pagebreak'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pageinfo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pageinfo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-panel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-panel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-picturebox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-picturebox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-richtext\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-richtext'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-shape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-shape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-sparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-sparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-subreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-subreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-table\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-table'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-tableofcontents\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-tableofcontents'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-zipcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-zipcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-columns\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-columns'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-data\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-data'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-fields\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-fields'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-rows\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-rows'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-CrossTabReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-CrossTabReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-EmptyReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-EmptyReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-LabelReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-LabelReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-StandardReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-StandardReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-UndefinedReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-UndefinedReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-VerticalReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-VerticalReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-warning\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-warning'; } }; });\n","/**\n* DevExpress HTML/JS Reporting (dx-reporting-svg-templates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-svg-actions-add_field_to_column_area': '',\n 'dxrd-svg-actions-add_field_to_data_area': '',\n 'dxrd-svg-actions-add_field_to_filter_area': '',\n 'dxrd-svg-actions-add_field_to_row_area': '',\n 'dxrd-svg-actions-add_group': '',\n 'dxrd-svg-actions-add_parameter': '',\n 'dxrd-svg-actions-add_separator': '',\n 'dxrd-svg-actions-align_bottoms': '',\n 'dxrd-svg-actions-align_centers': '',\n 'dxrd-svg-actions-align_lefts': '',\n 'dxrd-svg-actions-align_middles': '',\n 'dxrd-svg-actions-align_rights': '',\n 'dxrd-svg-actions-align_tops': '',\n 'dxrd-svg-actions-align_to_grid': '',\n 'dxrd-svg-actions-apply_localization_service': '',\n 'dxrd-svg-actions-bottom_margin': '',\n 'dxrd-svg-actions-bring_to_front': '',\n 'dxrd-svg-actions-center_horizontally': '',\n 'dxrd-svg-actions-center_vertically': '',\n 'dxrd-svg-actions-convert': '',\n 'dxrd-svg-actions-convertation': '',\n 'dxrd-svg-actions-decrease_horizontal_spacing': '',\n 'dxrd-svg-actions-decrease_vertical_spacing': '',\n 'dxrd-svg-actions-delete_cell': '',\n 'dxrd-svg-actions-delete_column': '',\n 'dxrd-svg-actions-delete_row': '',\n 'dxrd-svg-actions-detail': '',\n 'dxrd-svg-actions-detail_report': '',\n 'dxrd-svg-actions-distribute_columns_evenly': '',\n 'dxrd-svg-actions-distribute_rows_evenly': '',\n 'dxrd-svg-actions-fit_bounds_to_text': '',\n 'dxrd-svg-actions-fit_text_to_bounds': '',\n 'dxrd-svg-actions-fit_to_container': '',\n 'dxrd-svg-actions-group_footer': '',\n 'dxrd-svg-actions-group_header': '',\n 'dxrd-svg-actions-increase_horizontal_spacing': '',\n 'dxrd-svg-actions-increase_vertical_spacing': '',\n 'dxrd-svg-actions-insert_cell': '',\n 'dxrd-svg-actions-insert_column_to_left': '',\n 'dxrd-svg-actions-insert_column_to_right': '',\n 'dxrd-svg-actions-insert_row_above': '',\n 'dxrd-svg-actions-insert_row_below': '',\n 'dxrd-svg-actions-make_horizontal_spacing_equal': '',\n 'dxrd-svg-actions-make_same_height': '',\n 'dxrd-svg-actions-make_same_sizes': '',\n 'dxrd-svg-actions-make_same_width': '',\n 'dxrd-svg-actions-make_vertical_spacing_equal': '',\n 'dxrd-svg-actions-master_report': '',\n 'dxrd-svg-actions-none': '',\n 'dxrd-svg-actions-page_footer': '',\n 'dxrd-svg-actions-page_header': '',\n 'dxrd-svg-actions-remove_horizontal_spacing': '',\n 'dxrd-svg-actions-remove_vertical_spacing': '',\n 'dxrd-svg-actions-report_footer': '',\n 'dxrd-svg-actions-report_header': '',\n 'dxrd-svg-actions-reset': '',\n 'dxrd-svg-actions-send_to_back': '',\n 'dxrd-svg-actions-size_to_grid': '',\n 'dxrd-svg-actions-subband': '',\n 'dxrd-svg-actions-top_margin': '',\n 'dxrd-svg-actions-ungroup': '',\n 'dxrd-svg-actions-vertical_detail': '',\n 'dxrd-svg-actions-vertical_header': '',\n 'dxrd-svg-actions-vertical_total': '',\n 'dxrd-svg-bands-bottom_margin': '',\n 'dxrd-svg-bands-detail': '',\n 'dxrd-svg-bands-detail_report': '',\n 'dxrd-svg-bands-group_footer': '',\n 'dxrd-svg-bands-group_header': '',\n 'dxrd-svg-bands-master_report': '',\n 'dxrd-svg-bands-page_footer': '',\n 'dxrd-svg-bands-page_header': '',\n 'dxrd-svg-bands-report_footer': '',\n 'dxrd-svg-bands-report_header': '',\n 'dxrd-svg-bands-sub_band': '',\n 'dxrd-svg-bands-top_margin': '',\n 'dxrd-svg-bands-vertical_detail': '',\n 'dxrd-svg-bands-vertical_header': '',\n 'dxrd-svg-bands-vertical_total': '',\n 'dxrd-svg-chartstructure-axes': '',\n 'dxrd-svg-chartstructure-axisx': '',\n 'dxrd-svg-chartstructure-axisy': '',\n 'dxrd-svg-chartstructure-chart': '',\n 'dxrd-svg-chartstructure-constantline': '',\n 'dxrd-svg-chartstructure-constantlines': '',\n 'dxrd-svg-chartstructure-defaultpane': '',\n 'dxrd-svg-chartstructure-diagram': '',\n 'dxrd-svg-chartstructure-legend': '',\n 'dxrd-svg-chartstructure-panes': '',\n 'dxrd-svg-chartstructure-series': '',\n 'dxrd-svg-chartstructure-seriescollection': '',\n 'dxrd-svg-chartstructure-title': '',\n 'dxrd-svg-chartstructure-titles': '',\n 'dxrd-svg-checkboxglyphs-Heart_Checked': '',\n 'dxrd-svg-checkboxglyphs-Heart_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-RadioButton_Checked': '',\n 'dxrd-svg-checkboxglyphs-RadioButton_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Checked': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Checked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Checked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Star_Checked': '',\n 'dxrd-svg-checkboxglyphs-Star_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Thumb_Checked': '',\n 'dxrd-svg-checkboxglyphs-Thumb_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Toggle_Checked': '',\n 'dxrd-svg-checkboxglyphs-Toggle_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNoBox_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNo_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNo_Unchecked': '',\n 'dxrd-svg-color_gear': '',\n 'dxrd-svg-errorPanel-collectErrors': '',\n 'dxrd-svg-errorPanel-error': '',\n 'dxrd-svg-errorPanel-information': '',\n 'dxrd-svg-errorPanel-notification': '',\n 'dxrd-svg-errorPanel-notification_empty': '',\n 'dxrd-svg-errorPanel-warning': '',\n 'dxrd-svg-fieldlist-bottommarginband': '',\n 'dxrd-svg-fieldlist-calcbool': '',\n 'dxrd-svg-fieldlist-calcdate': '',\n 'dxrd-svg-fieldlist-calcdefault': '',\n 'dxrd-svg-fieldlist-calcfloat': '',\n 'dxrd-svg-fieldlist-calcinteger': '',\n 'dxrd-svg-fieldlist-calcstring': '',\n 'dxrd-svg-fieldlist-component': '',\n 'dxrd-svg-fieldlist-components': '',\n 'dxrd-svg-fieldlist-detailband': '',\n 'dxrd-svg-fieldlist-detailreportband': '',\n 'dxrd-svg-fieldlist-formattingrule': '',\n 'dxrd-svg-fieldlist-formattingrules': '',\n 'dxrd-svg-fieldlist-groupfooterband': '',\n 'dxrd-svg-fieldlist-groupheaderband': '',\n 'dxrd-svg-fieldlist-master_report': '',\n 'dxrd-svg-fieldlist-pagefooterband': '',\n 'dxrd-svg-fieldlist-pageheaderband': '',\n 'dxrd-svg-fieldlist-parametergroup': '',\n 'dxrd-svg-fieldlist-parameterseparator': '',\n 'dxrd-svg-fieldlist-reportfooterband': '',\n 'dxrd-svg-fieldlist-reportheaderband': '',\n 'dxrd-svg-fieldlist-stylemodel': '',\n 'dxrd-svg-fieldlist-styles': '',\n 'dxrd-svg-fieldlist-subband': '',\n 'dxrd-svg-fieldlist-topmarginband': '',\n 'dxrd-svg-fieldlist-verticaldetailband': '',\n 'dxrd-svg-fieldlist-verticalheaderband': '',\n 'dxrd-svg-fieldlist-verticaltotalband': '',\n 'dxrd-svg-fieldlist-xrbarcode': '',\n 'dxrd-svg-fieldlist-xrcharactercomb': '',\n 'dxrd-svg-fieldlist-xrchart': '',\n 'dxrd-svg-fieldlist-xrcheckbox': '',\n 'dxrd-svg-fieldlist-xrcrossbandbox': '',\n 'dxrd-svg-fieldlist-xrcrossbandline': '',\n 'dxrd-svg-fieldlist-xrcrosstab': '',\n 'dxrd-svg-fieldlist-xrgauge': '',\n 'dxrd-svg-fieldlist-xrlabel': '',\n 'dxrd-svg-fieldlist-xrline': '',\n 'dxrd-svg-fieldlist-xrpagebreak': '',\n 'dxrd-svg-fieldlist-xrpageinfo': '',\n 'dxrd-svg-fieldlist-xrpanel': '',\n 'dxrd-svg-fieldlist-xrpdfcontent': '',\n 'dxrd-svg-fieldlist-xrpdfsignature': '',\n 'dxrd-svg-fieldlist-xrpicturebox': '',\n 'dxrd-svg-fieldlist-xrpivotgrid': '',\n 'dxrd-svg-fieldlist-xrrichtext': '',\n 'dxrd-svg-fieldlist-xrshape': '',\n 'dxrd-svg-fieldlist-xrsparkline': '',\n 'dxrd-svg-fieldlist-xrsubreport': '',\n 'dxrd-svg-fieldlist-xrtable': '',\n 'dxrd-svg-fieldlist-xrtablecell': '',\n 'dxrd-svg-fieldlist-xrtableofcontents': '',\n 'dxrd-svg-fieldlist-xrtablerow': '',\n 'dxrd-svg-fieldlist-xrzipcode': '',\n 'dxrd-svg-landscape': '',\n 'dxrd-svg-menu-add_datasource': '',\n 'dxrd-svg-menu-back': '',\n 'dxrd-svg-menu-exit': '',\n 'dxrd-svg-menu-localization': '',\n 'dxrd-svg-menu-newreport': '',\n 'dxrd-svg-menu-new_via_wizard': '',\n 'dxrd-svg-menu-run_wizard': '',\n 'dxrd-svg-multi_select': '',\n 'dxrd-svg-none': '',\n 'dxrd-svg-pictureeditor-alignment_bottomcenter': '',\n 'dxrd-svg-pictureeditor-alignment_bottomleft': '',\n 'dxrd-svg-pictureeditor-alignment_bottomright': '',\n 'dxrd-svg-pictureeditor-alignment_middlecenter': '',\n 'dxrd-svg-pictureeditor-alignment_middleleft': '',\n 'dxrd-svg-pictureeditor-alignment_middleright': '',\n 'dxrd-svg-pictureeditor-alignment_topcenter': '',\n 'dxrd-svg-pictureeditor-alignment_topleft': '',\n 'dxrd-svg-pictureeditor-alignment_topright': '',\n 'dxrd-svg-pictureeditor-image_gallery': '',\n 'dxrd-svg-pictureeditor-size_mode_cover': '',\n 'dxrd-svg-pictureeditor-size_mode_normal': '',\n 'dxrd-svg-pictureeditor-size_mode_squeeze': '',\n 'dxrd-svg-pictureeditor-size_mode_stretchimage': '',\n 'dxrd-svg-pictureeditor-size_mode_zoomimage': '',\n 'dxrd-svg-pictureeditor-toolbar_brush_options': '',\n 'dxrd-svg-pictureeditor-toolbar_clear': '',\n 'dxrd-svg-pictureeditor-toolbar_open': '',\n 'dxrd-svg-pictureeditor-toolbar_reset': '',\n 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment': '',\n 'dxrd-svg-portrait': '',\n 'dxrd-svg-preview-export-export-to-csv': '',\n 'dxrd-svg-preview-export-export-to-html': '',\n 'dxrd-svg-preview-export-export-to-image': '',\n 'dxrd-svg-preview-export-export-to-mht': '',\n 'dxrd-svg-preview-export-export-to-pdf': '',\n 'dxrd-svg-preview-export-export-to-rtf': '',\n 'dxrd-svg-preview-export-export-to-txt': '',\n 'dxrd-svg-preview-export-export-to-xls': '',\n 'dxrd-svg-preview-export-export-to-xlsx': '',\n 'dxrd-svg-preview-export-export-to': '',\n 'dxrd-svg-preview-export-Export': '',\n 'dxrd-svg-preview-first_page': '',\n 'dxrd-svg-preview-last_page': '',\n 'dxrd-svg-preview-multi_page_preview': '',\n 'dxrd-svg-preview-next_page': '',\n 'dxrd-svg-preview-previous_page': '',\n 'dxrd-svg-preview-print': '',\n 'dxrd-svg-preview-print_page': '',\n 'dxrd-svg-preview-print_preview': '',\n 'dxrd-svg-preview-report_designer': '',\n 'dxrd-svg-preview-search': '',\n 'dxrd-svg-preview-single_page': '',\n 'dxrd-svg-preview-sort_asc': '',\n 'dxrd-svg-preview-sort_desc': '',\n 'dxrd-svg-reportexplorer-component': '',\n 'dxrd-svg-reportexplorer-components': '',\n 'dxrd-svg-reportexplorer-formatting_rule': '',\n 'dxrd-svg-reportexplorer-formatting_rules': '',\n 'dxrd-svg-reportexplorer-style': '',\n 'dxrd-svg-reportexplorer-styles': '',\n 'dxrd-svg-reportexplorer-tablecell': '',\n 'dxrd-svg-reportexplorer-tablerow': '',\n 'dxrd-svg-series-area': '',\n 'dxrd-svg-series-area3d': '',\n 'dxrd-svg-series-bubbles': '',\n 'dxrd-svg-series-candle_stick': '',\n 'dxrd-svg-series-doughnut': '',\n 'dxrd-svg-series-doughnut3d': '',\n 'dxrd-svg-series-full_stacked_area': '',\n 'dxrd-svg-series-full_stacked_area3d': '',\n 'dxrd-svg-series-full_stacked_bar': '',\n 'dxrd-svg-series-full_stacked_bar3d': '',\n 'dxrd-svg-series-full_stacked_line': '',\n 'dxrd-svg-series-full_stacked_line3d': '',\n 'dxrd-svg-series-full_stacked_spline_area': '',\n 'dxrd-svg-series-full_stacked_spline_area3d': '',\n 'dxrd-svg-series-funnel': '',\n 'dxrd-svg-series-funnel3d': '',\n 'dxrd-svg-series-gantt': '',\n 'dxrd-svg-series-line': '',\n 'dxrd-svg-series-line3d': '',\n 'dxrd-svg-series-manhattan_bar3d': '',\n 'dxrd-svg-series-nested_doughnut': '',\n 'dxrd-svg-series-pie': '',\n 'dxrd-svg-series-pie3d': '',\n 'dxrd-svg-series-point': '',\n 'dxrd-svg-series-polar_area': '',\n 'dxrd-svg-series-polar_line': '',\n 'dxrd-svg-series-polar_point': '',\n 'dxrd-svg-series-radar_area': '',\n 'dxrd-svg-series-radar_line': '',\n 'dxrd-svg-series-radar_point': '',\n 'dxrd-svg-series-range_area': '',\n 'dxrd-svg-series-range_area3d': '',\n 'dxrd-svg-series-range_bar': '',\n 'dxrd-svg-series-scatter_line': '',\n 'dxrd-svg-series-side_by_side_bar': '',\n 'dxrd-svg-series-side_by_side_bar3d': '',\n 'dxrd-svg-series-side_by_side_full_stacked_bar': '',\n 'dxrd-svg-series-side_by_side_full_stacked_bar3d': '',\n 'dxrd-svg-series-side_by_side_gantt': '',\n 'dxrd-svg-series-side_by_side_range_bar': '',\n 'dxrd-svg-series-side_by_side_stacked_bar': '',\n 'dxrd-svg-series-side_by_side_stacked_bar3d': '',\n 'dxrd-svg-series-spline': '',\n 'dxrd-svg-series-spline3d': '',\n 'dxrd-svg-series-spline_area': '',\n 'dxrd-svg-series-spline_area3d': '',\n 'dxrd-svg-series-stacked_area': '',\n 'dxrd-svg-series-stacked_area3d': '',\n 'dxrd-svg-series-stacked_bar': '',\n 'dxrd-svg-series-stacked_bar3d': '',\n 'dxrd-svg-series-stacked_line': '',\n 'dxrd-svg-series-stacked_line3d': '',\n 'dxrd-svg-series-stacked_spline_area': '',\n 'dxrd-svg-series-stacked_spline_area3d': '',\n 'dxrd-svg-series-step_area': '',\n 'dxrd-svg-series-step_area3d': '',\n 'dxrd-svg-series-step_line': '',\n 'dxrd-svg-series-step_line3d': '',\n 'dxrd-svg-series-stock': '',\n 'dxrd-svg-series-swift_plot': '',\n 'dxrd-svg-series-waterfall': '',\n 'dxrd-svg-tabs-collapse': '',\n 'dxrd-svg-tabs-expand': '',\n 'dxrd-svg-tabs-expressions': '',\n 'dxrd-svg-tabs-fieldlist': '',\n 'dxrd-svg-tabs-parameters': '',\n 'dxrd-svg-tabs-reportexplorer': '',\n 'dxrd-svg-tabs-search': '',\n 'dxrd-svg-titles-bottom_center': '',\n 'dxrd-svg-titles-bottom_left': '',\n 'dxrd-svg-titles-bottom_right': '',\n 'dxrd-svg-titles-left_bottom_vertical': '',\n 'dxrd-svg-titles-left_center_vertical': '',\n 'dxrd-svg-titles-left_top_vertical': '',\n 'dxrd-svg-titles-right_bottom_vertical': '',\n 'dxrd-svg-titles-right_center_vertical': '',\n 'dxrd-svg-titles-right_top_vertical': '',\n 'dxrd-svg-titles-top_center': '',\n 'dxrd-svg-titles-top_left': '',\n 'dxrd-svg-titles-top_right': '',\n 'dxrd-svg-todo-chart': '',\n 'dxrd-svg-todo-pdfcontent': '',\n 'dxrd-svg-todo-pdfsignature': '',\n 'dxrd-svg-todo-pivotgrid': '',\n 'dxrd-svg-todo-sparkline': '',\n 'dxrd-svg-toolbar-fullscreen-exit': '',\n 'dxrd-svg-toolbar-fullscreen': '',\n 'dxrd-svg-toolbar-hightlightEditingFields': '',\n 'dxrd-svg-toolbar-scripts': '',\n 'dxrd-svg-toolbar-validateBindingMode': '',\n 'dxrd-svg-toolbox-barcode': '',\n 'dxrd-svg-toolbox-charactercomb': '',\n 'dxrd-svg-toolbox-chart': '',\n 'dxrd-svg-toolbox-checkbox': '',\n 'dxrd-svg-toolbox-crossbandbox': '',\n 'dxrd-svg-toolbox-crossbandline': '',\n 'dxrd-svg-toolbox-crosstab': '',\n 'dxrd-svg-toolbox-gauge': '',\n 'dxrd-svg-toolbox-label': '',\n 'dxrd-svg-toolbox-line': '',\n 'dxrd-svg-toolbox-pagebreak': '',\n 'dxrd-svg-toolbox-pageinfo': '',\n 'dxrd-svg-toolbox-panel': '',\n 'dxrd-svg-toolbox-pdfcontent': '',\n 'dxrd-svg-toolbox-pdfsignature': '',\n 'dxrd-svg-toolbox-picturebox': '',\n 'dxrd-svg-toolbox-pivotgrid': '',\n 'dxrd-svg-toolbox-richtext': '',\n 'dxrd-svg-toolbox-shape': '',\n 'dxrd-svg-toolbox-sparkline': '',\n 'dxrd-svg-toolbox-subreport': '',\n 'dxrd-svg-toolbox-table': '',\n 'dxrd-svg-toolbox-tableofcontents': '',\n 'dxrd-svg-toolbox-zipcode': '',\n 'dxrd-svg-wizard-crosstab-columns': '',\n 'dxrd-svg-wizard-crosstab-data': '',\n 'dxrd-svg-wizard-crosstab-fields': '',\n 'dxrd-svg-wizard-crosstab-rows': '',\n 'dxrd-svg-wizard-CrossTabReport': '',\n 'dxrd-svg-wizard-EmptyReport': '',\n 'dxrd-svg-wizard-LabelReport': '',\n 'dxrd-svg-wizard-StandardReport': '',\n 'dxrd-svg-wizard-UndefinedReport': '
',\n 'dxrd-svg-wizard-VerticalReport': '',\n 'dxrd-svg-wizard-warning': '',\n});\n","/**\n* DevExpress HTML/JS Reporting (dx-viewer-bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\naddToBindingsCache('style: $data.customGlyphStyleCss', function ($context, $element) { return { 'style': function () { return $context.$data.customGlyphStyleCss; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: items, displayExpr: \\'displayName\\', value: popupModel.textRangeValue, useItemTextAsTitle: true , placeholder: $root.getLocalization(\\'Select Period\\', \\'AnalyticsCoreStringId.Mobile_DateRange_SelectPeriod\\') }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$data.items, 'displayExpr': 'displayName', 'value': $context.$data.popupModel.textRangeValue, 'useItemTextAsTitle': true, 'placeholder': $context.$root.getLocalization('Select Period', 'AnalyticsCoreStringId.Mobile_DateRange_SelectPeriod') }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'From\\',\\'AnalyticsCoreStringId.Mobile_DateRange_From\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('From', 'AnalyticsCoreStringId.Mobile_DateRange_From'); } }; });\naddToBindingsCache('css: { \\'dx-button-default\\': popupModel.startButton.focused }, dxButton: popupModel.startButton', function ($context, $element) { return { 'css': function () { return { 'dx-button-default': $context.$data.popupModel.startButton.focused }; }, 'dxButton': function () { return $context.$data.popupModel.startButton; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Until\\',\\'AnalyticsCoreStringId.Mobile_DateRange_Until\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Until', 'AnalyticsCoreStringId.Mobile_DateRange_Until'); } }; });\naddToBindingsCache('css: { \\'dx-button-default\\': popupModel.endButton.focused }, dxButton: popupModel.endButton', function ($context, $element) { return { 'css': function () { return { 'dx-button-default': $context.$data.popupModel.endButton.focused }; }, 'dxButton': function () { return $context.$data.popupModel.endButton; } }; });\naddToBindingsCache('if: popupModel.startButton.focused', function ($context, $element) { return { 'if': function () { return $context.$data.popupModel.startButton.focused; } }; });\naddToBindingsCache('template: { name: \\'dxrv-daterange-calendar\\', data: _createTemplateData(startDate, undefined) }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-daterange-calendar', 'data': $context.$data._createTemplateData($context.$data.startDate, undefined) }; } }; });\naddToBindingsCache('if: popupModel.endButton.focused', function ($context, $element) { return { 'if': function () { return $context.$data.popupModel.endButton.focused; } }; });\naddToBindingsCache('template: { name: \\'dxrv-daterange-calendar\\', data: _createTemplateData(endDate, startDate) }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-daterange-calendar', 'data': $context.$data._createTemplateData($context.$data.endDate, $context.$data.startDate) }; } }; });\naddToBindingsCache('dxclick: clickToBrick, styleunit: { width: width, height: height }, autoFit: { autoFitBy: $root.reportPreview.autoFitBy, zoom: zoom, width: originalWidth, height: originalHeight, previewSize: $root.reportPreview.previewSize, brickLoading: brickLoading, skipIfInvisible: true }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.clickToBrick; }, 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height }; }, 'autoFit': function () { return { 'autoFitBy': $context.$root.reportPreview.autoFitBy, 'zoom': $context.$data.zoom, 'width': $context.$data.originalWidth, 'height': $context.$data.originalHeight, 'previewSize': $context.$root.reportPreview.previewSize, 'brickLoading': $context.$data.brickLoading, 'skipIfInvisible': true }; } }; });\naddToBindingsCache('styleunit: { width: width, height: height, lineHeight: height }, style: { \\'background-color\\': color }, visible: pageLoading, text: loadingText', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height, 'lineHeight': $context.$data.height }; }, 'style': function () { return { 'background-color': $context.$data.color }; }, 'visible': function () { return $context.$data.pageLoading; }, 'text': function () { return $context.$data.loadingText; } }; });\naddToBindingsCache('attr: { src: displayImageSrc }, style:{ \\'background-color\\': color }', function ($context, $element) { return { 'attr': function () { return { 'src': $context.$data.displayImageSrc }; }, 'style': function () { return { 'background-color': $context.$data.color }; } }; });\naddToBindingsCache('css: { \\'dxrdp-active\\': active() && $parents[1].blocks().length > 1 }, visible: !$root.slideOptions.readerMode', function ($context, $element) { return { 'css': function () { return { 'dxrdp-active': $context.$data.active() && $context.$parents[1].blocks().length > 1 }; }, 'visible': function () { return !$context.$root.slideOptions.readerMode; } }; });\naddToBindingsCache('style: { top: topP, left: $data.leftP, right: $data.rightP, height: heightP, width: widthP }, css: { \\'dxrd-report-preview-brick-selected\\': $data.active }', function ($context, $element) { return { 'style': function () { return { 'top': $context.$data.topP, 'left': $context.$data.leftP, 'right': $context.$data.rightP, 'height': $context.$data.heightP, 'width': $context.$data.widthP }; }, 'css': function () { return { 'dxrd-report-preview-brick-selected': $context.$data.active }; } }; });\naddToBindingsCache('foreach: activeBricks', function ($context, $element) { return { 'foreach': function () { return $context.$data.activeBricks; } }; });\naddToBindingsCache('template: { name: \"dxrd-page-brick-mobile\", data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-page-brick-mobile', 'data': $context.$data }; } }; });\naddToBindingsCache('if: !brickLoading() && $data.editingFields', function ($context, $element) { return { 'if': function () { return !$context.$data.brickLoading() && $context.$data.editingFields; } }; });\naddToBindingsCache('foreach: editingFields', function ($context, $element) { return { 'foreach': function () { return $context.$data.editingFields; } }; });\naddToBindingsCache('styleunit:{ height: height }, dxrdSearchBar: $data', function ($context, $element) { return { 'styleunit': function () { return { 'height': $context.$data.height }; }, 'dxrdSearchBar': function () { return $context.$data; } }; });\naddToBindingsCache('visible: !$data.editorVisible(), dxclick: function(s, e) { $data.focusEditor(e); }', function ($context, $element) { return { 'visible': function () { return !$context.$data.editorVisible(); }, 'dxclick': function () { return function (s, e) { $context.$data.focusEditor(e); }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Tap here to Search\\', \\'ASPxReportsStringId.WebDocumentViewer_Mobile_TapHereToSearch\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Tap here to Search', 'ASPxReportsStringId.WebDocumentViewer_Mobile_TapHereToSearch'); } }; });\naddToBindingsCache('visible: $data.editorVisible()', function ($context, $element) { return { 'visible': function () { return $context.$data.editorVisible(); } }; });\naddToBindingsCache('dxTextBox: { value: searchText, onEnterKey: function() { $data.startSearch(); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.searchText, 'onEnterKey': function () { $context.$data.startSearch(); } }; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxrd-preview-export-to\\' }, items: items, onItemClick: clickAction }, attr: { title: $root.getLocalization(text, $data.textId) }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxrd-preview-export-to' }, 'items': $context.$data.items, 'onItemClick': $context.$data.clickAction }; }, 'attr': function () { return { 'title': $context.$root.getLocalization($context.$data.text, $context.$data.textId) }; } }; });\naddToBindingsCache('attr: { title: $root.getLocalization(text, $data.textId) }', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$root.getLocalization($context.$data.text, $context.$data.textId) }; } }; });\naddToBindingsCache('text: $root.getLocalization($data.text, $data.textId)', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization($context.$data.text, $context.$data.textId); } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: { name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('visible: visible, css: $data.imageClassName, template: { name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, dxclick: clickAction', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'dxclick': function () { return $context.$data.clickAction; } }; });\naddToBindingsCache('dxrdMobilePaginator: $data', function ($context, $element) { return { 'dxrdMobilePaginator': function () { return $context.$data; } }; });\naddToBindingsCache('text : text', function ($context, $element) { return { 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('dxPopover: { wrapperAttr: { class: \\'dxrd-menu-export-popover\\' }, width: \\'266px\\', height: \\'266px\\', visible: visible, target: \\'.dxrdp-mobile-action.dxrd-image-export-to\\', container: $root.getPopupContainer($element), }', function ($context, $element) { return { 'dxPopover': function () { return { 'wrapperAttr': { 'class': 'dxrd-menu-export-popover' }, 'width': '266px', 'height': '266px', 'visible': $context.$data.visible, 'target': '.dxrdp-mobile-action.dxrd-image-export-to', 'container': $context.$root.getPopupContainer($element) }; } }; });\naddToBindingsCache('dxclick: action, text: text', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; }, 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('dxPopup: { wrapperAttr: { class: \\'dxrd-menu-parameters-popup\\' }, showTitle: false, width: \\'100vw\\', height: \\'100vh\\', visible: visible, container: $root.getPopupContainer($element), }', function ($context, $element) { return { 'dxPopup': function () { return { 'wrapperAttr': { 'class': 'dxrd-menu-parameters-popup' }, 'showTitle': false, 'width': '100vw', 'height': '100vh', 'visible': $context.$data.visible, 'container': $context.$root.getPopupContainer($element) }; } }; });\naddToBindingsCache('dxValidationGroup: {}, css: className', function ($context, $element) { return { 'dxValidationGroup': function () { return {}; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('text: $data.title', function ($context, $element) { return { 'text': function () { return $context.$data.title; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, bounceEnabled: false }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'bounceEnabled': false }; } }; });\naddToBindingsCache('foreach: { data: $data.actionButtons }, cacheElement: { action: function(element) { $data.cacheElementContent(element); } }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.actionButtons }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.cacheElementContent(element); } }; } }; });\naddToBindingsCache('dxButton: { text: text, onClick: function(params){ $data.action(params) }, disabled: disabled, visible: visible }, css: className', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$data.text, 'onClick': function (params) { $context.$data.action(params); }, 'disabled': $context.$data.disabled, 'visible': $context.$data.visible }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('visible: showIcons, foreach: { data: $data.actionIcons }', function ($context, $element) { return { 'visible': function () { return $context.$data.showIcons; }, 'foreach': function () { return { 'data': $context.$data.actionIcons }; } }; });\naddToBindingsCache('dxButton: { onClick: function(params){ $data.action(params)}, disabled: disabled }, css: className', function ($context, $element) { return { 'dxButton': function () { return { 'onClick': function (params) { $context.$data.action(params); }, 'disabled': $context.$data.disabled }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('dxPropertyGrid: { target: ko.observable($data) }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.ko.observable($context.$data) }; } }; });\naddToBindingsCache('dxrvDateRangeEditor: {value: $data.value(), isMobile: true }', function ($context, $element) { return { 'dxrvDateRangeEditor': function () { return { 'value': $context.$data.value(), 'isMobile': true }; } }; });\naddToBindingsCache('if: $data.format', function ($context, $element) { return { 'if': function () { return $context.$data.format; } }; });\naddToBindingsCache('ifnot: $data.format', function ($context, $element) { return { 'ifnot': function () { return $context.$data.format; } }; });\naddToBindingsCache('if: $data.enabled', function ($context, $element) { return { 'if': function () { return $context.$data.enabled; } }; });\naddToBindingsCache('if: $data.content', function ($context, $element) { return { 'if': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: $data.content', function ($context, $element) { return { 'template': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: { name: \\'dxrv-preview-parameters-mobile\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-preview-parameters-mobile', 'data': $context.$data }; } }; });\naddToBindingsCache('template: { name: $data.contentTemplate, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.model }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.documentId === null ? \\'none\\' : \\'\\', touchEvents: $data.documentId === null ? \\'none\\' : \\'\\' }, styleunit: { top: topOffset, height: previewWrapperSize().height, width: previewWrapperSize().width }, slide: $root.slideOptions, mobileZoom: { zoom: mobileZoom, zoomUpdating: zoomUpdating }, dxclick: function(s,e) { if(!$root.brickEventsDisabled()) { $data.showActions(s,e); } }, css: { \\'dxrp-editing-fields-hightlighted\\': editingFieldsHighlighted }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.documentId === null ? 'none' : '', 'touchEvents': $context.$data.documentId === null ? 'none' : '' }; }, 'styleunit': function () { return { 'top': $context.$data.topOffset, 'height': $context.$data.previewWrapperSize().height, 'width': $context.$data.previewWrapperSize().width }; }, 'slide': function () { return $context.$root.slideOptions; }, 'mobileZoom': function () { return { 'zoom': $context.$data.mobileZoom, 'zoomUpdating': $context.$data.zoomUpdating }; }, 'dxclick': function () { return function (s, e) { if (!$context.$root.brickEventsDisabled()) {\n $context.$data.showActions(s, e);\n } }; }, 'css': function () { return { 'dxrp-editing-fields-hightlighted': $context.$data.editingFieldsHighlighted }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.zoomUpdating() ? \\'none\\' : \\'\\', touchEvents: $data.zoomUpdating() ? \\'none\\' : \\'\\' }, dxGalleryReportPreview: { dataSource: $root.gallery.items, gallery: $root.gallery, animationEnabled: $root.gallery.animationEnabled, disabled: $data.zoomUpdating, selectedIndex: $root.gallery.selectedIndex, width:\\'100%\\', height: \\'100%\\', showIndicator: false, loop: true, onSelectionChanged: onSlide, swipeEnabled: $root.slideOptions.swipeEnabled }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.zoomUpdating() ? 'none' : '', 'touchEvents': $context.$data.zoomUpdating() ? 'none' : '' }; }, 'dxGalleryReportPreview': function () { return { 'dataSource': $context.$root.gallery.items, 'gallery': $context.$root.gallery, 'animationEnabled': $context.$root.gallery.animationEnabled, 'disabled': $context.$data.zoomUpdating, 'selectedIndex': $context.$root.gallery.selectedIndex, 'width': '100%', 'height': '100%', 'showIndicator': false, 'loop': true, 'onSelectionChanged': $context.$data.onSlide, 'swipeEnabled': $context.$root.slideOptions.swipeEnabled }; } }; });\naddToBindingsCache('dxScrollView: $root.reportPreview.getScrollViewOptions()', function ($context, $element) { return { 'dxScrollView': function () { return $context.$root.reportPreview.getScrollViewOptions(); } }; });\naddToBindingsCache('style: $root.gallery.contentSize()', function ($context, $element) { return { 'style': function () { return $context.$root.gallery.contentSize(); } }; });\naddToBindingsCache('styleunit: position, css: $data.classSet', function ($context, $element) { return { 'styleunit': function () { return $context.$data.position; }, 'css': function () { return $context.$data.classSet; } }; });\naddToBindingsCache('styleunit: { width: Math.max(page.width(), position().width), height: Math.max(page.height(), position().height) }, style: { \\'background-color\\': page.color }', function ($context, $element) { return { 'styleunit': function () { return { 'width': Math.max($context.$data.page.width(), $context.$data.position().width), 'height': Math.max($context.$data.page.height(), $context.$data.position().height) }; }, 'style': function () { return { 'background-color': $context.$data.page.color }; } }; });\naddToBindingsCache('css: { \\'dxrdp-active\\': page.active() && $parents[0].blocks().length > 1, \\'dxrdp-page-padding\\': $parents[0].blocks().length > 1 }, visible: $root.slideOptions.readerMode', function ($context, $element) { return { 'css': function () { return { 'dxrdp-active': $context.$data.page.active() && $context.$parents[0].blocks().length > 1, 'dxrdp-page-padding': $context.$parents[0].blocks().length > 1 }; }, 'visible': function () { return $context.$root.slideOptions.readerMode; } }; });\naddToBindingsCache('styleunit: { width: page.width, height: page.height }, style: { pointerEvents: $root.brickEventsDisabled() ? \\'none\\' : \\'\\', touchEvents: $root.brickEventsDisabled() ? \\'none\\' : \\'\\' }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.page.width, 'height': $context.$data.page.height }; }, 'style': function () { return { 'pointerEvents': $context.$root.brickEventsDisabled() ? 'none' : '', 'touchEvents': $context.$root.brickEventsDisabled() ? 'none' : '' }; } }; });\naddToBindingsCache('template: {name: \\'dxrd-preview-progress-bar\\', data: progressBar }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-progress-bar', 'data': $context.$data.progressBar }; } }; });\naddToBindingsCache('foreach: $data.blocks()', function ($context, $element) { return { 'foreach': function () { return $context.$data.blocks(); } }; });\naddToBindingsCache('if: $data.page', function ($context, $element) { return { 'if': function () { return $context.$data.page; } }; });\naddToBindingsCache('template: { name :\\'dxrd-preview-page-mobile\\', data: page }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-page-mobile', 'data': $context.$data.page }; } }; });\naddToBindingsCache('style: containerStyle(), zoom: zoom, css: { active: active(), readonly: field.readOnly() }', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'zoom': function () { return $context.$data.zoom; }, 'css': function () { return { 'active': $context.$data.active(), 'readonly': $context.$data.field.readOnly() }; } }; });\naddToBindingsCache('style: borderStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.borderStyle(); } }; });\naddToBindingsCache('dxclick: activateEditor', function ($context, $element) { return { 'dxclick': function () { return $context.$data.activateEditor; } }; });\naddToBindingsCache('style: textStyle(), css: {\\'dxrp-editing-field-text-wordwrap\\': !wordWrap}', function ($context, $element) { return { 'style': function () { return $context.$data.textStyle(); }, 'css': function () { return { 'dxrp-editing-field-text-wordwrap': !$context.$data.wordWrap }; } }; });\naddToBindingsCache('style: breakOffsetStyle(), html: htmlValue()', function ($context, $element) { return { 'style': function () { return $context.$data.breakOffsetStyle(); }, 'html': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('style: textStyle(), css: {\\'dxrp-editing-field-text-wordwrap\\': !wordWrap}, text: field.editValue()', function ($context, $element) { return { 'style': function () { return $context.$data.textStyle(); }, 'css': function () { return { 'dxrp-editing-field-text-wordwrap': !$context.$data.wordWrap }; }, 'text': function () { return $context.$data.field.editValue(); } }; });\naddToBindingsCache('value: value, valueUpdate: \\'keypress\\', style: textStyle(), event: { blur: hideEditor, keyup: keypressAction }', function ($context, $element) { return { 'value': function () { return $context.$data.value; }, 'valueUpdate': function () { return 'keypress'; }, 'style': function () { return $context.$data.textStyle(); }, 'event': function () { return { 'blur': $context.$data.hideEditor, 'keyup': $context.$data.keypressAction }; }, '_ko_property_writers': function () { return { 'value': function (_z) { $context.$data.value = _z; } }; } }; });\naddToBindingsCache('dxTextBox: options, childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.options; }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('dxNumberBox: options, childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxNumberBox': function () { return $context.$data.options; }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('dxDateBox: $data.getOptions({ dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flip\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } } }), childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxDateBox': function () { return $context.$data.getOptions({ 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flip', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } } }); }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('style: containerStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); } }; });\naddToBindingsCache('dxPictureEditor: $data.getPictureEditorOptions()', function ($context, $element) { return { 'dxPictureEditor': function () { return $context.$data.getPictureEditorOptions(); } }; });\naddToBindingsCache('style: containerStyle(), zoom: zoom, click: onClick', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'zoom': function () { return $context.$data.zoom; }, 'click': function () { return $context.$data.onClick; } }; });\naddToBindingsCache('style: checkStyle(), template: {name: $data.checkStateStyleIcon, if: !!ko.unwrap($data.checkStateStyleIcon)}', function ($context, $element) { return { 'style': function () { return $context.$data.checkStyle(); }, 'template': function () { return { 'name': $context.$data.checkStateStyleIcon, 'if': !!$context.ko.unwrap($context.$data.checkStateStyleIcon) }; } }; });\naddToBindingsCache('style: checkStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.checkStyle(); } }; });\naddToBindingsCache('style: { fill: checked() ? \\'black\\' : \\'transparent\\' }', function ($context, $element) { return { 'style': function () { return { 'fill': $context.$data.checked() ? 'black' : 'transparent' }; } }; });\naddToBindingsCache('style: containerStyle(), dxclick: activateEditor, zoom: zoom, css: { active: active(), readonly: field.readOnly() }', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'dxclick': function () { return $context.$data.activateEditor; }, 'zoom': function () { return $context.$data.zoom; }, 'css': function () { return { 'active': $context.$data.active(), 'readonly': $context.$data.field.readOnly() }; } }; });\naddToBindingsCache('style: style, text: text', function ($context, $element) { return { 'style': function () { return $context.$data.style; }, 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('value: field._editorValue, valueUpdate: \\'keypress\\', style: textStyle(), event: { blur: hideEditor, keyup: keypressAction }', function ($context, $element) { return { 'value': function () { return $context.$data.field._editorValue; }, 'valueUpdate': function () { return 'keypress'; }, 'style': function () { return $context.$data.textStyle(); }, 'event': function () { return { 'blur': $context.$data.hideEditor, 'keyup': $context.$data.keypressAction }; }, '_ko_property_writers': function () { return { 'value': function (_z) { Object($context.$data.field)._editorValue = _z; } }; } }; });\naddToBindingsCache('if: !active() || field.readOnly()', function ($context, $element) { return { 'if': function () { return !$context.$data.active() || $context.$data.field.readOnly(); } }; });\naddToBindingsCache('if: htmlValue()', function ($context, $element) { return { 'if': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('ifnot: htmlValue()', function ($context, $element) { return { 'ifnot': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('if: active() && !field.readOnly()', function ($context, $element) { return { 'if': function () { return $context.$data.active() && !$context.$data.field.readOnly(); } }; });\naddToBindingsCache('template: { name: editorTemplate, data: data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.editorTemplate, 'data': $context.$data.data }; } }; });\naddToBindingsCache('template: \\'dxrp-editing-field-image-editor\\'', function ($context, $element) { return { 'template': function () { return 'dxrp-editing-field-image-editor'; } }; });\naddToBindingsCache('foreach: cells', function ($context, $element) { return { 'foreach': function () { return $context.$data.cells; } }; });\naddToBindingsCache('attr: { \\'action\\': exportActionUri }, foreach: exportFormData', function ($context, $element) { return { 'attr': function () { return { 'action': $context.$data.exportActionUri }; }, 'foreach': function () { return $context.$data.exportFormData; } }; });\naddToBindingsCache('attr: {\\'name\\': name, \\'value\\': value}', function ($context, $element) { return { 'attr': function () { return { 'name': $context.$data.name, 'value': $context.$data.value }; } }; });\naddToBindingsCache('dxPopup: { width: popupWidth, height: popupHeight, title: getPopupTitle(), visible: popupVisible, showCloseButton: true, toolbarItems: popupButtons, wrapperAttr: { class: \\'dxrd-print-dialog dx-editors dx-widget\\' }, container: $root.getPopupContainer($element), position: { of: $root.getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': $context.$data.popupWidth, 'height': $context.$data.popupHeight, 'title': $context.$data.getPopupTitle(), 'visible': $context.$data.popupVisible, 'showCloseButton': true, 'toolbarItems': $context.$data.popupButtons, 'wrapperAttr': { 'class': 'dxrd-print-dialog dx-editors dx-widget' }, 'container': $context.$root.getPopupContainer($element), 'position': { 'of': $context.$root.getPopupContainer($element) } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'The browser sent the document to the printer.\\', \\'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Caption\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('The browser sent the document to the printer.', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Caption'); } }; });\naddToBindingsCache('text: printingTextPrefix', function ($context, $element) { return { 'text': function () { return $context.$data.printingTextPrefix; } }; });\naddToBindingsCache('click: printingLinkCallback, text: $root.getLocalization(\\'document in PDF format\\', \\'ASPxReportsStringId.WebDocumentViewer_Print_Popup_LinkText\\')', function ($context, $element) { return { 'click': function () { return $context.$data.printingLinkCallback; }, 'text': function () { return $context.$root.getLocalization('document in PDF format', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_LinkText'); } }; });\naddToBindingsCache('text: printingTextPostfix', function ($context, $element) { return { 'text': function () { return $context.$data.printingTextPostfix; } }; });\naddToBindingsCache('if: $data.printingTextPrefix', function ($context, $element) { return { 'if': function () { return $context.$data.printingTextPrefix; } }; });\naddToBindingsCache('if: $data.printingTextPostfix', function ($context, $element) { return { 'if': function () { return $context.$data.printingTextPostfix; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Export Options\\', \\'DevExpress.XtraReports.UI.XtraReport.ExportOptions\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Export Options', 'DevExpress.XtraReports.UI.XtraReport.ExportOptions'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('dxPropertyGrid: { target: model }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.model }; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(text, $data.textId), \\'aria-hidden\\': ko.unwrap($data.visible) ? \\'false\\' : \\'true\\', \\'aria-disabled\\': $data.disabled() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization($context.$data.text, $context.$data.textId), 'aria-hidden': $context.ko.unwrap($context.$data.visible) ? 'false' : 'true', 'aria-disabled': $context.$data.disabled() ? 'true' : 'false' }; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxrd-preview-export-to dxd-button-back-color dxd-state-normal dxd-icon-highlighted\\' }, disabled: $data.disabled(), items: items, cssClass: \\'dxrdp-export-to-menu\\', onItemClick: clickAction, onSubmenuShowing: $data.eventHandlers.onSubmenuShowing($root.getPopupContainer($element), $element), onSubmenuShown: $data.eventHandlers.onSubmenuShown, onSubmenuHiding: $data.eventHandlers.onSubmenuHiding, tabIndex: \\'-1\\' }, attr: { title: $root.getLocalization(text, $data.textId) }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxrd-preview-export-to dxd-button-back-color dxd-state-normal dxd-icon-highlighted' }, 'disabled': $context.$data.disabled(), 'items': $context.$data.items, 'cssClass': 'dxrdp-export-to-menu', 'onItemClick': $context.$data.clickAction, 'onSubmenuShowing': $context.$data.eventHandlers.onSubmenuShowing($context.$root.getPopupContainer($element), $element), 'onSubmenuShown': $context.$data.eventHandlers.onSubmenuShown, 'onSubmenuHiding': $context.$data.eventHandlers.onSubmenuHiding, 'tabIndex': '-1' }; }, 'attr': function () { return { 'title': $context.$root.getLocalization($context.$data.text, $context.$data.textId) }; } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return $context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('if: model', function ($context, $element) { return { 'if': function () { return $context.$data.model; } }; });\naddToBindingsCache('dxclick: function(_, event){ onClick(event); event.stopPropagation(); }, style: { top: topP, left: $data.leftP, right: $data.rightP, height: heightP, width: widthP }, css: { \\'dxrd-report-preview-brick-selected\\': $data.active, \\'dxrd-report-preview-brick-selectable\\': !($data.bricks) }', function ($context, $element) { return { 'dxclick': function () { return function (_, event) { $context.$data.onClick(event); event.stopPropagation(); }; }, 'style': function () { return { 'top': $context.$data.topP, 'left': $context.$data.leftP, 'right': $context.$data.rightP, 'height': $context.$data.heightP, 'width': $context.$data.widthP }; }, 'css': function () { return { 'dxrd-report-preview-brick-selected': $context.$data.active, 'dxrd-report-preview-brick-selectable': !($context.$data.bricks) }; } }; });\naddToBindingsCache('css: { \\'dxrdp-navigation-brick-drill-down\\' : !!navigation.drillDownKey, \\'dxrdp-navigation-brick-sorting\\' : !!navigation.sortData, \\'dxrdp-navigation-brick-sorting-desc\\': navigation.sortData && navigation.sortData.order === 1, \\'dxrdp-navigation-brick-sorting-asc\\': navigation.sortData && navigation.sortData.order === 2 }', function ($context, $element) { return { 'css': function () { return { 'dxrdp-navigation-brick-drill-down': !!$context.$data.navigation.drillDownKey, 'dxrdp-navigation-brick-sorting': !!$context.$data.navigation.sortData, 'dxrdp-navigation-brick-sorting-desc': $context.$data.navigation.sortData && $context.$data.navigation.sortData.order === 1, 'dxrdp-navigation-brick-sorting-asc': $context.$data.navigation.sortData && $context.$data.navigation.sortData.order === 2 }; } }; });\naddToBindingsCache('attr: {\\'aria-label\\': $parent.currentPageAriaLabelImgAlt($data.pageIndex) }, dxclick: clickToBrick, \\'brick-selection-prog\\': { page: $data, preview: $parent, click: function(pageIndex) { $parent.goToPage(pageIndex) } }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$parent.currentPageAriaLabelImgAlt($context.$data.pageIndex) }; }, 'dxclick': function () { return $context.$data.clickToBrick; }, 'brick-selection-prog': function () { return { 'page': $context.$data, 'preview': $context.$parent, 'click': function (pageIndex) { $context.$parent.goToPage(pageIndex); } }; } }; });\naddToBindingsCache('styleunit: { \\'width\\': width() + 2, \\'height\\': height() + 2 }, visible: pageLoading', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width() + 2, 'height': $context.$data.height() + 2 }; }, 'visible': function () { return $context.$data.pageLoading; } }; });\naddToBindingsCache('styleunit: { \\'paddingTop\\': height() / 2.3 }', function ($context, $element) { return { 'styleunit': function () { return { 'paddingTop': $context.$data.height() / 2.3 }; } }; });\naddToBindingsCache('text: loadingText', function ($context, $element) { return { 'text': function () { return $context.$data.loadingText; } }; });\naddToBindingsCache('attr: { src: displayImageSrc, \\'alt\\': $parent.currentPageAriaLabelImgAlt($data.pageIndex) }', function ($context, $element) { return { 'attr': function () { return { 'src': $context.$data.displayImageSrc, 'alt': $context.$parent.currentPageAriaLabelImgAlt($context.$data.pageIndex) }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.editingFieldsKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.editingFieldsKeyboardHelper; } }; });\naddToBindingsCache('if: $data.navigation', function ($context, $element) { return { 'if': function () { return $context.$data.navigation; } }; });\naddToBindingsCache('foreach: clickableBricks', function ($context, $element) { return { 'foreach': function () { return $context.$data.clickableBricks; } }; });\naddToBindingsCache('template: { name: \"dxrd-page-brick-clickable\", data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-page-brick-clickable', 'data': $context.$data }; } }; });\naddToBindingsCache('dxclick: activateEditor, css: parentPopupClass', function ($context, $element) { return { 'dxclick': function () { return $context.$data.activateEditor; }, 'css': function () { return $context.$data.parentPopupClass; } }; });\naddToBindingsCache('dxPainter: $data.getPainter()', function ($context, $element) { return { 'dxPainter': function () { return $context.$data.getPainter(); } }; });\naddToBindingsCache('dxPopup: { width: contentData.containerStyle().width, height: contentData.containerStyle().height, position: { boundary: $root.getPopupContainer($element), of: getPositionTarget($element), collision: \\'flipfit flipfit\\' }, container: $root.getPopupContainer($element), showTitle: false, target: $root.getPopupContainer($element), deferRendering: false, hideOnOutsideClick: true, showCloseButton: false, onContentReady: onContentReady, onHiding: onHiding, onShown: onShown, shading: shading, wrapperAttr: { class: \\'dx-picture-edit-popup-content dx-picture-edit-popup-content-fullscreen\\' }, animation: { show: { type: \\'slide\\', duration: 0, to: { opacity: 1 }, from: { opacity: 0 } }, hide: { type: \\'fade\\', duration: 100, to: { opacity: 0 }, from: { opacity: 1 } } }, visible: isVisible($element) }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': $context.$data.contentData.containerStyle().width, 'height': $context.$data.contentData.containerStyle().height, 'position': { 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.getPositionTarget($element), 'collision': 'flipfit flipfit' }, 'container': $context.$root.getPopupContainer($element), 'showTitle': false, 'target': $context.$root.getPopupContainer($element), 'deferRendering': false, 'hideOnOutsideClick': true, 'showCloseButton': false, 'onContentReady': $context.$data.onContentReady, 'onHiding': $context.$data.onHiding, 'onShown': $context.$data.onShown, 'shading': $context.$data.shading, 'wrapperAttr': { 'class': 'dx-picture-edit-popup-content dx-picture-edit-popup-content-fullscreen' }, 'animation': { 'show': { 'type': 'slide', 'duration': 0, 'to': { 'opacity': 1 }, 'from': { 'opacity': 0 } }, 'hide': { 'type': 'fade', 'duration': 100, 'to': { 'opacity': 0 }, 'from': { 'opacity': 1 } } }, 'visible': $context.$data.isVisible($element) }; } }; });\naddToBindingsCache('template: { name: \\'dx-picture-editing-popup\\', data: $data.getPopupData() }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-picture-editing-popup', 'data': $context.$data.getPopupData() }; } }; });\naddToBindingsCache('if: showContent', function ($context, $element) { return { 'if': function () { return $context.$data.showContent; } }; });\naddToBindingsCache('template: { name: contentTemplate, data: contentData, afterRender: $data.renderedHandler }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.contentData, 'afterRender': $context.$data.renderedHandler }; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(\\'Zoom\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox\\'), \\'aria-hidden\\': ko.unwrap($data.visible) ? \\'false\\' : \\'true\\', \\'aria-disabled\\': $data.disabled() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization('Zoom', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox'), 'aria-hidden': $context.ko.unwrap($context.$data.visible) ? 'false' : 'true', 'aria-disabled': $context.$data.disabled() ? 'true' : 'false' }; } }; });\naddToBindingsCache('dxSelectBox: { items: zoomItems, value: $data.zoom, displayExpr: displayExpr, displayCustomValue: true, acceptCustomValue: true, onCustomItemCreating: onCustomItemCreating, useItemTextAsTitle: true, width: 140, dropDownOptions: { container: $root.getPopupContainer($element), position: { my: \\'left top\\', at: \\'left bottom\\', of: $element }, wrapperAttr: { class: \\'dx-zoom-selectbox-popup-wrapper\\' } }, tabIndex: \\'-1\\', inputAttr: { \\'aria-label\\': $root.getLocalization(\\'Zoom\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox\\') }}', function ($context, $element) { return { 'dxSelectBox': function () { return { 'items': $context.$data.zoomItems, 'value': $context.$data.zoom, 'displayExpr': $context.$data.displayExpr, 'displayCustomValue': true, 'acceptCustomValue': true, 'onCustomItemCreating': $context.$data.onCustomItemCreating, 'useItemTextAsTitle': true, 'width': 140, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'my': 'left top', 'at': 'left bottom', 'of': $element }, 'wrapperAttr': { 'class': 'dx-zoom-selectbox-popup-wrapper' } }, 'tabIndex': '-1', 'inputAttr': { 'aria-label': $context.$root.getLocalization('Zoom', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox') } }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', direction: \\'horizontal\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'direction': 'horizontal', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('keyDownActions: actionLists, accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'keyDownActions': function () { return $context.$data.actionLists; }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('visible: active() && visible(), accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'visible': function () { return $context.$data.active() && $context.$data.visible(); }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header'); } }; });\naddToBindingsCache('dxSearchEditor: { searchModel: $data, inputAttr: { \\'type\\': \\'search\\', \\'title\\': $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\') }}', function ($context, $element) { return { 'dxSearchEditor': function () { return { 'searchModel': $context.$data, 'inputAttr': { 'type': 'search', 'title': $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header') } }; } }; });\naddToBindingsCache('dxCheckBox: { value: matchCase, text: $root.getLocalization(\\'Match case\\', \\'ASPxReportsStringId.SearchDialog_Case\\')}', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.matchCase, 'text': $context.$root.getLocalization('Match case', 'ASPxReportsStringId.SearchDialog_Case') }; } }; });\naddToBindingsCache('dxCheckBox: { value: matchWholeWord, text: $root.getLocalization(\\'Match whole word only\\', \\'ASPxReportsStringId.SearchDialog_WholeWord\\')}', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.matchWholeWord, 'text': $context.$root.getLocalization('Match whole word only', 'ASPxReportsStringId.SearchDialog_WholeWord') }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Search result\\', \\'ASPxReportsStringId.WebDocumentViewer_SearchResultText\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Search result', 'ASPxReportsStringId.WebDocumentViewer_SearchResultText'); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: $data.loading }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': $context.$data.loading }; } }; });\naddToBindingsCache('dxList: { dataSource: searchResultDataSource, pageLoadMode: \\'scrollBottom\\', focusStateEnabled:false, hoverStateEnabled:false, onItemRendered: onItemRendered, noDataText: loading() ? \\'\\' : noResultText(), encodeNoDataText: true, visible: !loading() }', function ($context, $element) { return { 'dxList': function () { return { 'dataSource': $context.$data.searchResultDataSource, 'pageLoadMode': 'scrollBottom', 'focusStateEnabled': false, 'hoverStateEnabled': false, 'onItemRendered': $context.$data.onItemRendered, 'noDataText': $context.$data.loading() ? '' : $context.$data.noResultText(), 'encodeNoDataText': true, 'visible': !$context.$data.loading() }; } }; });\naddToBindingsCache('dxAction: { model: $data, action: $parent.itemClickAction }, attr: {\\'aria-label\\': $data.data.text + \\', \\' + $root.dx._static.formatSearchResult($data.data) + \\', \\' + ($parent.searchResult().indexOf($data.data) + 1) + \\' of \\' + $parent.searchResult().length }', function ($context, $element) { return { 'dxAction': function () { return { 'model': $context.$data, 'action': $context.$parent.itemClickAction }; }, 'attr': function () { return { 'aria-label': $context.$data.data.text + ', ' + $context.$root.dx._static.formatSearchResult($context.$data.data) + ', ' + ($context.$parent.searchResult().indexOf($context.$data.data) + 1) + ' of ' + $context.$parent.searchResult().length }; } }; });\naddToBindingsCache('text: $data.data.text', function ($context, $element) { return { 'text': function () { return $context.$data.data.text; } }; });\naddToBindingsCache('text: $root.dx._static.formatSearchResult($data.data)', function ($context, $element) { return { 'text': function () { return $context.$root.dx._static.formatSearchResult($context.$data.data); } }; });\naddToBindingsCache('visible: visible, css: $data.cssClasses, accessibilityKeyboardHelper: $data.progressBarAccessibility', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'css': function () { return $context.$data.cssClasses; }, 'accessibilityKeyboardHelper': function () { return $context.$data.progressBarAccessibility; } }; });\naddToBindingsCache('style : { width: progress() + \\'%\\' }', function ($context, $element) { return { 'style': function () { return { 'width': $context.$data.progress() + '%' }; } }; });\naddToBindingsCache('text: cancelText, visible: $data.cancelVisible, dxAction: { model: $data, action: function() { $data.stop && stop(); }}', function ($context, $element) { return { 'text': function () { return $context.$data.cancelText; }, 'visible': function () { return $context.$data.cancelVisible; }, 'dxAction': function () { return { 'model': $context.$data, 'action': function () { $context.$data.stop && $context.$data.stop(); } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Preview Parameters\\', \\'ASPxReportsStringId.ReportDesigner_Preview_ParametersTitle\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Preview Parameters', 'ASPxReportsStringId.ReportDesigner_Preview_ParametersTitle'); } }; });\naddToBindingsCache('text: $root.getLocalization(\\'The report does not contain any parameters.\\', \\'ASPxReportsStringId.WebDocumentViewer_NoParameters\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('The report does not contain any parameters.', 'ASPxReportsStringId.WebDocumentViewer_NoParameters'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }, dxValidationGroup: {}, accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; }, 'dxValidationGroup': function () { return {}; }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('dxLoadIndicator: { visible: model.parametersLoading }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': $context.$data.model.parametersLoading }; } }; });\naddToBindingsCache('dxButton: { text: $root.getLocalization(\\'Reset\\', \\'ASPxReportsStringId.ParametersPanel_Reset\\'), onClick: function() { model.restore(); } }', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$root.getLocalization('Reset', 'ASPxReportsStringId.ParametersPanel_Reset'), 'onClick': function () { $context.$data.model.restore(); } }; } }; });\naddToBindingsCache('dxButton: { text: $root.getLocalization(\\'Submit\\', \\'ASPxReportsStringId.ParametersPanel_Submit\\'), onClick: function(params) { model.validateAndSubmit(params); } }', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$root.getLocalization('Submit', 'ASPxReportsStringId.ParametersPanel_Submit'), 'onClick': function (params) { $context.$data.model.validateAndSubmit(params); } }; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(\\'Pager\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox\\') , \\'aria-hidden\\': ko.unwrap($data.visible) ? \\'false\\' : \\'true\\', \\'aria-disabled\\': $data.disabled() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization('Pager', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox'), 'aria-hidden': $context.ko.unwrap($context.$data.visible) ? 'false' : 'true', 'aria-disabled': $context.$data.disabled() ? 'true' : 'false' }; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: pageItems, value: selectedItem, opened: opened, displayExpr: displayExpr, useItemTextAsTitle: true, onFocusOut: focusOut, onKeyUp: keyUp, itemTemplate: itemTemplate, searchMode: searchMode, searchEnabled: searchEnabled, searchTimeout: searchTimeout, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element), wrapperAttr: { class: \\'dx-page-selectbox-popup-wrapper\\' }, }, tabIndex: \\'-1\\', inputAttr: { \\'aria-label\\': $root.getLocalization(\\'Pager\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox\\') } }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$data.pageItems, 'value': $context.$data.selectedItem, 'opened': $context.$data.opened, 'displayExpr': $context.$data.displayExpr, 'useItemTextAsTitle': true, 'onFocusOut': $context.$data.focusOut, 'onKeyUp': $context.$data.keyUp, 'itemTemplate': $context.$data.itemTemplate, 'searchMode': $context.$data.searchMode, 'searchEnabled': $context.$data.searchEnabled, 'searchTimeout': $context.$data.searchTimeout, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'wrapperAttr': { 'class': 'dx-page-selectbox-popup-wrapper' } }, 'tabIndex': '-1', 'inputAttr': { 'aria-label': $context.$root.getLocalization('Pager', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox') } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Document Map\\', \\'ASPxReportsStringId.DocumentViewer_RibbonCommandText_DocumentMap\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Document Map', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_DocumentMap'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }, accessibilityKeyboardHelper: $parent.keyboardHelper', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; }, 'accessibilityKeyboardHelper': function () { return $context.$parent.keyboardHelper; } }; });\naddToBindingsCache('treelist: documentMapOptions', function ($context, $element) { return { 'treelist': function () { return $context.$data.documentMapOptions; } }; });\naddToBindingsCache('if: searchText().length', function ($context, $element) { return { 'if': function () { return $context.$data.searchText().length; } }; });\naddToBindingsCache('if: (model && !model.isEmpty())', function ($context, $element) { return { 'if': function () { return ($context.$data.model && !$context.$data.model.isEmpty()); } }; });\naddToBindingsCache('if: (!model || model.isEmpty())', function ($context, $element) { return { 'if': function () { return (!$context.$data.model || $context.$data.model.isEmpty()); } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: $data.propertyGrid }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data.propertyGrid }; } }; });\naddToBindingsCache('dxTemplate : { name: \\'item\\' }', function () { return { dxTemplate: { name: 'item' } }; });\naddToBindingsCache('visible: reportPreview.previewVisible, cssArray: [ $data.rootStyle , { \\'dx-rtl\\' : $data.rtl, \\'dx-ltr\\': !$data.rtl } ]', function ($context, $element) { return { 'visible': function () { return $context.$data.reportPreview.previewVisible; }, 'cssArray': function () { return [$context.$data.rootStyle, { 'dx-rtl': $context.$data.rtl, 'dx-ltr': !$context.$data.rtl }]; } }; });\naddToBindingsCache('textCopier, css: { \\'dx-rtl\\': $data.rtlReport, \\'dxrp-editing-fields-hightlighted\\': editingFieldsHighlighted }', function ($context, $element) { return { 'textCopier': function () { return undefined; }, 'css': function () { return { 'dx-rtl': $context.$data.rtlReport, 'dxrp-editing-fields-hightlighted': $context.$data.editingFieldsHighlighted }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.previewBrickKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.previewBrickKeyboardHelper; } }; });\naddToBindingsCache('autoFit: { autoFitBy: $parent.autoFitBy, zoom: zoom, width: originalWidth, height: originalHeight, rightPanelWidth: $root.tabPanel.width, previewSize: $parent.previewSize, brickLoading: brickLoading }, styleunit: { width: width, height: height }', function ($context, $element) { return { 'autoFit': function () { return { 'autoFitBy': $context.$parent.autoFitBy, 'zoom': $context.$data.zoom, 'width': $context.$data.originalWidth, 'height': $context.$data.originalHeight, 'rightPanelWidth': $context.$root.tabPanel.width, 'previewSize': $context.$parent.previewSize, 'brickLoading': $context.$data.brickLoading }; }, 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height }; } }; });\naddToBindingsCache('lazyImages: { enabled: showMultipagePreview, updateCallback: onSizeChanged }', function ($context, $element) { return { 'lazyImages': function () { return { 'enabled': $context.$data.showMultipagePreview, 'updateCallback': $context.$data.onSizeChanged }; } }; });\naddToBindingsCache('styleunit: { \\'width\\': width(), \\'height\\': height() }, toView: { active: active }, css : { \\'dxrd-report-preview-active\\': active }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width(), 'height': $context.$data.height() }; }, 'toView': function () { return { 'active': $context.$data.active }; }, 'css': function () { return { 'dxrd-report-preview-active': $context.$data.active }; } }; });\naddToBindingsCache('css: { \\'dxrd-visually-hidden\\': currentPage() }', function ($context, $element) { return { 'css': function () { return { 'dxrd-visually-hidden': $context.$data.currentPage() }; } }; });\naddToBindingsCache('text: emptyDocumentCaption()', function ($context, $element) { return { 'text': function () { return $context.$data.emptyDocumentCaption(); } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(\\'Clipboard\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaClipboard\\') }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization('Clipboard', 'ASPxReportsStringId.WebDocumentViewer_AriaClipboard') }; } }; });\naddToBindingsCache('dxViewerExport: $data', function ($context, $element) { return { 'dxViewerExport': function () { return $context.$data; } }; });\naddToBindingsCache('with: progressBar', function ($context, $element) { return { 'with': function () { return $context.$data.progressBar; } }; });\naddToBindingsCache('template: \\'dxrd-preview-progress-bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-preview-progress-bar'; } }; });\naddToBindingsCache('if: !showMultipagePreview()', function ($context, $element) { return { 'if': function () { return !$context.$data.showMultipagePreview(); } }; });\naddToBindingsCache('with: currentPage', function ($context, $element) { return { 'with': function () { return $context.$data.currentPage; } }; });\naddToBindingsCache('if: pageLoading() || (!pageLoading() && displayImageSrc())', function ($context, $element) { return { 'if': function () { return $context.$data.pageLoading() || (!$context.$data.pageLoading() && $context.$data.displayImageSrc()); } }; });\naddToBindingsCache('template: { name: \\'dxrd-preview-page\\', afterRender: function() { $parent.delayedInit() } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-page', 'afterRender': function () { $context.$parent.delayedInit(); } }; } }; });\naddToBindingsCache('if: showMultipagePreview() && !!currentPage()', function ($context, $element) { return { 'if': function () { return $context.$data.showMultipagePreview() && !!$context.$data.currentPage(); } }; });\naddToBindingsCache('foreach: {data: pages, afterRender: function() { $parent.model.delayedInit() } }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.pages, 'afterRender': function () { $context.$parent.model.delayedInit(); } }; } }; });\naddToBindingsCache('lazy: { if: pageLoading() || (!pageLoading() && displayImageSrc()) }', function ($context, $element) { return { 'lazy': function () { return { 'if': $context.$data.pageLoading() || (!$context.$data.pageLoading() && $context.$data.displayImageSrc()) }; } }; });\naddToBindingsCache('template: \\'dxrd-preview-page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-preview-page'; } }; });\naddToBindingsCache('cacheElement: { action: function(element) { $data._$element = element; } }, dxEllipsisEditor: { value: _displayText, readOnly:true, inputAttr: { \\'aria-label\\': $parent.displayName }, openOnFieldClick: true, buttonAction: function() { $data._showPopup(); } }', function ($context, $element) { return { 'cacheElement': function () { return { 'action': function (element) { $context.$data._$element = element; } }; }, 'dxEllipsisEditor': function () { return { 'value': $context.$data._displayText, 'readOnly': true, 'inputAttr': { 'aria-label': $context.$parent.displayName }, 'openOnFieldClick': true, 'buttonAction': function () { $context.$data._showPopup(); } }; } }; });\naddToBindingsCache('dxPopup: { width: \\'max-content\\', height: $root.calculateWithZoomFactor(362), wrapperAttr: { class: \\'dxrv-daterange-editor-popup-wrapper\\' }, position: { my: \\'right top\\', at: \\'right bottom\\', of: $data._$element, collision: \\'fit fit\\', offset: \\'1 -1\\' }, container: $root.getPopupContainer($element), target: $root.getPopupContainer($element), showTitle: false, showCloseButton: false, hideOnOutsideClick: true, animation: {}, shading: false, visible: _popupVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 'max-content', 'height': $context.$root.calculateWithZoomFactor(362), 'wrapperAttr': { 'class': 'dxrv-daterange-editor-popup-wrapper' }, 'position': { 'my': 'right top', 'at': 'right bottom', 'of': $context.$data._$element, 'collision': 'fit fit', 'offset': '1 -1' }, 'container': $context.$root.getPopupContainer($element), 'target': $context.$root.getPopupContainer($element), 'showTitle': false, 'showCloseButton': false, 'hideOnOutsideClick': true, 'animation': {}, 'shading': false, 'visible': $context.$data._popupVisible }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'always\\', direction: \\'horizontal\\', useNative: false, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'always', 'direction': 'horizontal', 'useNative': false, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.dialogKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.dialogKeyboardHelper; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.dialogKeyboardHelper.predefinedDateRangesKeyboardHelper, dxScrollView: { showScrollbar: \\'onHover\\', scrollByContent: false, bounceEnabled: false, useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.dialogKeyboardHelper.predefinedDateRangesKeyboardHelper; }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'scrollByContent': false, 'bounceEnabled': false, 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('attr: { \\'aria-selected\\': $parent._isSelected($data) }, css: { \\'dxd-state-selected\\': $parent._isSelected($data) }, dxAction: { model: $data, action: function() { $parent.applyDate($data.range(), true) }}', function ($context, $element) { return { 'attr': function () { return { 'aria-selected': $context.$parent._isSelected($context.$data) }; }, 'css': function () { return { 'dxd-state-selected': $context.$parent._isSelected($context.$data) }; }, 'dxAction': function () { return { 'model': $context.$data, 'action': function () { $context.$parent.applyDate($context.$data.range(), true); } }; } }; });\naddToBindingsCache('dxCalendar: { value: value, cellTemplate: \\'select_cell\\', height: height, min: min }', function ($context, $element) { return { 'dxCalendar': function () { return { 'value': $context.$data.value, 'cellTemplate': 'select_cell', 'height': $context.$data.height, 'min': $context.$data.min }; } }; });\naddToBindingsCache('css: { \\'dxd-back-accented\\': $parent.inRange(date) }', function ($context, $element) { return { 'css': function () { return { 'dxd-back-accented': $context.$parent.inRange($context.$data.date) }; } }; });\naddToBindingsCache('dxrvDateRangeEditor: {value: $data.value() }', function ($context, $element) { return { 'dxrvDateRangeEditor': function () { return { 'value': $context.$data.value() }; } }; });\naddToBindingsCache('template: { name: popupTemplate, data: popupModel }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.popupTemplate, 'data': $context.$data.popupModel }; } }; });\naddToBindingsCache('dxTemplate:{ name:\\'select_cell\\' }', function () { return { dxTemplate: { name: 'select_cell' } }; });\naddToBindingsCache('template: { name: \\'dxrd-propertieseditor\\', data: viewmodel }, css: { \\'dxrd-parameters-border\\' : !$data.hideBorder, \\'dxrd-parameters-horizontal\\' : $data.showHorizontally, }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-propertieseditor', 'data': $context.$data.viewmodel }; }, 'css': function () { return { 'dxrd-parameters-border': !$context.$data.hideBorder, 'dxrd-parameters-horizontal': $context.$data.showHorizontally }; } }; });\naddToBindingsCache('dxTagBox: $parent.getOptions({ dataSource: $data.dataSource, searchEnabled: true, useItemTextAsTitle: true, searchExpr: $data.searchExpr || [\\'displayValue\\'], value: $data.value, displayExpr: $data.displayExpr || \\'displayValue\\', valueExpr: $data.valueExpr || \\'value\\', multiline: false, showSelectionControls: true, showDropDownButton: !!$data.showDropDownButton, selectAllMode: \\'allPages\\', selectedItems: $data.selectedItems, inputAttr: { \\'aria-label\\': $parent.displayName }, disabled: $parent.disabled, selectAllText: $root.getLocalization(\\'Select All\\', \\'AnalyticsCoreStringId.SelectAll\\'), placeholder: $root.dx._static.selectPlaceholder(), maxDisplayedTags: $data.maxDisplayedTags, showMultiTagOnly: true, dropDownOptions: { container: $root.getPopupContainer($element), position: { boundary: $root.getPopupContainer($element), collision: \\'flipfit flipfit\\', of: $element, at: \\'bottom\\', my: \\'top\\' } } }), dxValidator: { validationRules: $parent.validationRules || [] }', function ($context, $element) { return { 'dxTagBox': function () { return $context.$parent.getOptions({ 'dataSource': $context.$data.dataSource, 'searchEnabled': true, 'useItemTextAsTitle': true, 'searchExpr': $context.$data.searchExpr || ['displayValue'], 'value': $context.$data.value, 'displayExpr': $context.$data.displayExpr || 'displayValue', 'valueExpr': $context.$data.valueExpr || 'value', 'multiline': false, 'showSelectionControls': true, 'showDropDownButton': !!$context.$data.showDropDownButton, 'selectAllMode': 'allPages', 'selectedItems': $context.$data.selectedItems, 'inputAttr': { 'aria-label': $context.$parent.displayName }, 'disabled': $context.$parent.disabled, 'selectAllText': $context.$root.getLocalization('Select All', 'AnalyticsCoreStringId.SelectAll'), 'placeholder': $context.$root.dx._static.selectPlaceholder(), 'maxDisplayedTags': $context.$data.maxDisplayedTags, 'showMultiTagOnly': true, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'boundary': $context.$root.getPopupContainer($element), 'collision': 'flipfit flipfit', 'of': $element, 'at': 'bottom', 'my': 'top' } } }); }, 'dxValidator': function () { return { 'validationRules': $context.$parent.validationRules || [] }; } }; });\naddToBindingsCache('dxCollectionEditor: { values: value, info: info, level: level, displayName: $root.getLocalization(displayName) }', function ($context, $element) { return { 'dxCollectionEditor': function () { return { 'values': $context.$data.value, 'info': $context.$data.info, 'level': $context.$data.level, 'displayName': $context.$root.getLocalization($context.$data.displayName) }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: value, level: editor.level + 1 }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.value, 'level': $context.$data.editor.level + 1 }; } }; });\naddToBindingsCache('if: value', function ($context, $element) { return { 'if': function () { return $context.$data.value; } }; });\naddToBindingsCache('dxdAccordion: { collapsed: $data.collapsed, alwaysShow: $data.hideCollapsingImage }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed, 'alwaysShow': $context.$data.hideCollapsingImage }; } }; });\naddToBindingsCache('css: { \\'dxrd-empty-header\\': $data.hideEditorHeader }', function ($context, $element) { return { 'css': function () { return { 'dxrd-empty-header': $context.$data.hideEditorHeader }; } }; });\naddToBindingsCache('attr: { role: isComplexEditor && \\'tab\\', \\'id\\': isComplexEditor && getIdByDisplayName(\\'dxrd-accordion-trigger\\'), \\'aria-controls\\': isComplexEditor && getIdByDisplayName(\\'dxrd-accordion-pannel\\'), \\'aria-expanded\\': isComplexEditor && (!collapsed() ? \\'true\\' : \\'false\\') }, css: { \\'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented\\': isComplexEditor, \\'dxrd-vertical-label\\': $data.editorOptions && $data.editorOptions.hasVerticalLabel }', function ($context, $element) { return { 'attr': function () { return { 'role': $context.$data.isComplexEditor && 'tab', 'id': $context.$data.isComplexEditor && $context.$data.getIdByDisplayName('dxrd-accordion-trigger'), 'aria-controls': $context.$data.isComplexEditor && $context.$data.getIdByDisplayName('dxrd-accordion-pannel'), 'aria-expanded': $context.$data.isComplexEditor && (!$context.$data.collapsed() ? 'true' : 'false') }; }, 'css': function () { return { 'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented': $context.$data.isComplexEditor, 'dxrd-vertical-label': $context.$data.editorOptions && $context.$data.editorOptions.hasVerticalLabel }; } }; });\naddToBindingsCache('styleunit: padding, css: { \\'dx-accordion-empty\\': templateName === \\'dx-emptyHeader\\', \\'dxd-back-secondary\\': $data.isGroupLabel, \\'dx-accordion-hide-collapsing-image\\': $data.hideCollapsingImage }', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-accordion-empty': $context.$data.templateName === 'dx-emptyHeader', 'dxd-back-secondary': $context.$data.isGroupLabel, 'dx-accordion-hide-collapsing-image': $context.$data.hideCollapsingImage }; } }; });\naddToBindingsCache('ifnot: $data.hideEditorHeader', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hideEditorHeader; } }; });\naddToBindingsCache('ifnot: $data.hideCollapsingImage', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hideCollapsingImage; } }; });\naddToBindingsCache('zoom: painter.scale', function ($context, $element) { return { 'zoom': function () { return $context.$data.painter.scale; } }; });\naddToBindingsCache('dxPopup: { width: 48, height: \\'auto\\', wrapperAttr: { class: \\'dx-picture-editing-active\\' }, position:{ my: \\'left top\\', at: \\'right top\\', boundary: $root.getPopupContainer($element), of: $data.$element, collision: \\'fit fit\\', offset: \\'1 -1\\' }, container: shadingEnabled() ? \\'.dx-overlay-wrapper.dx-picture-edit-popup-content-fullscreen\\' : $root.getPopupContainer($element), target: $root.getPopupContainer($element), showTitle: false, onContentReady: function(e) { e.component && e.component.registerKeyHandler(\\'tab\\', function(_) { $data.active(false); }); }, showCloseButton: false, animation: {}, shading: false, visible: $data.active }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 48, 'height': 'auto', 'wrapperAttr': { 'class': 'dx-picture-editing-active' }, 'position': { 'my': 'left top', 'at': 'right top', 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.$element, 'collision': 'fit fit', 'offset': '1 -1' }, 'container': $context.$data.shadingEnabled() ? '.dx-overlay-wrapper.dx-picture-edit-popup-content-fullscreen' : $context.$root.getPopupContainer($element), 'target': $context.$root.getPopupContainer($element), 'showTitle': false, 'onContentReady': function (e) { e.component && e.component.registerKeyHandler('tab', function (_) { $context.$data.active(false); }); }, 'showCloseButton': false, 'animation': {}, 'shading': false, 'visible': $context.$data.active }; } }; });\naddToBindingsCache('foreach: $data.actions', function ($context, $element) { return { 'foreach': function () { return $context.$data.actions; } }; });\naddToBindingsCache('dxclick: $data.action, attr: { title: title }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; }, 'attr': function () { return { 'title': $context.$data.title }; } }; });\naddToBindingsCache('template: { name: icon, afterRender: $data.renderedHandler }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.icon, 'afterRender': $context.$data.renderedHandler }; } }; });\naddToBindingsCache('zoom: scale', function ($context, $element) { return { 'zoom': function () { return $context.$data.scale; } }; });\naddToBindingsCache('dxPopover: { width: width, height: height, wrapperAttr: { class: \\'dx-picture-edit-popup-content\\' }, hideOnOutsideClick: $data.hideOnOutsideClick, onShown: $data.onShown, onContentReady: $data.onContentReady, position: { my: \\'left top\\', at: \\'right top\\', boundary: $root.getPopupContainer($element), of: getPositionTarget($element), collision: \\'flipfit fit\\', offset: \\'-10 0\\' }, container: getPositionTarget($element), showTitle: false, target: getPositionTarget($element), showCloseButton: false, shading: false, animation: {}, visible: visible }', function ($context, $element) { return { 'dxPopover': function () { return { 'width': $context.$data.width, 'height': $context.$data.height, 'wrapperAttr': { 'class': 'dx-picture-edit-popup-content' }, 'hideOnOutsideClick': $context.$data.hideOnOutsideClick, 'onShown': $context.$data.onShown, 'onContentReady': $context.$data.onContentReady, 'position': { 'my': 'left top', 'at': 'right top', 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.getPositionTarget($element), 'collision': 'flipfit fit', 'offset': '-10 0' }, 'container': $context.$data.getPositionTarget($element), 'showTitle': false, 'target': $context.$data.getPositionTarget($element), 'showCloseButton': false, 'shading': false, 'animation': {}, 'visible': $context.$data.visible }; } }; });\naddToBindingsCache('text: brushWidthText', function ($context, $element) { return { 'text': function () { return $context.$data.brushWidthText; } }; });\naddToBindingsCache('dxSlider: { min: 1, max: 9, value: $data.lineWidth, label: { visible: true }, tooltip: { enabled: true, showMode: \\'always\\', position: \\'bottom\\' } }', function ($context, $element) { return { 'dxSlider': function () { return { 'min': 1, 'max': 9, 'value': $context.$data.lineWidth, 'label': { 'visible': true }, 'tooltip': { 'enabled': true, 'showMode': 'always', 'position': 'bottom' } }; } }; });\naddToBindingsCache('text: brushColorText', function ($context, $element) { return { 'text': function () { return $context.$data.brushColorText; } }; });\naddToBindingsCache('foreach: $data.colors', function ($context, $element) { return { 'foreach': function () { return $context.$data.colors; } }; });\naddToBindingsCache('css: { selected: $data.isSelected }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; } }; });\naddToBindingsCache('style: { background: $data.value }, dxclick: $data.action', function ($context, $element) { return { 'style': function () { return { 'background': $context.$data.value }; }, 'dxclick': function () { return $context.$data.action; } }; });\naddToBindingsCache('text: sizeModeText', function ($context, $element) { return { 'text': function () { return $context.$data.sizeModeText; } }; });\naddToBindingsCache('foreach: { data: sizeModeValues }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.sizeModeValues }; } }; });\naddToBindingsCache('css: { selected: isSelected }, template: $data.iconTemplate, dxclick: $data.action, attr: { title: $data.attrTitle }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; }, 'template': function () { return $context.$data.iconTemplate; }, 'dxclick': function () { return $context.$data.action; }, 'attr': function () { return { 'title': $context.$data.attrTitle }; } }; });\naddToBindingsCache('text: alignmentText', function ($context, $element) { return { 'text': function () { return $context.$data.alignmentText; } }; });\naddToBindingsCache('foreach: { data: alignmentValues }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.alignmentValues }; } }; });\naddToBindingsCache('css: { selected: isSelected }, template: $data.iconTemplate, dxclick: $data.action, , attr: { title: $data.attrTitle }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; }, 'template': function () { return $context.$data.iconTemplate; }, 'dxclick': function () { return $context.$data.action; }, '': function () { return undefined; }, 'attr': function () { return { 'title': $context.$data.attrTitle }; } }; });\naddToBindingsCache('styleunit: { width: contentWidth }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.contentWidth }; } }; });\naddToBindingsCache('dxTextBox: { value: filter, valueChangeEvent: \\'keyup\\', placeholder: searchPlaceholder(), showClearButton: true }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.filter, 'valueChangeEvent': 'keyup', 'placeholder': $context.$data.searchPlaceholder(), 'showClearButton': true }; } }; });\naddToBindingsCache('styleunit: { width: contentWidth }, dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.contentWidth }; }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('styleunit: { width: $parent.width + 10 }, visible: visible, click: function() { $parent.action($data); }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$parent.width + 10 }; }, 'visible': function () { return $context.$data.visible; }, 'click': function () { return function () { $context.$parent.action($context.$data); }; } }; });\naddToBindingsCache('styleunit: { width: $parent.width, height: $parent.height }, style: { backgroundImage: \\'url(\\' + ($data.url || $data.data) + \\')\\' }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$parent.width, 'height': $context.$parent.height }; }, 'style': function () { return { 'backgroundImage': 'url(' + ($context.$data.url || $context.$data.data) + ')' }; } }; });\naddToBindingsCache('searchHighlighting: { text: $data.text, textToSearch: $parent.filter }, attr: { title: $data.text }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.text, 'textToSearch': $context.$parent.filter }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('text: $data.text, attr: { title: $data.text }', function ($context, $element) { return { 'text': function () { return $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('template: { if: $data.template, name: $data.template, data: $data.templateOptions }', function ($context, $element) { return { 'template': function () { return { 'if': $context.$data.template, 'name': $context.$data.template, 'data': $context.$data.templateOptions }; } }; });\naddToBindingsCache('template: { name: contentTemplate, data: contentData }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.contentData }; } }; });\naddToBindingsCache('template: \\'dx-picture-editing-imagespicker\\'', function ($context, $element) { return { 'template': function () { return 'dx-picture-editing-imagespicker'; } }; });\naddToBindingsCache('foreach: images', function ($context, $element) { return { 'foreach': function () { return $context.$data.images; } }; });\naddToBindingsCache('if: $data.text', function ($context, $element) { return { 'if': function () { return $context.$data.text; } }; });\naddToBindingsCache('if: $parent.filterEnabled', function ($context, $element) { return { 'if': function () { return $context.$parent.filterEnabled; } }; });\naddToBindingsCache('ifnot: $parent.filterEnabled', function ($context, $element) { return { 'ifnot': function () { return $context.$parent.filterEnabled; } }; });\naddToBindingsCache('dxSelectBox: getOptions({ dataSource: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, useItemTextAsTitle: true, noDataText: $root.dx._static.noDataText(), encodeNoDataText: true, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: $data.validationRules || [] }', function ($context, $element) { return { 'dxSelectBox': function () { return $context.$data.getOptions({ 'dataSource': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'useItemTextAsTitle': true, 'noDataText': $context.$root.dx._static.noDataText(), 'encodeNoDataText': true, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\n","/**\n* DevExpress HTML/JS Reporting (dx-viewer-templates.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-checkboxcustomglyph': '
',\n 'dxrv-preview-date-range-mobile': '
',\n 'dxrd-preview-page-mobile': '
1 }, visible: !$root.slideOptions.readerMode\">
',\n 'dxrd-page-brick-mobile': '
',\n 'dxrdp-search-mobile': '
',\n 'dxrd-preview-export-to-mobile': '
',\n 'dxrdp-surface-mobile-bottom': '
',\n 'dxrdp-pages-mobile': '
',\n 'dxrd-menu-export-content': '
',\n 'dxrd-menu-parameters-content': '
',\n 'dxrv-preview-parameters-mobile': '
',\n 'dxrv-preview-parameters-mobile-content': '
',\n 'dxrv-range-parameter-mobile': '
',\n 'dxrdp-surface-mobile': '
',\n 'dxrp-editing-field-container': '
',\n 'dxrp-editing-field-text': '',\n 'dxrp-editing-field-mask': '
',\n 'dxrp-editing-field-number': '
',\n 'dxrp-editing-field-datetime': '
',\n 'dxrp-editing-field-image': '
',\n 'dxrp-editing-field-image-editor': '
',\n 'dxrp-editing-field-checkbox': '
',\n 'dxrp-editing-field-radio': '
',\n 'dxrp-character-comb-editing-field': '
',\n 'dxrd-export-tool-content': '

',\n 'dxrd-preview-export-options': '
',\n 'dxrd-preview-export-to': '
',\n 'dxrd-page-brick-clickable': '
',\n 'dxrd-preview-page': '
',\n 'dxrp-popup-editing-field-image': '
',\n 'dx-picture-editing-popup': '
',\n 'dxrd-zoom-autofit-select-template': '
',\n 'dxrd-preview-toolbar-scrollable': '
',\n 'dxrd-preview-search': '
',\n 'dxrd-preview-progress-bar': '
',\n 'dxrd-preview-parameters': '
',\n 'dxrd-preview-pager': '
',\n 'dxrd-preview-document-map': '
',\n 'dxrd-report-preview': '
',\n 'dxrdp-surface': '
',\n 'dxrd-export-tool': '
',\n 'dxrv-daterange-editor': '
',\n 'dxrv-daterange-editor-popup': '
',\n 'dxrv-daterange-calendar': '
',\n 'dxrv-range-parameter': '
',\n 'dxrd-propertieseditor': '
',\n 'dxrd-parameters-editor-content': '
',\n 'dxrd-parameters-separator': '
',\n 'dxrd-multivalue': '
',\n 'dxrd-multivalue-editable': '
',\n 'dxrd-parameters-property-editor': '
',\n 'dx-picture-editing': '
',\n 'dx-painter': '
',\n 'dx-picture-editing-toolbar-popup': '
',\n 'dx-picture-editing-brush-options': '
',\n 'dx-picture-editing-sizemode-alignment': '
',\n 'dx-picture-editing-imagepickerwithfilter': '
',\n 'dx-picture-editing-imagespicker': '
',\n 'dx-selectbox': '
'\n});\n","/**\n* DevExpress HTML/JS Reporting (viewer\\internal\\_bindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ZoomAutoBy } from '../constants';\nimport { updatePreviewZoomWithAutoFit } from './_sizeUtils';\nimport { addDisposeCallback, roundingXDecimals } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nko.bindingHandlers['toView'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var $previewPage = $.fn.constructor(element), $container = $previewPage.parent('.dxrd-report-preview-holder'), pageActive = valueAccessor().active, subscription = pageActive.subscribe((active) => {\n if (active) {\n var pageTop = $previewPage.position().top;\n if (pageTop < 0 && (pageTop + $previewPage.height() < 0) || pageTop >= $container.height()) {\n $container.scrollTop($container.scrollTop() + pageTop);\n }\n }\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nko.bindingHandlers['lazyImages'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var $element = $.fn.constructor(element), enabled = valueAccessor().enabled, load = null, loadVisibleImages = (time = 300) => {\n load && clearTimeout(load);\n load = setTimeout(function () {\n if (!enabled()) {\n return;\n }\n var visibleArea = $element.height() + 100;\n for (var i = 0; i < element.children.length; i++) {\n var previewPage = element.children[i], rect = previewPage.getBoundingClientRect(), pageTop = rect.top;\n if (visibleArea > pageTop && pageTop >= 0 || pageTop < 0 && pageTop + rect.height > -100) {\n var previewPageModel = ko.dataFor(previewPage);\n previewPageModel && previewPageModel.isClientVisible && previewPageModel.isClientVisible(true);\n }\n }\n }, time);\n };\n if (ko.isObservable(valueAccessor().updateCallback)) {\n valueAccessor().updateCallback(loadVisibleImages);\n }\n var subscribtion = enabled.subscribe((newVal) => {\n newVal && loadVisibleImages(500);\n });\n var scrollLoad = () => loadVisibleImages(700);\n element.addEventListener('scroll', scrollLoad);\n loadVisibleImages(500);\n addDisposeCallback(element, function () {\n element.removeEventListener('scroll', scrollLoad);\n subscribtion.dispose();\n });\n }\n};\nko.bindingHandlers['textCopier'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var keyDownHandler = function (e) {\n var value = viewModel.getSelectedContent();\n if (!value || !(e.ctrlKey || e.metaKey)\n || $.fn.constructor(e.target).is('input:visible,textarea:visible')\n || window.getSelection && window.getSelection() && window.getSelection().toString()\n || document['selection'] && document['selection'].createRange().text) {\n return;\n }\n var $clipboardContainer = $.fn.constructor('#clipboard-container');\n $clipboardContainer.empty().show();\n $.fn.constructor(\"\").val(value)\n .appendTo($clipboardContainer)\n .focus()\n .select();\n };\n var keyUpHandler = function (e) {\n if ($.fn.constructor(e.target).is('#clipboard')) {\n $.fn.constructor('#clipboard-container').empty().hide();\n }\n };\n document.addEventListener('keydown', keyDownHandler);\n document.addEventListener('keyup', keyUpHandler);\n addDisposeCallback(element, function () {\n document.removeEventListener('keydown', keyDownHandler);\n document.removeEventListener('keyup', keyUpHandler);\n });\n }\n};\nko.bindingHandlers['autoFit'] = {\n init: (element, valueAccessor) => {\n var options = valueAccessor();\n var subscriptions = [];\n var updateZoom = (newOptions) => {\n var $element = $.fn.constructor(element);\n var autoFitBy = newOptions.autoFitBy();\n if (autoFitBy != ZoomAutoBy.None) {\n if (options.skipIfInvisible && $element.filter(':visible').length == 0)\n return;\n var newZoom = roundingXDecimals(updatePreviewZoomWithAutoFit(newOptions.width(), newOptions.height(), $element, autoFitBy), true);\n newOptions.zoom(Math.max(newZoom, 0.1));\n }\n };\n updateZoom(options);\n var onResize = () => {\n updateZoom(options);\n };\n window.addEventListener('resize', onResize);\n var subscribe = (value) => {\n if (value) {\n subscriptions.push(value.subscribe((newVal) => {\n updateZoom(options);\n }));\n }\n };\n subscribe(options.rightPanelWidth);\n subscribe(options.width);\n subscribe(options.height);\n subscribe(options.autoFitBy);\n subscribe(options.brickLoading);\n subscribe(options.previewSize);\n addDisposeCallback(element, function () {\n window.removeEventListener('resize', onResize);\n subscriptions.forEach((subscription) => {\n subscription.dispose();\n });\n });\n }\n};\nko.bindingHandlers['childStyle'] = {\n init: function (element, valueAccessor) {\n var values = valueAccessor();\n $.fn.constructor(element).find(values.selector).css(values.style);\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\search\\_dxSearchEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport registerComponent from 'devextreme/core/component_registrator';\nimport { addDisposeCallback, KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nvar editor_prefix = 'dx-searcheditor', EDITOR_CLASS = editor_prefix + '', EDITOR_BUTTON_CLASS = editor_prefix + '-button dx-widget dx-dropdowneditor-button', EDITOR_BUTTON_SELECTOR = '.' + editor_prefix + '-button', EDITOR_BUTTON_ICON_CLASS = editor_prefix + '-icon dx-dropdowneditor-icon dx-icon-dxrd-image-move', EDITOR_BUTTON_ICON_UP_TEMPLATE = 'dxrd-svg-operations-moveup', EDITOR_BUTTON_ICON_DOWN_TEMPLATE = 'dxrd-svg-operations-movedown';\nexport class dxSearchEditor extends dxTextBox {\n constructor(element, options) {\n super(element, options);\n this.option('onKeyDown', function (e) {\n if (e.event.key === KeyboardEnum.Enter) {\n e.event.stopPropagation();\n e.event.preventDefault();\n e.component['findNext'](e.event.shiftKey);\n }\n });\n this.option('onFocusOut', function (e) {\n e.component['_searchModel'].searchText(e.component.option('text'));\n });\n this._activeStateUnit = EDITOR_BUTTON_SELECTOR;\n this._focusRequestRaised = () => { this.focus(); };\n this._searchModel = options.searchModel;\n this._searchModel.focusRequested.subscribe((val) => this._focusRequestRaised());\n }\n findNext(searchUp) {\n if (this._searchModel.searchText() !== this.option('text')) {\n this._searchModel.searchText(this.option('text'));\n }\n else {\n try {\n if (searchUp) {\n (!this._searchModel.loading()) && this._searchModel.findUp();\n }\n else {\n (!this._searchModel.loading()) && this._searchModel.findDown();\n }\n }\n finally {\n return true;\n }\n }\n }\n _init() {\n super['_init'].apply(this);\n var $element = $.fn.constructor(this.element());\n $element.addClass(EDITOR_CLASS);\n this._koContext = ko.contextFor($element.get(0));\n }\n _render() {\n super['_render'].apply(this);\n this._$buttons = [];\n this.on('keyDown', (e) => {\n if (e.event.key == 'ArrowUp')\n this.findNext(true) && e.event.stopPropagation();\n if (e.event.key == 'ArrowDown')\n this.findNext(false) && e.event.stopPropagation();\n });\n this._renderButton('Up');\n this._renderButton('Down');\n }\n _renderButton(direction) {\n this._$button = $.fn.constructor('
').addClass(EDITOR_BUTTON_CLASS);\n this._attachButtonEvents(direction);\n this._$buttonIcon = $.fn.constructor('
').addClass(EDITOR_BUTTON_ICON_CLASS + direction.toLowerCase())\n .append(SvgTemplatesEngine.templates[direction.toLowerCase() === 'up' ? EDITOR_BUTTON_ICON_UP_TEMPLATE : EDITOR_BUTTON_ICON_DOWN_TEMPLATE])\n .appendTo(this._$button);\n ko.applyBindingsToDescendants(this._koContext, this._$buttonIcon[0]);\n var buttonsContainer = this['_buttonsContainer']();\n this._$button.appendTo(buttonsContainer);\n this._$buttons.push(this._$button);\n }\n _attachButtonEvents(direction) {\n this._$button.off('click');\n var onClick = (e) => {\n this.findNext(direction.toLowerCase() === 'up') && e.stopPropagation();\n };\n if (!this.option('disabled')) {\n this._$button.on('click', onClick);\n addDisposeCallback(this._$button[0], () => {\n this._$buttons.forEach($button => {\n $button.off('click');\n });\n });\n }\n }\n}\nregisterComponent('dxSearchEditor', dxSearchEditor);\n","/**\r\n * DevExtreme (esm/ui/gallery.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n setOuterWidth,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport {\r\n move\r\n} from \"../animation/translator\";\r\nimport devices from \"../core/devices\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar GALLERY_CLASS = \"dx-gallery\";\r\nvar GALLERY_WRAPPER_CLASS = GALLERY_CLASS + \"-wrapper\";\r\nvar GALLERY_LOOP_CLASS = \"dx-gallery-loop\";\r\nvar GALLERY_ITEM_CONTAINER_CLASS = GALLERY_CLASS + \"-container\";\r\nvar GALLERY_ACTIVE_CLASS = GALLERY_CLASS + \"-active\";\r\nvar GALLERY_ITEM_CLASS = GALLERY_CLASS + \"-item\";\r\nvar GALLERY_INVISIBLE_ITEM_CLASS = GALLERY_CLASS + \"-item-invisible\";\r\nvar GALLERY_LOOP_ITEM_CLASS = GALLERY_ITEM_CLASS + \"-loop\";\r\nvar GALLERY_ITEM_SELECTOR = \".\" + GALLERY_ITEM_CLASS;\r\nvar GALLERY_ITEM_SELECTED_CLASS = GALLERY_ITEM_CLASS + \"-selected\";\r\nvar GALLERY_INDICATOR_CLASS = GALLERY_CLASS + \"-indicator\";\r\nvar GALLERY_INDICATOR_ITEM_CLASS = GALLERY_INDICATOR_CLASS + \"-item\";\r\nvar GALLERY_INDICATOR_ITEM_SELECTOR = \".\" + GALLERY_INDICATOR_ITEM_CLASS;\r\nvar GALLERY_INDICATOR_ITEM_SELECTED_CLASS = GALLERY_INDICATOR_ITEM_CLASS + \"-selected\";\r\nvar GALLERY_IMAGE_CLASS = \"dx-gallery-item-image\";\r\nvar GALLERY_ITEM_DATA_KEY = \"dxGalleryItemData\";\r\nvar MAX_CALC_ERROR = 1;\r\nvar GalleryNavButton = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"next\",\r\n onClick: null,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var that = this;\r\n var $element = this.$element();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n $element.addClass(GALLERY_CLASS + \"-nav-button-\" + this.option(\"direction\"));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, (function(e) {\r\n that._createActionByOption(\"onClick\")({\r\n event: e\r\n })\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onClick\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar Gallery = CollectionWidget.inherit({\r\n _activeStateUnit: GALLERY_ITEM_SELECTOR,\r\n _wasAnyItemTemplateRendered: false,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n animationDuration: 400,\r\n animationEnabled: true,\r\n loop: false,\r\n swipeEnabled: true,\r\n indicatorEnabled: true,\r\n showIndicator: true,\r\n selectedIndex: 0,\r\n slideshowDelay: 0,\r\n showNavButtons: false,\r\n wrapAround: false,\r\n initialItemWidth: void 0,\r\n stretchImages: false,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.option(\"loopItemFocus\", this.option(\"loop\"))\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n var $img = $(\"\").addClass(GALLERY_IMAGE_CLASS);\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n $img.attr({\r\n src: data.imageSrc,\r\n alt: data.imageAlt\r\n }).appendTo($container)\r\n } else {\r\n $img.attr(\"src\", String(data)).appendTo($container)\r\n }\r\n }.bind(this), [\"imageSrc\", \"imageAlt\", \"text\", \"html\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _itemClass: function() {\r\n return GALLERY_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return GALLERY_ITEM_DATA_KEY\r\n },\r\n _actualItemWidth: function() {\r\n var isWrapAround = this.option(\"wrapAround\");\r\n if (this.option(\"stretchImages\")) {\r\n var itemPerPage = isWrapAround ? this._itemsPerPage() + 1 : this._itemsPerPage();\r\n return 1 / itemPerPage\r\n }\r\n if (isWrapAround) {\r\n return this._itemPercentWidth() * this._itemsPerPage() / (this._itemsPerPage() + 1)\r\n }\r\n return this._itemPercentWidth()\r\n },\r\n _itemPercentWidth: function() {\r\n var percentWidth;\r\n var elementWidth = getOuterWidth(this.$element());\r\n var initialItemWidth = this.option(\"initialItemWidth\");\r\n if (initialItemWidth && initialItemWidth <= elementWidth) {\r\n percentWidth = initialItemWidth / elementWidth\r\n } else {\r\n percentWidth = 1\r\n }\r\n return percentWidth\r\n },\r\n _itemsPerPage: function() {\r\n var itemsPerPage = hasWindow() ? Math.floor(1 / this._itemPercentWidth()) : 1;\r\n return Math.min(itemsPerPage, this._itemsCount())\r\n },\r\n _pagesCount: function() {\r\n return Math.ceil(this._itemsCount() / this._itemsPerPage())\r\n },\r\n _itemsCount: function() {\r\n return (this.option(\"items\") || []).length\r\n },\r\n _offsetDirection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _initMarkup: function() {\r\n this._renderWrapper();\r\n this._renderItemsContainer();\r\n this.$element().addClass(GALLERY_CLASS);\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, this.option(\"loop\"));\r\n this.callBase();\r\n this.setAria({\r\n role: \"listbox\",\r\n label: \"gallery\"\r\n })\r\n },\r\n _render: function() {\r\n this._renderDragHandler();\r\n this._renderContainerPosition();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderNavButtons();\r\n this._renderIndicator();\r\n this._renderSelectedItem();\r\n this._renderItemVisibility();\r\n this._renderUserInteraction();\r\n this._setupSlideShow();\r\n this._reviseDimensions();\r\n this.callBase()\r\n },\r\n _dimensionChanged: function() {\r\n var selectedIndex = this.option(\"selectedIndex\") || 0;\r\n this._stopItemAnimations();\r\n this._clearCacheWidth();\r\n this._cloneDuplicateItems();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderIndicator();\r\n this._renderContainerPosition(this._calculateIndexOffset(selectedIndex), true);\r\n this._renderItemVisibility()\r\n },\r\n _renderDragHandler: function() {\r\n var eventName = addNamespace(\"dragstart\", this.NAME);\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, \"img\", (function() {\r\n return false\r\n }))\r\n },\r\n _renderWrapper: function() {\r\n if (this._$wrapper) {\r\n return\r\n }\r\n this._$wrapper = $(\"
\").addClass(GALLERY_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderItems: function(items) {\r\n if (!hasWindow()) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n items = items.length > selectedIndex ? items.slice(selectedIndex, selectedIndex + 1) : items.slice(0, 1)\r\n }\r\n this.callBase(items);\r\n this._loadNextPageIfNeeded()\r\n },\r\n _onItemTemplateRendered() {\r\n return () => {\r\n if (!this._wasAnyItemTemplateRendered) {\r\n this._wasAnyItemTemplateRendered = true;\r\n triggerResizeEvent(this.$element())\r\n }\r\n }\r\n },\r\n _renderItemsContainer: function() {\r\n if (this._$container) {\r\n return\r\n }\r\n this._$container = $(\"
\").addClass(GALLERY_ITEM_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _cloneDuplicateItems: function() {\r\n if (!this.option(\"loop\")) {\r\n return\r\n }\r\n var items = this.option(\"items\") || [];\r\n var itemsCount = items.length;\r\n var lastItemIndex = itemsCount - 1;\r\n var i;\r\n if (!itemsCount) {\r\n return\r\n }\r\n this._getLoopedItems().remove();\r\n var duplicateCount = Math.min(this._itemsPerPage(), itemsCount);\r\n var $items = this._getRealItems();\r\n var $container = this._itemContainer();\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[i], $container)\r\n }\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[lastItemIndex - i], $container)\r\n }\r\n },\r\n _cloneItemForDuplicate: function(item, $container) {\r\n if (item) {\r\n $(item).clone(false).addClass(GALLERY_LOOP_ITEM_CLASS).css(\"margin\", 0).appendTo($container)\r\n }\r\n },\r\n _getRealItems: function() {\r\n var selector = \".\" + GALLERY_ITEM_CLASS + \":not(.\" + GALLERY_LOOP_ITEM_CLASS + \")\";\r\n return this.$element().find(selector)\r\n },\r\n _getLoopedItems: function() {\r\n return this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderItemSizes: function(startIndex) {\r\n var $items = this._itemElements();\r\n var itemWidth = this._actualItemWidth();\r\n if (void 0 !== startIndex) {\r\n $items = $items.slice(startIndex)\r\n }\r\n $items.each((function(index) {\r\n setOuterWidth($($items[index]), 100 * itemWidth + \"%\")\r\n }))\r\n },\r\n _renderItemPositions: function() {\r\n var itemWidth = this._actualItemWidth();\r\n var itemsCount = this._itemsCount();\r\n var itemsPerPage = this._itemsPerPage();\r\n var loopItemsCount = this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS).length;\r\n var lastItemDuplicateIndex = itemsCount + loopItemsCount - 1;\r\n var offsetRatio = this.option(\"wrapAround\") ? .5 : 0;\r\n var freeSpace = this._itemFreeSpace();\r\n var isGapBetweenImages = !!freeSpace;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var side = rtlEnabled ? \"Right\" : \"Left\";\r\n this._itemElements().each((function(index) {\r\n var realIndex = index;\r\n var isLoopItem = $(this).hasClass(GALLERY_LOOP_ITEM_CLASS);\r\n if (index > itemsCount + itemsPerPage - 1) {\r\n realIndex = lastItemDuplicateIndex - realIndex - itemsPerPage\r\n }\r\n if (!isLoopItem && 0 !== realIndex) {\r\n if (isGapBetweenImages) {\r\n $(this).css(\"margin\" + side, 100 * freeSpace + \"%\")\r\n }\r\n return\r\n }\r\n var itemPosition = itemWidth * (realIndex + offsetRatio) + freeSpace * (realIndex + 1 - offsetRatio);\r\n var property = isLoopItem ? side.toLowerCase() : \"margin\" + side;\r\n $(this).css(property, 100 * itemPosition + \"%\")\r\n }));\r\n this._relocateItems(selectedIndex, selectedIndex, true)\r\n },\r\n _itemFreeSpace: function() {\r\n var itemsPerPage = this._itemsPerPage();\r\n if (this.option(\"wrapAround\")) {\r\n itemsPerPage += 1\r\n }\r\n return (1 - this._actualItemWidth() * itemsPerPage) / (itemsPerPage + 1)\r\n },\r\n _renderContainerPosition: function(offset, hideItems, animate) {\r\n this._releaseInvisibleItems();\r\n offset = offset || 0;\r\n var that = this;\r\n var itemWidth = this._actualItemWidth();\r\n var targetIndex = offset;\r\n var targetPosition = this._offsetDirection() * targetIndex * (itemWidth + this._itemFreeSpace());\r\n var positionReady;\r\n if (isDefined(this._animationOverride)) {\r\n animate = this._animationOverride;\r\n delete this._animationOverride\r\n }\r\n if (animate) {\r\n that._startSwipe();\r\n positionReady = that._animate(targetPosition).done(that._endSwipe.bind(that))\r\n } else {\r\n move(this._$container, {\r\n left: targetPosition * this._elementWidth(),\r\n top: 0\r\n });\r\n positionReady = (new Deferred).resolveWith(that)\r\n }\r\n positionReady.done((function() {\r\n this._deferredAnimate && that._deferredAnimate.resolveWith(that);\r\n hideItems && this._renderItemVisibility()\r\n }));\r\n return positionReady.promise()\r\n },\r\n _startSwipe: function() {\r\n this.$element().addClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _endSwipe: function() {\r\n this.$element().removeClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _animate: function(targetPosition, extraConfig) {\r\n var that = this;\r\n var $container = this._$container;\r\n var animationComplete = new Deferred;\r\n fx.animate(this._$container, extend({\r\n type: \"slide\",\r\n to: {\r\n left: targetPosition * this._elementWidth()\r\n },\r\n duration: that.option(\"animationDuration\"),\r\n complete: function() {\r\n if (that._needMoveContainerForward()) {\r\n move($container, {\r\n left: 0,\r\n top: 0\r\n })\r\n }\r\n if (that._needMoveContainerBack()) {\r\n move($container, {\r\n left: that._maxContainerOffset() * that._elementWidth(),\r\n top: 0\r\n })\r\n }\r\n animationComplete.resolveWith(that)\r\n }\r\n }, extraConfig || {}));\r\n return animationComplete\r\n },\r\n _needMoveContainerForward: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = -this._maxItemWidth() * this._elementWidth() * this._itemsCount();\r\n return expectedPosition <= actualPosition + MAX_CALC_ERROR\r\n },\r\n _needMoveContainerBack: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = this._actualItemWidth() * this._elementWidth();\r\n return expectedPosition >= actualPosition - MAX_CALC_ERROR\r\n },\r\n _maxContainerOffset: function() {\r\n return -this._maxItemWidth() * (this._itemsCount() - this._itemsPerPage()) * this._offsetDirection()\r\n },\r\n _maxItemWidth: function() {\r\n return this._actualItemWidth() + this._itemFreeSpace()\r\n },\r\n _reviseDimensions: function() {\r\n var $firstItem = this._itemElements().first().find(\".dx-item-content\");\r\n if (!$firstItem || $firstItem.is(\":hidden\")) {\r\n return\r\n }\r\n if (!this.option(\"height\")) {\r\n this.option(\"height\", getOuterHeight($firstItem))\r\n }\r\n if (!this.option(\"width\")) {\r\n this.option(\"width\", getOuterWidth($firstItem))\r\n }\r\n this._dimensionChanged()\r\n },\r\n _renderIndicator: function() {\r\n this._cleanIndicators();\r\n if (!this.option(\"showIndicator\")) {\r\n return\r\n }\r\n var indicator = this._$indicator = $(\"
\").addClass(GALLERY_INDICATOR_CLASS).appendTo(this._$wrapper);\r\n var isIndicatorEnabled = this.option(\"indicatorEnabled\");\r\n for (var i = 0; i < this._pagesCount(); i++) {\r\n var $indicatorItem = $(\"
\").addClass(GALLERY_INDICATOR_ITEM_CLASS).appendTo(indicator);\r\n if (isIndicatorEnabled) {\r\n this._attachIndicatorClickHandler($indicatorItem, i)\r\n }\r\n }\r\n this._renderSelectedPageIndicator()\r\n },\r\n _attachIndicatorClickHandler: function($element, index) {\r\n eventsEngine.on($element, addNamespace(clickEventName, this.NAME), function(event) {\r\n this._indicatorSelectHandler(event, index)\r\n }.bind(this))\r\n },\r\n _detachIndicatorClickHandler: function($element) {\r\n eventsEngine.off($element, addNamespace(clickEventName, this.NAME))\r\n },\r\n _toggleIndicatorInteraction: function(clickEnabled) {\r\n var _this$_$indicator;\r\n var $indicatorItems = (null === (_this$_$indicator = this._$indicator) || void 0 === _this$_$indicator ? void 0 : _this$_$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR)) || [];\r\n if ($indicatorItems.length) {\r\n $indicatorItems.each(function(index, element) {\r\n clickEnabled ? this._attachIndicatorClickHandler($(element), index) : this._detachIndicatorClickHandler($(element))\r\n }.bind(this))\r\n }\r\n },\r\n _cleanIndicators: function() {\r\n if (this._$indicator) {\r\n this._$indicator.remove()\r\n }\r\n },\r\n _renderSelectedItem: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n this._itemElements().removeClass(GALLERY_ITEM_SELECTED_CLASS).eq(selectedIndex).addClass(GALLERY_ITEM_SELECTED_CLASS)\r\n },\r\n _renderItemVisibility: function() {\r\n if (this.option(\"initialItemWidth\") || this.option(\"wrapAround\")) {\r\n this._releaseInvisibleItems();\r\n return\r\n }\r\n this._itemElements().each(function(index, item) {\r\n if (this.option(\"selectedIndex\") === index) {\r\n $(item).removeClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n } else {\r\n $(item).addClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n }\r\n }.bind(this));\r\n this._getLoopedItems().addClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n },\r\n _releaseInvisibleItems: function() {\r\n this._itemElements().removeClass(GALLERY_INVISIBLE_ITEM_CLASS);\r\n this._getLoopedItems().removeClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n },\r\n _renderSelectedPageIndicator: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var itemIndex = this.option(\"selectedIndex\");\r\n var lastIndex = this._pagesCount() - 1;\r\n var pageIndex = Math.ceil(itemIndex / this._itemsPerPage());\r\n pageIndex = Math.min(lastIndex, pageIndex);\r\n this._$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR).removeClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS).eq(pageIndex).addClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS)\r\n },\r\n _renderUserInteraction: function() {\r\n var rootElement = this.$element();\r\n var swipeEnabled = this.option(\"swipeEnabled\") && this._itemsCount() > 1;\r\n this._createComponent(rootElement, Swipeable, {\r\n disabled: this.option(\"disabled\") || !swipeEnabled,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._elementWidth.bind(this)\r\n })\r\n },\r\n _indicatorSelectHandler: function(e, indicatorIndex) {\r\n if (!this.option(\"indicatorEnabled\")) {\r\n return\r\n }\r\n var itemIndex = this._fitPaginatedIndex(indicatorIndex * this._itemsPerPage());\r\n this._needLongMove = true;\r\n this.option(\"selectedIndex\", itemIndex);\r\n this._loadNextPageIfNeeded(itemIndex)\r\n },\r\n _renderNavButtons: function() {\r\n var that = this;\r\n if (!that.option(\"showNavButtons\")) {\r\n that._cleanNavButtons();\r\n return\r\n }\r\n that._prevNavButton = $(\"
\").appendTo(this._$wrapper);\r\n that._createComponent(that._prevNavButton, GalleryNavButton, {\r\n direction: \"prev\",\r\n onClick: function() {\r\n that._prevPage()\r\n }\r\n });\r\n that._nextNavButton = $(\"
\").appendTo(this._$wrapper);\r\n that._createComponent(that._nextNavButton, GalleryNavButton, {\r\n direction: \"next\",\r\n onClick: function() {\r\n that._nextPage()\r\n }\r\n });\r\n this._renderNavButtonsVisibility()\r\n },\r\n _prevPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") - visiblePageSize;\r\n if (newSelectedIndex === -visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex))\r\n }\r\n },\r\n _nextPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") + visiblePageSize;\r\n if (newSelectedIndex === visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex)).done(this._loadNextPageIfNeeded)\r\n }\r\n },\r\n _loadNextPageIfNeeded: function(selectedIndex) {\r\n selectedIndex = void 0 === selectedIndex ? this.option(\"selectedIndex\") : selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate() && this._shouldLoadNextPage(selectedIndex) && !this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage().done(function() {\r\n this._renderIndicator();\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility();\r\n this._renderItemSizes(selectedIndex)\r\n }.bind(this))\r\n }\r\n },\r\n _shouldLoadNextPage: function(selectedIndex) {\r\n var visiblePageSize = this._itemsPerPage();\r\n return selectedIndex + 2 * visiblePageSize > this.option(\"items\").length\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _fitPaginatedIndex: function(itemIndex) {\r\n var itemsPerPage = this._itemsPerPage();\r\n var restItemsCount = itemIndex < 0 ? itemsPerPage + itemIndex : this._itemsCount() - itemIndex;\r\n if (itemIndex > this._itemsCount() - 1) {\r\n itemIndex = 0;\r\n this._goToGhostItem = true\r\n } else if (restItemsCount < itemsPerPage && restItemsCount > 0) {\r\n if (itemIndex > 0) {\r\n itemIndex -= itemsPerPage - restItemsCount\r\n } else {\r\n itemIndex += itemsPerPage - restItemsCount\r\n }\r\n }\r\n return itemIndex\r\n },\r\n _cleanNavButtons: function() {\r\n if (this._prevNavButton) {\r\n this._prevNavButton.remove();\r\n delete this._prevNavButton\r\n }\r\n if (this._nextNavButton) {\r\n this._nextNavButton.remove();\r\n delete this._nextNavButton\r\n }\r\n },\r\n _renderNavButtonsVisibility: function() {\r\n if (!this.option(\"showNavButtons\") || !this._prevNavButton || !this._nextNavButton) {\r\n return\r\n }\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var itemsCount = this._itemsCount();\r\n this._prevNavButton.show();\r\n this._nextNavButton.show();\r\n if (0 === itemsCount) {\r\n this._prevNavButton.hide();\r\n this._nextNavButton.hide()\r\n }\r\n if (loop) {\r\n return\r\n }\r\n var nextHidden = selectedIndex === itemsCount - this._itemsPerPage();\r\n var prevHidden = itemsCount < 2 || 0 === selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate()) {\r\n nextHidden = nextHidden && this._isLastPage()\r\n } else {\r\n nextHidden = nextHidden || itemsCount < 2\r\n }\r\n if (prevHidden) {\r\n this._prevNavButton.hide()\r\n }\r\n if (nextHidden) {\r\n this._nextNavButton.hide()\r\n }\r\n },\r\n _setupSlideShow: function() {\r\n var that = this;\r\n var slideshowDelay = that.option(\"slideshowDelay\");\r\n clearTimeout(that._slideshowTimer);\r\n if (!slideshowDelay) {\r\n return\r\n }\r\n that._slideshowTimer = setTimeout((function() {\r\n if (that._userInteraction) {\r\n that._setupSlideShow();\r\n return\r\n }\r\n that.nextItem(true).done(that._setupSlideShow)\r\n }), slideshowDelay)\r\n },\r\n _elementWidth: function() {\r\n if (!this._cacheElementWidth) {\r\n this._cacheElementWidth = getWidth(this.$element())\r\n }\r\n return this._cacheElementWidth\r\n },\r\n _clearCacheWidth: function() {\r\n delete this._cacheElementWidth\r\n },\r\n _swipeStartHandler: function(e) {\r\n this._releaseInvisibleItems();\r\n this._clearCacheWidth();\r\n this._elementWidth();\r\n var itemsCount = this._itemsCount();\r\n if (!itemsCount) {\r\n e.event.cancel = true;\r\n return\r\n }\r\n this._stopItemAnimations();\r\n this._startSwipe();\r\n this._userInteraction = true;\r\n if (!this.option(\"loop\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var startOffset = itemsCount - selectedIndex - this._itemsPerPage();\r\n var endOffset = selectedIndex;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset\r\n }\r\n },\r\n _stopItemAnimations: function() {\r\n fx.stop(this._$container, true)\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var wrapAroundRatio = this.option(\"wrapAround\") ? 1 : 0;\r\n var offset = this._offsetDirection() * e.event.offset * (this._itemsPerPage() + wrapAroundRatio) - this.option(\"selectedIndex\");\r\n if (offset < 0) {\r\n this._loadNextPageIfNeeded(Math.ceil(Math.abs(offset)))\r\n }\r\n this._renderContainerPosition(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset * this._offsetDirection() * this._itemsPerPage();\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._fitIndex(selectedIndex - targetOffset);\r\n var paginatedIndex = this._fitPaginatedIndex(newIndex);\r\n if (Math.abs(targetOffset) < this._itemsPerPage()) {\r\n this._relocateItems(selectedIndex);\r\n return\r\n }\r\n if (this._itemsPerPage() === this._itemsCount()) {\r\n if (targetOffset > 0) {\r\n this._relocateItems(-targetOffset)\r\n } else {\r\n this._relocateItems(0)\r\n }\r\n return\r\n }\r\n this.option(\"selectedIndex\", paginatedIndex)\r\n },\r\n _setFocusOnSelect: function() {\r\n this._userInteraction = true;\r\n var selectedItem = this.itemElements().filter(\".\" + GALLERY_ITEM_SELECTED_CLASS);\r\n this.option(\"focusedElement\", getPublicElement(selectedItem));\r\n this._userInteraction = false\r\n },\r\n _flipIndex: function(index) {\r\n var itemsCount = this._itemsCount();\r\n index %= itemsCount;\r\n if (index > (itemsCount + 1) / 2) {\r\n index -= itemsCount\r\n }\r\n if (index < -(itemsCount - 1) / 2) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _fitIndex: function(index) {\r\n if (!this.option(\"loop\")) {\r\n return index\r\n }\r\n var itemsCount = this._itemsCount();\r\n if (index >= itemsCount || index < 0) {\r\n this._goToGhostItem = true\r\n }\r\n if (index >= itemsCount) {\r\n index = itemsCount - index\r\n }\r\n index %= itemsCount;\r\n if (index < 0) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._cleanIndicators();\r\n this._cleanNavButtons()\r\n },\r\n _dispose: function() {\r\n this._wasAnyItemTemplateRendered = null;\r\n clearTimeout(this._slideshowTimer);\r\n this.callBase()\r\n },\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n this._stopItemAnimations();\r\n this._renderNavButtonsVisibility();\r\n this._renderSelectedItem();\r\n this._relocateItems(addedSelection[0], removedSelection[0]);\r\n this._renderSelectedPageIndicator()\r\n },\r\n _relocateItems: function(newIndex, prevIndex, withoutAnimation) {\r\n if (void 0 === prevIndex) {\r\n prevIndex = newIndex\r\n }\r\n var indexOffset = this._calculateIndexOffset(newIndex, prevIndex);\r\n this._renderContainerPosition(indexOffset, true, this.option(\"animationEnabled\") && !withoutAnimation).done((function() {\r\n this._setFocusOnSelect();\r\n this._userInteraction = false;\r\n this._setupSlideShow()\r\n }))\r\n },\r\n _focusInHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _selectFocusedItem: noop,\r\n _moveFocus: function() {\r\n this._stopItemAnimations();\r\n this.callBase.apply(this, arguments);\r\n var index = this.itemElements().index($(this.option(\"focusedElement\")));\r\n this.goToItem(index, this.option(\"animationEnabled\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._reviseDimensions()\r\n }\r\n },\r\n _calculateIndexOffset: function(newIndex, lastIndex) {\r\n if (void 0 === lastIndex) {\r\n lastIndex = newIndex\r\n }\r\n var indexOffset = lastIndex - newIndex;\r\n if (this.option(\"loop\") && !this._needLongMove && this._goToGhostItem) {\r\n if (this._isItemOnFirstPage(newIndex) && this._isItemOnLastPage(lastIndex)) {\r\n indexOffset = -this._itemsPerPage()\r\n } else if (this._isItemOnLastPage(newIndex) && this._isItemOnFirstPage(lastIndex)) {\r\n indexOffset = this._itemsPerPage()\r\n }\r\n this._goToGhostItem = false\r\n }\r\n this._needLongMove = false;\r\n indexOffset -= lastIndex;\r\n return indexOffset\r\n },\r\n _isItemOnLastPage: function(itemIndex) {\r\n return itemIndex >= this._itemsCount() - this._itemsPerPage()\r\n },\r\n _isItemOnFirstPage: function(itemIndex) {\r\n return itemIndex <= this._itemsPerPage()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"initialItemWidth\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"animationDuration\":\r\n this._renderNavButtonsVisibility();\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"loop\":\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, args.value);\r\n this.option(\"loopItemFocus\", args.value);\r\n if (hasWindow()) {\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility()\r\n }\r\n break;\r\n case \"showIndicator\":\r\n this._renderIndicator();\r\n break;\r\n case \"showNavButtons\":\r\n this._renderNavButtons();\r\n break;\r\n case \"slideshowDelay\":\r\n this._setupSlideShow();\r\n break;\r\n case \"wrapAround\":\r\n case \"stretchImages\":\r\n if (hasWindow()) {\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderItemVisibility()\r\n }\r\n break;\r\n case \"swipeEnabled\":\r\n this._renderUserInteraction();\r\n break;\r\n case \"indicatorEnabled\":\r\n this._toggleIndicatorInteraction(args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n goToItem: function(itemIndex, animation) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var itemsCount = this._itemsCount();\r\n if (void 0 !== animation) {\r\n this._animationOverride = animation\r\n }\r\n itemIndex = this._fitIndex(itemIndex);\r\n this._deferredAnimate = new Deferred;\r\n if (itemIndex > itemsCount - 1 || itemIndex < 0 || selectedIndex === itemIndex) {\r\n return this._deferredAnimate.resolveWith(this).promise()\r\n }\r\n this.option(\"selectedIndex\", itemIndex);\r\n return this._deferredAnimate.promise()\r\n },\r\n prevItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") - 1, animation)\r\n },\r\n nextItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") + 1, animation)\r\n }\r\n});\r\nregisterComponent(\"dxGallery\", Gallery);\r\nexport default Gallery;\r\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_eventProcessor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { SearchAvailable } from '../../settings';\nimport { MobileSearchViewModel } from './_mobileSearch';\nimport { ZoomAutoBy } from '../../constants';\nimport * as $ from 'jquery';\nimport Gallery from 'devextreme/ui/gallery';\nexport var slowdownDisctanceFactor = 2.5;\nexport var minScale = 0.92;\nfunction setTransform($element, transform) {\n $element.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n}\nexport class EventProcessor {\n constructor(element, slideOptions) {\n this.element = element;\n this.slideOptions = slideOptions;\n this._direction = {\n vertical: false,\n horizontal: false,\n scrollDown: false\n };\n this.isLeftMove = false;\n this.isRightMove = false;\n this.$window = $.fn.constructor(window);\n this.$element = $.fn.constructor(element),\n this.$body = $.fn.constructor(document.body),\n this.$gallery = this.$element.find('.dxrd-mobile-gallery');\n this.$galleryblocks = this.$gallery.find('.dxrd-gallery-blocks');\n this.firstMobilePageOffset = this._getFirstPageOffset();\n this.slideOptions.searchPanel.height.subscribe((newVal) => {\n if (slideOptions.disabled())\n return;\n if (!this.firstMobilePageOffset)\n this.firstMobilePageOffset = this._getFirstPageOffset();\n if (this.slideOptions.readerMode) {\n this.slideOptions.topOffset(newVal);\n }\n else {\n this.slideOptions.topOffset(Math.min(newVal, Math.max(0, MobileSearchViewModel.maxHeight - this.firstMobilePageOffset.top)));\n }\n if (!newVal) {\n this.applySearchAnimation(newVal);\n }\n else if (newVal === MobileSearchViewModel.maxHeight) {\n this.slideOptions.searchPanel.searchPanelVisible(true);\n this.applySearchAnimation(newVal);\n }\n else {\n var dif = 1 - minScale;\n var perc = newVal / MobileSearchViewModel.maxHeight;\n var scale = 1 - dif * perc;\n setTransform(this.$galleryblocks, 'scale(' + Math.max(minScale, scale) + ')');\n }\n });\n }\n _getFirstPageOffset() {\n return this.$galleryblocks.find('.dxrd-mobile-page').eq(0).offset();\n }\n getDirection(x, y) {\n var differenceY = y - this._startingPositionY;\n var distanceY = Math.abs(differenceY);\n var distanceX = Math.abs(x - this._startingPositionX);\n if (distanceY === 0 && distanceX === 0) {\n this._direction.horizontal = false;\n this._direction.vertical = false;\n return this._direction;\n }\n var tg = !distanceX ? 10 : distanceY / distanceX;\n if (tg < 2) {\n this._direction.horizontal = true;\n this._direction.vertical = false;\n this._direction.scrollDown = false;\n }\n else {\n this._direction.horizontal = false;\n this._direction.vertical = true;\n this._direction.scrollDown = differenceY > 0;\n }\n return this._direction;\n }\n setPosition(x, y) {\n this.isLeftMove = this.latestX > x;\n this.isRightMove = this.latestX < x;\n this.latestY = y;\n this.latestX = x;\n }\n initialize(x, y) {\n this._startingPositionX = x;\n this._startingPositionY = y;\n this.latestX = x;\n this.latestY = y;\n this._direction = { horizontal: false, vertical: false, scrollDown: false };\n }\n start(e) {\n this.$body.addClass('dxrd-prevent-refresh');\n this.$galleryblocks = this.$gallery.find('.dxrd-gallery-blocks');\n if (!this.slideOptions.topOffset()) {\n this.firstMobilePageOffset = this._getFirstPageOffset();\n if (this.firstMobilePageOffset) {\n this.firstMobilePageOffset.top = this.firstMobilePageOffset.top * minScale;\n }\n }\n this.initialize(e.pageX, e.pageY);\n }\n move(e) {\n if (this.slideOptions.zoomUpdating() || this.slideOptions.galleryIsAnimated() || this.slideOptions.disabled()) {\n return;\n }\n if (SearchAvailable() && !this.slideOptions.searchPanel.editorVisible()) {\n var direction = this.getDirection(e.pageX, e.pageY);\n if (!direction.vertical && !direction.horizontal)\n return;\n if (direction.vertical && direction.scrollDown || this.slideOptions.searchPanel.height() !== 0) {\n if (this.slideOptions.reachedTop() && (MobileSearchViewModel.maxHeight + this.$element.offset().top) > this.$window.scrollTop()) {\n this.slideOptions.brickEventsDisabled(true);\n e.stopPropagation();\n var currentHeight = this.slideOptions.searchPanel.height();\n var difference = currentHeight + (e.clientY - this.latestY) / slowdownDisctanceFactor;\n var distance = difference > 0 ? Math.min(difference, MobileSearchViewModel.maxHeight) : 0;\n this.slideOptions.searchPanel.height(distance);\n }\n }\n }\n this.setPosition(e.clientX, e.clientY);\n }\n end(e) {\n if (this.slideOptions.zoomUpdating() || this.slideOptions.galleryIsAnimated()) {\n var touches = e['touches'];\n if (!touches || touches.length === 0) {\n if (this.slideOptions.zoomUpdating()) {\n e.stopPropagation();\n }\n this.slideOptions.zoomUpdating(false);\n }\n return;\n }\n var direction = this.getDirection(e.pageX, e.pageY);\n if (this.slideOptions.scrollAvailable()) {\n if (direction.horizontal && this.slideOptions.swipeEnabled()) {\n var galleryInstance = Gallery.getInstance(this.$gallery.get(0));\n var repaintTimeout = this.slideOptions.repaintTimeout;\n if (this.slideOptions.reachedLeft() && this.isRightMove && galleryInstance.gallery.swipeLeftEnable()) {\n galleryInstance.prevItem();\n clearTimeout(repaintTimeout());\n repaintTimeout(setTimeout(() => galleryInstance.repaint(), 410));\n }\n else if (this.slideOptions.reachedRight() && this.isLeftMove && galleryInstance.gallery.swipeRightEnable()) {\n galleryInstance.nextItem();\n clearTimeout(repaintTimeout());\n repaintTimeout(setTimeout(() => galleryInstance.repaint(), 410));\n }\n }\n }\n if (SearchAvailable() && !this.slideOptions.searchPanel.editorVisible()) {\n if (this.slideOptions.searchPanel.height() >= MobileSearchViewModel.maxHeight / 2) {\n this.slideOptions.searchPanel.height(MobileSearchViewModel.maxHeight);\n }\n else {\n this.slideOptions.searchPanel.height(0);\n }\n if (this.slideOptions.searchPanel.height() == MobileSearchViewModel.maxHeight) {\n this.slideOptions.autoFitBy(ZoomAutoBy.PageWidth);\n }\n }\n this.$body.removeClass('dxrd-prevent-refresh');\n setTimeout(() => { this.slideOptions.brickEventsDisabled(false); }, 10);\n }\n applySearchAnimation(value) {\n if (this.slideOptions.animationSettings.zoomEnabled()) {\n this.$galleryblocks.addClass('dxrdp-animation');\n this.$element.addClass('dxrdp-animation');\n setTimeout(() => {\n this.$galleryblocks.removeClass('dxrdp-animation');\n this.$element.removeClass('dxrdp-animation');\n }, 410);\n }\n setTransform(this.$galleryblocks, !value ? '' : 'scale(0.92)');\n }\n}\n","/**\r\n * DevExtreme (esm/events/transform.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign as mathSign,\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n hasTouches\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DX_PREFIX = \"dx\";\r\nvar TRANSFORM = \"transform\";\r\nvar TRANSLATE = \"translate\";\r\nvar PINCH = \"pinch\";\r\nvar ROTATE = \"rotate\";\r\nvar START_POSTFIX = \"start\";\r\nvar UPDATE_POSTFIX = \"\";\r\nvar END_POSTFIX = \"end\";\r\nvar eventAliases = [];\r\nvar addAlias = function(eventName, eventArgs) {\r\n eventAliases.push({\r\n name: eventName,\r\n args: eventArgs\r\n })\r\n};\r\naddAlias(TRANSFORM, {\r\n scale: true,\r\n deltaScale: true,\r\n rotation: true,\r\n deltaRotation: true,\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(TRANSLATE, {\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(PINCH, {\r\n scale: true,\r\n deltaScale: true\r\n});\r\naddAlias(ROTATE, {\r\n rotation: true,\r\n deltaRotation: true\r\n});\r\nvar getVector = function(first, second) {\r\n return {\r\n x: second.pageX - first.pageX,\r\n y: -second.pageY + first.pageY,\r\n centerX: .5 * (second.pageX + first.pageX),\r\n centerY: .5 * (second.pageY + first.pageY)\r\n }\r\n};\r\nvar getEventVector = function(e) {\r\n var pointers = e.pointers;\r\n return getVector(pointers[0], pointers[1])\r\n};\r\nvar getDistance = function(vector) {\r\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y)\r\n};\r\nvar getScale = function(firstVector, secondVector) {\r\n return getDistance(firstVector) / getDistance(secondVector)\r\n};\r\nvar getRotation = function(firstVector, secondVector) {\r\n var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;\r\n var distanceProduct = getDistance(firstVector) * getDistance(secondVector);\r\n if (0 === distanceProduct) {\r\n return 0\r\n }\r\n var sign = mathSign(firstVector.x * secondVector.y - secondVector.x * firstVector.y);\r\n var angle = Math.acos(fitIntoRange(scalarProduct / distanceProduct, -1, 1));\r\n return sign * angle\r\n};\r\nvar getTranslation = function(firstVector, secondVector) {\r\n return {\r\n x: firstVector.centerX - secondVector.centerX,\r\n y: firstVector.centerY - secondVector.centerY\r\n }\r\n};\r\nvar TransformEmitter = Emitter.inherit({\r\n validatePointers: function(e) {\r\n return hasTouches(e) > 1\r\n },\r\n start: function(e) {\r\n this._accept(e);\r\n var startVector = getEventVector(e);\r\n this._startVector = startVector;\r\n this._prevVector = startVector;\r\n this._fireEventAliases(START_POSTFIX, e)\r\n },\r\n move: function(e) {\r\n var currentVector = getEventVector(e);\r\n var eventArgs = this._getEventArgs(currentVector);\r\n this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);\r\n this._prevVector = currentVector\r\n },\r\n end: function(e) {\r\n var eventArgs = this._getEventArgs(this._prevVector);\r\n this._fireEventAliases(END_POSTFIX, e, eventArgs)\r\n },\r\n _getEventArgs: function(vector) {\r\n return {\r\n scale: getScale(vector, this._startVector),\r\n deltaScale: getScale(vector, this._prevVector),\r\n rotation: getRotation(vector, this._startVector),\r\n deltaRotation: getRotation(vector, this._prevVector),\r\n translation: getTranslation(vector, this._startVector),\r\n deltaTranslation: getTranslation(vector, this._prevVector)\r\n }\r\n },\r\n _fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {\r\n eventArgs = eventArgs || {};\r\n iteratorUtils.each(eventAliases, function(_, eventAlias) {\r\n var args = {};\r\n iteratorUtils.each(eventAlias.args, (function(name) {\r\n if (name in eventArgs) {\r\n args[name] = eventArgs[name]\r\n }\r\n }));\r\n this._fireEvent(DX_PREFIX + eventAlias.name + eventPostfix, originalEvent, args)\r\n }.bind(this))\r\n }\r\n});\r\nvar eventNames = eventAliases.reduce((result, eventAlias) => {\r\n [START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach(eventPostfix => {\r\n result.push(DX_PREFIX + eventAlias.name + eventPostfix)\r\n });\r\n return result\r\n}, []);\r\nregisterEmitter({\r\n emitter: TransformEmitter,\r\n events: eventNames\r\n});\r\nvar exportNames = {};\r\niteratorUtils.each(eventNames, (function(_, eventName) {\r\n exportNames[eventName.substring(DX_PREFIX.length)] = eventName\r\n}));\r\nexport var {\r\n transformstart: transformstart,\r\n transform: transform,\r\n transformend: transformend,\r\n translatestart: translatestart,\r\n translate: translate,\r\n translateend: translateend,\r\n zoomstart: zoomstart,\r\n zoom: zoom,\r\n zoomend: zoomend,\r\n pinchstart: pinchstart,\r\n pinch: pinch,\r\n pinchend: pinchend,\r\n rotatestart: rotatestart,\r\n rotate: rotate,\r\n rotateend: rotateend\r\n} = exportNames;\r\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobileBindings.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { EventProcessor } from './_eventProcessor';\nimport { on } from 'devextreme/events';\nimport 'devextreme/events/transform';\nimport 'devextreme/events/pointer';\nimport * as ko from 'knockout';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nko.bindingHandlers['mobileZoom'] = {\n init: function (element, valueAccessor) {\n var options = valueAccessor();\n var scroll;\n var zoom = options.zoom();\n on(element, 'dxpinch', (e) => {\n e.stopPropagation();\n e.preventDefault();\n var scale = e['scale'];\n var newZoom = zoom;\n newZoom *= scale;\n newZoom = Math.max(0.15, Math.min(2, newZoom));\n options.zoom(newZoom);\n });\n on(element, 'dxpinchstart', (e) => {\n scroll = dxScrollView.getInstance(element.getElementsByClassName('dxrd-scrollView-mobile')[0]);\n e.stopPropagation();\n e.preventDefault();\n options.zoomUpdating(true);\n scroll && scroll.option('disabled', true);\n zoom = options.zoom.peek();\n });\n on(element, 'dxpinchend', (e) => {\n e.stopPropagation();\n options.zoomUpdating(false);\n setTimeout(() => {\n scroll && scroll.option('disabled', false);\n scroll && scroll.refresh();\n }, 10);\n });\n }\n};\nko.bindingHandlers['slide'] = {\n init: function (element, valueAccessor) {\n var slideOptionsValue = valueAccessor();\n var isStarted = false;\n var processor = new EventProcessor(element, slideOptionsValue);\n on(element, 'dxpointerdown', (e) => {\n processor.start(e);\n isStarted = true;\n });\n on(element, 'dxpointermove', (e) => {\n isStarted && processor.move(e);\n });\n ['dxpointercancel', 'dxpointerleave', 'dxpointerup'].forEach((value) => {\n on(element, value, (e) => {\n if (isStarted) {\n processor.end(e);\n isStarted = false;\n }\n });\n });\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\gallery\\_galleryComponent.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/gallery';\nimport dxGallery from 'devextreme/ui/gallery';\nimport * as $ from 'jquery';\nexport class dxGalleryReportPreview extends dxGallery {\n constructor(element, options) {\n super(element, options);\n this._animationClassName = 'dxrdp-gallery-item-animation';\n this.currentBlockItem = null;\n this.nextBlockItem = null;\n this.initializeBlockItems = () => {\n this.blockItems = [];\n var $items = this['_getAvailableItems']();\n for (var i = 0; i < $items.length; i++) {\n var left = parseFloat($items[i]['style'].left);\n left = isNaN(left) ? 0 : left;\n this.blockItems.push({\n element: $.fn.constructor($items[i]),\n left: left\n });\n }\n };\n this.initializeBlockItems();\n this.gallery = this['option']('gallery');\n var subscription = this.gallery.repaint.subscribe((newVal) => {\n if (!this.gallery.preview._hasActiveEditingFields()) {\n this.repaint();\n }\n });\n addDisposeCallback(element, () => {\n subscription.dispose();\n });\n }\n repaint() {\n super.repaint.apply(this);\n this.initializeBlockItems();\n }\n _swipeStartHandler(e) {\n super['_swipeStartHandler'].apply(this, [e]);\n var swipeRightEnable = this.gallery.swipeRightEnable();\n var swipeLeftEnable = this.gallery.swipeLeftEnable();\n if (!swipeRightEnable || !swipeLeftEnable) {\n var selectedIndex = swipeRightEnable ? 0 : 2;\n var startOffset = 3 - selectedIndex - 1, endOffset = selectedIndex;\n if (!swipeRightEnable && !swipeLeftEnable) {\n startOffset = 0;\n endOffset = 0;\n }\n e.event.maxLeftOffset = startOffset;\n e.event.maxRightOffset = endOffset;\n }\n this.gallery.isAnimated(true);\n if (this.gallery.animationEnabled()) {\n this.currentBlockItem && this.currentBlockItem.element.removeClass(this._animationClassName);\n this.nextBlockItem && this.nextBlockItem.element.removeClass(this._animationClassName);\n }\n }\n _getNextIndex(offset) {\n var index = this.gallery.selectedIndex();\n if (offset < 0) {\n if (index === 2) {\n index = 0;\n }\n else {\n index++;\n }\n }\n else {\n if (index === 0) {\n index = 2;\n }\n else {\n index--;\n }\n }\n return index;\n }\n _setSwipeAnimation(element, difference, offset, right) {\n var diffperc = 100 * offset / 4;\n var newLeft = '0%';\n if (right) {\n newLeft = (element.left + diffperc) + '%';\n }\n else {\n newLeft = (element.left - diffperc) + '%';\n }\n element.element.css({\n 'opacity': difference,\n 'transform': 'scale(' + difference + ')',\n 'left': newLeft\n });\n }\n _addAnimation(item) {\n if (item) {\n if (this.gallery.animationEnabled()) {\n item.element.addClass(this._animationClassName);\n }\n }\n }\n _restoreDefault(item) {\n if (item) {\n item.element.css({\n 'opacity': 1,\n 'transform': 'scale(' + 1 + ')',\n 'left': item.left + '%'\n });\n }\n }\n _getItem(index, loopTest) {\n var realIndex = index;\n var currentBlockIndex = this.blockItems.indexOf(this.currentBlockItem);\n if (loopTest) {\n if (currentBlockIndex === 2 && index === 0) {\n realIndex = 3;\n }\n else if (currentBlockIndex === 0 && index === 2) {\n realIndex = 4;\n }\n }\n var item = this.blockItems[realIndex];\n if (this.gallery.animationEnabled()) {\n item.element.removeClass(this._animationClassName);\n }\n return item;\n }\n _swipeUpdateHandler(e) {\n super['_swipeUpdateHandler'].apply(this, [e]);\n var offset = e.event.offset;\n var nextIndex = this._getNextIndex(offset);\n var currentIndex = this.gallery.selectedIndex();\n var currentBlockIndex = this.blockItems.indexOf(this.currentBlockItem);\n var nextBlockIndex = this.blockItems.indexOf(this.nextBlockItem);\n if (!this.currentBlockItem || currentBlockIndex !== currentIndex) {\n this.currentBlockItem = this._getItem(currentIndex, false);\n }\n if (!this.nextBlockItem || nextBlockIndex !== nextIndex) {\n this.nextBlockItem = this._getItem(nextIndex, true);\n }\n if (this.gallery.animationEnabled()) {\n offset = Math.abs(offset);\n var right = (nextIndex - currentIndex === 1) || (currentIndex === 2 && nextIndex === 0);\n this._setSwipeAnimation(this.currentBlockItem, Math.min(1, (1 - offset)), offset, right);\n this._setSwipeAnimation(this.nextBlockItem, Math.min(1, offset * 1.5), offset, !right);\n }\n }\n _swipeEndHandler(e) {\n super['_swipeEndHandler'].apply(this, [e]);\n if (this.gallery.animationEnabled()) {\n for (var i = 0; i < this.blockItems.length; i++) {\n if (this.blockItems[i] === this.currentBlockItem || this.blockItems[i] === this.nextBlockItem) {\n this._addAnimation(this.blockItems[i]);\n }\n this._restoreDefault(this.blockItems[i]);\n }\n }\n else {\n this.gallery.isAnimated(false);\n this.gallery.updatePagesVisible(this.gallery.preview);\n }\n }\n _endSwipe() {\n super['_endSwipe'].apply(this, arguments);\n this.gallery.isAnimated(false);\n this.gallery.updatePagesVisible(this.gallery.preview);\n }\n}\nregisterComponent('dxGalleryReportPreview', dxGalleryReportPreview);\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\dateRange\\dateRangeEditor.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Locker } from '../../../common/utils/_locker';\nimport { DateRangeParemeterPopupModel } from '../../mobile/internal/_parametersPopup';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { formatDate, addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport { DateRangeDialogElementsKeyboardHelper } from '../../accessibility/_dateRangeKeyboardHelper';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nclass CSDateTime {\n constructor(_date = null) {\n this._date = _date;\n }\n static get today() {\n return new CSDateTime().now();\n }\n get date() {\n return this._date;\n }\n get day() {\n return this._date.getDay();\n }\n get month() {\n return this._date.getMonth();\n }\n get year() {\n return this._date.getFullYear();\n }\n addMonths(months) {\n return new CSDateTime(new Date(this._date.setMonth(CSDateTime.today.month + months)));\n }\n addDays(days) {\n var newDate = this.date.getDate() + days;\n return new CSDateTime(new Date(this._date.setDate(newDate)));\n }\n addHours(hours) {\n var newDate = this.date.getHours() + hours;\n return new CSDateTime(new Date(this._date.setHours(newDate)));\n }\n addYears(years) {\n return new CSDateTime(new Date(this._date.setFullYear(this._date.getFullYear() + years)));\n }\n now() {\n return new CSDateTime(new Date(new Date().setHours(0, 0, 0, 0)));\n }\n}\nfunction createRangeItem(displayName, localizationId, range) {\n var item = {\n displayName: getLocalization(displayName, localizationId),\n range: range\n };\n Object.defineProperty(item, 'displayName', {\n get: () => getLocalization(displayName, localizationId),\n configurable: true\n });\n return item;\n}\nexport var predefinedDateRanges = [\n createRangeItem('Today', 'PreviewStringId.DateRangeParameterEditor_Today', () => [\n CSDateTime.today.date,\n CSDateTime.today.date\n ]),\n createRangeItem('Yesterday', 'PreviewStringId.DateRangeParameterEditor_Yesterday', () => [\n CSDateTime.today.addDays(-1).date,\n CSDateTime.today.addDays(-1).date\n ]),\n createRangeItem('Current Week', 'PreviewStringId.DateRangeParameterEditor_CurrentWeek', () => [\n CSDateTime.today.addDays(-CSDateTime.today.day).date,\n CSDateTime.today.addDays(-CSDateTime.today.day).addDays(6).date\n ]),\n createRangeItem('Last Week', 'PreviewStringId.DateRangeParameterEditor_LastWeek', () => [\n CSDateTime.today.addDays(-7).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Week', 'PreviewStringId.DateRangeParameterEditor_PreviousWeek', () => [\n CSDateTime.today.addDays(-CSDateTime.today.day - 7).date,\n CSDateTime.today.addDays(-CSDateTime.today.day - 1).date\n ]),\n createRangeItem('Current Month', 'PreviewStringId.DateRangeParameterEditor_CurrentMonth', () => [\n new Date(CSDateTime.today.year, CSDateTime.today.month, 1),\n new Date(CSDateTime.today.year, CSDateTime.today.month + 1, 0),\n ]),\n createRangeItem('Last Month', 'PreviewStringId.DateRangeParameterEditor_LastMonth', () => [\n CSDateTime.today.addMonths(-1).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Month', 'PreviewStringId.DateRangeParameterEditor_PreviousMonth', () => [\n new Date(CSDateTime.today.year, CSDateTime.today.month - 1, 1),\n new Date(CSDateTime.today.year, CSDateTime.today.month, 0),\n ]),\n createRangeItem('Current Quarter', 'PreviewStringId.DateRangeParameterEditor_CurrentQuarter', () => [\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date,\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3 + 3).date,\n ]),\n createRangeItem('Previous Quarter', 'PreviewStringId.DateRangeParameterEditor_PreviousQuarter', () => [\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3 - 3).date,\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date,\n ]),\n createRangeItem('Current Year', 'PreviewStringId.DateRangeParameterEditor_CurrentYear', () => [\n new Date(CSDateTime.today.year, 0, 1),\n new Date(CSDateTime.today.year, 11, 31),\n ]),\n createRangeItem('Last Year', 'PreviewStringId.DateRangeParameterEditor_LastYear', () => [\n CSDateTime.today.addYears(-1).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Year', 'PreviewStringId.DateRangeParameterEditor_PreviousYear', () => [\n new Date(CSDateTime.today.year - 1, 0, 1),\n new Date(CSDateTime.today.year - 1, 11, 31),\n ])\n];\nexport class DateRangeEditor extends Disposable {\n constructor(_options) {\n super();\n this._options = _options;\n this._locker = new Locker();\n this._popupVisible = ko.observable(false);\n this._showPopup = () => {\n this._popupVisible(true);\n };\n this._hidePopup = () => {\n this._popupVisible(false);\n this._$element.get(0).querySelector('input').focus();\n };\n this._accessibilityDialogItems = ko.observableArray([]);\n this.popupTemplate = 'dxrv-daterange-editor-popup';\n this.items = [];\n this.startDate = ko.observable(new Date(new Date().setHours(0, 0, 0, 0)));\n this.endDate = ko.observable(new Date(new Date().setHours(0, 0, 0, 0)));\n this.calendarHeight = '100%';\n this._disposables.push(_options.value.subscribe((newVal) => this.applyDate(newVal)), this._displayText = ko.computed(() => this._getStringValue([this.startDate(), this.endDate()])), this.startDate.subscribe(() => this.applyValue(this.startDate() > this.endDate())), this.endDate.subscribe(() => this.applyValue()));\n this.applyDate(this._options.value());\n this.items = predefinedDateRanges;\n if (_options.isMobile) {\n this.popupTemplate = 'dxrd-menu-parameters-content';\n this.popupModel = new DateRangeParemeterPopupModel(this);\n }\n else {\n this.popupModel = this;\n }\n this.dialogKeyboardHelper = new DateRangeDialogElementsKeyboardHelper(this._hidePopup, this._popupVisible);\n this._disposables.push(this.dialogKeyboardHelper);\n }\n _getStringValue(range) {\n return range.map(x => formatDate(x)).join(' - ');\n }\n _isSelected(item) {\n return this._displayText() === this._getStringValue(item.range());\n }\n _toParameterValue() {\n return [this.startDate(), this.endDate()];\n }\n _createTemplateData(value, min) {\n return {\n value,\n min,\n height: this.calendarHeight,\n inRange: (date) => this.inRange(date)\n };\n }\n applyDate(range, force = false) {\n this._locker.lock(() => {\n if (range[1] < this.startDate()) {\n this.startDate(range[0]);\n this.endDate(range[1]);\n }\n else {\n this.endDate(range[1]);\n this.startDate(range[0]);\n }\n });\n if (force)\n this.applyValue();\n }\n inRange(date) {\n var _end = new Date(this.endDate().getTime());\n var _start = new Date(this.startDate().getTime());\n return date <= new Date(_end.setHours(0, 0, 0, 0)) &&\n date >= new Date(_start.setHours(0, 0, 0, 0));\n }\n applyValue(updateEndDate = false) {\n this._locker.lock(() => {\n updateEndDate && this.endDate(this.startDate());\n this._options.value(this._toParameterValue());\n });\n }\n}\nko.bindingHandlers['dxrvDateRangeEditor'] = {\n init: (element, valueAccessor, bindings, model, bindingContext) => {\n var rangeEditor = new DateRangeEditor(valueAccessor());\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrv-daterange-editor'), $element = $.fn.constructor(element).append(templateHtml);\n var context = bindingContext.createChildContext(rangeEditor);\n ko.applyBindingsToDescendants(context, $element.children()[0]);\n addDisposeCallback(element, () => rangeEditor.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_imagePainter.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageAlignment, ImageSizeMode } from '../../editing/editingField';\nexport class ImagePainter {\n constructor(options) {\n this.format = ko.observable();\n this.image = options.imageSource;\n this.sizeMode = options.sizeMode;\n this.alignment = options.alignment;\n }\n _drawImage(imageSource, context, scale, contentSize) {\n var deferred = $.Deferred();\n if (!imageSource)\n return deferred.resolve().promise();\n var background = new Image();\n var prefix = 'data:image/' + (this.format() || 'png') + ';base64,';\n if (this.format() === 'svg') {\n prefix = 'data:image/svg+xml;charset=UTF-8;base64,';\n }\n var imageBase64 = imageSource.indexOf('base64,') !== -1 ? imageSource : prefix + imageSource;\n background.src = imageBase64;\n background.onload = () => {\n var size = this._getImageSize(background, scale, contentSize);\n var location = this._getImageCoordinate(size, contentSize);\n context.drawImage(background, location.x, location.y, size.width, size.height);\n deferred.resolve();\n };\n return deferred.promise();\n }\n _getImageSize(image, scale, contentSize) {\n var sizeMode = this.sizeMode();\n var width = image.width * scale, height = image.height * scale;\n if (sizeMode === ImageSizeMode.StretchImage) {\n width = contentSize.width;\n height = contentSize.height;\n }\n else if (sizeMode === ImageSizeMode.Cover || sizeMode === ImageSizeMode.ZoomImage || (sizeMode === ImageSizeMode.Squeeze && (contentSize.width < width || contentSize.height < height))) {\n var ratio = (sizeMode === ImageSizeMode.Cover ? Math.max : Math.min)(contentSize.width / width, contentSize.height / height);\n width *= ratio;\n height *= ratio;\n }\n return { width: width, height: height };\n }\n _getImageCoordinate(imageSize, contentSize) {\n var alignment = this.alignment();\n var x = 0, y = 0;\n if (!(alignment in ImageAlignment) && (this.sizeMode() === ImageSizeMode.Cover || this.sizeMode() === ImageSizeMode.ZoomImage || this.sizeMode() === ImageSizeMode.Squeeze)) {\n alignment = ImageAlignment.MiddleCenter;\n }\n if (alignment === ImageAlignment.MiddleLeft || alignment === ImageAlignment.MiddleCenter || alignment === ImageAlignment.MiddleRight) {\n y = (contentSize.height - imageSize.height) / 2;\n }\n else if (alignment === ImageAlignment.BottomLeft || alignment === ImageAlignment.BottomCenter || alignment === ImageAlignment.BottomRight) {\n y = contentSize.height - imageSize.height;\n }\n if (alignment === ImageAlignment.TopCenter || alignment === ImageAlignment.MiddleCenter || alignment === ImageAlignment.BottomCenter) {\n x = (contentSize.width - imageSize.width) / 2;\n }\n else if (alignment === ImageAlignment.TopRight || alignment === ImageAlignment.MiddleRight || alignment === ImageAlignment.BottomRight) {\n x = contentSize.width - imageSize.width;\n }\n return { x: x, y: y };\n }\n refresh(context, scale = 1, contentSize) {\n contentSize = contentSize || {\n width: context.canvas.width,\n height: context.canvas.height\n };\n return this._drawImage(this.image(), context, scale, contentSize);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_signaturePainter.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport class SignaturePainter extends Disposable {\n constructor() {\n super();\n this._points = ko.observableArray([]);\n this.hasPoints = ko.computed(() => { return this._points().length > 0; });\n this._disposables.push(this.hasPoints);\n }\n dispose() {\n super.dispose();\n this.reset();\n }\n _drawPath(context, x, y, lastX, lastY, color, lineWidth) {\n context.beginPath();\n context.strokeStyle = color;\n context.lineWidth = lineWidth;\n context.lineJoin = 'round';\n context.moveTo(lastX, lastY);\n context.lineTo(x, y);\n context.closePath();\n context.stroke();\n }\n _drawCircle(context, x, y, color, lineWidth) {\n context.beginPath();\n context.fillStyle = color;\n context.arc(x, y, lineWidth / 2, 0, 2 * Math.PI, false);\n context.fill();\n }\n _drawAllPoints(context) {\n this._points().forEach((point) => {\n if (point.isStart) {\n this._drawCircle(context, point.x, point.y, point.color, point.width);\n }\n else {\n this._drawPath(context, point.x, point.y, point.lastX, point.lastY, point.color, point.width);\n }\n });\n }\n drawCircle(context, x, y, color, width) {\n this._lastX = x;\n this._lastY = y;\n this._drawCircle(context, x, y, color, width);\n this._points.push({ x: this._lastX, y: this._lastY, color: color, width: width, isStart: true });\n }\n drawPath(context, x, y, color, width) {\n this._drawPath(context, x, y, this._lastX, this._lastY, color, width);\n this._points.push({ x: x, y: y, lastX: this._lastX, lastY: this._lastY, color: color, width: width });\n this._lastX = x;\n this._lastY = y;\n }\n resetLastPosition() {\n this._lastX = undefined;\n this._lastY = undefined;\n }\n resetPoints() {\n this._points([]);\n }\n reset() {\n this.resetLastPosition();\n this.resetPoints();\n }\n refresh(context) {\n this._drawAllPoints(context);\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_painter.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { ImageSizeMode, ImageAlignment } from '../../editing/editingField';\nimport { ImagePainter } from './_imagePainter';\nimport { SignaturePainter } from './_signaturePainter';\nimport { ImageEditingFieldViewModel } from '../../editing/models/imageEditingField';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport * as events from 'devextreme/events';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nexport class Painter extends Disposable {\n constructor(options) {\n super();\n this._pointerDownHandler = (e) => {\n var point = this._getContextPoint(e);\n point && this.signaturePainter.drawCircle(this._context, point.x, point.y, this.lineColor(), this.lineWidth());\n };\n this._pointerMoveHandler = (e) => {\n if (e.pointerType === 'touch' || e.pointerType === 'pen' || (e.pointerType === 'mouse' && e.originalEvent['buttons'] == 1)) {\n var point = this._getContextPoint(e);\n point && this.signaturePainter.drawPath(this._context, point.x, point.y, this.lineColor(), this.lineWidth());\n }\n };\n this._pointerLeaveHandler = (e) => {\n this.signaturePainter.resetLastPosition();\n };\n this.format = (newVal) => {\n if (newVal)\n this.imagePainter.format(newVal);\n return this.imagePainter.format();\n };\n this.imageSizeMode = ko.observable(ImageSizeMode.Normal);\n this.imageAlignment = ko.observable(ImageAlignment.TopLeft);\n this.lineWidth = ko.observable(1);\n this.lineColor = ko.observable('#000000');\n this.zoom = options.zoom;\n this.image = ko.observable(options.imageSource);\n this.imageSizeMode(options.sizeMode);\n this.imageAlignment(options.alignment);\n this.imagePainter = new ImagePainter({\n alignment: this.imageAlignment,\n imageSource: this.image,\n sizeMode: this.imageSizeMode\n });\n this.format(options.imageType);\n this._disposables.push(this.signaturePainter = new SignaturePainter());\n this._disposables.push(this.signaturePainter.hasPoints.subscribe((newVal) => {\n if (newVal)\n this._setCanvasSize(this.initialSize.width, this.initialSize.height);\n else\n this._setCanvasSize(this.initialSize.width * this.zoom(), this.initialSize.height * this.zoom());\n this.refresh();\n }));\n this._disposables.push(this.scale = ko.computed(() => {\n return this.hasSignature() ? this.zoom() : 1;\n }));\n if (options.canDraw) {\n this._disposables.push((options.canDraw).subscribe((newValue) => {\n if (newValue) {\n this._addEvents();\n }\n else {\n this._removeEvents();\n }\n }));\n }\n this._disposables.push(this.zoom.subscribe((newVal) => {\n if (!this.signaturePainter.hasPoints()) {\n this._setCanvasSize(this.initialSize.width * newVal, this.initialSize.height * newVal);\n this.refresh();\n }\n }));\n }\n _getContextPoint(e) {\n if (e.target.nodeName !== 'CANVAS')\n return;\n var zoom = this.zoom();\n var x, y;\n if (e.offsetX && e.offsetY) {\n zoom = this.hasSignature() ? 1 : zoom;\n x = e.offsetX / zoom;\n y = e.offsetY / zoom;\n }\n else {\n var rect = this._context.canvas.getBoundingClientRect();\n x = (e.clientX - rect.left) / zoom;\n y = (e.clientY - rect.top) / zoom;\n }\n return { x, y };\n }\n _addEvents() {\n var element = this.$element.get(0);\n events.on(element, 'dxpointerdown', this._pointerDownHandler);\n events.on(element, 'dxpointermove', this._pointerMoveHandler);\n events.on(element, 'dxpointerleave', this._pointerLeaveHandler);\n }\n _removeEvents() {\n var element = this.$element.get(0);\n events.off(element, 'dxpointerdown', this._pointerDownHandler);\n events.off(element, 'dxpointermove', this._pointerMoveHandler);\n events.off(element, 'dxpointerleave', this._pointerLeaveHandler);\n }\n _setCanvasSize(width, height) {\n this._context.canvas.setAttribute('width', width);\n this._context.canvas.setAttribute('height', height);\n }\n _cleanCanvas() {\n this._context.clearRect(0, 0, this._context.canvas.width, this._context.canvas.height);\n }\n clear() {\n this.image(null);\n this.signaturePainter.reset();\n this._cleanCanvas();\n }\n refresh() {\n this._cleanCanvas();\n var zoom = this.signaturePainter.hasPoints() ? 1 : this.zoom();\n var size = this.signaturePainter.hasPoints() ? this.initialSize : undefined;\n this.imagePainter.refresh(this._context, zoom, size)\n .done(() => this.signaturePainter.refresh(this._context));\n }\n initSize(element, zoom) {\n this.$element = element;\n this.initialSize = {\n width: this.$element.outerWidth() / zoom,\n height: this.$element.outerHeight() / zoom\n };\n }\n initCanvas(element, zoom) {\n var canvas = this.$element.find('canvas')[0];\n this._context = canvas.getContext('2d');\n this._setCanvasSize(this.initialSize.width * zoom, this.initialSize.height * zoom);\n this.imagePainter.refresh(this._context, zoom, {\n width: this._context.canvas.offsetWidth,\n height: this._context.canvas.offsetHeight\n });\n }\n imageFormatByType(imageType) {\n return imageType === ImageEditingFieldViewModel.__DefaultImageType ? 'png' : imageType;\n }\n getImage() {\n return this._context.canvas.toDataURL('image/png');\n }\n hasSignature() {\n return this.signaturePainter.hasPoints();\n }\n dispose() {\n super.dispose();\n this._removeEvents();\n this.$element = null;\n this._context = null;\n }\n reset(initialImage, initialAlignment, initialSizeMode, initialImageType) {\n this.image(initialImage);\n this.imageAlignment(initialAlignment);\n this.imageSizeMode(initialSizeMode);\n this.format(this.imageFormatByType(initialImageType));\n this.signaturePainter.reset();\n this.refresh();\n }\n}\nko.bindingHandlers['dxPainter'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = (valueAccessor());\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-painter');\n var $element = $.fn.constructor(element).append(templateHtml);\n var child = $element.children()[0];\n var $child = $.fn.constructor(child);\n var model = new Painter(options);\n model.initSize($child, options.zoom());\n addDisposeCallback(element, function () {\n model.dispose();\n });\n ko.applyBindings(model, child);\n model.initCanvas($child, options.zoom());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorToolbarItem.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { PopupComponentBase } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nexport class PictureEditorToolbarItem {\n constructor(options) {\n this.id = options.id;\n this.icon = options.icon;\n this.action = options.action;\n this.active = options.active;\n this.renderedHandler = options.renderedHandler;\n this.title = options.title;\n }\n dispose() {\n this.renderedHandler = null;\n this.action = null;\n }\n}\nexport class PictureEditorToolbarItemWithPopup extends PictureEditorToolbarItem {\n constructor(options) {\n super(options);\n this.template = options.template;\n if (options.templateOptions) {\n this.templateOptions = options.templateOptions;\n this._popup = new PopupComponentBase();\n this.templateOptions.onContentReady = this._popup.onContentReady;\n this.templateOptions.hideOnOutsideClick = this._popup.hideOnOutsideClick;\n this.templateOptions.onShown = (e) => {\n var $element = $.fn.constructor(e.element);\n var topElement = $element.position().top;\n var popupsOffset = e['model'].getPositionTarget().offset().top - $.fn.constructor(e.component.content()).offset().top;\n var $arrow = $.fn.constructor($element.find('.dx-popover-arrow')[0]);\n $arrow.css('top', popupsOffset + topElement - 24 - 11);\n };\n }\n }\n dispose() {\n super.dispose();\n this._popup.dispose();\n this.templateOptions = null;\n }\n}\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorActionProvider.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { calculateWithZoomFactor, findMatchesInString, searchPlaceholder, ShowMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { imageAlignment, ImageAlignment, ImageSizeMode, sizing } from '../../editing/editingField';\nimport { getEnumValues, getImageBase64 } from '../../internal/_utils';\nimport { PictureEditorToolbarItem, PictureEditorToolbarItemWithPopup } from './_pictureEditorToolbarItem';\nimport { PictureEditorActionId } from './_pictureEditorTypes';\nexport class PictureEditorActionProvider extends Disposable {\n constructor(_editorModel, _popupOptions) {\n super();\n this._editorModel = _editorModel;\n this._popupOptions = _popupOptions;\n }\n _getValues(enumType, prefix, propertyName, info) {\n var array = [];\n getEnumValues(enumType).forEach((item) => {\n var attrTitle = undefined;\n if (info && info.valuesArray.length > 0) {\n var displayValue = info.valuesArray.filter((value) => value.value === item)[0];\n attrTitle = getLocalization(displayValue.displayValue || displayValue.value, displayValue.localizationId);\n }\n array.push({\n value: item,\n iconTemplate: 'dxrd-svg-pictureeditor-' + prefix + '_' + item.toLowerCase(),\n attrTitle,\n isSelected: ko.computed(() => { return this._editorModel.painter[propertyName]() === enumType[item]; }),\n action: () => {\n this._editorModel.painter[propertyName](enumType[item]);\n this._editorModel.painter.refresh();\n }\n });\n });\n return array;\n }\n _getColorValues() {\n var array = [];\n PictureEditorActionProvider.colors.forEach((item) => {\n array.push({\n value: item,\n isSelected: ko.computed(() => { return this._editorModel.painter.lineColor() === item; }),\n action: (e) => {\n this._editorModel.painter.lineColor(item);\n }\n });\n });\n return array;\n }\n _initPopupOptions(options) {\n options.boundary = this._popupOptions.boundary;\n options.getPositionTarget = () => this._popupOptions.getPositionTarget();\n options.target = this._popupOptions.target;\n options.container = this._popupOptions.container;\n return options;\n }\n createOpenFileAction(action) {\n var openFileActionOptions = {\n id: PictureEditorActionId.OpenFile,\n icon: 'dxrd-svg-pictureeditor-toolbar_open',\n title: getLocalization('Load Image', 'PreviewStringId.ImageEditingFieldEditor_LoadImage'),\n active: ko.observable(false),\n action: (e) => action(e)\n };\n return new PictureEditorToolbarItem(openFileActionOptions);\n }\n createImagePickerAction(images, filterEnabled, action) {\n filterEnabled = filterEnabled && images.every((image) => image.text !== undefined);\n var active = ko.observable(false);\n var filter = ko.observable('');\n images.forEach((image) => {\n if (filterEnabled) {\n this._disposables.push(image.visible = ko.computed(() => !!findMatchesInString(image.text, filter())));\n }\n else {\n image.visible = true;\n }\n });\n var popupOptions = this._initPopupOptions({\n width: 'auto',\n height: calculateWithZoomFactor(300) + 'px',\n visible: active,\n contentTemplate: filterEnabled ? 'dx-picture-editing-imagepickerwithfilter' : 'dx-picture-editing-imagespicker',\n contentData: {\n filterEnabled: filterEnabled,\n filter: filter,\n searchPlaceholder: () => searchPlaceholder(),\n contentWidth: this._editorModel.painter.initialSize.width * 2 + 35,\n width: Math.min(this._editorModel.painter.initialSize.width, 150),\n height: Math.min(this._editorModel.painter.initialSize.height, 150),\n action: (data) => {\n if (data.url) {\n getImageBase64(data.url).done((result) => {\n action(result);\n }).fail((e) => {\n ShowMessage(e.name + ' :' + e.message.split(':').pop(), 'error');\n });\n }\n else {\n action(data.data);\n }\n },\n images: images\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.PickImage,\n icon: 'dxrd-svg-pictureeditor-image_gallery',\n title: getLocalization('Choose Image', 'PreviewStringId.ImageEditingFieldEditor_ChooseImage'),\n active: active,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions\n });\n }\n createSizingAction() {\n var alignmentActive = ko.observable(false);\n var popupOptions = this._initPopupOptions({\n width: calculateWithZoomFactor(174) + 'px',\n height: calculateWithZoomFactor(300) + 'px',\n visible: alignmentActive,\n contentTemplate: 'dx-picture-editing-sizemode-alignment',\n contentData: {\n sizeModeText: getLocalization('Size Mode', 'PreviewStringId.ImageEditingFieldEditor_SizeMode'),\n sizeMode: this._editorModel.painter.imageSizeMode,\n sizeModeValues: this._getValues(ImageSizeMode, 'size_mode', 'imageSizeMode', sizing),\n alignmentText: getLocalization('Alignment', 'PreviewStringId.ImageEditingFieldEditor_Alignment'),\n alignment: this._editorModel.painter.imageAlignment,\n alignmentValues: this._getValues(ImageAlignment, 'alignment', 'imageAlignment', imageAlignment),\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.Alignment,\n icon: 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment',\n title: getLocalization('Size Mode and Alignment', 'PreviewStringId.ImageEditingFieldEditor_SizeModeAndAlignment'),\n active: alignmentActive,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions\n });\n }\n createBrushAction() {\n var brushItemActive = ko.observable(false);\n var popupOptions = this._initPopupOptions({\n width: calculateWithZoomFactor(226) + 'px',\n height: calculateWithZoomFactor(295) + 'px',\n visible: brushItemActive,\n contentTemplate: 'dx-picture-editing-brush-options',\n contentData: {\n lineWidth: this._editorModel.painter.lineWidth,\n lineColor: this._editorModel.painter.lineColor,\n colors: this._getColorValues(),\n brushWidthText: getLocalization('Brush size', 'PreviewStringId.ImageEditingFieldEditor_BrushSize'),\n brushColorText: getLocalization('Brush color', 'PreviewStringId.ImageEditingFieldEditor_BrushColor'),\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.Brush,\n icon: 'dxrd-svg-pictureeditor-toolbar_brush_options',\n title: getLocalization('Brush Options', 'PreviewStringId.ImageEditingFieldEditor_BrushOptions'),\n active: brushItemActive,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions,\n renderedHandler: (elem, mod) => {\n if (elem[0].nodeName.toLowerCase() === 'svg') {\n var brushIcon = $.fn.constructor(elem[0]).find('.BrushColor');\n if (brushIcon) {\n brushIcon.attr('data-bind', '{ style: { fill: $data.templateOptions.contentData.lineColor }}');\n ko.applyBindingsToDescendants(mod, brushIcon[0]);\n }\n }\n }\n });\n }\n createResetItem(action) {\n var clearItemOptions = {\n id: PictureEditorActionId.Reset,\n icon: 'dxrd-svg-pictureeditor-toolbar_reset',\n title: getLocalization('Reset', 'PreviewStringId.ImageEditingFieldEditor_Reset'),\n active: ko.observable(false),\n action: (e) => action()\n };\n return new PictureEditorToolbarItem(clearItemOptions);\n }\n createClearItem(action) {\n var clearItemOptions = {\n id: PictureEditorActionId.Clear,\n icon: 'dxrd-svg-pictureeditor-toolbar_clear',\n title: getLocalization('Clear', 'PreviewStringId.ImageEditingFieldEditor_Clear'),\n active: ko.observable(false),\n action: (e) => action()\n };\n return new PictureEditorToolbarItem(clearItemOptions);\n }\n}\nPictureEditorActionProvider.colors = ['#FFFFFF', '#FFC0C0', '#FFE0C0', '#FFFFC0', '#C0FFC0', '#C0FFFF', '#C0C0FF', '#FFC0FF', '#E0E0E0', '#FF8080', '#FFC080', '#FFFF80', '#80FF80', '#80FFFF', '#8080FF', '#FF80FF', '#C0C0C0', '#FF0000', '#FF8000', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#FF00FF', '#808080', '#C00000', '#C04000', '#C0C000', '#00C000', '#00C0C0', '#0000C0', '#C000C0', '#404040', '#800000', '#804000', '#808000', '#008000', '#008080', '#000080', '#800080', '#000000', '#400000', '#804040', '#404000', '#004000', '#004040', '#000040', '#400040'];\naddToBindingsCache('style: { fill: $data.templateOptions.contentData.lineColor }', function ($context, $element) {\n return {\n 'style': function () {\n return {\n 'fill': $context.$data.templateOptions.contentData.lineColor\n };\n }\n };\n});\n","/**\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorModel.js)\n* Version: 22.2.15\n* Build date: Feb 11, 2025\n* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\n*/\nimport { addDisposeCallback, getParentContainer, uploadFile } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nimport * as events from 'devextreme/events';\nimport dxPopup from 'devextreme/ui/popup';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageEditingFieldViewModel } from '../../editing/models/imageEditingField';\nimport { PictureEditMode } from './pictureEditMode';\nimport { Painter } from './_painter';\nimport { PictureEditorActionProvider } from './_pictureEditorActionProvider';\nexport class PictureEditorModel extends Disposable {\n constructor(options, element) {\n super();\n this.GESTURE_COVER_CLASS = 'dx-gesture-cover';\n this.ACTIVE_POPUP_CLASS = '.dx-picture-editing-active';\n this._getPopupContent = () => {\n var popupInstance = dxPopup['getInstance'](this.$element.find(this.ACTIVE_POPUP_CLASS).get(0));\n return popupInstance && $.fn.constructor(popupInstance.content());\n };\n this.getPopupContainer = getParentContainer;\n this.actions = [];\n this.canDraw = ko.observable(false);\n this._initialImageType = ko.unwrap(options.imageType) || 'png';\n this.zoom = options.zoom || ko.observable(1);\n this.editMode = ko.unwrap(options.imageMode) || PictureEditMode.Image;\n this._initialImage = ko.unwrap(options.image);\n this._initialAlignment = ko.unwrap(options.alignment);\n this._initialSizeMode = ko.unwrap(options.sizeMode);\n this._callbacks = options.callbacks;\n this.$element = $.fn.constructor(element);\n this.shadingEnabled = options.shadingEnabled;\n this.active = ko.isObservable(options.active) ? options.active : ko.observable(!!options.active);\n var painterOptions = {\n alignment: this._initialAlignment,\n canDraw: this.editMode !== PictureEditMode.Image && this.canDraw,\n imageSource: this._initialImage,\n imageType: this._initialImageType,\n sizeMode: this._initialSizeMode,\n zoom: this.zoom\n };\n this.painter = new Painter(painterOptions);\n this._disposables.push(this.painter);\n this.painter.initSize(this.$element, this.zoom());\n this.actionsProvider = new PictureEditorActionProvider(this, $.extend(true, {\n getPositionTarget: () => {\n return this._getPopupContent().find('.dx-picture-editing-toolbar');\n }\n }, (options.popupOptions || {})));\n this._disposables.push(this.actionsProvider);\n this._initActions(options.callbacks && options.callbacks.customizeActions);\n this.applyBindings();\n }\n _takeFocus() {\n if (!this.active()) {\n this._callbacks && this._callbacks.onFocusIn && this._callbacks.onFocusIn(this);\n this.active(true);\n }\n else if (this.editMode !== PictureEditMode.Image) {\n this.canDraw(true);\n this._callbacks && this._callbacks.onDraw && this._callbacks.onDraw(this);\n }\n }\n _releaseFocus() {\n if (this.active()) {\n this._callbacks && this._callbacks.onFocusOut && this._callbacks.onFocusOut(this);\n this.active(false);\n this.canDraw(false);\n }\n }\n _wrapButtonAction(item, model) {\n var oldAction = item.action;\n item.action = (sender, event) => {\n model.changeActiveButton(sender);\n if (oldAction)\n oldAction(event, model);\n };\n }\n _initActions(customizeActionsCallback) {\n if (this.editMode == PictureEditMode.Image || this.editMode == PictureEditMode.ImageAndSignature) {\n this.actions.push(this.actionsProvider.createOpenFileAction((e) => this._loadImage(e)));\n this.actions.push(this.actionsProvider.createSizingAction());\n }\n if (this.editMode == PictureEditMode.Signature || this.editMode == PictureEditMode.ImageAndSignature) {\n this.actions.push(this.actionsProvider.createBrushAction());\n }\n if (!!this._initialImage) {\n this.actions.push(this.actionsProvider.createResetItem(() => {\n this.painter.reset(this._initialImage, this._initialAlignment, this._initialSizeMode, this._initialImageType);\n }));\n }\n this.actions.push(this.actionsProvider.createClearItem(() => {\n this.painter.clear();\n }));\n customizeActionsCallback && customizeActionsCallback(this, this.actions);\n this.actions.forEach((item) => this._wrapButtonAction(item, this));\n }\n _loadImage(event) {\n event.stopPropagation();\n event.preventDefault();\n uploadFile({\n accept: 'image/*'\n }).done(result => {\n this.painter.format(result.format);\n this.painter.image(result.content);\n this.painter.refresh();\n });\n }\n _addEvents() {\n this._pointerDownHandler = (e) => {\n this._takeFocus();\n };\n this._pointerCancelHandler = (e) => {\n this._releaseFocus();\n };\n this._pointerUpHandler = (e) => {\n if (!this.active())\n return;\n var isUnderCursor = (componentContent) => {\n return componentContent && (componentContent.is(e.target) || componentContent.has(e.target).length > 0);\n };\n var isEditorContainer = this.$element.is(e.target) || this.$element.has(e.target).length > 0\n || isUnderCursor(this._getPopupContent())\n || this.actions.some(a => {\n if (!a.active())\n return false;\n var component = ko.unwrap(a.component);\n return isUnderCursor(component && $.fn.constructor(component.content()));\n })\n || (e.target && e.target.className && e.target.className.indexOf && e.target.className.indexOf(this.GESTURE_COVER_CLASS) !== -1);\n if (!isEditorContainer) {\n this._releaseFocus();\n }\n };\n var element = this.$element.get(0);\n events.on(element, 'dxpointerdown', this._pointerDownHandler);\n events.on(element, 'dxpointercancel', this._pointerCancelHandler);\n events.on(document, 'dxpointerup', this._pointerUpHandler);\n }\n changeActiveButton(selectedItem) {\n this.actions.forEach(action => {\n action.active(action === selectedItem && !action.active());\n });\n }\n applyBindings() {\n ko.cleanNode(this.$element[0]);\n ko.applyBindings(this, this.$element[0]);\n this._addEvents();\n this.painter.initCanvas(this.$element, this.zoom());\n }\n dispose() {\n super.dispose();\n var element = this.$element.get(0);\n events.off(element, 'dxpointerdown', this._pointerDownHandler);\n events.off(element, 'dxpointercancel', this._pointerCancelHandler);\n events.off(document, 'dxpointerup', this._pointerUpHandler);\n this.actions.forEach(action => action.dispose && action.dispose());\n this.$element = null;\n }\n getImage() {\n return this.painter.getImage();\n }\n reset(image, alignment, sizeMode, imageType) {\n this._initialImage = image;\n this._initialAlignment = alignment;\n this._initialSizeMode = sizeMode;\n this._initialImageType = imageType;\n this.painter.reset(this._initialImage, this._initialAlignment, this._initialSizeMode, this._initialImageType);\n }\n getCurrentOptions() {\n var imageBase64 = (this.painter.hasSignature() ? this.painter.getImage() : this.painter.image()) || '';\n var imageParts = imageBase64.split(',');\n return {\n sizeMode: this.painter.imageSizeMode(),\n alignment: this.painter.imageAlignment(),\n imageType: this.painter.hasSignature() ? ImageEditingFieldViewModel.__DefaultImageType : this.painter.format(),\n image: imageParts[imageParts.length - 1]\n };\n }\n}\nko.bindingHandlers['dxPictureEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = (valueAccessor());\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-picture-editing');\n var $element = $.fn.constructor(element).append(templateHtml);\n var child = $element.children()[0];\n var model = new PictureEditorModel(options, child);\n addDisposeCallback(element, function () {\n model.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n * DevExtreme (esm/viz/palette.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar _floor = Math.floor;\r\nvar _ceil = Math.ceil;\r\nimport _Color from \"../color\";\r\nvar _isArray = Array.isArray;\r\nimport {\r\n isString as _isString\r\n} from \"../core/utils/type\";\r\nvar HIGHLIGHTING_STEP = 50;\r\nvar DEFAULT_PALETTE = \"material\";\r\nvar officePalette = {\r\n simpleSet: [\"#5f8b95\", \"#ba4d51\", \"#af8a53\", \"#955f71\", \"#859666\", \"#7e688c\"],\r\n indicatingSet: [\"#a3b97c\", \"#e1b676\", \"#ec7f83\"],\r\n gradientSet: [\"#5f8b95\", \"#ba4d51\"],\r\n accentColor: \"#ba4d51\"\r\n};\r\nvar palettes = {\r\n [DEFAULT_PALETTE]: {\r\n simpleSet: [\"#1db2f5\", \"#f5564a\", \"#97c95c\", \"#ffc720\", \"#eb3573\", \"#a63db8\"],\r\n indicatingSet: [\"#97c95c\", \"#ffc720\", \"#f5564a\"],\r\n gradientSet: [\"#1db2f5\", \"#97c95c\"],\r\n accentColor: \"#1db2f5\"\r\n },\r\n office: officePalette,\r\n \"harmony light\": {\r\n simpleSet: [\"#fcb65e\", \"#679ec5\", \"#ad79ce\", \"#7abd5c\", \"#e18e92\", \"#b6d623\", \"#b7abea\", \"#85dbd5\"],\r\n indicatingSet: [\"#b6d623\", \"#fcb65e\", \"#e18e92\"],\r\n gradientSet: [\"#7abd5c\", \"#fcb65e\"],\r\n accentColor: \"#679ec5\"\r\n },\r\n \"soft pastel\": {\r\n simpleSet: [\"#60a69f\", \"#78b6d9\", \"#6682bb\", \"#a37182\", \"#eeba69\", \"#90ba58\", \"#456c68\", \"#7565a4\"],\r\n indicatingSet: [\"#90ba58\", \"#eeba69\", \"#a37182\"],\r\n gradientSet: [\"#78b6d9\", \"#eeba69\"],\r\n accentColor: \"#60a69f\"\r\n },\r\n pastel: {\r\n simpleSet: [\"#bb7862\", \"#70b3a1\", \"#bb626a\", \"#057d85\", \"#ab394b\", \"#dac599\", \"#153459\", \"#b1d2c6\"],\r\n indicatingSet: [\"#70b3a1\", \"#dac599\", \"#bb626a\"],\r\n gradientSet: [\"#bb7862\", \"#70b3a1\"],\r\n accentColor: \"#bb7862\"\r\n },\r\n bright: {\r\n simpleSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\", \"#e97f02\", \"#9d419c\", \"#7e4452\", \"#9ab57e\", \"#36a3a6\"],\r\n indicatingSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\"],\r\n gradientSet: [\"#e97f02\", \"#f8ca00\"],\r\n accentColor: \"#e97f02\"\r\n },\r\n soft: {\r\n simpleSet: [\"#cbc87b\", \"#9ab57e\", \"#e55253\", \"#7e4452\", \"#e8c267\", \"#565077\", \"#6babac\", \"#ad6082\"],\r\n indicatingSet: [\"#9ab57e\", \"#e8c267\", \"#e55253\"],\r\n gradientSet: [\"#9ab57e\", \"#e8c267\"],\r\n accentColor: \"#565077\"\r\n },\r\n ocean: {\r\n simpleSet: [\"#75c099\", \"#acc371\", \"#378a8a\", \"#5fa26a\", \"#064970\", \"#38c5d2\", \"#00a7c6\", \"#6f84bb\"],\r\n indicatingSet: [\"#c8e394\", \"#7bc59d\", \"#397c8b\"],\r\n gradientSet: [\"#acc371\", \"#38c5d2\"],\r\n accentColor: \"#378a8a\"\r\n },\r\n vintage: {\r\n simpleSet: [\"#dea484\", \"#efc59c\", \"#cb715e\", \"#eb9692\", \"#a85c4c\", \"#f2c0b5\", \"#c96374\", \"#dd956c\"],\r\n indicatingSet: [\"#ffe5c6\", \"#f4bb9d\", \"#e57660\"],\r\n gradientSet: [\"#efc59c\", \"#cb715e\"],\r\n accentColor: \"#cb715e\"\r\n },\r\n violet: {\r\n simpleSet: [\"#d1a1d1\", \"#eeacc5\", \"#7b5685\", \"#7e7cad\", \"#a13d73\", \"#5b41ab\", \"#e287e2\", \"#689cc1\"],\r\n indicatingSet: [\"#d8e2f6\", \"#d0b2da\", \"#d56a8a\"],\r\n gradientSet: [\"#eeacc5\", \"#7b5685\"],\r\n accentColor: \"#7b5685\"\r\n },\r\n carmine: {\r\n simpleSet: [\"#fb7764\", \"#73d47f\", \"#fed85e\", \"#d47683\", \"#dde392\", \"#757ab2\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#fb7764\", \"#73d47f\"],\r\n accentColor: \"#f05b41\"\r\n },\r\n \"dark moon\": {\r\n simpleSet: [\"#4ddac1\", \"#f4c99a\", \"#80dd9b\", \"#f998b3\", \"#4aaaa0\", \"#a5aef1\"],\r\n indicatingSet: [\"#59d8a4\", \"#f0ad4e\", \"#f9517e\"],\r\n gradientSet: [\"#4ddac1\", \"#f4c99a\"],\r\n accentColor: \"#3debd3\"\r\n },\r\n \"soft blue\": {\r\n simpleSet: [\"#7ab8eb\", \"#97da97\", \"#facb86\", \"#e78683\", \"#839bda\", \"#4db7be\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#7ab8eb\", \"#97da97\"],\r\n accentColor: \"#7ab8eb\"\r\n },\r\n \"dark violet\": {\r\n simpleSet: [\"#9c63ff\", \"#64c064\", \"#eead51\", \"#d2504b\", \"#4b6bbf\", \"#2da7b0\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#9c63ff\", \"#64c064\"],\r\n accentColor: \"#9c63ff\"\r\n },\r\n \"green mist\": {\r\n simpleSet: [\"#3cbab2\", \"#8ed962\", \"#5b9d95\", \"#efcc7c\", \"#f1929f\", \"#4d8dab\"],\r\n indicatingSet: [\"#72d63c\", \"#ffc852\", \"#f74a5e\"],\r\n gradientSet: [\"#3cbab2\", \"#8ed962\"],\r\n accentColor: \"#3cbab2\"\r\n }\r\n};\r\nvar currentPaletteName;\r\nexport function currentPalette(name) {\r\n if (void 0 === name) {\r\n return currentPaletteName || DEFAULT_PALETTE\r\n } else {\r\n name = normalizeEnum(name);\r\n currentPaletteName = name in palettes ? name : void 0\r\n }\r\n}\r\nexport function generateColors(palette, count) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\r\n keepLastColorInEnd: false\r\n };\r\n options.type = options.baseColorSet;\r\n options.extensionMode = options.paletteExtensionMode;\r\n return createPalette(palette, options).generateColors(count)\r\n}\r\nexport function getPalette(palette, parameters) {\r\n parameters = parameters || {};\r\n palette = palette || (void 0 === currentPaletteName ? parameters.themeDefault : currentPalette());\r\n var result;\r\n var type = parameters.type;\r\n if (_isArray(palette)) {\r\n return palette.slice(0)\r\n } else {\r\n if (_isString(palette)) {\r\n result = palettes[normalizeEnum(palette)]\r\n }\r\n if (!result) {\r\n result = palettes[currentPalette()]\r\n }\r\n }\r\n return type ? result[type].slice(0) : result\r\n}\r\nexport function registerPalette(name, palette) {\r\n var item = {};\r\n var paletteName;\r\n if (_isArray(palette)) {\r\n item.simpleSet = palette.slice(0)\r\n } else if (palette) {\r\n item.simpleSet = _isArray(palette.simpleSet) ? palette.simpleSet.slice(0) : void 0;\r\n item.indicatingSet = _isArray(palette.indicatingSet) ? palette.indicatingSet.slice(0) : void 0;\r\n item.gradientSet = _isArray(palette.gradientSet) ? palette.gradientSet.slice(0) : void 0;\r\n item.accentColor = palette.accentColor\r\n }\r\n if (!item.accentColor) {\r\n item.accentColor = item.simpleSet && item.simpleSet[0]\r\n }\r\n if (item.simpleSet || item.indicatingSet || item.gradientSet) {\r\n paletteName = normalizeEnum(name);\r\n extend(palettes[paletteName] = palettes[paletteName] || {}, item)\r\n }\r\n}\r\nexport function getAccentColor(palette, themeDefault) {\r\n palette = getPalette(palette, {\r\n themeDefault: themeDefault\r\n });\r\n return palette.accentColor || palette[0]\r\n}\r\n\r\nfunction RingBuf(buf) {\r\n var ind = 0;\r\n this.next = function() {\r\n var res = buf[ind++];\r\n if (ind === buf.length) {\r\n this.reset()\r\n }\r\n return res\r\n };\r\n this.reset = function() {\r\n ind = 0\r\n }\r\n}\r\n\r\nfunction getAlternateColorsStrategy(palette, parameters) {\r\n var stepHighlight = parameters.useHighlight ? HIGHLIGHTING_STEP : 0;\r\n var paletteSteps = new RingBuf([0, stepHighlight, -stepHighlight]);\r\n var currentPalette = [];\r\n\r\n function _reset() {\r\n var step = paletteSteps.next();\r\n currentPalette = step ? getAlteredPalette(palette, step) : palette.slice(0)\r\n }\r\n return {\r\n getColor: function(index) {\r\n var color = currentPalette[index % palette.length];\r\n if (index % palette.length === palette.length - 1) {\r\n _reset()\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i))\r\n }\r\n return colors\r\n },\r\n reset: function() {\r\n paletteSteps.reset();\r\n _reset()\r\n }\r\n }\r\n}\r\n\r\nfunction getExtrapolateColorsStrategy(palette, parameters) {\r\n return {\r\n getColor: function(index, count) {\r\n var paletteCount = palette.length;\r\n var cycles = _floor((count - 1) / paletteCount + 1);\r\n var color = palette[index % paletteCount];\r\n if (cycles > 1) {\r\n return function(color, cycleIndex, cycleCount) {\r\n var hsl = new _Color(color).hsl;\r\n var l = hsl.l / 100;\r\n var diapason = cycleCount - 1 / cycleCount;\r\n var minL = l - .5 * diapason;\r\n var maxL = l + .5 * diapason;\r\n var cycleMiddle = (cycleCount - 1) / 2;\r\n var cycleDiff = cycleIndex - cycleMiddle;\r\n if (minL < Math.min(.5, .9 * l)) {\r\n minL = Math.min(.5, .9 * l)\r\n }\r\n if (maxL > Math.max(.8, l + .15 * (1 - l))) {\r\n maxL = Math.max(.8, l + .15 * (1 - l))\r\n }\r\n if (cycleDiff < 0) {\r\n l -= (minL - l) * cycleDiff / cycleMiddle\r\n } else {\r\n l += cycleDiff / cycleMiddle * (maxL - l)\r\n }\r\n hsl.l = 100 * l;\r\n return _Color.prototype.fromHSL(hsl).toHex()\r\n }(color, _floor(index / paletteCount), cycles)\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i, count))\r\n }\r\n return colors\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction getColorMixer(palette, parameters) {\r\n var paletteCount = palette.length;\r\n var extendedPalette = [];\r\n\r\n function distributeColors(count, colorsCount, startIndex, distribution) {\r\n var groupSize = Math.floor(count / colorsCount);\r\n var extraItems = count - colorsCount * groupSize;\r\n var i = startIndex;\r\n var middleIndex;\r\n var size;\r\n while (i < startIndex + count) {\r\n size = groupSize;\r\n if (extraItems > 0) {\r\n size += 1;\r\n extraItems--\r\n }\r\n middleIndex = size > 2 ? Math.floor(size / 2) : 0;\r\n distribution.push(i + middleIndex);\r\n i += size\r\n }\r\n return distribution.sort((function(a, b) {\r\n return a - b\r\n }))\r\n }\r\n\r\n function getColorAndDistance(arr, startIndex, count) {\r\n startIndex = (count + startIndex) % count;\r\n var distance = 0;\r\n for (var i = startIndex; i < 2 * count; i += 1) {\r\n var index = (count + i) % count;\r\n if (arr[index]) {\r\n return [arr[index], distance]\r\n }\r\n distance++\r\n }\r\n }\r\n\r\n function extendPalette(count) {\r\n if (count <= paletteCount) {\r\n return palette\r\n }\r\n var result = [];\r\n var colorInGroups = paletteCount - 2;\r\n var currentColorIndex = 0;\r\n var cleanColorIndices = [];\r\n if (parameters.keepLastColorInEnd) {\r\n cleanColorIndices = distributeColors(count - 2, colorInGroups, 1, [0, count - 1])\r\n } else {\r\n cleanColorIndices = distributeColors(count - 1, paletteCount - 1, 1, [0])\r\n }\r\n for (var i = 0; i < count; i++) {\r\n if (cleanColorIndices.indexOf(i) > -1) {\r\n result[i] = palette[currentColorIndex++]\r\n }\r\n }\r\n result = function(paletteWithEmptyColors, paletteLength) {\r\n for (var i = 0; i < paletteLength; i++) {\r\n var color = paletteWithEmptyColors[i];\r\n if (!color) {\r\n var color1 = paletteWithEmptyColors[i - 1];\r\n if (!color1) {\r\n continue\r\n } else {\r\n var c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength);\r\n var color2 = new _Color(c2[0]);\r\n color1 = new _Color(color1);\r\n for (var j = 0; j < c2[1]; j++, i++) {\r\n paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex()\r\n }\r\n }\r\n }\r\n }\r\n return paletteWithEmptyColors\r\n }(result, count);\r\n return result\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n count = count || parameters.count || paletteCount;\r\n if (extendedPalette.length !== count) {\r\n extendedPalette = extendPalette(count)\r\n }\r\n return extendedPalette[index % count]\r\n },\r\n generateColors: function(count, repeat) {\r\n count = count || parameters.count || paletteCount;\r\n if (repeat && count > paletteCount) {\r\n var colors = extendPalette(paletteCount);\r\n for (var i = 0; i < count - paletteCount; i++) {\r\n colors.push(colors[i])\r\n }\r\n return colors\r\n } else {\r\n return paletteCount > 0 ? extendPalette(count).slice(0, count) : []\r\n }\r\n },\r\n reset: function() {}\r\n }\r\n}\r\nexport function createPalette(palette, parameters, themeDefaultPalette) {\r\n var paletteObj = {\r\n dispose() {\r\n this._extensionStrategy = null\r\n },\r\n getNextColor(count) {\r\n return this._extensionStrategy.getColor(this._currentColor++, count)\r\n },\r\n generateColors(count, parameters) {\r\n return this._extensionStrategy.generateColors(count, (parameters || {}).repeat)\r\n },\r\n reset() {\r\n this._currentColor = 0;\r\n this._extensionStrategy.reset();\r\n return this\r\n }\r\n };\r\n parameters = parameters || {};\r\n var extensionMode = (parameters.extensionMode || \"\").toLowerCase();\r\n var colors = getPalette(palette, {\r\n type: parameters.type || \"simpleSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n if (\"alternate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getAlternateColorsStrategy(colors, parameters)\r\n } else if (\"extrapolate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getExtrapolateColorsStrategy(colors, parameters)\r\n } else {\r\n paletteObj._extensionStrategy = getColorMixer(colors, parameters)\r\n }\r\n paletteObj.reset();\r\n return paletteObj\r\n}\r\n\r\nfunction getAlteredPalette(originalPalette, step) {\r\n var palette = [];\r\n var i;\r\n var ii = originalPalette.length;\r\n for (i = 0; i < ii; ++i) {\r\n palette.push(getNewColor(originalPalette[i], step))\r\n }\r\n return palette\r\n}\r\n\r\nfunction getNewColor(currentColor, step) {\r\n var newColor = new _Color(currentColor).alter(step);\r\n var lightness = getLightness(newColor);\r\n if (lightness > 200 || lightness < 55) {\r\n newColor = new _Color(currentColor).alter(-step / 2)\r\n }\r\n return newColor.toHex()\r\n}\r\n\r\nfunction getLightness(color) {\r\n return .3 * color.r + .59 * color.g + .11 * color.b\r\n}\r\nexport function getDiscretePalette(source, size, themeDefaultPalette) {\r\n var palette = size > 0 ? createDiscreteColors(getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n }), size) : [];\r\n return {\r\n getColor: function(index) {\r\n return palette[index] || null\r\n }\r\n }\r\n}\r\n\r\nfunction createDiscreteColors(source, count) {\r\n var colorCount = count - 1;\r\n var sourceCount = source.length - 1;\r\n var colors = [];\r\n var gradient = [];\r\n var i;\r\n\r\n function addColor(pos) {\r\n var k = sourceCount * pos;\r\n var kl = _floor(k);\r\n var kr = _ceil(k);\r\n gradient.push(colors[kl].blend(colors[kr], k - kl).toHex())\r\n }\r\n for (i = 0; i <= sourceCount; ++i) {\r\n colors.push(new _Color(source[i]))\r\n }\r\n if (colorCount > 0) {\r\n for (i = 0; i <= colorCount; ++i) {\r\n addColor(i / colorCount)\r\n }\r\n } else {\r\n addColor(.5)\r\n }\r\n return gradient\r\n}\r\nexport function getGradientPalette(source, themeDefaultPalette) {\r\n var palette = getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n var color1 = new _Color(palette[0]);\r\n var color2 = new _Color(palette[1]);\r\n return {\r\n getColor: function(ratio) {\r\n return 0 <= ratio && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/base_theme_manager.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n createPalette as getPalette,\r\n getDiscretePalette,\r\n getGradientPalette,\r\n getAccentColor as accentColor\r\n} from \"../palette\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport {\r\n getTheme,\r\n addCacheItem,\r\n removeCacheItem\r\n} from \"../themes\";\r\nvar _getTheme = getTheme;\r\nvar _addCacheItem = addCacheItem;\r\nvar _removeCacheItem = removeCacheItem;\r\nvar _extend = extend;\r\nvar _each = each;\r\n\r\nfunction getThemePart(theme, path) {\r\n var _theme = theme;\r\n path && _each(path.split(\".\"), (function(_, pathItem) {\r\n return _theme = _theme[pathItem]\r\n }));\r\n return _theme\r\n}\r\nexport var BaseThemeManager = Class.inherit({\r\n ctor: function(options) {\r\n this._themeSection = options.themeSection;\r\n this._fontFields = options.fontFields || [];\r\n _addCacheItem(this)\r\n },\r\n dispose: function() {\r\n _removeCacheItem(this);\r\n this._callback = this._theme = this._font = null;\r\n return this\r\n },\r\n setCallback: function(callback) {\r\n this._callback = callback;\r\n return this\r\n },\r\n setTheme: function(theme, rtl) {\r\n this._current = theme;\r\n this._rtl = rtl;\r\n return this.refresh()\r\n },\r\n refresh: function() {\r\n var current = this._current || {};\r\n var theme = _getTheme(current.name || current);\r\n this._themeName = theme.name;\r\n this._defaultPalette = theme.defaultPalette;\r\n this._font = _extend({}, theme.font, current.font);\r\n this._themeSection && _each(this._themeSection.split(\".\"), (function(_, path) {\r\n theme = _extend(true, {}, theme[path])\r\n }));\r\n this._theme = _extend(true, {}, theme, _isString(current) ? {} : current);\r\n this._initializeTheme();\r\n if (_parseScalar(this._rtl, this._theme.rtlEnabled)) {\r\n _extend(true, this._theme, this._theme._rtl)\r\n }\r\n this._callback();\r\n return this\r\n },\r\n theme: function(path) {\r\n return getThemePart(this._theme, path)\r\n },\r\n themeName: function() {\r\n return this._themeName\r\n },\r\n createPalette: function(palette, options) {\r\n return getPalette(palette, options, this._defaultPalette)\r\n },\r\n createDiscretePalette: function(palette, count) {\r\n return getDiscretePalette(palette, count, this._defaultPalette)\r\n },\r\n createGradientPalette: function(palette) {\r\n return getGradientPalette(palette, this._defaultPalette)\r\n },\r\n getAccentColor: function(palette) {\r\n return accentColor(palette, this._defaultPalette)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n _each(that._fontFields || [], (function(_, path) {\r\n that._initializeFont(getThemePart(that._theme, path))\r\n }))\r\n },\r\n _initializeFont: function(font) {\r\n _extend(font, this._font, _extend({}, font))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/errors_warnings.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E2001: \"Invalid data source\",\r\n E2002: \"Axis type and data type are incompatible\",\r\n E2003: 'The \"{0}\" data source field contains data of unsupported type',\r\n E2004: 'The \"{0}\" data source field is inconsistent',\r\n E2005: 'The value field \"{0}\" is absent in the data source or all its values are negative',\r\n E2006: \"A cycle is detected in provided data\",\r\n E2007: 'The value field \"{0}\" is absent in the data source',\r\n E2008: 'The value field \"{0}\" must be a string',\r\n E2009: 'The value field \"{0}\" must be a positive numeric value',\r\n E2101: \"Unknown series type: {0}\",\r\n E2102: \"Ambiguity occurred between two value axes with the same name\",\r\n E2103: 'The \"{0}\" option is given an invalid value. Assign a function instead',\r\n E2104: \"Invalid logarithm base\",\r\n E2105: 'Invalid value of a \"{0}\"',\r\n E2202: \"Invalid {0} scale value\",\r\n E2203: \"The range you are trying to set is invalid\",\r\n W2002: \"The {0} series cannot be drawn because the {1} data field is missing\",\r\n W2003: \"Tick interval is too small\",\r\n W2101: 'The \"{0}\" pane does not exist; the last pane is used by default',\r\n W2102: 'A value axis with the \"{0}\" name was created automatically',\r\n W2103: \"The chart title was hidden due to the container size\",\r\n W2104: \"The legend was hidden due to the container size\",\r\n W2105: 'The title of the \"{0}\" axis was hidden due to the container size',\r\n W2106: 'The labels of the \"{0}\" axis were hidden due to the container size',\r\n W2107: \"The export menu was hidden due to the container size\",\r\n W2108: \"The browser does not support exporting images to {0} format.\",\r\n W2301: \"Invalid value range\"\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.utils.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../../core/version\";\r\nimport {\r\n format as _stringFormat\r\n} from \"../../core/utils/string\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport _windowResizeCallbacks from \"../../core/utils/resize_callbacks\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport {\r\n normalizeEnum\r\n} from \"./utils\";\r\nvar ERROR_MESSAGES = warnings.ERROR_MESSAGES;\r\nexport function createEventTrigger(eventsMap, callbackGetter) {\r\n var triggers = {};\r\n each(eventsMap, (function(name, info) {\r\n if (info.name) {\r\n createEvent(name)\r\n }\r\n }));\r\n var changes;\r\n triggerEvent.change = function(name) {\r\n var eventInfo = eventsMap[name];\r\n if (eventInfo) {\r\n (changes = changes || {})[name] = eventInfo\r\n }\r\n return !!eventInfo\r\n };\r\n triggerEvent.applyChanges = function() {\r\n if (changes) {\r\n each(changes, (function(name, eventInfo) {\r\n createEvent(eventInfo.newName || name)\r\n }));\r\n changes = null\r\n }\r\n };\r\n triggerEvent.dispose = function() {\r\n eventsMap = callbackGetter = triggers = null\r\n };\r\n return triggerEvent;\r\n\r\n function createEvent(name) {\r\n var eventInfo = eventsMap[name];\r\n triggers[eventInfo.name] = callbackGetter(name, eventInfo.actionSettings)\r\n }\r\n\r\n function triggerEvent(name, arg, complete) {\r\n triggers[name](arg);\r\n complete && complete()\r\n }\r\n}\r\nexport var createIncidentOccurred = function(widgetName, eventTrigger) {\r\n return function(id, args) {\r\n eventTrigger(\"incidentOccurred\", {\r\n target: {\r\n id: id,\r\n type: \"E\" === id[0] ? \"error\" : \"warning\",\r\n args: args,\r\n text: _stringFormat.apply(null, [ERROR_MESSAGES[id]].concat(args || [])),\r\n widget: widgetName,\r\n version: version\r\n }\r\n })\r\n }\r\n};\r\n\r\nfunction getResizeManager(resizeCallback) {\r\n return (observe, unsubscribe) => {\r\n var {\r\n handler: handler,\r\n dispose: dispose\r\n } = createDeferredHandler(resizeCallback, unsubscribe);\r\n observe(handler);\r\n return dispose\r\n }\r\n}\r\n\r\nfunction createDeferredHandler(callback, unsubscribe) {\r\n var timeout;\r\n var handler = function() {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(callback, 100)\r\n };\r\n return {\r\n handler: handler,\r\n dispose() {\r\n clearTimeout(timeout);\r\n unsubscribe(handler)\r\n }\r\n }\r\n}\r\nexport function createResizeHandler(contentElement, redrawOnResize, resize) {\r\n var disposeHandler;\r\n var resizeManager = getResizeManager(resize);\r\n if (\"windowonly\" === normalizeEnum(redrawOnResize)) {\r\n disposeHandler = resizeManager(handler => _windowResizeCallbacks.add(handler), handler => _windowResizeCallbacks.remove(handler))\r\n } else if (true === redrawOnResize) {\r\n disposeHandler = resizeManager(handler => resizeObserverSingleton.observe(contentElement, handler), () => resizeObserverSingleton.unobserve(contentElement))\r\n }\r\n return disposeHandler\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/helpers.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction Flags() {\r\n this.reset()\r\n}\r\nFlags.prototype = {\r\n constructor: Flags,\r\n add: function(codes) {\r\n var i;\r\n var ii = codes.length;\r\n var flags = this._flags;\r\n for (i = 0; i < ii; ++i) {\r\n flags[codes[i]] = 1\r\n }\r\n },\r\n has: function(code) {\r\n return this._flags[code] > 0\r\n },\r\n count: function() {\r\n return Object.keys(this._flags).length\r\n },\r\n reset: function() {\r\n this._flags = {}\r\n }\r\n};\r\n\r\nfunction combineMaps(baseMap, thisMap) {\r\n return baseMap !== thisMap ? _extend({}, baseMap, thisMap) : _extend({}, baseMap)\r\n}\r\n\r\nfunction combineLists(baseList, thisList) {\r\n return baseList !== thisList ? baseList.concat(thisList) : baseList.slice()\r\n}\r\n\r\nfunction buildTotalChanges(proto) {\r\n proto._totalChangesOrder = proto._optionChangesOrder.concat(proto._layoutChangesOrder, proto._customChangesOrder)\r\n}\r\n\r\nfunction addChange(settings) {\r\n var proto = this.prototype;\r\n var code = settings.code;\r\n proto[\"_change_\" + code] = settings.handler;\r\n if (settings.isThemeDependent) {\r\n proto._themeDependentChanges.push(code)\r\n }\r\n if (settings.option) {\r\n proto._optionChangesMap[settings.option] = code\r\n }(settings.isOptionChange ? proto._optionChangesOrder : proto._customChangesOrder).push(code);\r\n buildTotalChanges(proto)\r\n}\r\n\r\nfunction createChainExecutor() {\r\n var executeChain = function executeChain() {\r\n var i;\r\n var ii = executeChain._chain.length;\r\n var result;\r\n for (i = 0; i < ii; ++i) {\r\n result = executeChain._chain[i].apply(this, arguments)\r\n }\r\n return result\r\n };\r\n executeChain._chain = [];\r\n executeChain.add = function(item) {\r\n executeChain._chain.push(item)\r\n };\r\n executeChain.copy = function(executor) {\r\n executeChain._chain = executor._chain.slice()\r\n };\r\n return executeChain\r\n}\r\nexport function expand(target, name, expander) {\r\n var current = target[name];\r\n if (!current) {\r\n current = expander\r\n } else if (!current.add) {\r\n current = createChainExecutor();\r\n current.add(target[name]);\r\n current.add(expander)\r\n } else {\r\n if (false === Object.prototype.hasOwnProperty.call(target, name)) {\r\n current = createChainExecutor();\r\n current.copy(target[name])\r\n }\r\n current.add(expander)\r\n }\r\n target[name] = current\r\n}\r\n\r\nfunction addPlugin(plugin) {\r\n var proto = this.prototype;\r\n proto._plugins.push(plugin);\r\n plugin.fontFields && proto._fontFields.push.apply(proto._fontFields, plugin.fontFields);\r\n if (plugin.members) {\r\n _extend(this.prototype, plugin.members)\r\n }\r\n if (plugin.customize) {\r\n plugin.customize(this)\r\n }\r\n if (plugin.extenders) {\r\n Object.keys(plugin.extenders).forEach((function(key) {\r\n var func = plugin.extenders[key];\r\n expand(proto, key, func)\r\n }), this)\r\n }\r\n}\r\nexport var replaceInherit = isServerSide ? function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var result = _inherit.apply(this, arguments);\r\n var proto = result.prototype;\r\n [\"_plugins\", \"_eventsMap\", \"_initialChanges\", \"_themeDependentChanges\", \"_optionChangesMap\", \"_optionChangesOrder\", \"_layoutChangesOrder\", \"_customChangesOrder\", \"_totalChangesOrder\"].forEach((function(key) {\r\n proto[key] = {}\r\n }));\r\n result.addPlugin = noop;\r\n return result\r\n };\r\n widget.addChange = noop;\r\n widget.addPlugin = noop\r\n} : function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var proto = this.prototype;\r\n var plugins = proto._plugins;\r\n var fontFields = proto._fontFields;\r\n var eventsMap = proto._eventsMap;\r\n var initialChanges = proto._initialChanges;\r\n var themeDependentChanges = proto._themeDependentChanges;\r\n var optionChangesMap = proto._optionChangesMap;\r\n var partialOptionChangesMap = proto._partialOptionChangesMap;\r\n var partialOptionChangesPath = proto._partialOptionChangesPath;\r\n var optionChangesOrder = proto._optionChangesOrder;\r\n var layoutChangesOrder = proto._layoutChangesOrder;\r\n var customChangesOrder = proto._customChangesOrder;\r\n var result = _inherit.apply(this, arguments);\r\n proto = result.prototype;\r\n proto._plugins = combineLists(plugins, proto._plugins);\r\n proto._fontFields = combineLists(fontFields, proto._fontFields);\r\n proto._eventsMap = combineMaps(eventsMap, proto._eventsMap);\r\n proto._initialChanges = combineLists(initialChanges, proto._initialChanges);\r\n proto._themeDependentChanges = combineLists(themeDependentChanges, proto._themeDependentChanges);\r\n proto._optionChangesMap = combineMaps(optionChangesMap, proto._optionChangesMap);\r\n proto._partialOptionChangesMap = combineMaps(partialOptionChangesMap, proto._partialOptionChangesMap);\r\n proto._partialOptionChangesPath = combineMaps(partialOptionChangesPath, proto._partialOptionChangesPath);\r\n proto._optionChangesOrder = combineLists(optionChangesOrder, proto._optionChangesOrder);\r\n proto._layoutChangesOrder = combineLists(layoutChangesOrder, proto._layoutChangesOrder);\r\n proto._customChangesOrder = combineLists(customChangesOrder, proto._customChangesOrder);\r\n buildTotalChanges(proto);\r\n result.addPlugin = addPlugin;\r\n return result\r\n };\r\n widget.prototype._plugins = [];\r\n widget.prototype._fontFields = [];\r\n widget.addChange = addChange;\r\n widget.addPlugin = addPlugin\r\n};\r\nexport function changes() {\r\n return new Flags\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/layout.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nvar ALIGN_START = 0;\r\nvar ALIGN_MIDDLE = 1;\r\nvar ALIGN_END = 2;\r\nvar horizontalAlignmentMap = {\r\n left: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n right: ALIGN_END\r\n};\r\nvar verticalAlignmentMap = {\r\n top: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n bottom: ALIGN_END\r\n};\r\nvar sideMap = {\r\n horizontal: 0,\r\n vertical: 1\r\n};\r\nvar slicersMap = {};\r\nvar BBOX_CEIL_CORRECTION = 2;\r\nslicersMap[ALIGN_START] = function(a, b, size) {\r\n return [a, _min(b, a + size)]\r\n};\r\nslicersMap[ALIGN_MIDDLE] = function(a, b, size) {\r\n return [_max(a, (a + b - size) / 2), _min(b, (a + b + size) / 2)]\r\n};\r\nslicersMap[ALIGN_END] = function(a, b, size) {\r\n return [_max(a, b - size), b]\r\n};\r\n\r\nfunction pickValue(value, map, defaultValue) {\r\n var val = _normalizeEnum(value);\r\n return val in map ? map[val] : defaultValue\r\n}\r\n\r\nfunction normalizeLayoutOptions(options) {\r\n var side = pickValue(options.side, sideMap, 1);\r\n var alignment = [pickValue(options.horizontalAlignment, horizontalAlignmentMap, ALIGN_MIDDLE), pickValue(options.verticalAlignment, verticalAlignmentMap, ALIGN_START)];\r\n return {\r\n side: side,\r\n primary: bringToEdge(alignment[side]),\r\n secondary: alignment[1 - side],\r\n weak: options.weak,\r\n priority: options.priority || 0,\r\n header: options.header,\r\n position: options.position\r\n }\r\n}\r\n\r\nfunction bringToEdge(primary) {\r\n return primary < 2 ? 0 : 2\r\n}\r\n\r\nfunction getConjugateSide(side) {\r\n return 1 - side\r\n}\r\n\r\nfunction getSlice(alignment, a, b, size) {\r\n return slicersMap[alignment](a, b, size)\r\n}\r\n\r\nfunction getShrink(alignment, size) {\r\n return (alignment > 0 ? -1 : 1) * size\r\n}\r\n\r\nfunction processForward(item, rect, minSize) {\r\n var side = item.side;\r\n var size = item.element.measure([rect[2] - rect[0], rect[3] - rect[1]]);\r\n var minSide = \"indside\" === item.position ? 0 : minSize[side];\r\n var isValid = size[side] < rect[2 + side] - rect[side] - minSide;\r\n if (isValid) {\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + side] += getShrink(item.primary, size[side])\r\n }\r\n item.size = size\r\n }\r\n return isValid\r\n}\r\n\r\nfunction processRectBackward(item, rect, alignmentRect) {\r\n var primarySide = item.side;\r\n var secondarySide = getConjugateSide(primarySide);\r\n var itemRect = [];\r\n var secondary = getSlice(item.secondary, alignmentRect[secondarySide], alignmentRect[2 + secondarySide], item.size[secondarySide]);\r\n itemRect[primarySide] = _round(itemRect[2 + primarySide] = rect[item.primary + primarySide] + (\"inside\" === item.position ? getShrink(item.primary, item.size[primarySide]) : 0));\r\n itemRect[item.primary + primarySide] = _round(rect[item.primary + primarySide] - getShrink(item.primary, item.size[primarySide]));\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + primarySide] = itemRect[item.primary + primarySide]\r\n }\r\n itemRect[secondarySide] = _round(secondary[0]);\r\n itemRect[2 + secondarySide] = _round(secondary[1]);\r\n return itemRect\r\n}\r\n\r\nfunction processBackward(item, rect, alignmentRect, fitRect, size, targetRect) {\r\n var itemRect = processRectBackward(item, rect, alignmentRect);\r\n var itemFitRect = processRectBackward(item, fitRect, fitRect);\r\n if (size[item.side] > 0) {\r\n size[item.side] -= item.size[item.side];\r\n targetRect[item.primary + item.side] = itemRect[item.primary + item.side];\r\n item.element.freeSpace()\r\n } else {\r\n item.element.move(itemRect, itemFitRect)\r\n }\r\n}\r\n\r\nfunction Layout() {\r\n this._targets = []\r\n}\r\nLayout.prototype = {\r\n constructor: Layout,\r\n dispose: function() {\r\n this._targets = null\r\n },\r\n add: function(target) {\r\n this._targets.push(target)\r\n },\r\n forward: function(targetRect, minSize) {\r\n var rect = targetRect.slice();\r\n var targets = createTargets(this._targets);\r\n var i;\r\n var ii = targets.length;\r\n var cache = [];\r\n for (i = 0; i < ii; ++i) {\r\n if (processForward(targets[i], rect, minSize)) {\r\n cache.push(targets[i])\r\n } else {\r\n targets[i].element.freeSpace()\r\n }\r\n }\r\n this._cache = cache.reverse();\r\n return rect\r\n },\r\n backward: function(targetRect, alignmentRect) {\r\n var size = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [0, 0];\r\n var backwardRect = targetRect.slice();\r\n var fitRect = targetRect.slice();\r\n var targets = this._cache;\r\n var targetSide = 0;\r\n var target;\r\n var i;\r\n var ii = targets.length;\r\n for (i = 0; i < ii; ++i) {\r\n target = targets[i];\r\n if (target.side !== targetSide) {\r\n backwardRect = targetRect.slice()\r\n }\r\n processBackward(target, backwardRect, alignmentRect, fitRect, size, targetRect);\r\n targetSide = target.side\r\n }\r\n return size\r\n }\r\n};\r\n\r\nfunction createTargets(targets) {\r\n var i;\r\n var ii = targets.length;\r\n var collection = [];\r\n var layout;\r\n for (i = 0; i < ii; ++i) {\r\n layout = targets[i].layoutOptions();\r\n if (layout) {\r\n layout = normalizeLayoutOptions(layout);\r\n layout.element = targets[i];\r\n collection.push(layout)\r\n }\r\n }\r\n collection.sort((function(a, b) {\r\n return b.side - a.side || a.priority - b.priority\r\n }));\r\n collection = processWeakItems(collection);\r\n return collection\r\n}\r\n\r\nfunction processWeakItems(collection) {\r\n var weakItem = collection.filter((function(item) {\r\n return true === item.weak\r\n }))[0];\r\n var headerItem;\r\n if (weakItem) {\r\n headerItem = collection.filter((function(item) {\r\n return weakItem.primary === item.primary && item.side === weakItem.side && item !== weakItem\r\n }))[0]\r\n }\r\n if (weakItem && headerItem) {\r\n return [makeHeader(headerItem, weakItem)].concat(collection.filter((function(item) {\r\n return !(item === headerItem || item === weakItem)\r\n })))\r\n }\r\n return collection\r\n}\r\n\r\nfunction processBackwardHeaderRect(element, rect) {\r\n var rectCopy = rect.slice();\r\n var itemRect = processRectBackward(element, rectCopy, rectCopy);\r\n itemRect[element.side] = rect[element.side];\r\n itemRect[2 + element.side] = rect[2 + element.side];\r\n return itemRect\r\n}\r\n\r\nfunction makeHeader(header, weakElement) {\r\n var side = header.side;\r\n var primary = header.primary;\r\n var secondary = header.secondary;\r\n return {\r\n side: side,\r\n primary: primary,\r\n secondary: secondary,\r\n priority: 0,\r\n element: {\r\n measure: function(targetSize) {\r\n var result = targetSize.slice();\r\n var weakSize = weakElement.element.measure(targetSize.slice());\r\n targetSize[primary] -= weakSize[primary];\r\n var headerSize = header.element.measure(targetSize.slice());\r\n result[side] = weakSize[side] = headerSize[side] = Math.max(headerSize[side], weakSize[side]);\r\n weakElement.size = weakSize;\r\n header.size = headerSize;\r\n return result\r\n },\r\n move: function(rect, fitRect) {\r\n if (fitRect[2] - fitRect[0] < header.size[0] + weakElement.size[0] - BBOX_CEIL_CORRECTION) {\r\n this.freeSpace();\r\n return\r\n }\r\n var weakRect = processBackwardHeaderRect(weakElement, fitRect);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, fitRect);\r\n if (fitRect[2 + weakElement.primary] < rect[2 + weakElement.primary] && header.size[header.primary] > rect[2 + header.primary] - rect[header.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary]\r\n }\r\n var headerRect = processBackwardHeaderRect(header, rect);\r\n if (headerRect[2 + weakElement.primary] > fitRect[2 + weakElement.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary];\r\n headerRect = processBackwardHeaderRect(header, rect)\r\n }\r\n weakElement.element.move(weakRect);\r\n header.element.move(headerRect, headerFitReact)\r\n },\r\n freeSpace: function() {\r\n header.element.freeSpace();\r\n weakElement.element.freeSpace()\r\n }\r\n }\r\n }\r\n}\r\nexport default Layout;\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\" 1) {\r\n for (j = 1; j < curSeg.length; j++) {\r\n seg.push(easing(progress, curSeg[j], to[i][j]))\r\n }\r\n }\r\n segments.push(seg)\r\n }\r\n currentParams.segments = params.end && 1 === progress ? params.end : segments;\r\n elem.attr({\r\n segments: segments\r\n })\r\n },\r\n arc: function(elem, params, progress, easing) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n transform: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = currentParams[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n base: function(elem, params, progress, easing, currentParams, attributeName) {\r\n var obj = {};\r\n obj[attributeName] = currentParams[attributeName] = easing(progress, params.from, params.to);\r\n elem.attr(obj)\r\n },\r\n _: noop,\r\n complete: function(element, currentSettings) {\r\n element.attr(currentSettings)\r\n }\r\n};\r\n\r\nfunction step(now) {\r\n var animateStep = this._animateStep;\r\n var attrName;\r\n this._progress = this._calcProgress(now);\r\n for (attrName in this.params) {\r\n var anim = animateStep[attrName] || animateStep.base;\r\n anim(this.element, this.params[attrName], this._progress, this._easing, this._currentParams, attrName)\r\n }\r\n this.options.step && this.options.step(this._easing(this._progress, 0, 1), this._progress);\r\n if (1 === this._progress) {\r\n return this.stop()\r\n }\r\n return true\r\n}\r\n\r\nfunction delayTick(now) {\r\n if (now - this._startTime >= this.delay) {\r\n this.tick = step\r\n }\r\n return true\r\n}\r\n\r\nfunction start(now) {\r\n this._startTime = now;\r\n this.tick = this.delay ? delayTick : step;\r\n return true\r\n}\r\n\r\nfunction Animation(element, params, options) {\r\n this._progress = 0;\r\n this.element = element;\r\n this.params = params;\r\n this.options = options;\r\n this.duration = options.partitionDuration ? options.duration * options.partitionDuration : options.duration;\r\n this.delay = options.delay && options.duration * options.delay || 0;\r\n this._animateStep = options.animateStep || animationSvgStep;\r\n this._easing = easingFunctions[options.easing] || easingFunctions.easeOutCubic;\r\n this._currentParams = {};\r\n this.tick = start\r\n}\r\nAnimation.prototype = {\r\n _calcProgress: function(now) {\r\n return Math.min(1, (now - this.delay - this._startTime) / this.duration)\r\n },\r\n stop: function(disableComplete) {\r\n var options = this.options;\r\n var animateStep = this._animateStep;\r\n this.stop = this.tick = noop;\r\n animateStep.complete && animateStep.complete(this.element, this._currentParams);\r\n options.complete && !disableComplete && options.complete()\r\n }\r\n};\r\nexport function AnimationController(element) {\r\n this._animationCount = 0;\r\n this._timerId = null;\r\n this._animations = {};\r\n this.element = element\r\n}\r\nAnimationController.prototype = {\r\n _loop: function() {\r\n var that = this;\r\n var animations = that._animations;\r\n var activeAnimation = 0;\r\n var now = (new Date).getTime();\r\n var an;\r\n var endAnimation = that._endAnimation;\r\n for (an in animations) {\r\n if (!animations[an].tick(now)) {\r\n delete animations[an]\r\n }\r\n activeAnimation++\r\n }\r\n if (0 === activeAnimation) {\r\n that.stop();\r\n that._endAnimationTimer = endAnimation && setTimeout((function() {\r\n if (0 === that._animationCount) {\r\n endAnimation();\r\n that._endAnimation = null\r\n }\r\n }));\r\n return\r\n }\r\n that._timerId = requestAnimationFrame.call(null, (function() {\r\n that._loop()\r\n }), that.element)\r\n },\r\n addAnimation: function(animation) {\r\n var that = this;\r\n that._animations[that._animationCount++] = animation;\r\n clearTimeout(that._endAnimationTimer);\r\n if (!that._timerId) {\r\n clearTimeout(that._startDelay);\r\n that._startDelay = setTimeout((function() {\r\n that._timerId = 1;\r\n that._loop()\r\n }), 0)\r\n }\r\n },\r\n animateElement: function(elem, params, options) {\r\n if (elem && params && options) {\r\n elem.animation && elem.animation.stop();\r\n this.addAnimation(elem.animation = new Animation(elem, params, options))\r\n }\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationCount ? this._endAnimation = endAnimation : endAnimation()\r\n },\r\n dispose: function() {\r\n this.stop();\r\n this.element = null\r\n },\r\n stop: function() {\r\n this._animations = {};\r\n this._animationCount = 0;\r\n cancelAnimationFrame(this._timerId);\r\n clearTimeout(this._startDelay);\r\n clearTimeout(this._endAnimationTimer);\r\n this._timerId = null\r\n },\r\n lock: function() {\r\n var an;\r\n var animations = this._animations;\r\n var unstoppable;\r\n var hasUnstoppableInAnimations;\r\n for (an in animations) {\r\n unstoppable = animations[an].options.unstoppable;\r\n hasUnstoppableInAnimations = hasUnstoppableInAnimations || unstoppable;\r\n if (!unstoppable) {\r\n animations[an].stop(true);\r\n delete animations[an]\r\n }\r\n }!hasUnstoppableInAnimations && this.stop()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/renderer.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport callOnce from \"../../../core/utils/call_once\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n getSvgMarkup\r\n} from \"../../../core/utils/svg\";\r\nimport {\r\n AnimationController\r\n} from \"./animation\";\r\nimport {\r\n normalizeBBox,\r\n rotateBBox,\r\n normalizeEnum\r\n} from \"../utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar window = getWindow();\r\nvar {\r\n max: max,\r\n min: min,\r\n floor: floor,\r\n round: round,\r\n sin: sin,\r\n cos: cos,\r\n abs: abs,\r\n PI: PI\r\n} = Math;\r\nvar PI_DIV_180 = PI / 180;\r\nvar SHARPING_CORRECTION = .5;\r\nvar ARC_COORD_PREC = 5;\r\nvar pxAddingExceptions = {\r\n \"column-count\": true,\r\n \"fill-opacity\": true,\r\n \"flex-grow\": true,\r\n \"flex-shrink\": true,\r\n \"font-weight\": true,\r\n \"line-height\": true,\r\n opacity: true,\r\n order: true,\r\n orphans: true,\r\n widows: true,\r\n \"z-index\": true,\r\n zoom: true\r\n};\r\nvar KEY_TEXT = \"text\";\r\nvar KEY_STROKE = \"stroke\";\r\nvar KEY_STROKE_WIDTH = \"stroke-width\";\r\nvar KEY_STROKE_OPACITY = \"stroke-opacity\";\r\nvar KEY_FONT_SIZE = \"font-size\";\r\nvar KEY_FONT_STYLE = \"font-style\";\r\nvar KEY_FONT_WEIGHT = \"font-weight\";\r\nvar KEY_TEXT_DECORATION = \"text-decoration\";\r\nvar KEY_TEXTS_ALIGNMENT = \"textsAlignment\";\r\nvar NONE = \"none\";\r\nvar DEFAULT_FONT_SIZE = 12;\r\nvar ELLIPSIS = \"...\";\r\nvar objectCreate = function() {\r\n if (!Object.create) {\r\n return function(proto) {\r\n var F = function() {};\r\n F.prototype = proto;\r\n return new F\r\n }\r\n } else {\r\n return function(proto) {\r\n return Object.create(proto)\r\n }\r\n }\r\n}();\r\nvar DEFAULTS = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n \"pointer-events\": null\r\n};\r\nvar getBackup = callOnce((function() {\r\n var backupContainer = domAdapter.createElement(\"div\");\r\n backupContainer.style.left = \"-9999px\";\r\n backupContainer.style.position = \"absolute\";\r\n return {\r\n backupContainer: backupContainer,\r\n backupCounter: 0\r\n }\r\n}));\r\n\r\nfunction backupRoot(root) {\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().appendChild(getBackup().backupContainer)\r\n }++getBackup().backupCounter;\r\n root.append({\r\n element: getBackup().backupContainer\r\n })\r\n}\r\n\r\nfunction restoreRoot(root, container) {\r\n root.append({\r\n element: container\r\n });\r\n --getBackup().backupCounter;\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().removeChild(getBackup().backupContainer)\r\n }\r\n}\r\nvar getNextDefsSvgId = function() {\r\n var numDefsSvgElements = 1;\r\n return function() {\r\n return \"DevExpress_\" + numDefsSvgElements++\r\n }\r\n}();\r\n\r\nfunction isObjectArgument(value) {\r\n return value && \"string\" !== typeof value\r\n}\r\n\r\nfunction createElement(tagName) {\r\n return domAdapter.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\r\n}\r\nexport function getFuncIri(id, pathModified) {\r\n return null !== id ? \"url(\" + (pathModified ? window.location.href.split(\"#\")[0] : \"\") + \"#\" + id + \")\" : id\r\n}\r\n\r\nfunction extend(target, source) {\r\n var key;\r\n for (key in source) {\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\n\r\nfunction roundValue(value, exp) {\r\n value = value.toString().split(\"e\");\r\n value = round(+(value[0] + \"e\" + (value[1] ? +value[1] + exp : exp)));\r\n value = value.toString().split(\"e\");\r\n return +(value[0] + \"e\" + (value[1] ? +value[1] - exp : -exp))\r\n}\r\nvar preserveAspectRatioMap = {\r\n full: NONE,\r\n lefttop: \"xMinYMin\",\r\n leftcenter: \"xMinYMid\",\r\n leftbottom: \"xMinYMax\",\r\n centertop: \"xMidYMin\",\r\n center: \"xMidYMid\",\r\n centerbottom: \"xMidYMax\",\r\n righttop: \"xMaxYMin\",\r\n rightcenter: \"xMaxYMid\",\r\n rightbottom: \"xMaxYMax\"\r\n};\r\nexport function processHatchingAttrs(element, attrs) {\r\n if (attrs.hatching && \"none\" !== normalizeEnum(attrs.hatching.direction)) {\r\n attrs = extend({}, attrs);\r\n attrs.fill = element._hatching = element.renderer.lockHatching(attrs.fill, attrs.hatching, element._hatching);\r\n delete attrs.hatching\r\n } else if (element._hatching) {\r\n element.renderer.releaseHatching(element._hatching);\r\n element._hatching = null\r\n }\r\n return attrs\r\n}\r\n\r\nfunction normalizeArcParams(x, y, innerR, outerR, startAngle, endAngle) {\r\n var isCircle;\r\n var noArc = true;\r\n var angleDiff = roundValue(endAngle, 3) - roundValue(startAngle, 3);\r\n if (angleDiff) {\r\n if (abs(angleDiff) % 360 === 0) {\r\n startAngle = 0;\r\n endAngle = 360;\r\n isCircle = true;\r\n endAngle -= .01\r\n }\r\n if (startAngle > 360) {\r\n startAngle %= 360\r\n }\r\n if (endAngle > 360) {\r\n endAngle %= 360\r\n }\r\n if (startAngle > endAngle) {\r\n startAngle -= 360\r\n }\r\n noArc = false\r\n }\r\n startAngle *= PI_DIV_180;\r\n endAngle *= PI_DIV_180;\r\n return [x, y, min(outerR, innerR), max(outerR, innerR), cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle), isCircle, floor(abs(endAngle - startAngle) / PI) % 2 ? \"1\" : \"0\", noArc]\r\n}\r\nvar buildArcPath = function(x, y, innerR, outerR, startAngleCos, startAngleSin, endAngleCos, endAngleSin, isCircle, longFlag) {\r\n return [\"M\", (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC), \"A\", outerR.toFixed(ARC_COORD_PREC), outerR.toFixed(ARC_COORD_PREC), 0, longFlag, 0, (x + outerR * endAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * endAngleSin).toFixed(ARC_COORD_PREC), isCircle ? \"M\" : \"L\", (x + innerR * endAngleCos).toFixed(5), (y - innerR * endAngleSin).toFixed(ARC_COORD_PREC), \"A\", innerR.toFixed(ARC_COORD_PREC), innerR.toFixed(ARC_COORD_PREC), 0, longFlag, 1, (x + innerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - innerR * startAngleSin).toFixed(ARC_COORD_PREC), \"Z\"].join(\" \")\r\n};\r\n\r\nfunction buildPathSegments(points, type) {\r\n var list = [\r\n [\"M\", 0, 0]\r\n ];\r\n switch (type) {\r\n case \"line\":\r\n list = buildLineSegments(points);\r\n break;\r\n case \"area\":\r\n list = buildLineSegments(points, true);\r\n break;\r\n case \"bezier\":\r\n list = buildCurveSegments(points);\r\n break;\r\n case \"bezierarea\":\r\n list = buildCurveSegments(points, true)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildLineSegments(points, close) {\r\n return buildSegments(points, buildSimpleLineSegment, close)\r\n}\r\n\r\nfunction buildCurveSegments(points, close) {\r\n return buildSegments(points, buildSimpleCurveSegment, close)\r\n}\r\n\r\nfunction buildSegments(points, buildSimpleSegment, close) {\r\n var _points$;\r\n var i;\r\n var ii;\r\n var list = [];\r\n if (null !== (_points$ = points[0]) && void 0 !== _points$ && _points$.length) {\r\n for (i = 0, ii = points.length; i < ii; ++i) {\r\n buildSimpleSegment(points[i], close, list)\r\n }\r\n } else {\r\n buildSimpleSegment(points, close, list)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildSimpleLineSegment(points, close, list) {\r\n var i = 0;\r\n var k0 = list.length;\r\n var k = k0;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i].x, points[i++].y]\r\n }\r\n } else {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i++], points[i++]]\r\n }\r\n }\r\n list[k0][0] = \"M\"\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction buildSimpleCurveSegment(points, close, list) {\r\n var i;\r\n var k = list.length;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n list[k++] = [\"M\", points[0].x, points[0].y];\r\n for (i = 1; i < ii;) {\r\n list[k++] = [\"C\", points[i].x, points[i++].y, points[i].x, points[i++].y, points[i].x, points[i++].y]\r\n }\r\n } else {\r\n list[k++] = [\"M\", points[0], points[1]];\r\n for (i = 2; i < ii;) {\r\n list[k++] = [\"C\", points[i++], points[i++], points[i++], points[i++], points[i++], points[i++]]\r\n }\r\n }\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction combinePathParam(segments) {\r\n var d = [];\r\n var k = 0;\r\n var i;\r\n var ii = segments.length;\r\n var segment;\r\n var j;\r\n var jj;\r\n for (i = 0; i < ii; ++i) {\r\n segment = segments[i];\r\n for (j = 0, jj = segment.length; j < jj; ++j) {\r\n d[k++] = segment[j]\r\n }\r\n }\r\n return d.join(\" \")\r\n}\r\n\r\nfunction compensateSegments(oldSegments, newSegments, type) {\r\n var oldLength = oldSegments.length;\r\n var newLength = newSegments.length;\r\n var i;\r\n var originalNewSegments;\r\n var makeEqualSegments = -1 !== type.indexOf(\"area\") ? makeEqualAreaSegments : makeEqualLineSegments;\r\n if (0 === oldLength) {\r\n for (i = 0; i < newLength; i++) {\r\n oldSegments.push(newSegments[i].slice(0))\r\n }\r\n } else if (oldLength < newLength) {\r\n makeEqualSegments(oldSegments, newSegments, type)\r\n } else if (oldLength > newLength) {\r\n originalNewSegments = newSegments.slice(0);\r\n makeEqualSegments(newSegments, oldSegments, type)\r\n }\r\n return originalNewSegments\r\n}\r\n\r\nfunction prepareConstSegment(constSeg, type) {\r\n var x = constSeg[constSeg.length - 2];\r\n var y = constSeg[constSeg.length - 1];\r\n switch (type) {\r\n case \"line\":\r\n case \"area\":\r\n constSeg[0] = \"L\";\r\n break;\r\n case \"bezier\":\r\n case \"bezierarea\":\r\n constSeg[0] = \"C\";\r\n constSeg[1] = constSeg[3] = constSeg[5] = x;\r\n constSeg[2] = constSeg[4] = constSeg[6] = y\r\n }\r\n}\r\n\r\nfunction makeEqualLineSegments(short, long, type) {\r\n var constSeg = short[short.length - 1].slice();\r\n var i = short.length;\r\n prepareConstSegment(constSeg, type);\r\n for (; i < long.length; i++) {\r\n short[i] = constSeg.slice(0)\r\n }\r\n}\r\n\r\nfunction makeEqualAreaSegments(short, long, type) {\r\n var i;\r\n var head;\r\n var shortLength = short.length;\r\n var longLength = long.length;\r\n var constsSeg1;\r\n var constsSeg2;\r\n if ((shortLength - 1) % 2 === 0 && (longLength - 1) % 2 === 0) {\r\n i = (shortLength - 1) / 2 - 1;\r\n head = short.slice(0, i + 1);\r\n constsSeg1 = head[head.length - 1].slice(0);\r\n constsSeg2 = short.slice(i + 1)[0].slice(0);\r\n prepareConstSegment(constsSeg1, type);\r\n prepareConstSegment(constsSeg2, type);\r\n for (var j = i; j < (longLength - 1) / 2 - 1; j++) {\r\n short.splice(j + 1, 0, constsSeg1);\r\n short.splice(j + 3, 0, constsSeg2)\r\n }\r\n }\r\n}\r\n\r\nfunction baseCss(that, styles) {\r\n var elemStyles = that._styles;\r\n var key;\r\n var value;\r\n styles = styles || {};\r\n for (key in styles) {\r\n value = styles[key];\r\n if (isDefined(value)) {\r\n value += \"number\" === typeof value && !pxAddingExceptions[key] ? \"px\" : \"\";\r\n elemStyles[key] = \"\" !== value ? value : null\r\n }\r\n }\r\n for (key in elemStyles) {\r\n value = elemStyles[key];\r\n if (value) {\r\n that.element.style[key] = value\r\n } else if (null === value) {\r\n that.element.style[key] = \"\"\r\n }\r\n }\r\n return that\r\n}\r\n\r\nfunction fixFuncIri(wrapper, attribute) {\r\n var element = wrapper.element;\r\n var id = wrapper.attr(attribute);\r\n if (id && -1 !== id.indexOf(\"DevExpress\")) {\r\n element.removeAttribute(attribute);\r\n element.setAttribute(attribute, getFuncIri(id, wrapper.renderer.pathModified))\r\n }\r\n}\r\n\r\nfunction baseAttr(that, attrs) {\r\n attrs = attrs || {};\r\n var settings = that._settings;\r\n var attributes = {};\r\n var key;\r\n var value;\r\n var elem = that.element;\r\n var renderer = that.renderer;\r\n var rtl = renderer.rtl;\r\n var hasTransformations;\r\n var recalculateDashStyle;\r\n var sw;\r\n var i;\r\n if (!isObjectArgument(attrs)) {\r\n if (attrs in settings) {\r\n return settings[attrs]\r\n }\r\n if (attrs in DEFAULTS) {\r\n return DEFAULTS[attrs]\r\n }\r\n return 0\r\n }\r\n extend(attributes, attrs);\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n settings[key] = value;\r\n if (\"align\" === key) {\r\n key = \"text-anchor\";\r\n value = {\r\n left: rtl ? \"end\" : \"start\",\r\n center: \"middle\",\r\n right: rtl ? \"start\" : \"end\"\r\n } [value] || null\r\n } else if (\"dashStyle\" === key) {\r\n recalculateDashStyle = true;\r\n continue\r\n } else if (key === KEY_STROKE_WIDTH) {\r\n recalculateDashStyle = true\r\n } else if (value && (\"fill\" === key || \"clip-path\" === key || \"filter\" === key) && 0 === value.indexOf(\"DevExpress\")) {\r\n that._addFixIRICallback();\r\n value = getFuncIri(value, renderer.pathModified)\r\n } else if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y)|sharp|sharpDirection)$/i.test(key)) {\r\n hasTransformations = true;\r\n continue\r\n } else if (/^(x|y|d)$/i.test(key)) {\r\n hasTransformations = true\r\n }\r\n if (null === value) {\r\n elem.removeAttribute(key)\r\n } else {\r\n elem.setAttribute(key, value)\r\n }\r\n }\r\n if (recalculateDashStyle && \"dashStyle\" in settings) {\r\n value = settings.dashStyle;\r\n sw = (\"_originalSW\" in that ? that._originalSW : settings[KEY_STROKE_WIDTH]) || 1;\r\n key = \"stroke-dasharray\";\r\n value = null === value ? \"\" : normalizeEnum(value);\r\n if (\"\" === value || \"solid\" === value || value === NONE) {\r\n that.element.removeAttribute(key)\r\n } else {\r\n value = value.replace(/longdash/g, \"8,3,\").replace(/dash/g, \"4,3,\").replace(/dot/g, \"1,3,\").replace(/,$/, \"\").split(\",\");\r\n i = value.length;\r\n while (i--) {\r\n value[i] = parseInt(value[i]) * sw\r\n }\r\n that.element.setAttribute(key, value.join(\",\"))\r\n }\r\n }\r\n if (hasTransformations) {\r\n that._applyTransformation()\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAttr(attrs) {\r\n var segments;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n segments = attrs.segments;\r\n if (\"points\" in attrs) {\r\n segments = buildPathSegments(attrs.points, this.type);\r\n delete attrs.points\r\n }\r\n if (segments) {\r\n attrs.d = combinePathParam(segments);\r\n this.segments = segments;\r\n delete attrs.segments\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction arcAttr(attrs) {\r\n var settings = this._settings;\r\n var x;\r\n var y;\r\n var innerRadius;\r\n var outerRadius;\r\n var startAngle;\r\n var endAngle;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (\"x\" in attrs || \"y\" in attrs || \"innerRadius\" in attrs || \"outerRadius\" in attrs || \"startAngle\" in attrs || \"endAngle\" in attrs) {\r\n settings.x = x = \"x\" in attrs ? attrs.x : settings.x;\r\n delete attrs.x;\r\n settings.y = y = \"y\" in attrs ? attrs.y : settings.y;\r\n delete attrs.y;\r\n settings.innerRadius = innerRadius = \"innerRadius\" in attrs ? attrs.innerRadius : settings.innerRadius;\r\n delete attrs.innerRadius;\r\n settings.outerRadius = outerRadius = \"outerRadius\" in attrs ? attrs.outerRadius : settings.outerRadius;\r\n delete attrs.outerRadius;\r\n settings.startAngle = startAngle = \"startAngle\" in attrs ? attrs.startAngle : settings.startAngle;\r\n delete attrs.startAngle;\r\n settings.endAngle = endAngle = \"endAngle\" in attrs ? attrs.endAngle : settings.endAngle;\r\n delete attrs.endAngle;\r\n attrs.d = buildArcPath.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle))\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction rectAttr(attrs) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var sw;\r\n var maxSW;\r\n var newSW;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (void 0 !== attrs.x || void 0 !== attrs.y || void 0 !== attrs.width || void 0 !== attrs.height || void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n void 0 !== attrs.x ? x = this._originalX = attrs.x : x = this._originalX || 0;\r\n void 0 !== attrs.y ? y = this._originalY = attrs.y : y = this._originalY || 0;\r\n void 0 !== attrs.width ? width = this._originalWidth = attrs.width : width = this._originalWidth || 0;\r\n void 0 !== attrs.height ? height = this._originalHeight = attrs.height : height = this._originalHeight || 0;\r\n void 0 !== attrs[KEY_STROKE_WIDTH] ? sw = this._originalSW = attrs[KEY_STROKE_WIDTH] : sw = this._originalSW;\r\n maxSW = ~~((width < height ? width : height) / 2);\r\n newSW = (sw || 0) < maxSW ? sw || 0 : maxSW;\r\n attrs.x = x + newSW / 2;\r\n attrs.y = y + newSW / 2;\r\n attrs.width = width - newSW;\r\n attrs.height = height - newSW;\r\n ((sw || 0) !== newSW || !(0 === newSW && void 0 === sw)) && (attrs[KEY_STROKE_WIDTH] = newSW)\r\n }\r\n if (\"sharp\" in attrs) {\r\n delete attrs.sharp\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction textAttr(attrs) {\r\n var isResetRequired;\r\n if (!isObjectArgument(attrs)) {\r\n return baseAttr(this, attrs)\r\n }\r\n attrs = extend({}, attrs);\r\n var settings = this._settings;\r\n var wasStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n if (void 0 !== attrs[KEY_TEXT]) {\r\n settings[KEY_TEXT] = attrs[KEY_TEXT];\r\n delete attrs[KEY_TEXT];\r\n isResetRequired = true\r\n }\r\n if (void 0 !== attrs[KEY_STROKE]) {\r\n settings[KEY_STROKE] = attrs[KEY_STROKE];\r\n delete attrs[KEY_STROKE]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n settings[KEY_STROKE_WIDTH] = attrs[KEY_STROKE_WIDTH];\r\n delete attrs[KEY_STROKE_WIDTH]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_OPACITY]) {\r\n settings[KEY_STROKE_OPACITY] = attrs[KEY_STROKE_OPACITY];\r\n delete attrs[KEY_STROKE_OPACITY]\r\n }\r\n if (void 0 !== attrs[KEY_TEXTS_ALIGNMENT]) {\r\n alignTextNodes(this, attrs[KEY_TEXTS_ALIGNMENT]);\r\n delete attrs[KEY_TEXTS_ALIGNMENT]\r\n }\r\n var isStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n baseAttr(this, attrs);\r\n isResetRequired = isResetRequired || isStroked !== wasStroked && settings[KEY_TEXT];\r\n if (isResetRequired) {\r\n createTextNodes(this, settings.text, isStroked);\r\n this._hasEllipsis = false\r\n }\r\n if (isResetRequired || void 0 !== attrs.x || void 0 !== attrs.y) {\r\n locateTextNodes(this)\r\n }\r\n if (isStroked) {\r\n strokeTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction textCss(styles) {\r\n styles = styles || {};\r\n baseCss(this, styles);\r\n if (KEY_FONT_SIZE in styles) {\r\n locateTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction orderHtmlTree(list, line, node, parentStyle, parentClassName) {\r\n var style;\r\n var realStyle;\r\n var i;\r\n var ii;\r\n var nodes;\r\n if (void 0 !== node.wholeText) {\r\n list.push({\r\n value: node.wholeText,\r\n style: parentStyle,\r\n className: parentClassName,\r\n line: line,\r\n height: parentStyle[KEY_FONT_SIZE] || 0\r\n })\r\n } else if (\"BR\" === node.tagName) {\r\n ++line\r\n } else if (domAdapter.isElementNode(node)) {\r\n extend(style = {}, parentStyle);\r\n switch (node.tagName) {\r\n case \"B\":\r\n case \"STRONG\":\r\n style[KEY_FONT_WEIGHT] = \"bold\";\r\n break;\r\n case \"I\":\r\n case \"EM\":\r\n style[KEY_FONT_STYLE] = \"italic\";\r\n break;\r\n case \"U\":\r\n style[KEY_TEXT_DECORATION] = \"underline\"\r\n }\r\n realStyle = node.style;\r\n realStyle.color && (style.fill = realStyle.color);\r\n realStyle.fontSize && (style[KEY_FONT_SIZE] = realStyle.fontSize);\r\n realStyle.fontStyle && (style[KEY_FONT_STYLE] = realStyle.fontStyle);\r\n realStyle.fontWeight && (style[KEY_FONT_WEIGHT] = realStyle.fontWeight);\r\n realStyle.textDecoration && (style[KEY_TEXT_DECORATION] = realStyle.textDecoration);\r\n for (i = 0, nodes = node.childNodes, ii = nodes.length; i < ii; ++i) {\r\n line = orderHtmlTree(list, line, nodes[i], style, node.className || parentClassName)\r\n }\r\n }\r\n return line\r\n}\r\n\r\nfunction adjustLineHeights(items) {\r\n var i;\r\n var ii;\r\n var currentItem = items[0];\r\n var item;\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (item.line === currentItem.line) {\r\n currentItem.height = maxLengthFontSize(currentItem.height, item.height);\r\n currentItem.inherits = currentItem.inherits || 0 === parseFloat(item.height);\r\n item.height = NaN\r\n } else {\r\n currentItem = item\r\n }\r\n }\r\n}\r\n\r\nfunction removeExtraAttrs(html) {\r\n var findStyleAndClassAttrs = /(style|class)\\s*=\\s*([\"'])(?:(?!\\2).)*\\2\\s?/gi;\r\n return html.replace(/(?:(<[a-z0-9]+\\s*))([\\s\\S]*?)(>|\\/>)/gi, (function(allTagAttrs, p1, p2, p3) {\r\n p2 = (p2 && p2.match(findStyleAndClassAttrs) || []).map((function(str) {\r\n return str\r\n })).join(\" \");\r\n return p1 + p2 + p3\r\n }))\r\n}\r\n\r\nfunction parseHTML(text) {\r\n var items = [];\r\n var div = domAdapter.createElement(\"div\");\r\n div.innerHTML = text.replace(/\\r/g, \"\").replace(/\\n/g, \"
\");\r\n orderHtmlTree(items, 0, div, {}, \"\");\r\n adjustLineHeights(items);\r\n return items\r\n}\r\n\r\nfunction parseMultiline(text) {\r\n var texts = text.replace(/\\r/g, \"\").split(/\\n/g);\r\n var i = 0;\r\n var items = [];\r\n for (; i < texts.length; i++) {\r\n items.push({\r\n value: texts[i].trim(),\r\n height: 0,\r\n line: i\r\n })\r\n }\r\n return items\r\n}\r\n\r\nfunction createTspans(items, element, fieldName) {\r\n var i;\r\n var ii;\r\n var item;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n item[fieldName] = createElement(\"tspan\");\r\n item[fieldName].appendChild(domAdapter.createTextNode(item.value));\r\n item.style && baseCss({\r\n element: item[fieldName],\r\n _styles: {}\r\n }, item.style);\r\n item.className && item[fieldName].setAttribute(\"class\", item.className);\r\n element.appendChild(item[fieldName])\r\n }\r\n}\r\n\r\nfunction restoreText() {\r\n if (this._hasEllipsis) {\r\n this.attr({\r\n text: this._settings.text\r\n })\r\n }\r\n}\r\n\r\nfunction applyEllipsis(maxWidth) {\r\n var lines;\r\n var hasEllipsis = false;\r\n var i;\r\n var ii;\r\n var lineParts;\r\n var j;\r\n var jj;\r\n var text;\r\n restoreText.call(this);\r\n var ellipsis = this.renderer.text(ELLIPSIS).attr(this._styles).append(this.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n if (this._getElementBBox().width > maxWidth) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n maxWidth = 0\r\n } else {\r\n maxWidth -= ellipsisWidth\r\n }\r\n lines = prepareLines(this.element, this._texts, maxWidth);\r\n for (i = 0, ii = lines.length; i < ii; ++i) {\r\n lineParts = lines[i].parts;\r\n if (1 === lines[i].commonLength) {\r\n continue\r\n }\r\n for (j = 0, jj = lineParts.length; j < jj; ++j) {\r\n text = lineParts[j];\r\n if (isDefined(text.endIndex)) {\r\n setNewText(text, text.endIndex);\r\n hasEllipsis = true\r\n } else if (text.startBox > maxWidth) {\r\n removeTextSpan(text)\r\n }\r\n }\r\n }\r\n }\r\n ellipsis.remove();\r\n this._hasEllipsis = hasEllipsis;\r\n return hasEllipsis\r\n}\r\n\r\nfunction cloneAndRemoveAttrs(node) {\r\n var clone;\r\n if (node) {\r\n clone = node.cloneNode();\r\n clone.removeAttribute(\"y\");\r\n clone.removeAttribute(\"x\")\r\n }\r\n return clone || node\r\n}\r\n\r\nfunction detachTitleElements(element) {\r\n var titleElements = domAdapter.querySelectorAll(element, \"title\");\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.removeChild(titleElements[i])\r\n }\r\n return titleElements\r\n}\r\n\r\nfunction detachAndStoreTitleElements(element) {\r\n var titleElements = detachTitleElements(element);\r\n return () => {\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.appendChild(titleElements[i])\r\n }\r\n }\r\n}\r\n\r\nfunction setMaxSize(maxWidth, maxHeight) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n var lines = [];\r\n var textChanged = false;\r\n var textIsEmpty = false;\r\n var ellipsisMaxWidth = maxWidth;\r\n restoreText.call(that);\r\n var restoreTitleElement = detachAndStoreTitleElements(this.element);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n var {\r\n width: width,\r\n height: height\r\n } = that._getElementBBox();\r\n if ((width || height) && (width > maxWidth || maxHeight && height > maxHeight)) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n ellipsisMaxWidth = 0\r\n } else {\r\n ellipsisMaxWidth -= ellipsisWidth\r\n }\r\n lines = applyOverflowRules(that.element, that._texts, maxWidth, ellipsisMaxWidth, options);\r\n lines = setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, parseFloat(this._getLineHeight()));\r\n this._texts = lines.reduce((texts, line) => texts.concat(line.parts), []).filter(t => \"\" !== t.value).map(t => {\r\n t.stroke && t.tspan.parentNode.appendChild(t.stroke);\r\n return t\r\n }).map(t => {\r\n t.tspan.parentNode.appendChild(t.tspan);\r\n return t\r\n });\r\n !this._texts.length && (this._texts = null);\r\n textChanged = true;\r\n if (this._texts) {\r\n locateTextNodes(this)\r\n } else {\r\n this.element.textContent = \"\";\r\n textIsEmpty = true\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = textChanged;\r\n restoreTitleElement();\r\n return {\r\n rowCount: lines.length,\r\n textChanged: textChanged,\r\n textIsEmpty: textIsEmpty\r\n }\r\n}\r\n\r\nfunction getIndexForEllipsis(text, maxWidth, startBox, endBox) {\r\n var k;\r\n var kk;\r\n if (startBox <= maxWidth && endBox > maxWidth) {\r\n for (k = 1, kk = text.value.length; k <= kk; ++k) {\r\n if (startBox + text.tspan.getSubStringLength(0, k) > maxWidth) {\r\n return k - 1\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTextWidth(text) {\r\n return text.value.length ? text.tspan.getSubStringLength(0, text.value.length) : 0\r\n}\r\n\r\nfunction prepareLines(element, texts, maxWidth) {\r\n var lines = [];\r\n var i;\r\n var ii;\r\n var text;\r\n var startBox;\r\n var endBox;\r\n if (texts) {\r\n for (i = 0, ii = texts.length; i < ii; ++i) {\r\n text = texts[i];\r\n if (!lines[text.line]) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n lines[text.line].parts.push(text);\r\n lines[text.line].commonLength += text.value.length\r\n }\r\n endBox = startBox + text.tspan.getSubStringLength(0, text.value.length);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n startBox = endBox\r\n }\r\n } else {\r\n text = {\r\n value: element.textContent,\r\n tspan: element\r\n };\r\n text.startBox = startBox = 0;\r\n endBox = startBox + getTextWidth(text);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n lines = [{\r\n commonLength: element.textContent.length,\r\n parts: [text]\r\n }]\r\n }\r\n return lines\r\n}\r\n\r\nfunction getSpaceBreakIndex(text, maxWidth) {\r\n var initialIndices = text.startBox > 0 ? [0] : [];\r\n var spaceIndices = text.value.split(\"\").reduce((indices, char, index) => {\r\n if (\" \" === char) {\r\n indices.push(index)\r\n }\r\n return indices\r\n }, initialIndices);\r\n var spaceIndex = 0;\r\n while (void 0 !== spaceIndices[spaceIndex + 1] && text.startBox + text.tspan.getSubStringLength(0, spaceIndices[spaceIndex + 1]) < maxWidth) {\r\n spaceIndex++\r\n }\r\n return spaceIndices[spaceIndex]\r\n}\r\n\r\nfunction getWordBreakIndex(text, maxWidth) {\r\n for (var i = 0; i < text.value.length - 1; i++) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i + 1) > maxWidth) {\r\n return i\r\n }\r\n }\r\n}\r\n\r\nfunction getEllipsisString(ellipsisMaxWidth, _ref) {\r\n var {\r\n hideOverflowEllipsis: hideOverflowEllipsis\r\n } = _ref;\r\n return hideOverflowEllipsis && 0 === ellipsisMaxWidth ? \"\" : ELLIPSIS\r\n}\r\n\r\nfunction setEllipsis(text, ellipsisMaxWidth, options) {\r\n var ellipsis = getEllipsisString(ellipsisMaxWidth, options);\r\n if (text.value.length && text.tspan.parentNode) {\r\n for (var i = text.value.length - 1; i >= 1; i--) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i) < ellipsisMaxWidth) {\r\n setNewText(text, i, ellipsis);\r\n break\r\n } else if (1 === i) {\r\n setNewText(text, 0, ellipsis)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction wordWrap(text, maxWidth, ellipsisMaxWidth, options, lastStepBreakIndex) {\r\n var wholeText = text.value;\r\n var breakIndex;\r\n if (\"none\" !== options.wordWrap) {\r\n breakIndex = \"normal\" === options.wordWrap ? getSpaceBreakIndex(text, maxWidth) : getWordBreakIndex(text, maxWidth)\r\n }\r\n var restLines = [];\r\n var restText;\r\n if (isFinite(breakIndex) && !(0 === lastStepBreakIndex && 0 === breakIndex)) {\r\n setNewText(text, breakIndex, \"\");\r\n var newTextOffset = \" \" === wholeText[breakIndex] ? 1 : 0;\r\n var restString = wholeText.slice(breakIndex + newTextOffset);\r\n if (restString.length) {\r\n var restTspan = cloneAndRemoveAttrs(text.tspan);\r\n restTspan.textContent = restString;\r\n text.tspan.parentNode.appendChild(restTspan);\r\n restText = extend(extend({}, text), {\r\n value: restString,\r\n startBox: 0,\r\n height: 0,\r\n tspan: restTspan,\r\n stroke: cloneAndRemoveAttrs(text.stroke),\r\n endBox: restTspan.getSubStringLength(0, restString.length)\r\n });\r\n restText.stroke && (restText.stroke.textContent = restString);\r\n if (restText.endBox > maxWidth) {\r\n restLines = wordWrap(restText, maxWidth, ellipsisMaxWidth, options, breakIndex);\r\n if (!restLines.length) {\r\n return []\r\n }\r\n }\r\n }\r\n }\r\n if (text.value.length) {\r\n if (\"ellipsis\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n if (\"hide\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n return []\r\n }\r\n } else {\r\n text.tspan.parentNode.removeChild(text.tspan)\r\n }\r\n var parts = [];\r\n if (restText) {\r\n parts.push(restText)\r\n }\r\n return [{\r\n commonLength: wholeText.length,\r\n parts: parts\r\n }].concat(restLines)\r\n}\r\n\r\nfunction calculateLineHeight(line, lineHeight) {\r\n return line.parts.reduce((height, text) => max(height, getItemLineHeight(text, lineHeight)), 0)\r\n}\r\n\r\nfunction setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, lineHeight) {\r\n var textOverflow = options.textOverflow;\r\n if (!isFinite(maxHeight) || 0 === Number(maxHeight) || \"none\" === textOverflow) {\r\n return lines\r\n }\r\n var result = lines.reduce((_ref2, l, index, arr) => {\r\n var [lines, commonHeight] = _ref2;\r\n var height = calculateLineHeight(l, lineHeight);\r\n commonHeight += height;\r\n if (commonHeight < maxHeight) {\r\n lines.push(l)\r\n } else {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n });\r\n if (\"ellipsis\" === textOverflow) {\r\n var prevLine = arr[index - 1];\r\n if (prevLine) {\r\n var text = prevLine.parts[prevLine.parts.length - 1];\r\n if (!text.hasEllipsis) {\r\n if (0 === ellipsisMaxWidth || text.endBox < ellipsisMaxWidth) {\r\n setNewText(text, text.value.length, getEllipsisString(ellipsisMaxWidth, options))\r\n } else {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return [lines, commonHeight]\r\n }, [\r\n [], 0\r\n ]);\r\n if (\"hide\" === textOverflow && result[1] > maxHeight) {\r\n result[0].forEach(l => {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n })\r\n });\r\n return []\r\n }\r\n return result[0]\r\n}\r\n\r\nfunction applyOverflowRules(element, texts, maxWidth, ellipsisMaxWidth, options) {\r\n if (!texts) {\r\n var textValue = element.textContent;\r\n var text = {\r\n value: textValue,\r\n height: 0,\r\n line: 0\r\n };\r\n element.textContent = \"\";\r\n createTspans([text], element, \"tspan\");\r\n texts = [text]\r\n }\r\n return texts.reduce((_ref3, text) => {\r\n var [lines, startBox, endBox, stop, lineNumber] = _ref3;\r\n var line = lines[lines.length - 1];\r\n if (stop) {\r\n return [lines, startBox, endBox, stop]\r\n }\r\n if (!line || text.line !== lineNumber) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n if (startBox > ellipsisMaxWidth && \"none\" === options.wordWrap && \"ellipsis\" === options.textOverflow) {\r\n removeTextSpan(text);\r\n return [lines, startBox, endBox, stop, lineNumber]\r\n }\r\n line.parts.push(text);\r\n line.commonLength += text.value.length\r\n }\r\n text.endBox = endBox = startBox + getTextWidth(text);\r\n startBox = endBox;\r\n if (isDefined(maxWidth) && endBox > maxWidth) {\r\n var wordWrapLines = wordWrap(text, maxWidth, ellipsisMaxWidth, options);\r\n if (!wordWrapLines.length) {\r\n lines = [];\r\n stop = true\r\n } else {\r\n lines = lines.concat(wordWrapLines.filter(l => l.parts.length > 0))\r\n }\r\n }\r\n return [lines, startBox, endBox, stop, text.line]\r\n }, [\r\n [], 0, 0, false, 0\r\n ])[0]\r\n}\r\n\r\nfunction setNewText(text, index) {\r\n var insertString = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ELLIPSIS;\r\n var newText = text.value.substr(0, index) + insertString;\r\n text.value = text.tspan.textContent = newText;\r\n text.stroke && (text.stroke.textContent = newText);\r\n if (insertString === ELLIPSIS) {\r\n text.hasEllipsis = true\r\n }\r\n}\r\n\r\nfunction removeTextSpan(text) {\r\n text.tspan.parentNode && text.tspan.parentNode.removeChild(text.tspan);\r\n text.stroke && text.stroke.parentNode && text.stroke.parentNode.removeChild(text.stroke)\r\n}\r\n\r\nfunction createTextNodes(wrapper, text, isStroked) {\r\n var items;\r\n var parsedHtml;\r\n wrapper._texts = null;\r\n wrapper.clear();\r\n if (null === text) {\r\n return\r\n }\r\n text = \"\" + text;\r\n if (!wrapper.renderer.encodeHtml && (/<[a-z][\\s\\S]*>/i.test(text) || -1 !== text.indexOf(\"&\"))) {\r\n parsedHtml = removeExtraAttrs(text);\r\n items = parseHTML(parsedHtml)\r\n } else if (/\\n/g.test(text)) {\r\n items = parseMultiline(text)\r\n } else if (isStroked) {\r\n items = [{\r\n value: text.trim(),\r\n height: 0\r\n }]\r\n }\r\n if (items) {\r\n if (items.length) {\r\n wrapper._texts = items;\r\n if (isStroked) {\r\n createTspans(items, wrapper.element, KEY_STROKE)\r\n }\r\n createTspans(items, wrapper.element, \"tspan\")\r\n }\r\n } else {\r\n wrapper.element.appendChild(domAdapter.createTextNode(text))\r\n }\r\n}\r\n\r\nfunction setTextNodeAttribute(item, name, value) {\r\n item.tspan.setAttribute(name, value);\r\n item.stroke && item.stroke.setAttribute(name, value)\r\n}\r\n\r\nfunction getItemLineHeight(item, defaultValue) {\r\n return item.inherits ? maxLengthFontSize(item.height, defaultValue) : item.height || defaultValue\r\n}\r\n\r\nfunction locateTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var x = wrapper._settings.x;\r\n var lineHeight = wrapper._getLineHeight();\r\n var i;\r\n var ii;\r\n var item = items[0];\r\n setTextNodeAttribute(item, \"x\", x);\r\n setTextNodeAttribute(item, \"y\", wrapper._settings.y);\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (parseFloat(item.height) >= 0) {\r\n setTextNodeAttribute(item, \"x\", x);\r\n var height = getItemLineHeight(item, lineHeight);\r\n setTextNodeAttribute(item, \"dy\", height)\r\n }\r\n }\r\n}\r\n\r\nfunction alignTextNodes(wrapper, alignment) {\r\n if (!wrapper._texts || \"center\" === alignment) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var direction = \"left\" === alignment ? -1 : 1;\r\n var maxTextWidth = Math.max.apply(Math, items.map(t => getTextWidth(t)));\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var textWidth = getTextWidth(item);\r\n if (0 !== maxTextWidth && maxTextWidth !== textWidth) {\r\n setTextNodeAttribute(item, \"dx\", direction * round((maxTextWidth - textWidth) / 2 * 10) / 10)\r\n }\r\n }\r\n}\r\n\r\nfunction maxLengthFontSize(fontSize1, fontSize2) {\r\n var parsedHeight1 = parseFloat(fontSize1);\r\n var parsedHeight2 = parseFloat(fontSize2);\r\n var height1 = parsedHeight1 || DEFAULT_FONT_SIZE;\r\n var height2 = parsedHeight2 || DEFAULT_FONT_SIZE;\r\n return height1 > height2 ? !isNaN(parsedHeight1) ? fontSize1 : height1 : !isNaN(parsedHeight2) ? fontSize2 : height2\r\n}\r\n\r\nfunction strokeTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var stroke = wrapper._settings[KEY_STROKE];\r\n var strokeWidth = wrapper._settings[KEY_STROKE_WIDTH];\r\n var strokeOpacity = wrapper._settings[KEY_STROKE_OPACITY] || 1;\r\n var tspan;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n tspan = items[i].stroke;\r\n tspan.setAttribute(KEY_STROKE, stroke);\r\n tspan.setAttribute(KEY_STROKE_WIDTH, strokeWidth);\r\n tspan.setAttribute(KEY_STROKE_OPACITY, strokeOpacity);\r\n tspan.setAttribute(\"stroke-linejoin\", \"round\")\r\n }\r\n}\r\n\r\nfunction baseAnimate(that, params, options, complete) {\r\n options = options || {};\r\n var key;\r\n var value;\r\n var renderer = that.renderer;\r\n var settings = that._settings;\r\n var animationParams = {};\r\n var defaults = {\r\n translateX: 0,\r\n translateY: 0,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotate: 0,\r\n rotateX: 0,\r\n rotateY: 0\r\n };\r\n if (complete) {\r\n options.complete = complete\r\n }\r\n if (renderer.animationEnabled()) {\r\n for (key in params) {\r\n value = params[key];\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y))$/i.test(key)) {\r\n animationParams.transform = animationParams.transform || {\r\n from: {},\r\n to: {}\r\n };\r\n animationParams.transform.from[key] = key in settings ? Number(settings[key].toFixed(3)) : defaults[key];\r\n animationParams.transform.to[key] = value\r\n } else if (\"arc\" === key || \"segments\" === key) {\r\n animationParams[key] = value\r\n } else {\r\n animationParams[key] = {\r\n from: key in settings ? settings[key] : parseFloat(that.element.getAttribute(key) || 0),\r\n to: value\r\n }\r\n }\r\n }\r\n renderer.animateElement(that, animationParams, extend(extend({}, renderer._animation), options))\r\n } else {\r\n options.step && options.step.call(that, 1, 1);\r\n options.complete && options.complete.call(that);\r\n that.attr(params)\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAnimate(params, options, complete) {\r\n var curSegments = this.segments || [];\r\n var newSegments;\r\n var endSegments;\r\n if (this.renderer.animationEnabled() && \"points\" in params) {\r\n newSegments = buildPathSegments(params.points, this.type);\r\n endSegments = compensateSegments(curSegments, newSegments, this.type);\r\n params.segments = {\r\n from: curSegments,\r\n to: newSegments,\r\n end: endSegments\r\n };\r\n delete params.points\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction arcAnimate(params, options, complete) {\r\n var settings = this._settings;\r\n var arcParams = {\r\n from: {},\r\n to: {}\r\n };\r\n if (this.renderer.animationEnabled() && (\"x\" in params || \"y\" in params || \"innerRadius\" in params || \"outerRadius\" in params || \"startAngle\" in params || \"endAngle\" in params)) {\r\n arcParams.from.x = settings.x || 0;\r\n arcParams.from.y = settings.y || 0;\r\n arcParams.from.innerRadius = settings.innerRadius || 0;\r\n arcParams.from.outerRadius = settings.outerRadius || 0;\r\n arcParams.from.startAngle = settings.startAngle || 0;\r\n arcParams.from.endAngle = settings.endAngle || 0;\r\n arcParams.to.x = \"x\" in params ? params.x : settings.x;\r\n delete params.x;\r\n arcParams.to.y = \"y\" in params ? params.y : settings.y;\r\n delete params.y;\r\n arcParams.to.innerRadius = \"innerRadius\" in params ? params.innerRadius : settings.innerRadius;\r\n delete params.innerRadius;\r\n arcParams.to.outerRadius = \"outerRadius\" in params ? params.outerRadius : settings.outerRadius;\r\n delete params.outerRadius;\r\n arcParams.to.startAngle = \"startAngle\" in params ? params.startAngle : settings.startAngle;\r\n delete params.startAngle;\r\n arcParams.to.endAngle = \"endAngle\" in params ? params.endAngle : settings.endAngle;\r\n delete params.endAngle;\r\n params.arc = arcParams\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction buildLink(target, parameters) {\r\n var obj = {\r\n is: false,\r\n name: parameters.name || parameters,\r\n after: parameters.after\r\n };\r\n if (target) {\r\n obj.to = target\r\n } else {\r\n obj.virtual = true\r\n }\r\n return obj\r\n}\r\nexport var SvgElement = function(renderer, tagName, type) {\r\n this.renderer = renderer;\r\n this.element = createElement(tagName);\r\n this._settings = {};\r\n this._styles = {};\r\n if (\"path\" === tagName) {\r\n this.type = type || \"line\"\r\n }\r\n};\r\n\r\nfunction removeFuncIriCallback(callback) {\r\n fixFuncIriCallbacks.remove(callback)\r\n}\r\nSvgElement.prototype = {\r\n constructor: SvgElement,\r\n _getJQElement: function() {\r\n return this._$element || (this._$element = $(this.element))\r\n },\r\n _addFixIRICallback: function() {\r\n var that = this;\r\n var fn = function() {\r\n fixFuncIri(that, \"fill\");\r\n fixFuncIri(that, \"clip-path\");\r\n fixFuncIri(that, \"filter\")\r\n };\r\n that.element._fixFuncIri = fn;\r\n fn.renderer = that.renderer;\r\n fixFuncIriCallbacks.add(fn);\r\n that._addFixIRICallback = function() {}\r\n },\r\n _clearChildrenFuncIri: function() {\r\n ! function clearChildren(element) {\r\n var i;\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n removeFuncIriCallback(element.childNodes[i]._fixFuncIri);\r\n clearChildren(element.childNodes[i])\r\n }\r\n }(this.element)\r\n },\r\n dispose: function() {\r\n removeFuncIriCallback(this.element._fixFuncIri);\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().remove();\r\n return this\r\n },\r\n append: function(parent) {\r\n (parent || this.renderer.root).element.appendChild(this.element);\r\n return this\r\n },\r\n remove: function() {\r\n var element = this.element;\r\n element.parentNode && element.parentNode.removeChild(element);\r\n return this\r\n },\r\n enableLinks: function() {\r\n this._links = [];\r\n return this\r\n },\r\n virtualLink: function(parameters) {\r\n linkItem({\r\n _link: buildLink(null, parameters)\r\n }, this);\r\n return this\r\n },\r\n linkAfter: function(name) {\r\n this._linkAfter = name;\r\n return this\r\n },\r\n linkOn: function(target, parameters) {\r\n this._link = buildLink(target, parameters);\r\n linkItem(this, target);\r\n return this\r\n },\r\n linkOff: function() {\r\n unlinkItem(this);\r\n this._link = null;\r\n return this\r\n },\r\n linkAppend: function() {\r\n var link = this._link;\r\n var items = link.to._links;\r\n var i;\r\n var next;\r\n for (i = link.i + 1;\r\n (next = items[i]) && !next._link.is; ++i) {}\r\n this._insert(link.to, next);\r\n link.is = true;\r\n return this\r\n },\r\n _insert: function(parent, next) {\r\n parent.element.insertBefore(this.element, next ? next.element : null)\r\n },\r\n linkRemove: function() {\r\n this.remove();\r\n this._link.is = false;\r\n return this\r\n },\r\n clear: function() {\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().empty();\r\n return this\r\n },\r\n toBackground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.insertBefore(elem, parent.firstChild);\r\n return this\r\n },\r\n toForeground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.appendChild(elem);\r\n return this\r\n },\r\n attr: function(attrs) {\r\n return baseAttr(this, attrs)\r\n },\r\n smartAttr: function(attrs) {\r\n return this.attr(processHatchingAttrs(this, attrs))\r\n },\r\n css: function(styles) {\r\n return baseCss(this, styles)\r\n },\r\n animate: function(params, options, complete) {\r\n return baseAnimate(this, params, options, complete)\r\n },\r\n sharp(pos, sharpDirection) {\r\n return this.attr({\r\n sharp: pos || true,\r\n sharpDirection: sharpDirection\r\n })\r\n },\r\n _applyTransformation() {\r\n var tr = this._settings;\r\n var rotateX;\r\n var rotateY;\r\n var transformations = [];\r\n var sharpMode = tr.sharp;\r\n var trDirection = tr.sharpDirection || 1;\r\n var strokeOdd = tr[KEY_STROKE_WIDTH] % 2;\r\n var correctionX = strokeOdd && (\"h\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n var correctionY = strokeOdd && (\"v\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n transformations.push(\"translate(\" + ((tr.translateX || 0) + correctionX) + \",\" + ((tr.translateY || 0) + correctionY) + \")\");\r\n if (tr.rotate) {\r\n if (\"rotateX\" in tr) {\r\n rotateX = tr.rotateX\r\n } else {\r\n rotateX = tr.x\r\n }\r\n if (\"rotateY\" in tr) {\r\n rotateY = tr.rotateY\r\n } else {\r\n rotateY = tr.y\r\n }\r\n transformations.push(\"rotate(\" + tr.rotate + \",\" + (rotateX || 0) + \",\" + (rotateY || 0) + \")\")\r\n }\r\n var scaleXDefined = isDefined(tr.scaleX);\r\n var scaleYDefined = isDefined(tr.scaleY);\r\n if (scaleXDefined || scaleYDefined) {\r\n transformations.push(\"scale(\" + (scaleXDefined ? tr.scaleX : 1) + \",\" + (scaleYDefined ? tr.scaleY : 1) + \")\")\r\n }\r\n if (transformations.length) {\r\n this.element.setAttribute(\"transform\", transformations.join(\" \"))\r\n }\r\n },\r\n move: function(x, y, animate, animOptions) {\r\n var obj = {};\r\n isDefined(x) && (obj.translateX = x);\r\n isDefined(y) && (obj.translateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n rotate: function(angle, x, y, animate, animOptions) {\r\n var obj = {\r\n rotate: angle || 0\r\n };\r\n isDefined(x) && (obj.rotateX = x);\r\n isDefined(y) && (obj.rotateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n _getElementBBox: function() {\r\n var elem = this.element;\r\n var bBox;\r\n try {\r\n bBox = elem.getBBox && elem.getBBox()\r\n } catch (e) {}\r\n return bBox || {\r\n x: 0,\r\n y: 0,\r\n width: elem.offsetWidth || 0,\r\n height: elem.offsetHeight || 0\r\n }\r\n },\r\n getBBox: function() {\r\n var transformation = this._settings;\r\n var bBox = this._getElementBBox();\r\n if (transformation.rotate) {\r\n bBox = rotateBBox(bBox, [(\"rotateX\" in transformation ? transformation.rotateX : transformation.x) || 0, (\"rotateY\" in transformation ? transformation.rotateY : transformation.y) || 0], -transformation.rotate)\r\n } else {\r\n bBox = normalizeBBox(bBox)\r\n }\r\n return bBox\r\n },\r\n markup: function() {\r\n return getSvgMarkup(this.element)\r\n },\r\n getOffset: function() {\r\n return this._getJQElement().offset()\r\n },\r\n stopAnimation: function(disableComplete) {\r\n var animation = this.animation;\r\n animation && animation.stop(disableComplete);\r\n return this\r\n },\r\n setTitle: function(text) {\r\n var titleElem = createElement(\"title\");\r\n titleElem.textContent = text || \"\";\r\n this.element.appendChild(titleElem)\r\n },\r\n removeTitle() {\r\n detachTitleElements(this.element)\r\n },\r\n data: function(obj, val) {\r\n var elem = this.element;\r\n var key;\r\n if (void 0 !== val) {\r\n elem[obj] = val\r\n } else {\r\n for (key in obj) {\r\n elem[key] = obj[key]\r\n }\r\n }\r\n return this\r\n },\r\n on: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.on.apply(eventsEngine, args);\r\n return this\r\n },\r\n off: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.off.apply(eventsEngine, args);\r\n return this\r\n },\r\n trigger: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.trigger.apply(eventsEngine, args);\r\n return this\r\n }\r\n};\r\nexport var PathSvgElement = function(renderer, type) {\r\n SvgElement.call(this, renderer, \"path\", type)\r\n};\r\nPathSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(PathSvgElement.prototype, {\r\n constructor: PathSvgElement,\r\n attr: pathAttr,\r\n animate: pathAnimate\r\n});\r\nexport var ArcSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"path\", \"arc\")\r\n};\r\nArcSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(ArcSvgElement.prototype, {\r\n constructor: ArcSvgElement,\r\n attr: arcAttr,\r\n animate: arcAnimate\r\n});\r\nexport var RectSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"rect\")\r\n};\r\nRectSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(RectSvgElement.prototype, {\r\n constructor: RectSvgElement,\r\n attr: rectAttr\r\n});\r\nexport var TextSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"text\");\r\n this.css({\r\n \"white-space\": \"pre\"\r\n })\r\n};\r\nTextSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(TextSvgElement.prototype, {\r\n constructor: TextSvgElement,\r\n attr: textAttr,\r\n css: textCss,\r\n applyEllipsis: applyEllipsis,\r\n setMaxSize: setMaxSize,\r\n restoreText: restoreText,\r\n _getLineHeight() {\r\n return !isNaN(parseFloat(this._styles[KEY_FONT_SIZE])) ? this._styles[KEY_FONT_SIZE] : DEFAULT_FONT_SIZE\r\n }\r\n});\r\n\r\nfunction updateIndexes(items, k) {\r\n var i;\r\n var item;\r\n for (i = k; item = items[i]; ++i) {\r\n item._link.i = i\r\n }\r\n}\r\n\r\nfunction linkItem(target, container) {\r\n var items = container._links;\r\n var key = target._link.after = target._link.after || container._linkAfter;\r\n var i;\r\n var item;\r\n if (key) {\r\n for (i = 0;\r\n (item = items[i]) && item._link.name !== key; ++i) {}\r\n if (item) {\r\n for (++i;\r\n (item = items[i]) && item._link.after === key; ++i) {}\r\n }\r\n } else {\r\n i = items.length\r\n }\r\n items.splice(i, 0, target);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction unlinkItem(target) {\r\n var i;\r\n var items = target._link.to._links;\r\n for (i = 0; items[i] !== target; ++i) {}\r\n items.splice(i, 1);\r\n updateIndexes(items, i)\r\n}\r\nexport function Renderer(options) {\r\n this.root = this._createElement(\"svg\", {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n version: \"1.1\",\r\n fill: NONE,\r\n stroke: NONE,\r\n \"stroke-width\": 0\r\n }).attr({\r\n class: options.cssClass\r\n }).css({\r\n \"line-height\": \"normal\",\r\n \"-ms-user-select\": NONE,\r\n \"-moz-user-select\": NONE,\r\n \"-webkit-user-select\": NONE,\r\n \"-webkit-tap-highlight-color\": \"rgba(0, 0, 0, 0)\",\r\n display: \"block\",\r\n overflow: \"hidden\"\r\n });\r\n this._init();\r\n this.pathModified = !!options.pathModified;\r\n this._$container = $(options.container);\r\n this.root.append({\r\n element: options.container\r\n });\r\n this._locker = 0;\r\n this._backed = false\r\n}\r\nRenderer.prototype = {\r\n constructor: Renderer,\r\n _init: function() {\r\n this._defs = this._createElement(\"defs\").append(this.root);\r\n this._animationController = new AnimationController(this.root.element);\r\n this._animation = {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }\r\n },\r\n setOptions: function(options) {\r\n this.rtl = !!options.rtl;\r\n this.encodeHtml = !!options.encodeHtml;\r\n this.updateAnimationOptions(options.animation || {});\r\n this.root.attr({\r\n direction: this.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n _createElement: function(tagName, attr, type) {\r\n var elem = new SvgElement(this, tagName, type);\r\n attr && elem.attr(attr);\r\n return elem\r\n },\r\n lock: function() {\r\n if (0 === this._locker) {\r\n this._backed = !this._$container.is(\":visible\");\r\n if (this._backed) {\r\n backupRoot(this.root)\r\n }\r\n }++this._locker;\r\n return this\r\n },\r\n unlock: function() {\r\n --this._locker;\r\n if (0 === this._locker) {\r\n if (this._backed) {\r\n restoreRoot(this.root, this._$container[0])\r\n }\r\n this._backed = false\r\n }\r\n return this\r\n },\r\n resize: function(width, height) {\r\n if (width >= 0 && height >= 0) {\r\n this.root.attr({\r\n width: width,\r\n height: height\r\n })\r\n }\r\n return this\r\n },\r\n dispose: function() {\r\n var key;\r\n this.root.dispose();\r\n this._defs.dispose();\r\n this._animationController.dispose();\r\n fixFuncIriCallbacks.removeByRenderer(this);\r\n for (key in this) {\r\n this[key] = null\r\n }\r\n return this\r\n },\r\n animationEnabled: function() {\r\n return !!this._animation.enabled\r\n },\r\n updateAnimationOptions: function(newOptions) {\r\n extend(this._animation, newOptions);\r\n return this\r\n },\r\n stopAllAnimations: function(lock) {\r\n this._animationController[lock ? \"lock\" : \"stop\"]();\r\n return this\r\n },\r\n animateElement: function(element, params, options) {\r\n this._animationController.animateElement(element, params, options);\r\n return this\r\n },\r\n svg: function() {\r\n return this.root.markup()\r\n },\r\n getRootOffset: function() {\r\n return this.root.getOffset()\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationController.onEndAnimation(endAnimation)\r\n },\r\n rect: function(x, y, width, height) {\r\n var elem = new RectSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n })\r\n },\r\n simpleRect: function() {\r\n return this._createElement(\"rect\")\r\n },\r\n circle: function(x, y, r) {\r\n return this._createElement(\"circle\", {\r\n cx: x || 0,\r\n cy: y || 0,\r\n r: r || 0\r\n })\r\n },\r\n g: function() {\r\n return this._createElement(\"g\")\r\n },\r\n image: function(x, y, w, h, href, location) {\r\n var image = this._createElement(\"image\", {\r\n x: x || 0,\r\n y: y || 0,\r\n width: w || 0,\r\n height: h || 0,\r\n preserveAspectRatio: preserveAspectRatioMap[normalizeEnum(location)] || NONE\r\n });\r\n image.element.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", href || \"\");\r\n return image\r\n },\r\n path: function(points, type) {\r\n var elem = new PathSvgElement(this, type);\r\n return elem.attr({\r\n points: points || []\r\n })\r\n },\r\n arc: function(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var elem = new ArcSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n innerRadius: innerRadius || 0,\r\n outerRadius: outerRadius || 0,\r\n startAngle: startAngle || 0,\r\n endAngle: endAngle || 0\r\n })\r\n },\r\n text: function(_text, x, y) {\r\n var elem = new TextSvgElement(this);\r\n return elem.attr({\r\n text: _text,\r\n x: x || 0,\r\n y: y || 0\r\n })\r\n },\r\n linearGradient: function(stops) {\r\n var id = getNextDefsSvgId();\r\n var that = this;\r\n var gradient = that._createElement(\"linearGradient\", {\r\n id: id\r\n }).append(that._defs);\r\n gradient.id = id;\r\n stops.forEach(stop => {\r\n that._createElement(\"stop\", {\r\n offset: stop.offset,\r\n \"stop-color\": stop[\"stop-color\"]\r\n }).append(gradient)\r\n });\r\n return gradient\r\n },\r\n pattern: function(color, hatching, _id) {\r\n hatching = hatching || {};\r\n var step = hatching.step || 6;\r\n var stepTo2 = step / 2;\r\n var stepBy15 = 1.5 * step;\r\n var id = _id || getNextDefsSvgId();\r\n var d = \"right\" === normalizeEnum(hatching.direction) ? \"M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + -stepTo2 + \" \" + stepTo2 + \" M 0 \" + step + \" L \" + step + \" 0 M \" + stepBy15 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 : \"M 0 0 L \" + step + \" \" + step + \" M \" + -stepTo2 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 + \" M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + stepBy15 + \" \" + stepTo2;\r\n var pattern = this._createElement(\"pattern\", {\r\n id: id,\r\n width: step,\r\n height: step,\r\n patternUnits: \"userSpaceOnUse\"\r\n }).append(this._defs);\r\n pattern.id = id;\r\n this.rect(0, 0, step, step).attr({\r\n fill: color,\r\n opacity: hatching.opacity\r\n }).append(pattern);\r\n new PathSvgElement(this).attr({\r\n d: d,\r\n \"stroke-width\": hatching.width || 1,\r\n stroke: color\r\n }).append(pattern);\r\n return pattern\r\n },\r\n _getPointsWithYOffset: function(points, offset) {\r\n return points.map((function(point, index) {\r\n if (index % 2 !== 0) {\r\n return point + offset\r\n }\r\n return point\r\n }))\r\n },\r\n clipShape: function(method, methodArgs) {\r\n var id = getNextDefsSvgId();\r\n var clipPath = this._createElement(\"clipPath\", {\r\n id: id\r\n }).append(this._defs);\r\n var shape = method.apply(this, methodArgs).append(clipPath);\r\n shape.id = id;\r\n shape.remove = function() {\r\n throw \"Not implemented\"\r\n };\r\n shape.dispose = function() {\r\n clipPath.dispose();\r\n clipPath = null;\r\n return this\r\n };\r\n return shape\r\n },\r\n clipRect(x, y, width, height) {\r\n return this.clipShape(this.rect, arguments)\r\n },\r\n clipCircle(x, y, radius) {\r\n return this.clipShape(this.circle, arguments)\r\n },\r\n shadowFilter: function(x, y, width, height, offsetX, offsetY, blur, color, opacity) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id,\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n }).append(this._defs);\r\n var gaussianBlur = this._createElement(\"feGaussianBlur\", {\r\n in: \"SourceGraphic\",\r\n result: \"gaussianBlurResult\",\r\n stdDeviation: blur || 0\r\n }).append(filter);\r\n var offset = this._createElement(\"feOffset\", {\r\n in: \"gaussianBlurResult\",\r\n result: \"offsetResult\",\r\n dx: offsetX || 0,\r\n dy: offsetY || 0\r\n }).append(filter);\r\n var flood = this._createElement(\"feFlood\", {\r\n result: \"floodResult\",\r\n \"flood-color\": color || \"\",\r\n \"flood-opacity\": opacity\r\n }).append(filter);\r\n var composite = this._createElement(\"feComposite\", {\r\n in: \"floodResult\",\r\n in2: \"offsetResult\",\r\n operator: \"in\",\r\n result: \"compositeResult\"\r\n }).append(filter);\r\n var finalComposite = this._createElement(\"feComposite\", {\r\n in: \"SourceGraphic\",\r\n in2: \"compositeResult\",\r\n operator: \"over\"\r\n }).append(filter);\r\n filter.id = id;\r\n filter.gaussianBlur = gaussianBlur;\r\n filter.offset = offset;\r\n filter.flood = flood;\r\n filter.composite = composite;\r\n filter.finalComposite = finalComposite;\r\n filter.attr = function(attrs) {\r\n var filterAttrs = {};\r\n var offsetAttrs = {};\r\n var floodAttrs = {};\r\n \"x\" in attrs && (filterAttrs.x = attrs.x);\r\n \"y\" in attrs && (filterAttrs.y = attrs.y);\r\n \"width\" in attrs && (filterAttrs.width = attrs.width);\r\n \"height\" in attrs && (filterAttrs.height = attrs.height);\r\n baseAttr(this, filterAttrs);\r\n \"blur\" in attrs && this.gaussianBlur.attr({\r\n stdDeviation: attrs.blur\r\n });\r\n \"offsetX\" in attrs && (offsetAttrs.dx = attrs.offsetX);\r\n \"offsetY\" in attrs && (offsetAttrs.dy = attrs.offsetY);\r\n this.offset.attr(offsetAttrs);\r\n \"color\" in attrs && (floodAttrs[\"flood-color\"] = attrs.color);\r\n \"opacity\" in attrs && (floodAttrs[\"flood-opacity\"] = attrs.opacity);\r\n this.flood.attr(floodAttrs);\r\n return this\r\n };\r\n return filter\r\n },\r\n brightFilter: function(type, slope) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n var componentTransferElement = this._createElement(\"feComponentTransfer\").append(filter);\r\n var attrs = {\r\n type: type,\r\n slope: slope\r\n };\r\n filter.id = id;\r\n this._createElement(\"feFuncR\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncG\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncB\", attrs).append(componentTransferElement);\r\n return filter\r\n },\r\n getGrayScaleFilter: function() {\r\n if (this._grayScaleFilter) {\r\n return this._grayScaleFilter\r\n }\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\").attr({\r\n type: \"matrix\",\r\n values: \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 0.6 0\"\r\n }).append(filter);\r\n filter.id = id;\r\n this._grayScaleFilter = filter;\r\n return filter\r\n },\r\n initHatching: function() {\r\n var storage = this._hatchingStorage = this._hatchingStorage || {\r\n byHash: {},\r\n baseId: getNextDefsSvgId()\r\n };\r\n var byHash = storage.byHash;\r\n var name;\r\n for (name in byHash) {\r\n byHash[name].pattern.dispose()\r\n }\r\n storage.byHash = {};\r\n storage.refToHash = {};\r\n storage.nextId = 0\r\n },\r\n lockHatching: function(color, hatching, ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = getHatchingHash(color, hatching);\r\n var storageItem;\r\n var pattern;\r\n if (storage.refToHash[ref] !== hash) {\r\n if (ref) {\r\n this.releaseHatching(ref)\r\n }\r\n storageItem = storage.byHash[hash];\r\n if (!storageItem) {\r\n pattern = this.pattern(color, hatching, storage.baseId + \"-hatching-\" + storage.nextId++);\r\n storageItem = storage.byHash[hash] = {\r\n pattern: pattern,\r\n count: 0\r\n };\r\n storage.refToHash[pattern.id] = hash\r\n }++storageItem.count;\r\n ref = storageItem.pattern.id\r\n }\r\n return ref\r\n },\r\n releaseHatching: function(ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = storage.refToHash[ref];\r\n var storageItem = storage.byHash[hash];\r\n if (storageItem && 0 === --storageItem.count) {\r\n storageItem.pattern.dispose();\r\n delete storage.byHash[hash];\r\n delete storage.refToHash[ref]\r\n }\r\n }\r\n};\r\n\r\nfunction getHatchingHash(color, hatching) {\r\n return \"@\" + color + \"::\" + hatching.step + \":\" + hatching.width + \":\" + hatching.opacity + \":\" + hatching.direction\r\n}\r\nvar fixFuncIriCallbacks = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(fn) {\r\n callbacks.push(fn)\r\n },\r\n remove: function(fn) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el !== fn\r\n }))\r\n },\r\n removeByRenderer: function(renderer) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el.renderer !== renderer\r\n }))\r\n },\r\n fire: function() {\r\n callbacks.forEach((function(fn) {\r\n fn()\r\n }))\r\n }\r\n }\r\n}();\r\nexport var refreshPaths = function() {\r\n fixFuncIriCallbacks.fire()\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/utils.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n refreshPaths\r\n} from \"./core/renderers/renderer\";\r\nimport {\r\n each as _each\r\n} from \"../core/utils/iterator\";\r\nvar {\r\n floor: floor\r\n} = Math;\r\nexport var prepareSegmentRectPoints = function(left, top, width, height, borderOptions) {\r\n var maxSW = ~~((width < height ? width : height) / 2);\r\n var sw = borderOptions.width || 0;\r\n var newSW = sw < maxSW ? sw : maxSW;\r\n left += newSW / 2;\r\n top += newSW / 2;\r\n width -= newSW;\r\n height -= newSW;\r\n var right = left + width;\r\n var bottom = top + height;\r\n var points = [];\r\n var segments = [];\r\n var segmentSequence;\r\n var visiblyOpt = 0;\r\n var prevSegmentVisibility = 0;\r\n var allSegment = {\r\n top: [\r\n [left, top],\r\n [right, top]\r\n ],\r\n right: [\r\n [right, top],\r\n [right, bottom]\r\n ],\r\n bottom: [\r\n [right, bottom],\r\n [left, bottom]\r\n ],\r\n left: [\r\n [left, bottom],\r\n [left, top]\r\n ]\r\n };\r\n _each(allSegment, (function(seg) {\r\n var visibility = !!borderOptions[seg];\r\n visiblyOpt = 2 * visiblyOpt + ~~visibility\r\n }));\r\n switch (visiblyOpt) {\r\n case 13:\r\n case 9:\r\n segmentSequence = [\"left\", \"top\", \"right\", \"bottom\"];\r\n break;\r\n case 11:\r\n segmentSequence = [\"bottom\", \"left\", \"top\", \"right\"];\r\n break;\r\n default:\r\n segmentSequence = [\"top\", \"right\", \"bottom\", \"left\"]\r\n }\r\n _each(segmentSequence, (function(_, seg) {\r\n var segmentVisibility = !!borderOptions[seg];\r\n if (!prevSegmentVisibility && segments.length) {\r\n points.push(segments);\r\n segments = []\r\n }\r\n if (segmentVisibility) {\r\n _each(allSegment[seg].slice(prevSegmentVisibility), (function(_, segment) {\r\n segments = segments.concat(segment)\r\n }))\r\n }\r\n prevSegmentVisibility = ~~segmentVisibility\r\n }));\r\n segments.length && points.push(segments);\r\n 1 === points.length && (points = points[0]);\r\n return {\r\n points: points,\r\n pathType: 15 === visiblyOpt ? \"area\" : \"line\"\r\n }\r\n};\r\nexport {\r\n refreshPaths\r\n};\r\nexport var areCanvasesDifferent = function(canvas1, canvas2) {\r\n var sizeLessThreshold = [\"width\", \"height\"].every(key => Math.abs(canvas1[key] - canvas2[key]) < 1);\r\n var canvasCoordsIsEqual = [\"left\", \"right\", \"top\", \"bottom\"].every(key => canvas1[key] === canvas2[key]);\r\n return !(sizeLessThreshold && canvasCoordsIsEqual)\r\n};\r\nexport var floorCanvasDimensions = function(canvas) {\r\n return _extends({}, canvas, {\r\n height: floor(canvas.height),\r\n width: floor(canvas.width)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/viz/core/m_base_widget.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject as _isObject,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../../../viz/core/base_theme_manager\";\r\nimport {\r\n createEventTrigger,\r\n createIncidentOccurred,\r\n createResizeHandler\r\n} from \"../../../viz/core/base_widget.utils\";\r\nimport warnings from \"../../../viz/core/errors_warnings\";\r\nimport {\r\n changes,\r\n replaceInherit\r\n} from \"../../../viz/core/helpers\";\r\nimport _Layout from \"../../../viz/core/layout\";\r\nimport {\r\n Renderer\r\n} from \"../../../viz/core/renderers/renderer\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"../../../viz/core/utils\";\r\nimport {\r\n areCanvasesDifferent,\r\n floorCanvasDimensions\r\n} from \"../../../viz/utils\";\r\nvar {\r\n log: log\r\n} = warnings;\r\nvar OPTION_RTL_ENABLED = \"rtlEnabled\";\r\nvar SIZED_ELEMENT_CLASS = \"dx-sized-element\";\r\nvar baseOptionMethod = DOMComponent.prototype.option;\r\n\r\nfunction getTrue() {\r\n return true\r\n}\r\n\r\nfunction getFalse() {\r\n return false\r\n}\r\n\r\nfunction defaultOnIncidentOccurred(e) {\r\n if (!e.component._eventsStrategy.hasEvent(\"incidentOccurred\")) {\r\n log.apply(null, [e.target.id].concat(e.target.args || []))\r\n }\r\n}\r\n\r\nfunction pickPositiveValue(values) {\r\n return values.reduce((result, value) => value > 0 && !result ? value : result, 0)\r\n}\r\nvar getEmptyComponent = function() {\r\n var emptyComponentConfig = {\r\n _initTemplates() {},\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n var sizedElement = domAdapter.createElement(\"div\");\r\n var width = options && isNumeric(options.width) ? \"\".concat(options.width, \"px\") : \"100%\";\r\n var height = options && isNumeric(options.height) ? \"\".concat(options.height, \"px\") : \"\".concat(this._getDefaultSize().height, \"px\");\r\n domAdapter.setStyle(sizedElement, \"width\", width);\r\n domAdapter.setStyle(sizedElement, \"height\", height);\r\n domAdapter.setClass(sizedElement, SIZED_ELEMENT_CLASS, false);\r\n domAdapter.insertElement(element, sizedElement)\r\n }\r\n };\r\n var EmptyComponent = DOMComponent.inherit(emptyComponentConfig);\r\n var originalInherit = EmptyComponent.inherit;\r\n EmptyComponent.inherit = function(config) {\r\n Object.keys(config).forEach(field => {\r\n if (isFunction(config[field]) && \"_\" !== field.substr(0, 1) && \"option\" !== field || \"_dispose\" === field || \"_optionChanged\" === field) {\r\n config[field] = noop\r\n }\r\n });\r\n return originalInherit.call(this, config)\r\n };\r\n return EmptyComponent\r\n};\r\n\r\nfunction callForEach(functions) {\r\n functions.forEach(c => c())\r\n}\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction sizeIsValid(value) {\r\n return isDefined(value) && value > 0\r\n}\r\nvar baseWidget = isServerSide ? getEmptyComponent() : DOMComponent.inherit({\r\n _eventsMap: {\r\n onIncidentOccurred: {\r\n name: \"incidentOccurred\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onDrawn: {\r\n name: \"drawn\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n }\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onIncidentOccurred: defaultOnIncidentOccurred\r\n })\r\n },\r\n _useLinks: true,\r\n _init() {\r\n this._$element.children(\".\".concat(SIZED_ELEMENT_CLASS)).remove();\r\n this._$element.children(\".\".concat(SIZED_ELEMENT_CLASS)).remove();\r\n this.callBase(...arguments);\r\n this._changesLocker = 0;\r\n this._optionChangedLocker = 0;\r\n this._asyncFirstDrawing = true;\r\n this._changes = changes();\r\n this._suspendChanges();\r\n this._themeManager = this._createThemeManager();\r\n this._themeManager.setCallback(() => {\r\n this._requestChange(this._themeDependentChanges)\r\n });\r\n this._renderElementAttributes();\r\n this._initRenderer();\r\n var useLinks = this._useLinks;\r\n if (useLinks) {\r\n this._renderer.root.enableLinks().virtualLink(\"core\").virtualLink(\"peripheral\")\r\n }\r\n this._renderVisibilityChange();\r\n this._attachVisibilityChangeHandlers();\r\n this._toggleParentsScrollSubscription(this._isVisible());\r\n this._initEventTrigger();\r\n this._incidentOccurred = createIncidentOccurred(this.NAME, this._eventTrigger);\r\n this._layout = new _Layout;\r\n if (useLinks) {\r\n this._renderer.root.linkAfter(\"core\")\r\n }\r\n this._initPlugins();\r\n this._initCore();\r\n if (useLinks) {\r\n this._renderer.root.linkAfter()\r\n }\r\n this._change(this._initialChanges)\r\n },\r\n _createThemeManager() {\r\n return new BaseThemeManager(this._getThemeManagerOptions())\r\n },\r\n _getThemeManagerOptions() {\r\n return {\r\n themeSection: this._themeSection,\r\n fontFields: this._fontFields\r\n }\r\n },\r\n _initialChanges: [\"LAYOUT\", \"RESIZE_HANDLER\", \"THEME\", \"DISABLED\"],\r\n _initPlugins() {\r\n each(this._plugins, (_, plugin) => {\r\n plugin.init.call(this)\r\n })\r\n },\r\n _disposePlugins() {\r\n each(this._plugins.slice().reverse(), (_, plugin) => {\r\n plugin.dispose.call(this)\r\n })\r\n },\r\n _change(codes) {\r\n this._changes.add(codes)\r\n },\r\n _suspendChanges() {\r\n this._changesLocker += 1\r\n },\r\n _resumeChanges() {\r\n if (0 === --this._changesLocker && this._changes.count() > 0 && !this._applyingChanges) {\r\n this._renderer.lock();\r\n this._applyingChanges = true;\r\n this._applyChanges();\r\n this._changes.reset();\r\n this._applyingChanges = false;\r\n this._changesApplied();\r\n this._renderer.unlock();\r\n if (this._optionsQueue) {\r\n this._applyQueuedOptions()\r\n }\r\n this.resolveItemsDeferred(this._legend ? [this._legend] : []);\r\n this._optionChangedLocker += 1;\r\n this._notify();\r\n this._optionChangedLocker -= 1\r\n }\r\n },\r\n resolveItemsDeferred(items) {\r\n this._resolveDeferred(this._getTemplatesItems(items))\r\n },\r\n _collectTemplatesFromItems: items => items.reduce((prev, i) => ({\r\n items: prev.items.concat(i.getTemplatesDef()),\r\n groups: prev.groups.concat(i.getTemplatesGroups())\r\n }), {\r\n items: [],\r\n groups: []\r\n }),\r\n _getTemplatesItems(items) {\r\n var elements = this._collectTemplatesFromItems(items);\r\n var extraItems = this._getExtraTemplatesItems();\r\n return {\r\n items: extraItems.items.concat(elements.items),\r\n groups: extraItems.groups.concat(elements.groups),\r\n launchRequest: [extraItems.launchRequest],\r\n doneRequest: [extraItems.doneRequest]\r\n }\r\n },\r\n _getExtraTemplatesItems: () => ({\r\n items: [],\r\n groups: [],\r\n launchRequest: () => {},\r\n doneRequest: () => {}\r\n }),\r\n _resolveDeferred(_ref) {\r\n var {\r\n items: items,\r\n launchRequest: launchRequest,\r\n doneRequest: doneRequest,\r\n groups: groups\r\n } = _ref;\r\n this._setGroupsVisibility(groups, \"hidden\");\r\n if (this._changesApplying) {\r\n this._changesApplying = false;\r\n callForEach(doneRequest);\r\n return\r\n }\r\n var syncRendering = true;\r\n when.apply(this, items).done(() => {\r\n if (syncRendering) {\r\n this._setGroupsVisibility(groups, \"visible\");\r\n return\r\n }\r\n callForEach(launchRequest);\r\n this._changesApplying = true;\r\n var changes = [\"LAYOUT\", \"FULL_RENDER\"];\r\n if (this._asyncFirstDrawing) {\r\n changes.push(\"FORCE_FIRST_DRAWING\");\r\n this._asyncFirstDrawing = false\r\n } else {\r\n changes.push(\"FORCE_DRAWING\")\r\n }\r\n this._requestChange(changes);\r\n this._setGroupsVisibility(groups, \"visible\")\r\n });\r\n syncRendering = false\r\n },\r\n _setGroupsVisibility(groups, visibility) {\r\n groups.forEach(g => g.attr({\r\n visibility: visibility\r\n }))\r\n },\r\n _applyQueuedOptions() {\r\n var queue = this._optionsQueue;\r\n this._optionsQueue = null;\r\n this.beginUpdate();\r\n each(queue, (_, action) => {\r\n action()\r\n });\r\n this.endUpdate()\r\n },\r\n _requestChange(codes) {\r\n this._suspendChanges();\r\n this._change(codes);\r\n this._resumeChanges()\r\n },\r\n _applyChanges() {\r\n var changes = this._changes;\r\n var order = this._totalChangesOrder;\r\n var changesOrderLength = order.length;\r\n for (var i = 0; i < changesOrderLength; i += 1) {\r\n if (changes.has(order[i])) {\r\n this[\"_change_\".concat(order[i])]()\r\n }\r\n }\r\n },\r\n _optionChangesOrder: [\"EVENTS\", \"THEME\", \"RENDERER\", \"RESIZE_HANDLER\"],\r\n _layoutChangesOrder: [\"ELEMENT_ATTR\", \"CONTAINER_SIZE\", \"LAYOUT\"],\r\n _customChangesOrder: [\"DISABLED\"],\r\n _change_EVENTS() {\r\n this._eventTrigger.applyChanges()\r\n },\r\n _change_THEME() {\r\n this._setThemeAndRtl()\r\n },\r\n _change_RENDERER() {\r\n this._setRendererOptions()\r\n },\r\n _change_RESIZE_HANDLER() {\r\n this._setupResizeHandler()\r\n },\r\n _change_ELEMENT_ATTR() {\r\n this._renderElementAttributes();\r\n this._change([\"CONTAINER_SIZE\"])\r\n },\r\n _change_CONTAINER_SIZE() {\r\n this._updateSize()\r\n },\r\n _change_LAYOUT() {\r\n this._setContentSize()\r\n },\r\n _change_DISABLED() {\r\n var renderer = this._renderer;\r\n var {\r\n root: root\r\n } = renderer;\r\n if (this.option(\"disabled\")) {\r\n this._initDisabledState = root.attr(\"pointer-events\");\r\n root.attr({\r\n \"pointer-events\": \"none\",\r\n filter: renderer.getGrayScaleFilter().id\r\n })\r\n } else if (\"none\" === root.attr(\"pointer-events\")) {\r\n root.attr({\r\n \"pointer-events\": isDefined(this._initDisabledState) ? this._initDisabledState : null,\r\n filter: null\r\n })\r\n }\r\n },\r\n _themeDependentChanges: [\"RENDERER\"],\r\n _initRenderer() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._renderer = new Renderer({\r\n cssClass: \"\".concat(this._rootClassPrefix, \" \").concat(this._rootClass),\r\n pathModified: this.option(\"pathModified\"),\r\n container: this._$element[0]\r\n });\r\n this._renderer.resize(this._canvas.width, this._canvas.height)\r\n },\r\n _disposeRenderer() {\r\n this._renderer.dispose()\r\n },\r\n _getAnimationOptions: noop,\r\n render() {\r\n this._requestChange([\"CONTAINER_SIZE\"]);\r\n var visible = this._isVisible();\r\n this._toggleParentsScrollSubscription(visible);\r\n !visible && this._stopCurrentHandling()\r\n },\r\n _toggleParentsScrollSubscription(subscribe) {\r\n var $parents = $(this._renderer.root.element).parents();\r\n if (\"generic\" === devices.real().platform) {\r\n $parents = $parents.add(getWindow())\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || function() {\r\n this._stopCurrentHandling()\r\n }.bind(this);\r\n eventsEngine.off($(\"\").add(this._$prevRootParents), \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n if (subscribe) {\r\n eventsEngine.on($parents, \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n this._$prevRootParents = $parents\r\n }\r\n },\r\n _stopCurrentHandling: noop,\r\n _dispose() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this.callBase(...arguments);\r\n this._toggleParentsScrollSubscription(false);\r\n this._removeResizeHandler();\r\n this._layout.dispose();\r\n this._eventTrigger.dispose();\r\n this._disposeCore();\r\n this._disposePlugins();\r\n this._disposeRenderer();\r\n this._themeManager.dispose();\r\n this._themeManager = null;\r\n this._renderer = null;\r\n this._eventTrigger = null\r\n },\r\n _initEventTrigger() {\r\n this._eventTrigger = createEventTrigger(this._eventsMap, (name, actionSettings) => this._createActionByOption(name, actionSettings))\r\n },\r\n _calculateRawCanvas() {\r\n var size = this.option(\"size\") || {};\r\n var margin = this.option(\"margin\") || {};\r\n var defaultCanvas = this._getDefaultSize() || {};\r\n var getSizeOfSide = (size, side, getter) => {\r\n if (sizeIsValid(size[side]) || !hasWindow()) {\r\n return 0\r\n }\r\n var elementSize = getter(this._$element);\r\n return elementSize <= 1 ? 0 : elementSize\r\n };\r\n var elementWidth = getSizeOfSide(size, \"width\", x => getWidth(x));\r\n var elementHeight = getSizeOfSide(size, \"height\", x => getHeight(x));\r\n var canvas = {\r\n width: size.width <= 0 ? 0 : pickPositiveValue([size.width, elementWidth, defaultCanvas.width]),\r\n height: size.height <= 0 ? 0 : pickPositiveValue([size.height, elementHeight, defaultCanvas.height]),\r\n left: pickPositiveValue([margin.left, defaultCanvas.left]),\r\n top: pickPositiveValue([margin.top, defaultCanvas.top]),\r\n right: pickPositiveValue([margin.right, defaultCanvas.right]),\r\n bottom: pickPositiveValue([margin.bottom, defaultCanvas.bottom])\r\n };\r\n if (canvas.width - canvas.left - canvas.right <= 0 || canvas.height - canvas.top - canvas.bottom <= 0) {\r\n canvas = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return canvas\r\n },\r\n _updateSize() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n if (areCanvasesDifferent(this._canvas, rawCanvas) || this.__forceRender) {\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._recreateSizeDependentObjects(true);\r\n this._renderer.resize(this._canvas.width, this._canvas.height);\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n _recreateSizeDependentObjects: noop,\r\n _getMinSize: () => [0, 0],\r\n _getAlignmentRect: noop,\r\n _setContentSize() {\r\n var canvas = this._canvas;\r\n var layout = this._layout;\r\n var rect = canvas.width > 0 && canvas.height > 0 ? [canvas.left, canvas.top, canvas.width - canvas.right, canvas.height - canvas.bottom] : [0, 0, 0, 0];\r\n rect = layout.forward(rect, this._getMinSize());\r\n var nextRect = this._applySize(rect) || rect;\r\n layout.backward(nextRect, this._getAlignmentRect() || nextRect)\r\n },\r\n _getOption(name, isScalar) {\r\n var theme = this._themeManager.theme(name);\r\n var option = this.option(name);\r\n return isScalar ? void 0 !== option ? option : theme : extend(true, {}, theme, option)\r\n },\r\n _setupResizeHandler() {\r\n var redrawOnResize = _parseScalar(this._getOption(\"redrawOnResize\", true), true);\r\n if (this._disposeResizeHandler) {\r\n this._removeResizeHandler()\r\n }\r\n this._disposeResizeHandler = createResizeHandler(this._$element[0], redrawOnResize, () => this._requestChange([\"CONTAINER_SIZE\"]))\r\n },\r\n _removeResizeHandler() {\r\n if (this._disposeResizeHandler) {\r\n this._disposeResizeHandler();\r\n this._disposeResizeHandler = null\r\n }\r\n },\r\n _onBeginUpdate: noop,\r\n beginUpdate() {\r\n if (this._initialized && this._isUpdateAllowed()) {\r\n this._onBeginUpdate();\r\n this._suspendChanges()\r\n }\r\n this.callBase(...arguments);\r\n return this\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n this._isUpdateAllowed() && this._resumeChanges();\r\n return this\r\n },\r\n option(name) {\r\n if (this._initialized && this._applyingChanges && (arguments.length > 1 || _isObject(name))) {\r\n this._optionsQueue = this._optionsQueue || [];\r\n this._optionsQueue.push(this._getActionForUpdating(arguments))\r\n } else {\r\n return baseOptionMethod.apply(this, arguments)\r\n }\r\n },\r\n _getActionForUpdating(args) {\r\n return () => {\r\n baseOptionMethod.apply(this, args)\r\n }\r\n },\r\n _clean: noop,\r\n _render: noop,\r\n _optionChanged(arg) {\r\n if (this._optionChangedLocker) {\r\n return\r\n }\r\n var partialChanges = this.getPartialChangeOptionsName(arg);\r\n var changes = [];\r\n if (partialChanges.length > 0) {\r\n partialChanges.forEach(pc => changes.push(this._partialOptionChangesMap[pc]))\r\n } else {\r\n changes.push(this._optionChangesMap[arg.name])\r\n }\r\n changes = changes.filter(c => !!c);\r\n if (this._eventTrigger.change(arg.name)) {\r\n this._change([\"EVENTS\"])\r\n } else if (changes.length > 0) {\r\n this._change(changes)\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _notify: noop,\r\n _changesApplied: noop,\r\n _optionChangesMap: {\r\n size: \"CONTAINER_SIZE\",\r\n margin: \"CONTAINER_SIZE\",\r\n redrawOnResize: \"RESIZE_HANDLER\",\r\n theme: \"THEME\",\r\n rtlEnabled: \"THEME\",\r\n encodeHtml: \"THEME\",\r\n elementAttr: \"ELEMENT_ATTR\",\r\n disabled: \"DISABLED\"\r\n },\r\n _partialOptionChangesMap: {},\r\n _partialOptionChangesPath: {},\r\n getPartialChangeOptionsName(changedOption) {\r\n var {\r\n fullName: fullName\r\n } = changedOption;\r\n var sections = fullName.split(/[.]/);\r\n var {\r\n name: name\r\n } = changedOption;\r\n var {\r\n value: value\r\n } = changedOption;\r\n var options = this._partialOptionChangesPath[name];\r\n var partialChangeOptionsName = [];\r\n if (options) {\r\n if (true === options) {\r\n partialChangeOptionsName.push(name)\r\n } else {\r\n options.forEach(op => {\r\n fullName.indexOf(op) >= 0 && partialChangeOptionsName.push(op)\r\n });\r\n if (1 === sections.length) {\r\n if (\"object\" === type(value)) {\r\n this._addOptionsNameForPartialUpdate(value, options, partialChangeOptionsName)\r\n } else if (\"array\" === type(value)) {\r\n if (value.length > 0 && value.every(item => this._checkOptionsForPartialUpdate(item, options))) {\r\n value.forEach(item => {\r\n this._addOptionsNameForPartialUpdate(item, options, partialChangeOptionsName)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return partialChangeOptionsName.filter((value, index, self) => self.indexOf(value) === index)\r\n },\r\n _checkOptionsForPartialUpdate: (optionObject, options) => !Object.keys(optionObject).some(key => -1 === options.indexOf(key)),\r\n _addOptionsNameForPartialUpdate(optionObject, options, partialChangeOptionsName) {\r\n var optionKeys = Object.keys(optionObject);\r\n if (this._checkOptionsForPartialUpdate(optionObject, options)) {\r\n optionKeys.forEach(key => options.indexOf(key) > -1 && partialChangeOptionsName.push(key))\r\n }\r\n },\r\n _visibilityChanged() {\r\n this.render()\r\n },\r\n _setThemeAndRtl() {\r\n this._themeManager.setTheme(this.option(\"theme\"), this.option(OPTION_RTL_ENABLED))\r\n },\r\n _getRendererOptions() {\r\n return {\r\n rtl: this.option(OPTION_RTL_ENABLED),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n animation: this._getAnimationOptions()\r\n }\r\n },\r\n _setRendererOptions() {\r\n this._renderer.setOptions(this._getRendererOptions())\r\n },\r\n svg() {\r\n return this._renderer.svg()\r\n },\r\n getSize() {\r\n var canvas = this._canvas || {};\r\n return {\r\n width: canvas.width,\r\n height: canvas.height\r\n }\r\n },\r\n isReady: getFalse,\r\n _dataIsReady: getTrue,\r\n _resetIsReady() {\r\n this.isReady = getFalse\r\n },\r\n _drawn() {\r\n this.isReady = getFalse;\r\n if (this._dataIsReady()) {\r\n this._renderer.onEndAnimation(() => {\r\n this.isReady = getTrue\r\n })\r\n }\r\n this._eventTrigger(\"drawn\", {})\r\n }\r\n});\r\nexport default baseWidget;\r\nreplaceInherit(baseWidget);\r\n","/**\r\n * DevExtreme (esm/integration/knockout/utils.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport $ from \"../../core/renderer\";\r\nexport var getClosestNodeWithContext = node => {\r\n var context = ko.contextFor(node);\r\n if (!context && node.parentNode) {\r\n return getClosestNodeWithContext(node.parentNode)\r\n }\r\n return node\r\n};\r\nexport var getClosestNodeWithKoCreation = node => {\r\n var $el = $(node);\r\n var data = $el.data();\r\n var hasFlag = data && data.dxKoCreation;\r\n if (hasFlag) {\r\n return node\r\n }\r\n if (node.parentNode) {\r\n return getClosestNodeWithKoCreation(node.parentNode)\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/integration/knockout/template.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport ko from \"knockout\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n TemplateBase\r\n} from \"../../core/templates/template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getClosestNodeWithContext\r\n} from \"./utils\";\r\nvar getParentContext = function(data) {\r\n var parentNode = domAdapter.createElement(\"div\");\r\n ko.applyBindingsToNode(parentNode, null, data);\r\n var parentContext = ko.contextFor(parentNode);\r\n ko.cleanNode(parentNode);\r\n return parentContext\r\n};\r\nexport var KoTemplate = class extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element;\r\n this._template = $(\"
\").append(normalizeTemplateElement(element));\r\n this._registerKoTemplate()\r\n }\r\n _registerKoTemplate() {\r\n var template = this._template.get(0);\r\n new ko.templateSources.anonymousTemplate(template).nodes(template)\r\n }\r\n _prepareDataForContainer(data, container) {\r\n if (container && container.length) {\r\n var node = getClosestNodeWithContext(container.get(0));\r\n var containerContext = ko.contextFor(node);\r\n data = void 0 !== data ? data : ko.dataFor(node) || {};\r\n if (containerContext) {\r\n return data === containerContext.$data ? containerContext : containerContext.createChildContext(data)\r\n }\r\n }\r\n return getParentContext(data).createChildContext(data)\r\n }\r\n _renderCore(options) {\r\n var model = this._prepareDataForContainer(options.model, $(options.container));\r\n if (isDefined(options.index)) {\r\n model.$index = options.index\r\n }\r\n var $placeholder = $(\"
\").appendTo(options.container);\r\n var $result;\r\n ko.renderTemplate(this._template.get(0), model, {\r\n afterRender: function(nodes) {\r\n $result = $(nodes)\r\n }\r\n }, $placeholder.get(0), \"replaceNode\");\r\n return $result\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n dispose() {\r\n this._template.remove()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/locker.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nvar Locker = function() {\r\n var info = {};\r\n var currentCount = function(lockName) {\r\n return info[lockName] || 0\r\n };\r\n return {\r\n obtain: function(lockName) {\r\n info[lockName] = currentCount(lockName) + 1\r\n },\r\n release: function(lockName) {\r\n var count = currentCount(lockName);\r\n if (count < 1) {\r\n throw errors.Error(\"E0014\")\r\n }\r\n if (1 === count) {\r\n delete info[lockName]\r\n } else {\r\n info[lockName] = count - 1\r\n }\r\n },\r\n locked: function(lockName) {\r\n return currentCount(lockName) > 0\r\n }\r\n }\r\n};\r\nexport default Locker;\r\n","/**\r\n * DevExtreme (esm/integration/knockout/component_registrator.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport ko from \"knockout\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport registerComponentCallbacks from \"../../core/component_registrator_callbacks\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport VizWidget from \"../../__internal/viz/core/m_base_widget\";\r\nimport ComponentWrapper from \"../../renovation/component_wrapper/common/component\";\r\nimport Draggable from \"../../ui/draggable\";\r\nimport ScrollView from \"../../ui/scroll_view\";\r\nimport {\r\n KoTemplate\r\n} from \"./template\";\r\nimport Editor from \"../../ui/editor/editor\";\r\nimport Locker from \"../../core/utils/locker\";\r\nimport {\r\n getClosestNodeWithContext\r\n} from \"./utils\";\r\nimport config from \"../../core/config\";\r\nif (ko) {\r\n var LOCKS_DATA_KEY = \"dxKoLocks\";\r\n var CREATED_WITH_KO_DATA_KEY = \"dxKoCreation\";\r\n var editorsBindingHandlers = [];\r\n var registerComponentKoBinding = function(componentName, componentClass) {\r\n if (Editor.isEditor(componentClass.prototype)) {\r\n editorsBindingHandlers.push(componentName)\r\n }\r\n ko.bindingHandlers[componentName] = {\r\n init: function(domNode, valueAccessor) {\r\n var $element = $(domNode);\r\n var optionChangedCallbacks = Callbacks();\r\n var optionsByReference = {};\r\n var component;\r\n var knockoutConfig = config().knockout;\r\n var isBindingPropertyPredicateName = knockoutConfig && knockoutConfig.isBindingPropertyPredicateName;\r\n var isBindingPropertyPredicate;\r\n var ctorOptions = {\r\n onInitializing: function(options) {\r\n optionsByReference = this._getOptionsByReference();\r\n ko.computed(() => {\r\n var model = ko.unwrap(valueAccessor());\r\n if (component) {\r\n component.beginUpdate()\r\n }\r\n isBindingPropertyPredicate = isBindingPropertyPredicateName && model && model[isBindingPropertyPredicateName];\r\n unwrapModel(model);\r\n if (component) {\r\n component.endUpdate()\r\n } else {\r\n var _model$onInitializing;\r\n null === model || void 0 === model ? void 0 : null === (_model$onInitializing = model.onInitializing) || void 0 === _model$onInitializing ? void 0 : _model$onInitializing.call(this, options)\r\n }\r\n }, null, {\r\n disposeWhenNodeIsRemoved: domNode\r\n });\r\n component = this\r\n },\r\n modelByElement: function($element) {\r\n if ($element.length) {\r\n var node = getClosestNodeWithContext($element.get(0));\r\n return ko.dataFor(node)\r\n }\r\n },\r\n nestedComponentOptions: function(component) {\r\n return {\r\n modelByElement: component.option(\"modelByElement\"),\r\n nestedComponentOptions: component.option(\"nestedComponentOptions\")\r\n }\r\n },\r\n _optionChangedCallbacks: optionChangedCallbacks,\r\n integrationOptions: {\r\n watchMethod: function(fn, callback, options) {\r\n options = options || {};\r\n var skipCallback = options.skipImmediate;\r\n var watcher = ko.computed((function() {\r\n var newValue = ko.unwrap(fn());\r\n if (!skipCallback) {\r\n callback(newValue)\r\n }\r\n skipCallback = false\r\n }));\r\n return function() {\r\n watcher.dispose()\r\n }\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": {\r\n render: function(options) {\r\n var widgetName = ko.utils.unwrapObservable(options.model.widget);\r\n if (!widgetName) {\r\n return\r\n }\r\n var markup = $(\"
\").attr(\"data-bind\", widgetName + \": options\").get(0);\r\n $(options.container).append(markup);\r\n ko.applyBindings(options.model, markup)\r\n }\r\n }\r\n },\r\n createTemplate: function(element) {\r\n return new KoTemplate(element)\r\n }\r\n }\r\n };\r\n var optionNameToModelMap = {};\r\n var applyModelValueToOption = function(optionName, modelValue, unwrap) {\r\n var locks = $element.data(LOCKS_DATA_KEY);\r\n var optionValue = unwrap ? ko.unwrap(modelValue) : modelValue;\r\n if (ko.isWriteableObservable(modelValue)) {\r\n optionNameToModelMap[optionName] = modelValue\r\n }\r\n if (component) {\r\n if (locks.locked(optionName)) {\r\n return\r\n }\r\n locks.obtain(optionName);\r\n try {\r\n if (ko.ignoreDependencies) {\r\n ko.ignoreDependencies(component.option, component, [optionName, optionValue])\r\n } else {\r\n component.option(optionName, optionValue)\r\n }\r\n } finally {\r\n locks.release(optionName)\r\n }\r\n } else {\r\n ctorOptions[optionName] = optionValue\r\n }\r\n };\r\n var handleOptionChanged = function(args) {\r\n var optionName = args.fullName;\r\n var optionValue = args.value;\r\n if (!(optionName in optionNameToModelMap)) {\r\n return\r\n }\r\n var $element = this._$element;\r\n var locks = $element.data(LOCKS_DATA_KEY);\r\n if (locks.locked(optionName)) {\r\n return\r\n }\r\n locks.obtain(optionName);\r\n try {\r\n optionNameToModelMap[optionName](optionValue)\r\n } finally {\r\n locks.release(optionName)\r\n }\r\n };\r\n var unwrapModelValue = function(currentModel, propertyName, propertyPath) {\r\n if (propertyPath === isBindingPropertyPredicateName) {\r\n return\r\n }\r\n if (!isBindingPropertyPredicate || isBindingPropertyPredicate(propertyPath, propertyName, currentModel)) {\r\n var unwrappedPropertyValue;\r\n ko.computed((function() {\r\n var propertyValue = currentModel[propertyName];\r\n applyModelValueToOption(propertyPath, propertyValue, true);\r\n unwrappedPropertyValue = ko.unwrap(propertyValue)\r\n }), null, {\r\n disposeWhenNodeIsRemoved: domNode\r\n });\r\n if (isPlainObject(unwrappedPropertyValue)) {\r\n if (!optionsByReference[propertyPath]) {\r\n unwrapModel(unwrappedPropertyValue, propertyPath)\r\n }\r\n }\r\n } else {\r\n applyModelValueToOption(propertyPath, currentModel[propertyName], false)\r\n }\r\n };\r\n\r\n function unwrapModel(model, propertyPath) {\r\n for (var propertyName in model) {\r\n if (Object.prototype.hasOwnProperty.call(model, propertyName)) {\r\n unwrapModelValue(model, propertyName, propertyPath ? [propertyPath, propertyName].join(\".\") : propertyName)\r\n }\r\n }\r\n }! function() {\r\n optionChangedCallbacks.add(handleOptionChanged);\r\n $element.data(CREATED_WITH_KO_DATA_KEY, true).data(LOCKS_DATA_KEY, new Locker);\r\n new componentClass($element, ctorOptions);\r\n ctorOptions = null\r\n }();\r\n return {\r\n controlsDescendantBindings: componentClass.subclassOf(Widget) || componentClass.subclassOf(VizWidget) || componentClass.subclassOf(ComponentWrapper) && !(component instanceof ScrollView) || component instanceof Draggable\r\n }\r\n }\r\n };\r\n if (\"dxValidator\" === componentName) {\r\n ko.bindingHandlers.dxValidator.after = editorsBindingHandlers\r\n }\r\n };\r\n registerComponentCallbacks.add((function(name, componentClass) {\r\n registerComponentKoBinding(name, componentClass)\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/event_registrator.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport ko from \"knockout\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport eventRegistratorCallbacks from \"../../events/core/event_registrator_callbacks\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nif (ko) {\r\n eventRegistratorCallbacks.add((function(name) {\r\n var koBindingEventName = addNamespace(name, name + \"Binding\");\r\n ko.bindingHandlers[name] = {\r\n update: function(element, valueAccessor, allBindingsAccessor, viewModel) {\r\n var $element = $(element);\r\n var unwrappedValue = ko.utils.unwrapObservable(valueAccessor());\r\n var eventSource = unwrappedValue.execute ? unwrappedValue.execute : unwrappedValue;\r\n eventsEngine.off($element, koBindingEventName);\r\n eventsEngine.on($element, koBindingEventName, isPlainObject(unwrappedValue) ? unwrappedValue : {}, (function(e) {\r\n eventSource.call(viewModel, viewModel, e)\r\n }))\r\n }\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/components.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nif (ko) {\r\n ko.bindingHandlers.dxControlsDescendantBindings = {\r\n init: function(_, valueAccessor) {\r\n return {\r\n controlsDescendantBindings: ko.unwrap(valueAccessor())\r\n }\r\n }\r\n };\r\n ko.bindingHandlers.dxIcon = {\r\n init: function(element, valueAccessor) {\r\n var options = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n var iconElement = getImageContainer(options);\r\n ko.virtualElements.emptyNode(element);\r\n if (iconElement) {\r\n ko.virtualElements.prepend(element, iconElement.get(0))\r\n }\r\n },\r\n update: function(element, valueAccessor) {\r\n var options = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n var iconElement = getImageContainer(options);\r\n ko.virtualElements.emptyNode(element);\r\n if (iconElement) {\r\n ko.virtualElements.prepend(element, iconElement.get(0))\r\n }\r\n }\r\n };\r\n ko.virtualElements.allowedBindings.dxIcon = true\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/validation.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Guid from \"../../core/guid\";\r\nimport ko from \"knockout\";\r\nif (ko) {\r\n var VALIDATION_STATUS_VALID = \"valid\";\r\n var VALIDATION_STATUS_PENDING = \"pending\";\r\n var koDxValidator = Class.inherit({\r\n ctor(target, _ref) {\r\n var {\r\n name: name,\r\n validationRules: validationRules\r\n } = _ref;\r\n this.target = target;\r\n this.name = name;\r\n this.isValid = ko.observable(true);\r\n this.validationError = ko.observable();\r\n this.validationErrors = ko.observable();\r\n this.validationStatus = ko.observable(VALIDATION_STATUS_VALID);\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.validationRules = map(validationRules, (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }));\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n validate() {\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n var value = this.target();\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result = ValidationEngine.validate(value, this.validationRules, this.name);\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n this.target(null);\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._applyValidationResult(result);\r\n return result\r\n },\r\n _applyValidationResult(result) {\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n this.target.dxValidator.isValid(this._validationInfo.result.isValid);\r\n this.target.dxValidator.validationError(this._validationInfo.result.brokenRule);\r\n this.target.dxValidator.validationErrors(this._validationInfo.result.brokenRules);\r\n this.target.dxValidator.validationStatus(this._validationInfo.result.status);\r\n if (result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (result.status !== VALIDATION_STATUS_PENDING) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result]);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n });\r\n ko.extenders.dxValidator = function(target, option) {\r\n target.dxValidator = new koDxValidator(target, option);\r\n target.subscribe(target.dxValidator.validate.bind(target.dxValidator));\r\n return target\r\n };\r\n ValidationEngine.registerModelForValidation = function(model) {\r\n each(model, (function(name, member) {\r\n if (ko.isObservable(member) && member.dxValidator) {\r\n ValidationEngine.registerValidatorInGroup(model, member.dxValidator)\r\n }\r\n }))\r\n };\r\n ValidationEngine.unregisterModelForValidation = function(model) {\r\n each(model, (function(name, member) {\r\n if (ko.isObservable(member) && member.dxValidator) {\r\n ValidationEngine.removeRegisteredValidator(model, member.dxValidator)\r\n }\r\n }))\r\n };\r\n ValidationEngine.validateModel = ValidationEngine.validateGroup\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/variable_wrapper_utils.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nif (ko) {\r\n variableWrapper.inject({\r\n isWrapped: ko.isObservable,\r\n isWritableWrapped: ko.isWritableObservable,\r\n wrap: ko.observable,\r\n unwrap: function(value) {\r\n if (ko.isObservable(value)) {\r\n return ko.utils.unwrapObservable(value)\r\n }\r\n return this.callBase(value)\r\n },\r\n assign: function(variable, value) {\r\n if (ko.isObservable(variable)) {\r\n variable(value)\r\n } else {\r\n this.callBase(variable, value)\r\n }\r\n }\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/clean_node.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n afterCleanData,\r\n strategyChanging,\r\n cleanData\r\n} from \"../../core/element_data\";\r\nimport ko from \"knockout\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getClosestNodeWithKoCreation\r\n} from \"./utils\";\r\nif (ko) {\r\n var originalKOCleanExternalData = ko.utils.domNodeDisposal.cleanExternalData;\r\n var patchCleanData = function() {\r\n afterCleanData((function(nodes) {\r\n var i;\r\n for (i = 0; i < nodes.length; i++) {\r\n nodes[i].cleanedByJquery = true\r\n }\r\n for (i = 0; i < nodes.length; i++) {\r\n if (!nodes[i].cleanedByKo) {\r\n ko.cleanNode(nodes[i])\r\n }\r\n delete nodes[i].cleanedByKo\r\n }\r\n for (i = 0; i < nodes.length; i++) {\r\n delete nodes[i].cleanedByJquery\r\n }\r\n }));\r\n ko.utils.domNodeDisposal.cleanExternalData = function(node) {\r\n node.cleanedByKo = true;\r\n if (getClosestNodeWithKoCreation(node)) {\r\n if (!node.cleanedByJquery) {\r\n cleanData([node])\r\n }\r\n }\r\n }\r\n };\r\n var restoreOriginCleanData = function() {\r\n afterCleanData((function() {}));\r\n ko.utils.domNodeDisposal.cleanExternalData = originalKOCleanExternalData\r\n };\r\n patchCleanData();\r\n strategyChanging.add((function(strategy) {\r\n var isJQuery = !!strategy.fn;\r\n if (isJQuery && compareVersion(strategy.fn.jquery, [2, 0]) < 0) {\r\n restoreOriginCleanData()\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/clean_node_old.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../../core/utils/version\";\r\nimport {\r\n strategyChanging\r\n} from \"../../core/element_data\";\r\nif (ko) {\r\n var patchCleanData = function(jQuery) {\r\n var cleanKoData = function(element, andSelf) {\r\n var cleanNode = function() {\r\n ko.cleanNode(this)\r\n };\r\n if (andSelf) {\r\n element.each(cleanNode)\r\n } else {\r\n element.find(\"*\").each(cleanNode)\r\n }\r\n };\r\n var originalEmpty = jQuery.fn.empty;\r\n jQuery.fn.empty = function() {\r\n cleanKoData(this, false);\r\n return originalEmpty.apply(this, arguments)\r\n };\r\n var originalRemove = jQuery.fn.remove;\r\n jQuery.fn.remove = function(selector, keepData) {\r\n if (!keepData) {\r\n var subject = this;\r\n if (selector) {\r\n subject = subject.filter(selector)\r\n }\r\n cleanKoData(subject, true)\r\n }\r\n return originalRemove.call(this, selector, keepData)\r\n };\r\n var originalHtml = jQuery.fn.html;\r\n jQuery.fn.html = function(value) {\r\n if (\"string\" === typeof value) {\r\n cleanKoData(this, false)\r\n }\r\n return originalHtml.apply(this, arguments)\r\n };\r\n var originalReplaceWith = jQuery.fn.replaceWith;\r\n jQuery.fn.replaceWith = function() {\r\n var result = originalReplaceWith.apply(this, arguments);\r\n if (!this.parent().length) {\r\n cleanKoData(this, true)\r\n }\r\n return result\r\n }\r\n };\r\n strategyChanging.add((function(strategy) {\r\n var isJQuery = !!strategy.fn;\r\n if (isJQuery && compareVersion(strategy.fn.jquery, [2, 0]) < 0) {\r\n patchCleanData(strategy)\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../core/utils/version\";\r\nif (ko) {\r\n if (compareVersion(ko.version, [2, 3]) < 0) {\r\n throw errors.Error(\"E0013\")\r\n }\r\n}\r\nimport \"./knockout/component_registrator\";\r\nimport \"./knockout/event_registrator\";\r\nimport \"./knockout/components\";\r\nimport \"./knockout/validation\";\r\nimport \"./knockout/variable_wrapper_utils\";\r\nimport \"./knockout/clean_node\";\r\nimport \"./knockout/clean_node_old\";\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.full.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popover from \"../popover/ui.popover\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nexport default class PopoverFull extends Popover {\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopoverFull.defaultOptions = function(rule) {\r\n Popover.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopover\", PopoverFull);\r\n","/**\r\n * DevExtreme (esm/ui/popover.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popover from \"./popover/ui.popover.full\";\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/track_bar.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Editor from \"./editor/editor\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport fx from \"../animation/fx\";\r\nvar TRACKBAR_CLASS = \"dx-trackbar\";\r\nvar TRACKBAR_CONTAINER_CLASS = \"dx-trackbar-container\";\r\nvar TRACKBAR_RANGE_CLASS = \"dx-trackbar-range\";\r\nvar TRACKBAR_WRAPPER_CLASS = \"dx-trackbar-wrapper\";\r\nvar TrackBar = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n min: 0,\r\n max: 100,\r\n value: 0\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TRACKBAR_CLASS);\r\n this._renderWrapper();\r\n this._renderContainer();\r\n this._renderRange();\r\n this._renderValue();\r\n this._setRangeStyles();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setRangeStyles(this._rangeStylesConfig())\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(TRACKBAR_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderContainer: function() {\r\n this._$bar = $(\"
\").addClass(TRACKBAR_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _renderRange: function() {\r\n this._$range = $(\"
\").addClass(TRACKBAR_RANGE_CLASS).appendTo(this._$bar)\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (min > max) {\r\n return\r\n }\r\n if (val < min) {\r\n this.option(\"value\", min);\r\n this._currentRatio = 0;\r\n return\r\n }\r\n if (val > max) {\r\n this.option(\"value\", max);\r\n this._currentRatio = 1;\r\n return\r\n }\r\n var ratio = min === max ? 0 : (val - min) / (max - min);\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n width: 100 * ratio + \"%\"\r\n });\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: max,\r\n valuenow: val\r\n });\r\n this._currentRatio = ratio\r\n },\r\n _rangeStylesConfig: function() {\r\n return {\r\n width: 100 * this._currentRatio + \"%\"\r\n }\r\n },\r\n _setRangeStyles: function(options) {\r\n fx.stop(this._$range);\r\n if (!options) {\r\n this._$range.css({\r\n width: 0\r\n });\r\n return\r\n }\r\n if (this._needPreventAnimation || !hasWindow()) {\r\n return\r\n }\r\n fx.animate(this._$range, {\r\n type: \"custom\",\r\n duration: 100,\r\n to: options\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"max\":\r\n case \"min\":\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$range);\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxTrackBar\", TrackBar);\r\nexport default TrackBar;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip/tooltip.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popover from \"../popover/ui.popover\";\r\nvar TOOLTIP_CLASS = \"dx-tooltip\";\r\nvar TOOLTIP_WRAPPER_CLASS = \"dx-tooltip-wrapper\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nvar Tooltip = Popover.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n showTitle: false,\r\n title: null,\r\n titleTemplate: null,\r\n onTitleRendered: null,\r\n bottomTemplate: null,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _render: function() {\r\n this.$element().addClass(TOOLTIP_CLASS);\r\n this.$wrapper().addClass(TOOLTIP_WRAPPER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContent: function() {\r\n this.callBase();\r\n this._contentId = \"dx-\" + new Guid;\r\n this.$overlayContent().attr({\r\n id: this._contentId,\r\n role: \"tooltip\"\r\n });\r\n this._toggleAriaDescription(true)\r\n },\r\n _toggleAriaDescription: function(showing) {\r\n var $target = $(this.option(\"target\"));\r\n var label = showing ? this._contentId : void 0;\r\n if (!isWindow($target.get(0))) {\r\n this.setAria(\"describedby\", label, $target)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTooltip\", Tooltip);\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"./tooltip/tooltip\";\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/slider/slider_tooltip_position_controller.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n PopoverPositionController\r\n} from \"../popover/popover_position_controller\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nvar SLIDER_TOOLTIP_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit none\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit none\"\r\n }\r\n};\r\nvar SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 2,\r\n v: 1\r\n};\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nclass SliderTooltipPositionController extends PopoverPositionController {\r\n _normalizePosition(positionProp) {\r\n var $sliderHandle = this._props.target;\r\n var sliderClass = \".\".concat(SLIDER_CLASS);\r\n var $slider = null === $sliderHandle || void 0 === $sliderHandle ? void 0 : $sliderHandle.closest(sliderClass);\r\n var defaultPositionConfig = {\r\n of: $sliderHandle,\r\n boundaryOffset: SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET,\r\n boundary: null === $slider || void 0 === $slider ? void 0 : $slider.get(0)\r\n };\r\n var resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp));\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _renderContentInitialPosition() {\r\n super._renderContentInitialPosition();\r\n this._fitIntoSlider()\r\n }\r\n _fitIntoSlider() {\r\n var {\r\n collisionSide: collisionSide,\r\n oversize: oversize\r\n } = positionUtils.calculate(this._$content, this._position).h;\r\n var left = this._visualPosition.left;\r\n var isLeftSide = \"left\" === collisionSide;\r\n var offset = (isLeftSide ? 1 : -1) * oversize;\r\n move(this._$content, {\r\n left: left + offset\r\n });\r\n this._updateVisualPositionValue()\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, SLIDER_TOOLTIP_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n SliderTooltipPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_tooltip.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"../tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n SliderTooltipPositionController\r\n} from \"./slider_tooltip_position_controller\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar SLIDER_TOOLTIP_VISIBILITY_CLASS = \"dx-slider-tooltip-visible-on-hover\";\r\nvar SliderTooltip = Tooltip.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n visible: false,\r\n position: \"top\",\r\n hideOnOutsideClick: false,\r\n hideTopOverlayHandler: null,\r\n hideOnParentScroll: false,\r\n animation: null,\r\n arrowPosition: null,\r\n templatesRenderAsynchronously: false,\r\n _fixWrapperPosition: false,\r\n useResizeObserver: false,\r\n showMode: \"onHover\",\r\n format: value => value,\r\n value: 0\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._attachToMarkup(this.option(\"visible\"));\r\n this._toggleShowModeClass()\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._renderContentText()\r\n },\r\n _renderContentText() {\r\n var {\r\n value: value,\r\n format: format\r\n } = this.option();\r\n var formattedText = numberLocalization.format(null !== value && void 0 !== value ? value : 0, format);\r\n this.$content().text(formattedText);\r\n this._renderPosition()\r\n },\r\n _toggleShowModeClass() {\r\n var isHoverMode = \"onHover\" === this.option(\"showMode\");\r\n var $sliderHandle = this.option(\"target\");\r\n $sliderHandle.toggleClass(SLIDER_TOOLTIP_VISIBILITY_CLASS, isHoverMode)\r\n },\r\n _initPositionController() {\r\n this._positionController = new SliderTooltipPositionController(this._getPositionControllerConfig())\r\n },\r\n _attachToMarkup(enabled) {\r\n var $sliderHandle = this.option(\"target\");\r\n enabled ? this.$element().appendTo($sliderHandle) : this.$element().detach()\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"visible\":\r\n this._attachToMarkup(value);\r\n this.callBase(args);\r\n break;\r\n case \"showMode\":\r\n this._toggleShowModeClass();\r\n break;\r\n case \"format\":\r\n case \"value\":\r\n this._renderContentText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updatePosition() {\r\n this._renderPosition()\r\n }\r\n});\r\nexport default SliderTooltip;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_handle.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport SliderTooltip from \"./ui.slider_tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SLIDER_HANDLE_CLASS = \"dx-slider-handle\";\r\nvar SliderHandle = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: false,\r\n value: 0,\r\n tooltip: {\r\n enabled: false,\r\n format: value => value,\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n }\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SLIDER_HANDLE_CLASS);\r\n this.setAria({\r\n role: \"slider\",\r\n valuenow: this.option(\"value\")\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderTooltip()\r\n },\r\n _renderTooltip: function() {\r\n var {\r\n tooltip: tooltip,\r\n value: value\r\n } = this.option();\r\n var {\r\n position: position,\r\n format: format,\r\n enabled: enabled,\r\n showMode: showMode\r\n } = tooltip;\r\n var $sliderTooltip = $(\"
\");\r\n this._sliderTooltip = this._createComponent($sliderTooltip, SliderTooltip, {\r\n target: this.$element(),\r\n container: $sliderTooltip,\r\n position: position,\r\n visible: enabled,\r\n showMode: showMode,\r\n format: format,\r\n value: value\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._sliderTooltip = null\r\n },\r\n _updateTooltipOptions(args) {\r\n var _this$_sliderTooltip;\r\n var tooltipOptions = Widget.getOptionsFromContainer(args);\r\n this._setWidgetOption(\"_sliderTooltip\", [tooltipOptions]);\r\n null === (_this$_sliderTooltip = this._sliderTooltip) || void 0 === _this$_sliderTooltip ? void 0 : _this$_sliderTooltip.option(\"visible\", tooltipOptions.enabled)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n var _this$_sliderTooltip2;\r\n null === (_this$_sliderTooltip2 = this._sliderTooltip) || void 0 === _this$_sliderTooltip2 ? void 0 : _this$_sliderTooltip2.option(\"value\", value);\r\n this.setAria(\"valuenow\", value);\r\n break;\r\n case \"tooltip\":\r\n this._updateTooltipOptions(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updateTooltipPosition: function() {\r\n var _this$_sliderTooltip3;\r\n null === (_this$_sliderTooltip3 = this._sliderTooltip) || void 0 === _this$_sliderTooltip3 ? void 0 : _this$_sliderTooltip3.updatePosition()\r\n },\r\n repaint: function() {\r\n var _this$_sliderTooltip4;\r\n null === (_this$_sliderTooltip4 = this._sliderTooltip) || void 0 === _this$_sliderTooltip4 ? void 0 : _this$_sliderTooltip4.repaint()\r\n }\r\n});\r\nexport default SliderHandle;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n applyServerDecimalSeparator\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name as clickName\r\n} from \"../../events/click\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent,\r\n isTouchEvent,\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport TrackBar from \"../track_bar\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport SliderHandle from \"./ui.slider_handle\";\r\nimport {\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision\r\n} from \"../../core/utils/math\";\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nvar SLIDER_WRAPPER_CLASS = \"dx-slider-wrapper\";\r\nvar SLIDER_HANDLE_SELECTOR = \".dx-slider-handle\";\r\nvar SLIDER_BAR_CLASS = \"dx-slider-bar\";\r\nvar SLIDER_RANGE_CLASS = \"dx-slider-range\";\r\nvar SLIDER_RANGE_VISIBLE_CLASS = \"dx-slider-range-visible\";\r\nvar SLIDER_LABEL_CLASS = \"dx-slider-label\";\r\nvar SLIDER_LABEL_POSITION_CLASS_PREFIX = \"dx-slider-label-position-\";\r\nvar SLIDER_TOOLTIP_POSITION_CLASS_PREFIX = \"dx-slider-tooltip-position-\";\r\nvar INVALID_MESSAGE_VISIBLE_CLASS = \"dx-invalid-message-visible\";\r\nvar SLIDER_VALIDATION_NAMESPACE = \"Validation\";\r\nvar Slider = TrackBar.inherit({\r\n _activeStateUnit: SLIDER_HANDLE_SELECTOR,\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var roundedValue = (offset, isLeftDirection) => {\r\n offset = this._valueStep(offset);\r\n var step = this.option(\"step\");\r\n var value = this.option(\"value\");\r\n var currentPosition = value - this.option(\"min\");\r\n var remainder = getRemainderByDivision(currentPosition, step, this._getValueExponentLength());\r\n var result = isLeftDirection ? value - offset + (remainder ? step - remainder : 0) : value + offset - remainder;\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (result < min) {\r\n result = min\r\n } else if (result > max) {\r\n result = max\r\n }\r\n return this._roundToExponentLength(result)\r\n };\r\n var moveHandleRight = offset => {\r\n this.option(\"value\", roundedValue(offset, isRTL))\r\n };\r\n var moveHandleLeft = offset => {\r\n this.option(\"value\", roundedValue(offset, !isRTL))\r\n };\r\n return extend(this.callBase(), {\r\n leftArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\"))\r\n },\r\n rightArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\"))\r\n },\r\n pageUp: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n pageDown: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n home: function(e) {\r\n this._processKeyboardEvent(e);\r\n var min = this.option(\"min\");\r\n this.option(\"value\", min)\r\n },\r\n end: function(e) {\r\n this._processKeyboardEvent(e);\r\n var max = this.option(\"max\");\r\n this.option(\"value\", max)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 50,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n step: 1,\r\n showRange: true,\r\n tooltip: {\r\n enabled: false,\r\n format: function(value) {\r\n return value\r\n },\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n },\r\n label: {\r\n visible: false,\r\n position: \"bottom\",\r\n format: function(value) {\r\n return value\r\n }\r\n },\r\n keyStep: 1,\r\n useInkRipple: false,\r\n validationMessageOffset: isMaterial() ? {\r\n h: 18,\r\n v: 0\r\n } : {\r\n h: 7,\r\n v: 4\r\n },\r\n focusStateEnabled: true,\r\n valueChangeMode: \"onHandleMove\"\r\n })\r\n },\r\n _toggleValidationMessage: function(visible) {\r\n if (!this.option(\"isValid\")) {\r\n this.$element().toggleClass(INVALID_MESSAGE_VISIBLE_CLASS, visible)\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n var themeName = currentTheme();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SLIDER_CLASS);\r\n this._renderSubmitElement();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._renderLabels();\r\n this._renderStartHandler();\r\n this._renderAriaMinAndMax()\r\n },\r\n _attachFocusEvents: function() {\r\n this.callBase();\r\n var namespace = this.NAME + SLIDER_VALIDATION_NAMESPACE;\r\n var focusInEvent = addNamespace(\"focusin\", namespace);\r\n var focusOutEvent = addNamespace(\"focusout\", namespace);\r\n var $focusTarget = this._focusTarget();\r\n eventsEngine.on($focusTarget, focusInEvent, this._toggleValidationMessage.bind(this, true));\r\n eventsEngine.on($focusTarget, focusOutEvent, this._toggleValidationMessage.bind(this, false))\r\n },\r\n _detachFocusEvents: function() {\r\n this.callBase();\r\n var $focusTarget = this._focusTarget();\r\n this._toggleValidationMessage(false);\r\n eventsEngine.off($focusTarget, this.NAME + SLIDER_VALIDATION_NAMESPACE)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._repaintHandle()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render({\r\n waveSizeCoefficient: .7,\r\n isCentered: true,\r\n wavesNumber: 2,\r\n useHoldAnimation: false\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.repaint()\r\n },\r\n _renderWrapper: function() {\r\n this.callBase();\r\n this._$wrapper.addClass(SLIDER_WRAPPER_CLASS);\r\n this._createComponent(this._$wrapper, Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n immediateTimeout: 0,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._itemWidthFunc.bind(this)\r\n })\r\n },\r\n _renderContainer: function() {\r\n this.callBase();\r\n this._$bar.addClass(SLIDER_BAR_CLASS)\r\n },\r\n _renderRange: function() {\r\n this.callBase();\r\n this._$range.addClass(SLIDER_RANGE_CLASS);\r\n this._renderHandle();\r\n this._renderRangeVisibility()\r\n },\r\n _renderRangeVisibility: function() {\r\n this._$range.toggleClass(SLIDER_RANGE_VISIBLE_CLASS, Boolean(this.option(\"showRange\")))\r\n },\r\n _renderHandle: function() {\r\n this._$handle = this._renderHandleImpl(this.option(\"value\"), this._$handle)\r\n },\r\n _renderHandleImpl: function(value, $element) {\r\n var $handle = $element || $(\"
\").appendTo(this._$range);\r\n var tooltip = this.option(\"tooltip\");\r\n this.$element().toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"bottom\", tooltip.enabled && \"bottom\" === tooltip.position).toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"top\", tooltip.enabled && \"top\" === tooltip.position);\r\n this._createComponent($handle, SliderHandle, {\r\n value: value,\r\n tooltip: tooltip\r\n });\r\n return $handle\r\n },\r\n _renderAriaMinAndMax: function() {\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: this.option(\"max\")\r\n }, this._$handle)\r\n },\r\n _toggleActiveState: function($element, value) {\r\n this.callBase($element, value);\r\n this._renderInkWave($element, null, !!value, 1)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (this._disposed) {\r\n return\r\n }\r\n var $focusTarget = $($element || this._focusTarget());\r\n this._renderInkWave($focusTarget, null, isFocused, 0)\r\n },\r\n _renderLabels: function() {\r\n this.$element().removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"bottom\").removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"top\");\r\n if (this.option(\"label.visible\")) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var position = this.option(\"label.position\");\r\n var labelFormat = this.option(\"label.format\");\r\n if (!this._$minLabel) {\r\n this._$minLabel = $(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$minLabel.text(numberLocalization.format(min, labelFormat));\r\n if (!this._$maxLabel) {\r\n this._$maxLabel = $(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$maxLabel.text(numberLocalization.format(max, labelFormat));\r\n this.$element().addClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + position)\r\n } else {\r\n if (this._$minLabel) {\r\n this._$minLabel.remove();\r\n delete this._$minLabel\r\n }\r\n if (this._$maxLabel) {\r\n this._$maxLabel.remove();\r\n delete this._$maxLabel\r\n }\r\n }\r\n },\r\n _renderStartHandler: function() {\r\n var pointerDownEventName = addNamespace(pointerEvents.down, this.NAME);\r\n var clickEventName = addNamespace(clickName, this.NAME);\r\n var startAction = this._createAction(this._startHandler.bind(this));\r\n var $element = this.$element();\r\n eventsEngine.off($element, pointerDownEventName);\r\n eventsEngine.on($element, pointerDownEventName, e => {\r\n if (isMouseEvent(e)) {\r\n startAction({\r\n event: e\r\n })\r\n }\r\n });\r\n eventsEngine.off($element, clickEventName);\r\n eventsEngine.on($element, clickEventName, e => {\r\n var $handle = this._activeHandle();\r\n if ($handle) {\r\n eventsEngine.trigger($handle, \"focusin\");\r\n eventsEngine.trigger($handle, \"focus\")\r\n }\r\n startAction({\r\n event: e\r\n });\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue());\r\n this._actualValue = void 0\r\n }\r\n })\r\n },\r\n _itemWidthFunc: function() {\r\n return this._itemWidthRatio\r\n },\r\n _swipeStartHandler: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (isTouchEvent(e.event)) {\r\n this._createAction(this._startHandler.bind(this))({\r\n event: e.event\r\n })\r\n }\r\n this._feedbackDeferred = new Deferred;\r\n lock(this._feedbackDeferred);\r\n this._toggleActiveState(this._activeHandle(), this.option(\"activeStateEnabled\"));\r\n this._startOffset = this._currentRatio;\r\n var startOffset = this._startOffset * this._swipePixelRatio();\r\n var endOffset = (1 - this._startOffset) * this._swipePixelRatio();\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset;\r\n this._itemWidthRatio = getWidth(this.$element()) / this._swipePixelRatio();\r\n this._needPreventAnimation = true\r\n },\r\n _swipeEndHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._feedbackDeferred.resolve();\r\n this._toggleActiveState(this._activeHandle(), false);\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var ratio = this._startOffset + offsetDirection * e.event.targetOffset / this._swipePixelRatio();\r\n delete this._needPreventAnimation;\r\n this._saveValueChangeEvent(e.event);\r\n this._changeValueOnSwipe(ratio);\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue())\r\n }\r\n this._actualValue = void 0;\r\n delete this._startOffset;\r\n this._renderValue()\r\n },\r\n _activeHandle: function() {\r\n return this._$handle\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e.event);\r\n this._updateHandlePosition(e)\r\n },\r\n _updateHandlePosition: function(e) {\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var newRatio = Math.min(this._startOffset + offsetDirection * e.event.offset / this._swipePixelRatio(), 1);\r\n setWidth(this._$range, 100 * newRatio + \"%\");\r\n SliderHandle.getInstance(this._activeHandle()).fitTooltipPosition;\r\n this._changeValueOnSwipe(newRatio)\r\n },\r\n _swipePixelRatio: function() {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n return (max - min) / step\r\n },\r\n _valueStep: function(step) {\r\n if (!step || isNaN(step)) {\r\n step = 1\r\n }\r\n return step\r\n },\r\n _getValueExponentLength: function() {\r\n var {\r\n step: step,\r\n min: min\r\n } = this.option();\r\n return Math.max(getExponentLength(step), getExponentLength(min))\r\n },\r\n _roundToExponentLength: function(value) {\r\n var valueExponentLength = this._getValueExponentLength();\r\n return roundFloatPart(value, valueExponentLength)\r\n },\r\n _changeValueOnSwipe: function(ratio) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n var newChange = ratio * (max - min);\r\n var newValue = min + newChange;\r\n if (step < 0) {\r\n return\r\n }\r\n if (newValue === max || newValue === min) {\r\n this._setValueOnSwipe(newValue)\r\n } else {\r\n var stepCount = Math.round((newValue - min) / step);\r\n newValue = this._roundToExponentLength(stepCount * step + min);\r\n this._setValueOnSwipe(Math.max(Math.min(newValue, max), min))\r\n }\r\n },\r\n _setValueOnSwipe: function(value) {\r\n this._actualValue = value;\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n } else {\r\n this.option(\"value\", value);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n },\r\n _getActualValue: function() {\r\n var _this$_actualValue;\r\n return null !== (_this$_actualValue = this._actualValue) && void 0 !== _this$_actualValue ? _this$_actualValue : this.option(\"value\")\r\n },\r\n _isSingleValuePossible: function() {\r\n var {\r\n min: min,\r\n max: max\r\n } = this.option();\r\n return min === max\r\n },\r\n _startHandler: function(args) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n var e = args.event;\r\n this._currentRatio = (eventData(e).x - this._$bar.offset().left) / getWidth(this._$bar);\r\n if (this.option(\"rtlEnabled\")) {\r\n this._currentRatio = 1 - this._currentRatio\r\n }\r\n this._saveValueChangeEvent(e);\r\n this._changeValueOnSwipe(this._currentRatio)\r\n },\r\n _renderValue: function() {\r\n this.callBase();\r\n var value = this._getActualValue();\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value));\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n },\r\n _setRangeStyles: function(options) {\r\n options && this._$range.css(options)\r\n },\r\n _callHandlerMethod: function(name, args) {\r\n SliderHandle.getInstance(this._$handle)[name](args)\r\n },\r\n _repaintHandle: function() {\r\n this._callHandlerMethod(\"repaint\")\r\n },\r\n _fitTooltip: function() {\r\n this._callHandlerMethod(\"updateTooltipPosition\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"visible\":\r\n this.callBase(args);\r\n this._renderHandle();\r\n this._repaintHandle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderValue();\r\n this.callBase(args);\r\n this._renderLabels();\r\n this._renderAriaMinAndMax();\r\n this._fitTooltip();\r\n break;\r\n case \"step\":\r\n this._renderValue();\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"showRange\":\r\n this._renderRangeVisibility();\r\n break;\r\n case \"tooltip\":\r\n this._renderHandle();\r\n break;\r\n case \"label\":\r\n this._renderLabels();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"valueChangeMode\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _refresh: function() {\r\n this._toggleRTLDirection(this.option(\"rtlEnabled\"));\r\n this._renderDimensions();\r\n this._renderValue();\r\n this._renderHandle();\r\n this._repaintHandle()\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n delete this._actualValue;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxSlider\", Slider);\r\nexport default Slider;\r\n","/**\r\n * DevExtreme (esm/ui/tag_box.js)\r\n * Version: 22.2.15\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nimport {\r\n SelectionFilterCreator as FilterCreator\r\n} from \"../core/utils/selection_filter\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n removeDuplicates,\r\n getIntersection\r\n} from \"../core/utils/array\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEvent\r\n} from \"../events/click\";\r\nimport caret from \"./text_box/utils.caret\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../data/data_source/utils\";\r\nimport SelectBox from \"./select_box\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n allowScroll\r\n} from \"./text_box/utils.scroll\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar TAGBOX_TAG_DATA_KEY = \"dxTagData\";\r\nvar TAGBOX_CLASS = \"dx-tagbox\";\r\nvar TAGBOX_TAG_CONTAINER_CLASS = \"dx-tag-container\";\r\nvar TAGBOX_TAG_CLASS = \"dx-tag\";\r\nvar TAGBOX_MULTI_TAG_CLASS = \"dx-tagbox-multi-tag\";\r\nvar TAGBOX_CUSTOM_TAG_CLASS = \"dx-tag-custom\";\r\nvar TAGBOX_TAG_REMOVE_BUTTON_CLASS = \"dx-tag-remove-button\";\r\nvar TAGBOX_ONLY_SELECT_CLASS = \"dx-tagbox-only-select\";\r\nvar TAGBOX_SINGLE_LINE_CLASS = \"dx-tagbox-single-line\";\r\nvar TAGBOX_POPUP_WRAPPER_CLASS = \"dx-tagbox-popup-wrapper\";\r\nvar TAGBOX_TAG_CONTENT_CLASS = \"dx-tag-content\";\r\nvar TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS = \"dx-tagbox-default-template\";\r\nvar TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS = \"dx-tagbox-custom-template\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER = -.3;\r\nvar TagBox = SelectBox.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n var sendToList = options => this._list._keyboardHandler(options);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n return extend({}, parent, {\r\n backspace: function(e) {\r\n if (!this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag || this._tagElements().last();\r\n if (this._$focusedTag) {\r\n this._moveTagFocus(\"prev\", true)\r\n }\r\n if (0 === $tagToDelete.length) {\r\n return\r\n }\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n upArrow: (e, opts) => e.altKey || !this._list ? parent.upArrow.call(this, e) : sendToList(opts),\r\n downArrow: (e, opts) => e.altKey || !this._list ? parent.downArrow.call(this, e) : sendToList(opts),\r\n del: function(e) {\r\n if (!this._$focusedTag || !this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag;\r\n this._moveTagFocus(\"next\", true);\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n enter: function(e, options) {\r\n var isListItemFocused = this._list && null !== this._list.option(\"focusedElement\");\r\n var isCustomItem = this.option(\"acceptCustomValue\") && !isListItemFocused;\r\n if (isCustomItem) {\r\n e.preventDefault();\r\n \"\" !== this._searchValue() && this._customItemAddedHandler(e);\r\n return\r\n }\r\n if (this.option(\"opened\")) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n space: function(e, options) {\r\n var isOpened = this.option(\"opened\");\r\n var isInputActive = this._shouldRenderSearchEvent();\r\n if (isOpened && !isInputActive) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n leftArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"next\" : \"prev\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n },\r\n rightArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && !rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"prev\" : \"next\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _isEmpty: function() {\r\n return 0 === this._getValue().length\r\n },\r\n _updateTagsContainer: function($element) {\r\n this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS)\r\n },\r\n _allowSelectItemByTab: function() {\r\n return false\r\n },\r\n _isCaretAtTheStart: function() {\r\n var position = caret(this._input());\r\n return 0 === position.start && 0 === position.end\r\n },\r\n _moveTagFocus: function(direction, clearOnBoundary) {\r\n if (!this._$focusedTag) {\r\n var tagElements = this._tagElements();\r\n this._$focusedTag = \"next\" === direction ? tagElements.first() : tagElements.last();\r\n this._toggleFocusClass(true, this._$focusedTag);\r\n return\r\n }\r\n var $nextFocusedTag = this._$focusedTag[direction](\".\".concat(TAGBOX_TAG_CLASS));\r\n if ($nextFocusedTag.length > 0) {\r\n this._replaceFocusedTag($nextFocusedTag)\r\n } else if (clearOnBoundary || \"next\" === direction && this._isEditable()) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _replaceFocusedTag: function($nextFocusedTag) {\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._$focusedTag = $nextFocusedTag;\r\n this._toggleFocusClass(true, this._$focusedTag)\r\n },\r\n _clearTagFocus: function() {\r\n if (!this._$focusedTag) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n delete this._$focusedTag\r\n },\r\n _focusClassTarget: function($element) {\r\n if ($element && $element.length && $element[0] !== this._focusTarget()[0]) {\r\n return $element\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelContainer: function() {\r\n return this._$tagsContainer\r\n },\r\n _scrollContainer: function(direction) {\r\n if (this.option(\"multiline\") || !hasWindow()) {\r\n return\r\n }\r\n if (!this._$tagsContainer) {\r\n return\r\n }\r\n var scrollPosition = this._getScrollPosition(direction);\r\n this._$tagsContainer.scrollLeft(scrollPosition)\r\n },\r\n _getScrollPosition: function(direction) {\r\n if (\"start\" === direction || \"end\" === direction) {\r\n return this._getBorderPosition(direction)\r\n }\r\n return this._$focusedTag ? this._getFocusedTagPosition(direction) : this._getBorderPosition(\"end\")\r\n },\r\n _getBorderPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"end\" === direction ^ rtlEnabled;\r\n var scrollSign = rtlEnabled ? -1 : 1;\r\n return isScrollLeft ^ !rtlEnabled ? 0 : scrollSign * (this._$tagsContainer.get(0).scrollWidth - getOuterWidth(this._$tagsContainer))\r\n },\r\n _getFocusedTagPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"next\" === direction ^ rtlEnabled;\r\n var {\r\n left: scrollOffset\r\n } = this._$focusedTag.position();\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n if (isScrollLeft) {\r\n scrollOffset += getOuterWidth(this._$focusedTag, true) - getOuterWidth(this._$tagsContainer)\r\n }\r\n if (isScrollLeft ^ scrollOffset < 0) {\r\n scrollLeft += scrollOffset\r\n }\r\n return scrollLeft\r\n },\r\n _setNextValue: noop,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: [],\r\n showDropDownButton: false,\r\n maxFilterQueryLength: 1500,\r\n tagTemplate: \"tag\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n hideSelectedItems: false,\r\n selectedItems: [],\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n maxDisplayedTags: void 0,\r\n showMultiTagOnly: true,\r\n onMultiTagPreparing: null,\r\n multiline: true,\r\n useSubmitBehavior: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._selectedItems = [];\r\n this._initSelectAllValueChangedAction()\r\n },\r\n _initActions: function() {\r\n this.callBase();\r\n this._initMultiTagPreparingAction()\r\n },\r\n _initMultiTagPreparingAction: function() {\r\n this._multiTagPreparingAction = this._createActionByOption(\"onMultiTagPreparing\", {\r\n beforeExecute: function(e) {\r\n this._multiTagPreparingHandler(e.args[0])\r\n }.bind(this),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _multiTagPreparingHandler: function(args) {\r\n var {\r\n length: selectedCount\r\n } = this._getValue();\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-moreSelected\")(selectedCount - this.option(\"maxDisplayedTags\") + 1)\r\n } else {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-selected\")(selectedCount)\r\n }\r\n },\r\n _initDynamicTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n tag: new BindableTemplate(($container, data) => {\r\n var _data$text;\r\n var $tagContent = $(\"
\").addClass(TAGBOX_TAG_CONTENT_CLASS);\r\n $(\"\").text(null !== (_data$text = data.text) && void 0 !== _data$text ? _data$text : data).appendTo($tagContent);\r\n $(\"
\").addClass(TAGBOX_TAG_REMOVE_BUTTON_CLASS).appendTo($tagContent);\r\n $container.append($tagContent)\r\n }, [\"text\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter\r\n })\r\n })\r\n },\r\n _toggleSubmitElement: function(enabled) {\r\n if (enabled) {\r\n this._renderSubmitElement();\r\n this._setSubmitValue()\r\n } else {\r\n this._$submitElement && this._$submitElement.remove();\r\n delete this._$submitElement\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n this._$submitElement = $(\"\"),!1)}catch(d){}},Ad:function(a){9<=p&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},wd:function(a){if(p){var b=a.style.width;a.style.width=0;a.style.width=b}},Pd:function(b,c){b=a.a.f(b);c=a.a.f(c);for(var d=[],e=b;e<=c;e++)d.push(e);return d},la:function(a){for(var b=[],c=0,d=a.length;c\",\"\"],d=[3,\"\",\"
\"],e=[1,\"\"],f={thead:c,tbody:c,tfoot:c,tr:[2,\"\",\"
\"],td:d,th:d,option:e,optgroup:e},g=8>=a.a.W;a.a.ua=function(c,d){var e;if(v)if(v.parseHTML)e=v.parseHTML(c,d)||[];else{if((e=v.clean([c],d))&&e[0]){for(var l=e[0];l.parentNode&&11!==l.parentNode.nodeType;)l=l.parentNode;\nl.parentNode&&l.parentNode.removeChild(l)}}else{(e=d)||(e=w);var l=e.parentWindow||e.defaultView||A,p=a.a.Db(c).toLowerCase(),q=e.createElement(\"div\"),t;t=(p=p.match(/^(?:\\x3c!--.*?--\\x3e\\s*?)*?<([a-z]+)[\\s>]/))&&f[p[1]]||b;p=t[0];t=\"ignored
\"+t[1]+c+t[2]+\"
\";\"function\"==typeof l.innerShiv?q.appendChild(l.innerShiv(t)):(g&&e.body.appendChild(q),q.innerHTML=t,g&&q.parentNode.removeChild(q));for(;p--;)q=q.lastChild;e=a.a.la(q.lastChild.childNodes)}return e};a.a.Md=function(b,c){var d=a.a.ua(b,\nc);return d.length&&d[0].parentElement||a.a.Yb(d)};a.a.fc=function(b,c){a.a.Tb(b);c=a.a.f(c);if(null!==c&&c!==n)if(\"string\"!=typeof c&&(c=c.toString()),v)v(b).html(c);else for(var d=a.a.ua(c,b.ownerDocument),e=0;eb){if(5E3<=\n++c){h=f;a.a.Gc(Error(\"'Too much recursion' after processing \"+c+\" task groups.\"));break}b=f}try{d()}catch(p){a.a.Gc(p)}}}function c(){b();h=f=e.length=0}var d,e=[],f=0,g=1,h=0;A.MutationObserver?d=function(a){var b=w.createElement(\"div\");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle(\"foo\")}}(c):d=w&&\"onreadystatechange\"in w.createElement(\"script\")?function(a){var b=w.createElement(\"script\");b.onreadystatechange=function(){b.onreadystatechange=null;w.documentElement.removeChild(b);\nb=null;a()};w.documentElement.appendChild(b)}:function(a){setTimeout(a,0)};return{scheduler:d,zb:function(b){f||a.na.scheduler(c);e[f++]=b;return g++},cancel:function(a){a=a-(g-f);a>=h&&ad[0]?p+d[0]:\nd[0]),p);for(var p=1===g?p:Math.min(c+(d[1]||0),p),g=c+g-2,h=Math.max(p,g),U=[],L=[],n=2;cc;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.ad(b);return a.a.hc(b,c,d)};d.prototype={constructor:d,save:function(b,c){var d=a.a.A(this.keys,\nb);0<=d?this.values[d]=c:(this.keys.push(b),this.values.push(c))},get:function(b){b=a.a.A(this.keys,b);return 0<=b?this.values[b]:n}}})();a.b(\"toJS\",a.ad);a.b(\"toJSON\",a.toJSON);a.Wd=function(b,c,d){function e(c){var e=a.xb(b,d).extend({ma:\"always\"}),h=e.subscribe(function(a){a&&(h.s(),c(a))});e.notifySubscribers(e.v());return h}return\"function\"!==typeof Promise||c?e(c.bind(d)):new Promise(e)};a.b(\"when\",a.Wd);(function(){a.w={M:function(b){switch(a.a.R(b)){case \"option\":return!0===b.__ko__hasDomDataOptionValue__?\na.a.g.get(b,a.c.options.$b):7>=a.a.W?b.getAttributeNode(\"value\")&&b.getAttributeNode(\"value\").specified?b.value:b.text:b.value;case \"select\":return 0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex]):n;default:return b.value}},cb:function(b,c,d){switch(a.a.R(b)){case \"option\":\"string\"===typeof c?(a.a.g.set(b,a.c.options.$b,n),\"__ko__hasDomDataOptionValue__\"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.g.set(b,a.c.options.$b,c),b.__ko__hasDomDataOptionValue__=!0,b.value=\"number\"===\ntypeof c?c:\"\");break;case \"select\":if(\"\"===c||null===c)c=n;for(var e=-1,f=0,g=b.options.length,h;f=h){c.push(p&&q.length?{key:p,value:q.join(\"\")}:{unknown:p||q.join(\"\")});p=h=0;q=[];continue}}else if(58===u){if(!h&&!p&&1===q.length){p=q.pop();continue}}else if(47===u&&1arguments.length){if(b=w.body,!b)throw Error(\"ko.applyBindings: could not find document.body; has the document been loaded?\");\n}else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error(\"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node\");k(q(a,c),b)};a.Dc=function(b){return!b||1!==b.nodeType&&8!==b.nodeType?n:a.Td(b)};a.Ec=function(b){return(b=a.Dc(b))?b.$data:n};a.b(\"bindingHandlers\",a.c);a.b(\"bindingEvent\",a.i);a.b(\"bindingEvent.subscribe\",a.i.subscribe);a.b(\"bindingEvent.startPossiblyAsyncContentBinding\",a.i.Cb);a.b(\"applyBindings\",a.vc);a.b(\"applyBindingsToDescendants\",a.Oa);\na.b(\"applyBindingAccessorsToNode\",a.ib);a.b(\"applyBindingsToNode\",a.ld);a.b(\"contextFor\",a.Dc);a.b(\"dataFor\",a.Ec)})();(function(b){function c(c,e){var k=Object.prototype.hasOwnProperty.call(f,c)?f[c]:b,l;k?k.subscribe(e):(k=f[c]=new a.T,k.subscribe(e),d(c,function(b,d){var e=!(!d||!d.synchronous);g[c]={definition:b,Gd:e};delete f[c];l||e?k.notifySubscribers(b):a.na.zb(function(){k.notifySubscribers(b)})}),l=!0)}function d(a,b){e(\"getConfig\",[a],function(c){c?e(\"loadComponent\",[a,c],function(a){b(a,\nc)}):b(null,null)})}function e(c,d,f,l){l||(l=a.j.loaders.slice(0));var g=l.shift();if(g){var q=g[c];if(q){var t=!1;if(q.apply(g,d.concat(function(a){t?f(null):null!==a?f(a):e(c,d,f,l)}))!==b&&(t=!0,!g.suppressLoaderExceptions))throw Error(\"Component loaders must supply values by invoking the callback, not by returning values synchronously.\");}else e(c,d,f,l)}else f(null)}var f={},g={};a.j={get:function(d,e){var f=Object.prototype.hasOwnProperty.call(g,d)?g[d]:b;f?f.Gd?a.u.G(function(){e(f.definition)}):\na.na.zb(function(){e(f.definition)}):c(d,e)},Bc:function(a){delete g[a]},oc:e};a.j.loaders=[];a.b(\"components\",a.j);a.b(\"components.get\",a.j.get);a.b(\"components.clearCachedDefinition\",a.j.Bc)})();(function(){function b(b,c,d,e){function g(){0===--B&&e(h)}var h={},B=2,u=d.template;d=d.viewModel;u?f(c,u,function(c){a.j.oc(\"loadTemplate\",[b,c],function(a){h.template=a;g()})}):g();d?f(c,d,function(c){a.j.oc(\"loadViewModel\",[b,c],function(a){h[m]=a;g()})}):g()}function c(a,b,d){if(\"function\"===typeof b)d(function(a){return new b(a)});\nelse if(\"function\"===typeof b[m])d(b[m]);else if(\"instance\"in b){var e=b.instance;d(function(){return e})}else\"viewModel\"in b?c(a,b.viewModel,d):a(\"Unknown viewModel value: \"+b)}function d(b){switch(a.a.R(b)){case \"script\":return a.a.ua(b.text);case \"textarea\":return a.a.ua(b.value);case \"template\":if(e(b.content))return a.a.Ca(b.content.childNodes)}return a.a.Ca(b.childNodes)}function e(a){return A.DocumentFragment?a instanceof DocumentFragment:a&&11===a.nodeType}function f(a,b,c){\"string\"===typeof b.require?\nT||A.require?(T||A.require)([b.require],function(a){a&&\"object\"===typeof a&&a.Xd&&a[\"default\"]&&(a=a[\"default\"]);c(a)}):a(\"Uses require, but no AMD loader is present\"):c(b)}function g(a){return function(b){throw Error(\"Component '\"+a+\"': \"+b);}}var h={};a.j.register=function(b,c){if(!c)throw Error(\"Invalid configuration for \"+b);if(a.j.tb(b))throw Error(\"Component \"+b+\" is already registered\");h[b]=c};a.j.tb=function(a){return Object.prototype.hasOwnProperty.call(h,a)};a.j.unregister=function(b){delete h[b];\na.j.Bc(b)};a.j.Fc={getConfig:function(b,c){c(a.j.tb(b)?h[b]:null)},loadComponent:function(a,c,d){var e=g(a);f(e,c,function(c){b(a,e,c,d)})},loadTemplate:function(b,c,f){b=g(b);if(\"string\"===typeof c)f(a.a.ua(c));else if(c instanceof Array)f(c);else if(e(c))f(a.a.la(c.childNodes));else if(c.element)if(c=c.element,A.HTMLElement?c instanceof HTMLElement:c&&c.tagName&&1===c.nodeType)f(d(c));else if(\"string\"===typeof c){var h=w.getElementById(c);h?f(d(h)):b(\"Cannot find element with ID \"+c)}else b(\"Unknown element type: \"+\nc);else b(\"Unknown template value: \"+c)},loadViewModel:function(a,b,d){c(g(a),b,d)}};var m=\"createViewModel\";a.b(\"components.register\",a.j.register);a.b(\"components.isRegistered\",a.j.tb);a.b(\"components.unregister\",a.j.unregister);a.b(\"components.defaultLoader\",a.j.Fc);a.j.loaders.push(a.j.Fc);a.j.dd=h})();(function(){function b(b,e){var f=b.getAttribute(\"params\");if(f){var f=c.parseBindingsString(f,e,b,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ga(f,function(c){return a.o(c,null,{l:b})}),g=a.a.Ga(f,\nfunction(c){var e=c.v();return c.ja()?a.o({read:function(){return a.a.f(c())},write:a.Za(e)&&function(a){c()(a)},l:b}):e});Object.prototype.hasOwnProperty.call(g,\"$raw\")||(g.$raw=f);return g}return{$raw:{}}}a.j.getComponentNameForNode=function(b){var c=a.a.R(b);if(a.j.tb(c)&&(-1!=c.indexOf(\"-\")||\"[object HTMLUnknownElement]\"==\"\"+b||8>=a.a.W&&b.tagName===c))return c};a.j.tc=function(c,e,f,g){if(1===e.nodeType){var h=a.j.getComponentNameForNode(e);if(h){c=c||{};if(c.component)throw Error('Cannot use the \"component\" binding on a custom element matching a component');\nvar m={name:h,params:b(e,f)};c.component=g?function(){return m}:m}}return c};var c=new a.ga;9>a.a.W&&(a.j.register=function(a){return function(b){return a.apply(this,arguments)}}(a.j.register),w.createDocumentFragment=function(b){return function(){var c=b(),f=a.j.dd,g;for(g in f);return c}}(w.createDocumentFragment))})();(function(){function b(b,c,d){c=c.template;if(!c)throw Error(\"Component '\"+b+\"' has no template\");b=a.a.Ca(c);a.h.va(d,b)}function c(a,b,c){var d=a.createViewModel;return d?d.call(a,\nb,c):b}var d=0;a.c.component={init:function(e,f,g,h,m){function k(){var a=l&&l.dispose;\"function\"===typeof a&&a.call(l);q&&q.s();p=l=q=null}var l,p,q,t=a.a.la(a.h.childNodes(e));a.h.Ea(e);a.a.K.za(e,k);a.o(function(){var g=a.a.f(f()),h,u;\"string\"===typeof g?h=g:(h=a.a.f(g.name),u=a.a.f(g.params));if(!h)throw Error(\"No component name specified\");var n=a.i.Cb(e,m),z=p=++d;a.j.get(h,function(d){if(p===z){k();if(!d)throw Error(\"Unknown component '\"+h+\"'\");b(h,d,e);var f=c(d,u,{element:e,templateNodes:t});\nd=n.createChildContext(f,{extend:function(a){a.$component=f;a.$componentTemplateNodes=t}});f&&f.koDescendantsComplete&&(q=a.i.subscribe(e,a.i.pa,f.koDescendantsComplete,f));l=f;a.Oa(d,e)}})},null,{l:e});return{controlsDescendantBindings:!0}}};a.h.ea.component=!0})();var V={\"class\":\"className\",\"for\":\"htmlFor\"};a.c.attr={update:function(b,c){var d=a.a.f(c())||{};a.a.P(d,function(c,d){d=a.a.f(d);var g=c.indexOf(\":\"),g=\"lookupNamespaceURI\"in b&&0=a.a.W&&c in V?(c=V[c],h?b.removeAttribute(c):b[c]=d):h||(g?b.setAttributeNS(g,c,d):b.setAttribute(c,d));\"name\"===c&&a.a.Yc(b,h?\"\":d)})}};(function(){a.c.checked={after:[\"value\",\"attr\"],init:function(b,c,d){function e(){var e=b.checked,f=g();if(!a.S.Ya()&&(e||!m&&!a.S.qa())){var k=a.u.G(c);if(l){var q=p?k.v():k,z=t;t=f;z!==f?e&&(a.a.Na(q,f,!0),a.a.Na(q,z,!1)):a.a.Na(q,f,e);p&&a.Za(k)&&k(q)}else h&&(f===n?f=e:e||(f=n)),a.m.eb(k,\nd,\"checked\",f,!0)}}function f(){var d=a.a.f(c()),e=g();l?(b.checked=0<=a.a.A(d,e),t=e):b.checked=h&&e===n?!!d:g()===d}var g=a.xb(function(){if(d.has(\"checkedValue\"))return a.a.f(d.get(\"checkedValue\"));if(q)return d.has(\"value\")?a.a.f(d.get(\"value\")):b.value}),h=\"checkbox\"==b.type,m=\"radio\"==b.type;if(h||m){var k=c(),l=h&&a.a.f(k)instanceof Array,p=!(l&&k.push&&k.splice),q=m||l,t=l?g():n;m&&!b.name&&a.c.uniqueName.init(b,function(){return!0});a.o(e,null,{l:b});a.a.B(b,\"click\",e);a.o(f,null,{l:b});\nk=n}}};a.m.wa.checked=!0;a.c.checkedValue={update:function(b,c){b.value=a.a.f(c())}}})();a.c[\"class\"]={update:function(b,c){var d=a.a.Db(a.a.f(c()));a.a.Eb(b,b.__ko__cssValue,!1);b.__ko__cssValue=d;a.a.Eb(b,d,!0)}};a.c.css={update:function(b,c){var d=a.a.f(c());null!==d&&\"object\"==typeof d?a.a.P(d,function(c,d){d=a.a.f(d);a.a.Eb(b,c,d)}):a.c[\"class\"].update(b,c)}};a.c.enable={update:function(b,c){var d=a.a.f(c());d&&b.disabled?b.removeAttribute(\"disabled\"):d||b.disabled||(b.disabled=!0)}};a.c.disable=\n{update:function(b,c){a.c.enable.update(b,function(){return!a.a.f(c())})}};a.c.event={init:function(b,c,d,e,f){var g=c()||{};a.a.P(g,function(g){\"string\"==typeof g&&a.a.B(b,g,function(b){var k,l=c()[g];if(l){try{var p=a.a.la(arguments);e=f.$data;p.unshift(e);k=l.apply(e,p)}finally{!0!==k&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===d.get(g+\"Bubble\")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.c.foreach={Rc:function(b){return function(){var c=b(),d=a.a.bc(c);\nif(!d||\"number\"==typeof d.length)return{foreach:c,templateEngine:a.ba.Ma};a.a.f(c);return{foreach:d.data,as:d.as,noChildContext:d.noChildContext,includeDestroyed:d.includeDestroyed,afterAdd:d.afterAdd,beforeRemove:d.beforeRemove,afterRender:d.afterRender,beforeMove:d.beforeMove,afterMove:d.afterMove,templateEngine:a.ba.Ma}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.Rc(c))},update:function(b,c,d,e,f){return a.c.template.update(b,a.c.foreach.Rc(c),d,e,f)}};a.m.Ra.foreach=!1;a.h.ea.foreach=\n!0;a.c.hasfocus={init:function(b,c,d){function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if(\"activeElement\"in f){var g;try{g=f.activeElement}catch(l){g=f.body}e=g===b}f=c();a.m.eb(f,d,\"hasfocus\",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var f=e.bind(null,!0),g=e.bind(null,!1);a.a.B(b,\"focus\",f);a.a.B(b,\"focusin\",f);a.a.B(b,\"blur\",g);a.a.B(b,\"focusout\",g);b.__ko_hasfocusLastValue=!1},update:function(b,c){var d=!!a.a.f(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===\nd||(d?b.focus():b.blur(),!d&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),a.u.G(a.a.Fb,null,[b,d?\"focusin\":\"focusout\"]))}};a.m.wa.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.m.wa.hasFocus=\"hasfocus\";a.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.fc(b,c())}};(function(){function b(b,d,e){a.c[b]={init:function(b,c,h,m,k){var l,p,q={},t,x,n;if(d){m=h.get(\"as\");var u=h.get(\"noChildContext\");n=!(m&&u);q={as:m,noChildContext:u,exportDependencies:n}}x=(t=\n\"render\"==h.get(\"completeOn\"))||h.has(a.i.pa);a.o(function(){var h=a.a.f(c()),m=!e!==!h,u=!p,r;if(n||m!==l){x&&(k=a.i.Cb(b,k));if(m){if(!d||n)q.dataDependency=a.S.o();r=d?k.createChildContext(\"function\"==typeof h?h:c,q):a.S.qa()?k.extend(null,q):k}u&&a.S.qa()&&(p=a.a.Ca(a.h.childNodes(b),!0));m?(u||a.h.va(b,a.a.Ca(p)),a.Oa(r,b)):(a.h.Ea(b),t||a.i.ma(b,a.i.H));l=m}},null,{l:b});return{controlsDescendantBindings:!0}}};a.m.Ra[b]=!1;a.h.ea[b]=!0}b(\"if\");b(\"ifnot\",!1,!0);b(\"with\",!0)})();a.c.let={init:function(b,\nc,d,e,f){c=f.extend(c);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.let=!0;var Q={};a.c.options={init:function(b){if(\"select\"!==a.a.R(b))throw Error(\"options binding applies only to SELECT elements\");for(;0g)var m=a.a.g.Z(),k=a.a.g.Z(),l=function(b){var c=this.activeElement;(c=c&&a.a.g.get(c,k))&&c(b)},p=function(b,c){var d=b.ownerDocument;a.a.g.get(d,m)||(a.a.g.set(d,m,!0),a.a.B(d,\"selectionchange\",l));a.a.g.set(b,k,c)};a.c.textInput={init:function(b,c,k){function l(c,d){a.a.B(b,c,d)}function m(){var d=a.a.f(c());if(null===d||d===n)d=\"\";L!==n&&d===L?a.a.setTimeout(m,4):b.value!==d&&(y=!0,b.value=d,y=!1,v=b.value)}function r(){w||(L=b.value,w=a.a.setTimeout(z,\n4))}function z(){clearTimeout(w);L=w=n;var d=b.value;v!==d&&(v=d,a.m.eb(c(),k,\"textInput\",d))}var v=b.value,w,L,A=9==a.a.W?r:z,y=!1;g&&l(\"keypress\",z);11>g&&l(\"propertychange\",function(a){y||\"value\"!==a.propertyName||A(a)});8==g&&(l(\"keyup\",z),l(\"keydown\",z));p&&(p(b,A),l(\"dragend\",r));(!g||9<=g)&&l(\"input\",A);5>e&&\"textarea\"===a.a.R(b)?(l(\"keydown\",r),l(\"paste\",r),l(\"cut\",r)):11>d?l(\"keydown\",r):4>f?(l(\"DOMAutoComplete\",z),l(\"dragdrop\",z),l(\"drop\",z)):h&&\"number\"===b.type&&l(\"keydown\",r);l(\"change\",\nz);l(\"blur\",z);a.o(m,null,{l:b})}};a.m.wa.textInput=!0;a.c.textinput={preprocess:function(a,b,c){c(\"textInput\",a)}}})();a.c.uniqueName={init:function(b,c){if(c()){var d=\"ko_unique_\"+ ++a.c.uniqueName.rd;a.a.Yc(b,d)}}};a.c.uniqueName.rd=0;a.c.using={init:function(b,c,d,e,f){var g;d.has(\"as\")&&(g={as:d.get(\"as\"),noChildContext:d.get(\"noChildContext\")});c=f.createChildContext(c,g);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.using=!0;a.c.value={init:function(b,c,d){var e=a.a.R(b),f=\"input\"==\ne;if(!f||\"checkbox\"!=b.type&&\"radio\"!=b.type){var g=[],h=d.get(\"valueUpdate\"),m=!1,k=null;h&&(\"string\"==typeof h?g=[h]:g=a.a.wc(h),a.a.Pa(g,\"change\"));var l=function(){k=null;m=!1;var e=c(),f=a.w.M(b);a.m.eb(e,d,\"value\",f)};!a.a.W||!f||\"text\"!=b.type||\"off\"==b.autocomplete||b.form&&\"off\"==b.form.autocomplete||-1!=a.a.A(g,\"propertychange\")||(a.a.B(b,\"propertychange\",function(){m=!0}),a.a.B(b,\"focus\",function(){m=!1}),a.a.B(b,\"blur\",function(){m&&l()}));a.a.D(g,function(c){var d=l;a.a.Ud(c,\"after\")&&\n(d=function(){k=a.w.M(b);a.a.setTimeout(l,0)},c=c.substring(5));a.a.B(b,c,d)});var p;p=f&&\"file\"==b.type?function(){var d=a.a.f(c());null===d||d===n||\"\"===d?b.value=\"\":a.u.G(l)}:function(){var f=a.a.f(c()),g=a.w.M(b);if(null!==k&&f===k)a.a.setTimeout(p,0);else if(f!==g||g===n)\"select\"===e?(g=d.get(\"valueAllowUnset\"),a.w.cb(b,f,g),g||f===a.w.M(b)||a.u.G(l)):a.w.cb(b,f)};if(\"select\"===e){var q;a.i.subscribe(b,a.i.H,function(){q?d.get(\"valueAllowUnset\")?p():l():(a.a.B(b,\"change\",l),q=a.o(p,null,{l:b}))},\nnull,{notifyImmediately:!0})}else a.a.B(b,\"change\",l),a.o(p,null,{l:b})}else a.ib(b,{checkedValue:c})},update:function(){}};a.m.wa.value=!0;a.c.visible={update:function(b,c){var d=a.a.f(c()),e=\"none\"!=b.style.display;d&&!e?b.style.display=\"\":!d&&e&&(b.style.display=\"none\")}};a.c.hidden={update:function(b,c){a.c.visible.update(b,function(){return!a.a.f(c())})}};(function(b){a.c[b]={init:function(c,d,e,f,g){return a.c.event.init.call(this,c,function(){var a={};a[b]=d();return a},e,f,g)}}})(\"click\");\na.ca=function(){};a.ca.prototype.renderTemplateSource=function(){throw Error(\"Override renderTemplateSource\");};a.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error(\"Override createJavaScriptEvaluatorBlock\");};a.ca.prototype.makeTemplateSource=function(b,c){if(\"string\"==typeof b){c=c||w;var d=c.getElementById(b);if(!d)throw Error(\"Cannot find template with ID \"+b);return new a.C.F(d)}if(1==b.nodeType||8==b.nodeType)return new a.C.ia(b);throw Error(\"Unknown template type: \"+b);};a.ca.prototype.renderTemplate=\nfunction(a,c,d,e){a=this.makeTemplateSource(a,e);return this.renderTemplateSource(a,c,d,e)};a.ca.prototype.isTemplateRewritten=function(a,c){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(a,c).data(\"isRewritten\")};a.ca.prototype.rewriteTemplate=function(a,c,d){a=this.makeTemplateSource(a,d);c=c(a.text());a.text(c);a.data(\"isRewritten\",!0)};a.b(\"templateEngine\",a.ca);a.kc=function(){function b(b,c,d,h){b=a.m.ac(b);for(var m=a.m.Ra,k=0;k]*))?)*\\s+)data-bind\\s*=\\s*([\"'])([\\s\\S]*?)\\3/gi,\nd=/\\x3c!--\\s*ko\\b\\s*([\\s\\S]*?)\\s*--\\x3e/g;return{xd:function(b,c,d){c.isTemplateRewritten(b,d)||c.rewriteTemplate(b,function(b){return a.kc.Ld(b,c)},d)},Ld:function(a,f){return a.replace(c,function(a,c,d,e,l){return b(l,c,d,f)}).replace(d,function(a,c){return b(c,\"\\x3c!-- ko --\\x3e\",\"#comment\",f)})},md:function(b,c){return a.aa.Xb(function(d,h){var m=d.nextSibling;m&&m.nodeName.toLowerCase()===c&&a.ib(m,b,h)})}}}();a.b(\"__tr_ambtns\",a.kc.md);(function(){a.C={};a.C.F=function(b){if(this.F=b){var c=\na.a.R(b);this.ab=\"script\"===c?1:\"textarea\"===c?2:\"template\"==c&&b.content&&11===b.content.nodeType?3:4}};a.C.F.prototype.text=function(){var b=1===this.ab?\"text\":2===this.ab?\"value\":\"innerHTML\";if(0==arguments.length)return this.F[b];var c=arguments[0];\"innerHTML\"===b?a.a.fc(this.F,c):this.F[b]=c};var b=a.a.g.Z()+\"_\";a.C.F.prototype.data=function(c){if(1===arguments.length)return a.a.g.get(this.F,b+c);a.a.g.set(this.F,b+c,arguments[1])};var c=a.a.g.Z();a.C.F.prototype.nodes=function(){var b=this.F;\nif(0==arguments.length){var e=a.a.g.get(b,c)||{},f=e.lb||(3===this.ab?b.content:4===this.ab?b:n);if(!f||e.jd){var g=this.text();g&&g!==e.bb&&(f=a.a.Md(g,b.ownerDocument),a.a.g.set(b,c,{lb:f,bb:g,jd:!0}))}return f}e=arguments[0];this.ab!==n&&this.text(\"\");a.a.g.set(b,c,{lb:e})};a.C.ia=function(a){this.F=a};a.C.ia.prototype=new a.C.F;a.C.ia.prototype.constructor=a.C.ia;a.C.ia.prototype.text=function(){if(0==arguments.length){var b=a.a.g.get(this.F,c)||{};b.bb===n&&b.lb&&(b.bb=b.lb.innerHTML);return b.bb}a.a.g.set(this.F,\nc,{bb:arguments[0]})};a.b(\"templateSources\",a.C);a.b(\"templateSources.domElement\",a.C.F);a.b(\"templateSources.anonymousTemplate\",a.C.ia)})();(function(){function b(b,c,d){var e;for(c=a.h.nextSibling(c);b&&(e=b)!==c;)b=a.h.nextSibling(e),d(e,b)}function c(c,d){if(c.length){var e=c[0],f=c[c.length-1],g=e.parentNode,h=a.ga.instance,m=h.preprocessNode;if(m){b(e,f,function(a,b){var c=a.previousSibling,d=m.call(h,a);d&&(a===e&&(e=d[0]||b),a===f&&(f=d[d.length-1]||c))});c.length=0;if(!e)return;e===f?c.push(e):\n(c.push(e,f),a.a.Ua(c,g))}b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.vc(d,b)});b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.aa.cd(b,[d])});a.a.Ua(c,g)}}function d(a){return a.nodeType?a:0a.a.W?0:b.nodes)?b.nodes():null)return a.a.la(c.cloneNode(!0).childNodes);b=b.text();return a.a.ua(b,e)};a.ba.Ma=new a.ba;a.gc(a.ba.Ma);a.b(\"nativeTemplateEngine\",a.ba);(function(){a.$a=function(){var a=this.Hd=function(){if(!v||!v.tmpl)return 0;try{if(0<=v.tmpl.tag.tmpl.open.toString().indexOf(\"__\"))return 2}catch(a){}return 1}();\nthis.renderTemplateSource=function(b,e,f,g){g=g||w;f=f||{};if(2>a)throw Error(\"Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.\");var h=b.data(\"precompiled\");h||(h=b.text()||\"\",h=v.template(null,\"{{ko_with $item.koBindingContext}}\"+h+\"{{/ko_with}}\"),b.data(\"precompiled\",h));b=[e.$data];e=v.extend({koBindingContext:e},f.templateOptions);e=v.tmpl(h,b,e);e.appendTo(g.createElement(\"div\"));v.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return\"{{ko_code ((function() { return \"+\na+\" })()) }}\"};this.addTemplate=function(a,b){w.write(\"